فهرست منبع

feat:手机端代码提交

韩洋 3 ماه پیش
کامیت
b616971523
100فایلهای تغییر یافته به همراه6298 افزوده شده و 0 حذف شده
  1. 12 0
      .babelrc
  2. 18 0
      .editorconfig
  3. 33 0
      .gitignore
  4. 27 0
      .gitlab-ci.yml
  5. 1 0
      .npmrc
  6. 3 0
      .prettierignore
  7. 8 0
      .prettierrc
  8. 28 0
      .vscode/settings.json
  9. 12 0
      100548/changelogs.txt
  10. 6 0
      100548/config.json
  11. BIN
      100548/favicon.ico
  12. 0 0
      100548/index.html
  13. 147 0
      100548/menu.json
  14. 451 0
      100548/menu2.json
  15. BIN
      100548/modules/thrid-nrpw-pwai.zip
  16. 0 0
      100548/modules/thrid-nrpw-pwai/assets/thrid-nrpw-pwai-Agent.C5sgg0rl.js
  17. 1 0
      100548/modules/thrid-nrpw-pwai/assets/thrid-nrpw-pwai-Agent.css
  18. 0 0
      100548/modules/thrid-nrpw-pwai/assets/thrid-nrpw-pwai-Conversation.BOo0bJxD.js
  19. 0 0
      100548/modules/thrid-nrpw-pwai/assets/thrid-nrpw-pwai-Conversation.css
  20. 16 0
      100548/modules/thrid-nrpw-pwai/assets/thrid-nrpw-pwai-excel-icon.svg
  21. 0 0
      100548/modules/thrid-nrpw-pwai/assets/thrid-nrpw-pwai-icon_1.svg
  22. 0 0
      100548/modules/thrid-nrpw-pwai/assets/thrid-nrpw-pwai-icon_2.svg
  23. 1 0
      100548/modules/thrid-nrpw-pwai/assets/thrid-nrpw-pwai-icon_3.css
  24. 0 0
      100548/modules/thrid-nrpw-pwai/assets/thrid-nrpw-pwai-icon_3.yAyePlNU.js
  25. 0 0
      100548/modules/thrid-nrpw-pwai/assets/thrid-nrpw-pwai-icon_4.svg
  26. 1 0
      100548/modules/thrid-nrpw-pwai/assets/thrid-nrpw-pwai-index.BNTlphC0.js
  27. 0 0
      100548/modules/thrid-nrpw-pwai/assets/thrid-nrpw-pwai-index.css
  28. BIN
      100548/modules/thrid-nrpw-pwai/assets/thrid-nrpw-pwai-report-ing.png
  29. 0 0
      100548/modules/thrid-nrpw-pwai/assets/thrid-nrpw-pwai-robot.svg
  30. 4 0
      100548/modules/thrid-nrpw-pwai/assets/thrid-nrpw-pwai-vue-vendor.ZLY8oEax.js
  31. 11 0
      100548/modules/thrid-nrpw-pwai/assets/thrid-nrpw-pwai-word-icon.svg
  32. 23 0
      100548/modules/thrid-nrpw-pwai/index.html
  33. 3632 0
      100548/plugins/entry-SmCrypto-2.9.js
  34. 169 0
      100548/plugins/entry-igw.js
  35. 615 0
      100548/plugins/entry-igwAuth.js
  36. 703 0
      100548/plugins/entry-igwConfigs.js
  37. 1 0
      100548/plugins/entry-jquery-2.2.4.min.js
  38. 35 0
      100548/plugins/entry-jweixin-1.0.0.js
  39. 329 0
      100548/plugins/entry-pmsjjm.js
  40. 9 0
      100548/plugins/entry-vconsole.min.js
  41. 0 0
      100548/static/css/app.b3e5e72c.css
  42. 1 0
      100548/static/css/chunk-028847e0.3cd00150.css
  43. 1 0
      100548/static/css/chunk-0996a78a.d9afb40f.css
  44. 0 0
      100548/static/css/chunk-3e34baa3.8283e4db.css
  45. 0 0
      100548/static/css/chunk-4b2ce393.26a5052e.css
  46. 0 0
      100548/static/css/chunk-b0b6f034.c980c81b.css
  47. 0 0
      100548/static/css/chunk-vendors.3e037fd8.css
  48. BIN
      100548/static/img/app_loading.7150b9d8.png
  49. BIN
      100548/static/img/avatar.482e11fd.png
  50. BIN
      100548/static/img/default.7e182502.png
  51. BIN
      100548/static/img/gd-ytyh.e63c803a.png
  52. BIN
      100548/static/img/header_bg.b337427a.png
  53. BIN
      100548/static/img/header_bg.f502214e.png
  54. BIN
      100548/static/img/icon_btn_top.e1865b7e.png
  55. BIN
      100548/static/img/icon_czpxsbl.6e664249.png
  56. BIN
      100548/static/img/icon_ddydzy.efcf6b00.png
  57. BIN
      100548/static/img/icon_dhep.5fbc5283.png
  58. BIN
      100548/static/img/icon_dhyp.82b83dc9.png
  59. BIN
      100548/static/img/icon_dljyh.1a050275.png
  60. BIN
      100548/static/img/icon_dygzp.04691802.png
  61. BIN
      100548/static/img/icon_dzczp.dc1d9a5b.png
  62. BIN
      100548/static/img/icon_fqgkgd.c2838e98.png
  63. BIN
      100548/static/img/icon_fxxsyczl.b2fcdcbf.png
  64. BIN
      100548/static/img/icon_fxyj.f500cb78.png
  65. BIN
      100548/static/img/icon_gdlzznh.a5399252.png
  66. BIN
      100548/static/img/icon_gdqdxjyw.0fd40799.png
  67. BIN
      100548/static/img/icon_gdqdzdqx.2a9dfb2c.png
  68. BIN
      100548/static/img/icon_gzqxd.e350b5ef.png
  69. BIN
      100548/static/img/icon_gzqxgd.3fe9f5cd.png
  70. BIN
      100548/static/img/icon_gzxxznfx.a397f719.png
  71. BIN
      100548/static/img/icon_jcsjzl.436e4578.png
  72. BIN
      100548/static/img/icon_jtfsh.cd0a0980.png
  73. BIN
      100548/static/img/icon_jyhyw.1722c461.png
  74. BIN
      100548/static/img/icon_kkxgk.7194dbad.png
  75. BIN
      100548/static/img/icon_nr_rcdg.11245766.png
  76. BIN
      100548/static/img/icon_pbyczl.6196dfba.png
  77. BIN
      100548/static/img/icon_pdep.1f0d24da.png
  78. BIN
      100548/static/img/icon_pdyp.bb0c8649.png
  79. BIN
      100548/static/img/icon_pwfl.d41cb737.png
  80. BIN
      100548/static/img/icon_qwfsh.c4e28b98.png
  81. BIN
      100548/static/img/icon_qxpxslz.8efb658b.png
  82. BIN
      100548/static/img/icon_qxqgcztgk.66019981.png
  83. BIN
      100548/static/img/icon_sbztsscx.9d8d0ee4.png
  84. BIN
      100548/static/img/icon_shyjgd.b2d8ec20.png
  85. BIN
      100548/static/img/icon_szhyj.18a09547.png
  86. BIN
      100548/static/img/icon_tgydzdyy.816e2150.png
  87. BIN
      100548/static/img/icon_third_dy_yqgd.84c0a6c1.png
  88. BIN
      100548/static/img/icon_tqzdqx.490267c9.png
  89. BIN
      100548/static/img/icon_wtpt.7e182502.png
  90. BIN
      100548/static/img/icon_xckcjl.be8fe3ef.png
  91. BIN
      100548/static/img/icon_xlyczl.a90cf641.png
  92. BIN
      100548/static/img/icon_xlzdjx.6364133c.png
  93. BIN
      100548/static/img/icon_xlzdqx.b35630b2.png
  94. BIN
      100548/static/img/icon_xsjlgd.b12bba9f.png
  95. BIN
      100548/static/img/icon_ydzdbs.1d5baed0.png
  96. BIN
      100548/static/img/icon_ydzdgcys.ada9996f.png
  97. BIN
      100548/static/img/icon_yhgl.0e40f493.png
  98. BIN
      100548/static/img/icon_ykgd.02490357.png
  99. BIN
      100548/static/img/icon_ykqlcgk.6e0f55d9.png
  100. BIN
      100548/static/img/icon_zbkb.8305d155.png

+ 12 - 0
.babelrc

@@ -0,0 +1,12 @@
+{
+  "presets": [
+    [
+      "@babel/preset-env",
+      {
+        "targets": "> 0.25%, not dead",
+        "useBuiltIns": "usage",
+        "corejs": "3" // 使用 core-js 的版本,确保兼容性支持
+      }
+    ]
+  ]
+}

+ 18 - 0
.editorconfig

@@ -0,0 +1,18 @@
+# https://editorconfig.org
+root = true
+
+[*]
+charset = utf-8
+end_of_line = lf
+indent_size = 2
+indent_style = space
+insert_final_newline = true
+max_line_length = 80
+trim_trailing_whitespace = true
+
+[*.md]
+max_line_length = 0
+trim_trailing_whitespace = false
+
+[COMMIT_EDITMSG]
+max_line_length = 0

+ 33 - 0
.gitignore

@@ -0,0 +1,33 @@
+.DS_Store
+node_modules
+
+# local env files
+.env.local
+.env.*.local
+
+# Log files
+npm-debug.log*
+yarn-debug.log*
+yarn-error.log*
+pnpm-debug.log*
+
+# Editor directories and files
+.idea
+*.suo
+*.ntvs*
+*.njsproj
+*.sln
+*.sw?
+
+*.backup.*
+
+example.*
+
+no-use.*
+
+# dist
+dist
+dist.zip
+
+docs/.vitepress/cache/
+stats.html

+ 27 - 0
.gitlab-ci.yml

@@ -0,0 +1,27 @@
+image: node:latest
+
+stages:
+  - build
+  - deploy
+
+build_job:
+  stage: build
+  script:
+    - echo 'node版本需要 18+ 或者 20+'
+    - node -v
+    - npm -v
+
+  artifacts:
+    paths:
+      - dist
+
+deploy_job:
+  stage: deploy
+  dependencies:
+    - build_job
+  script:
+    # - rsync -e "ssh -p 22" -av --delete --no-o --no-g --progress dist/ basic@192.168.20.119:/data/disk3/rag/smart2
+    - echo 'release'
+
+  environment:
+    name: production

+ 1 - 0
.npmrc

@@ -0,0 +1 @@
+registry=https://registry.npmmirror.com

+ 3 - 0
.prettierignore

@@ -0,0 +1,3 @@
+docs
+*.min.js
+vite.config.mjs

+ 8 - 0
.prettierrc

@@ -0,0 +1,8 @@
+{
+  "tabWidth": 2,
+  "trailingComma": "none",
+  "endOfLine": "auto",
+  "semi": true,
+  "printWidth": 120,
+  "singleQuote": true
+}

+ 28 - 0
.vscode/settings.json

@@ -0,0 +1,28 @@
+{
+  "editor.wordWrap": "off",
+  "editor.detectIndentation": false,
+  // 重新设定tabsize
+  "editor.tabSize": 2,
+  //失去焦点后自动保存
+  "files.autoSave": "onFocusChange",
+  //每120行就显示一条线
+  "editor.rulers": [],
+  // 在使用搜索功能时,将这些文件夹/文件排除在外
+  "search.exclude": {
+    "**/node_modules": true,
+    "**/bower_components": true,
+    "**/target": true,
+    "**/logs": true
+  },
+
+  "editor.codeActionsOnSave": {
+    "source.fixAll.eslint": "explicit"
+  },
+
+  "editor.defaultFormatter": "esbenp.prettier-vscode",
+  // #值设置为true时,每次保存的时候自动格式化;
+  "editor.formatOnSave": true,
+  "[vue]": {
+    "editor.defaultFormatter": "octref.vetur"
+  }
+}

+ 12 - 0
100548/changelogs.txt

@@ -0,0 +1,12 @@
+一、自动化终端治理:
+1、增加终端治理工单待办气泡
+二、带电:
+1、优化工作票,斗内电工、地面电工,从已选择的班组成员中进行快速选择
+2、优化人员搜索,搜索后定位到第一个搜索结果,方便用户快速选择
+3、优化工序工艺卡编辑,方便用户快速编辑
+4、优化数据权限,省公司领导角色查看地市公司数据
+三、周期巡视:
+1、缺陷隐患新增审核不通过的情况下,可删除
+2、工单详情中,分支详情可点击筛选设备列表
+四、看板:
+1、优化看板两票和工单页面布局

+ 6 - 0
100548/config.json

@@ -0,0 +1,6 @@
+{
+  "ENV": "pre",
+  "VERSION": "v$第三版在线改造加密$",
+  "ENCRYPT": true,
+  "USE_ONLINE_MODE": false
+}

BIN
100548/favicon.ico


تفاوت فایلی نمایش داده نمی شود زیرا این فایل بسیار بزرگ است
+ 0 - 0
100548/index.html


+ 147 - 0
100548/menu.json

@@ -0,0 +1,147 @@
+[
+  {
+    "appType": "igw",
+    "href": "/home",
+    "iconCls": "main-tab",
+    "iconPath": "tabbar_home",
+    "id": "1",
+    "name": "i配网App首页",
+    "order": 1,
+    "parts": [
+      {
+        "colspan": 1,
+        "id": "1",
+        "items": [
+          {
+            "active": 0,
+            "href": "demo/index.html",
+            "uri": "demo/index.html",
+            "iconPath": "third-dy-xqyw.png",
+            "id": "lp_1",
+            "name": "i配网-两票-demo123",
+            "order": 1,
+            "title": "demo1123",
+            "type": "icon"
+          }
+        ],
+        "maxItem": 100,
+        "name": "i配网App首页-两票",
+        "order": 1,
+        "renderType": "grid",
+        "title": "两票"
+      },
+      {
+        "colspan": 2,
+        "id": "2",
+        "items": [
+          {
+            "active": 1,
+            "href": "demo/index.html#/page1",
+            "uri": "demo/index.html#/page1",
+            "iconPath": "icon_pdyp.png",
+            "id": "digit_1",
+            "name": "i配网-数字化班组-demo2",
+            "order": 1,
+            "title": "demo2",
+            "type": "icon"
+          }
+        ],
+        "maxItem": 100,
+        "name": "i配网App首页-数字化班组",
+        "order": 2,
+        "renderType": "grid",
+        "title": "数字化班组"
+      },
+      {
+        "colspan": 3,
+        "id": "3",
+        "items": [
+          {
+            "active": 0,
+            "href": "demo/index.html#/page2",
+            "uri": "demo/index.html#/page2",
+            "iconPath": "icon_pdyp.png",
+            "id": "gd_1",
+            "name": "i配网-工单-demo3",
+            "order": 1,
+            "title": "demo3",
+            "type": "icon"
+          }
+        ],
+        "maxItem": 100,
+        "name": "i配网App首页-工单",
+        "order": 3,
+        "renderType": "grid",
+        "title": "工单"
+      },
+      {
+        "colspan": 3,
+        "id": "3",
+        "items": [
+          {
+            "active": 0,
+            "href": "demo/index.html#/page2",
+            "uri": "demo/index.html#/page2",
+            "iconPath": "icon_pdyp.png",
+            "id": "gd_1",
+            "name": "i配网-工单-demo3",
+            "order": 1,
+            "title": "demo3",
+            "type": "icon"
+          }
+        ],
+        "maxItem": 100,
+        "name": "i配网App首页-工单",
+        "order": 3,
+        "renderType": "grid",
+        "title": "工单"
+      },
+      {
+        "colspan": 3,
+        "id": "3",
+        "items": [
+          {
+            "active": 0,
+            "href": "demo/index.html#/page2",
+            "uri": "demo/index.html#/page2",
+            "iconPath": "icon_pdyp.png",
+            "id": "gd_1",
+            "name": "i配网-工单-demo3",
+            "order": 1,
+            "title": "demo3",
+            "type": "icon"
+          }
+        ],
+        "maxItem": 100,
+        "name": "i配网App首页-工单",
+        "order": 3,
+        "renderType": "grid",
+        "title": "工单"
+      },
+      {
+        "colspan": 3,
+        "id": "3",
+        "items": [
+          {
+            "active": 0,
+            "href": "demo/index.html#/page2",
+            "uri": "demo/index.html#/page2",
+            "iconPath": "icon_pdyp.png",
+            "id": "gd_1",
+            "name": "i配网-工单-demo3",
+            "order": 1,
+            "title": "demo3",
+            "type": "icon"
+          }
+        ],
+        "maxItem": 100,
+        "name": "i配网App首页-工单",
+        "order": 3,
+        "renderType": "grid",
+        "title": "工单"
+      }
+    ],
+    "renderType": "tab",
+    "title": "首页"
+  }
+]

+ 451 - 0
100548/menu2.json

@@ -0,0 +1,451 @@
+[
+  {
+    "appType": "igw",
+    "href": "/",
+    "iconCls": "main-tab",
+    "iconPath": "tabbar_home",
+    "id": "1",
+    "name": "i配网App工作台",
+    "order": 1,
+    "parts": [
+      {
+        "colspan": 1,
+        "id": "1",
+        "items": [
+          {
+            "active": 0,
+            "href": "/oneTicket",
+            "iconPath": "icon_pdyp.png",
+            "id": "lp_1",
+            "name": "i配网-两票-配电一票",
+            "order": 1,
+            "title": "配电一票",
+            "type": "icon"
+          },
+          {
+            "active": 0,
+            "href": "/twoTicket",
+            "iconPath": "icon_pdep.png",
+            "id": "lp_2",
+            "name": "i配网-两票-配电二票",
+            "order": 2,
+            "title": "配电二票",
+            "type": "icon"
+          },
+          {
+            "active": 0,
+            "href": "",
+            "iconPath": "icon_dygzp.png",
+            "id": "lp_3",
+            "name": "i配网-两票-低压工作票",
+            "order": 3,
+            "title": "低压工作票",
+            "type": "icon"
+          },
+          {
+            "active": 0,
+            "href": "/czp/index.html",
+            "iconPath": "icon_dzczp.png",
+            "id": "lp_4",
+            "name": "i配网-两票-倒闸操作票",
+            "order": 4,
+            "title": "倒闸操作票",
+            "type": "icon"
+          },
+          {
+            "active": 0,
+            "href": "",
+            "iconPath": "icon_gzqxd.png",
+            "id": "lp_5",
+            "name": "i配网-两票-故障抢修单",
+            "order": 5,
+            "title": "故障抢修单",
+            "type": "icon"
+          },
+          {
+            "active": 1,
+            "href": "",
+            "iconPath": "icon_dhyp.png",
+            "id": "lp_6",
+            "name": "i配网-两票-动火一票",
+            "order": 6,
+            "title": "动火一票",
+            "type": "icon"
+          },
+          {
+            "active": 1,
+            "href": "",
+            "iconPath": "icon_dhep.png",
+            "id": "lp_7",
+            "name": "i配网-两票-动火二票",
+            "order": 7,
+            "title": "动火二票",
+            "type": "icon"
+          }
+        ],
+        "maxItem": 100,
+        "name": "i配网App首页-两票",
+        "order": 1,
+        "renderType": "grid",
+        "title": "两票"
+      },
+      {
+        "colspan": 2,
+        "id": "2",
+        "items": [
+          {
+            "active": 1,
+            "href": "",
+            "iconPath": "icon_ydzdbs.png",
+            "id": "digit_1",
+            "name": "i配网-数字化班组-移动终端部署",
+            "order": 1,
+            "title": "移动终端部署",
+            "type": "icon"
+          },
+          {
+            "active": 1,
+            "href": "",
+            "iconPath": "icon_jyhyw.png",
+            "id": "digit_2",
+            "name": "i配网-数字化班组-精益化运维",
+            "order": 2,
+            "title": "精益化运维",
+            "type": "icon"
+          },
+          {
+            "active": 1,
+            "href": "",
+            "iconPath": "icon_szhyj.png",
+            "id": "digit_3",
+            "name": "i配网-数字化班组-数字化移交",
+            "order": 3,
+            "title": "数字化移交",
+            "type": "icon"
+          },
+          {
+            "active": 1,
+            "href": "",
+            "iconPath": "icon_ydzdgcys.png",
+            "id": "digit_4",
+            "name": "i配网-数字化班组-移动终端工程验收",
+            "order": 4,
+            "title": "移动终端工程验收",
+            "type": "icon"
+          },
+          {
+            "active": 1,
+            "href": "sbzzsscx/",
+            "iconPath": "icon_sbztsscx.png",
+            "id": "digit_5",
+            "name": "i配网-数字化班组-设备状态实时查询",
+            "order": 5,
+            "title": "设备状态实时查询",
+            "type": "icon"
+          },
+          {
+            "active": 1,
+            "href": "",
+            "iconPath": "icon_gdqdxjyw.png",
+            "id": "digit_6",
+            "name": "i配网-数字化班组-工单驱动巡检业务",
+            "order": 6,
+            "title": "工单驱动巡检业务",
+            "type": "icon"
+          },
+          {
+            "active": 1,
+            "href": "",
+            "iconPath": "icon_gdlzznh.png",
+            "id": "digit_7",
+            "name": "i配网-数字化班组-工单流转智能化",
+            "order": 7,
+            "title": "工单流转智能化",
+            "type": "icon"
+          },
+          {
+            "active": 1,
+            "href": "",
+            "iconPath": "icon_qxpxslz.png",
+            "id": "digit_8",
+            "name": "i配网-数字化班组-抢修票线上流转",
+            "order": 8,
+            "title": "抢修票线上流转",
+            "type": "icon"
+          },
+          {
+            "active": 1,
+            "href": "",
+            "iconPath": "icon_czpxsbl.png",
+            "id": "digit_9",
+            "name": "i配网-数字化班组-操作票线上办理",
+            "order": 9,
+            "title": "操作票线上办理",
+            "type": "icon"
+          },
+          {
+            "active": 1,
+            "href": "",
+            "iconPath": "icon_gdqdzdqx.png",
+            "id": "digit_10",
+            "name": "i配网-数字化班组-工单驱动主动抢修",
+            "order": 10,
+            "title": "工单驱动主动抢修",
+            "type": "icon"
+          },
+          {
+            "active": 1,
+            "href": "",
+            "iconPath": "icon_tgydzdyy.png",
+            "id": "digit_11",
+            "name": "i配网-数字化班组-推广移动终端应用",
+            "order": 11,
+            "title": "推广移动终端应用",
+            "type": "icon"
+          },
+          {
+            "active": 1,
+            "href": "",
+            "iconPath": "icon_qxqgcztgk.png",
+            "id": "digit_12",
+            "name": "i配网-数字化班组-抢修全过程状态管控",
+            "order": 12,
+            "title": "抢修全过程状态管控",
+            "type": "icon"
+          },
+          {
+            "active": 1,
+            "href": "",
+            "iconPath": "icon_gzxxznfx.png",
+            "id": "digit_13",
+            "name": "i配网-数字化班组-故障信息智能分析",
+            "order": 13,
+            "title": "故障信息智能分析",
+            "type": "icon"
+          },
+          {
+            "active": 1,
+            "href": "mydd/",
+            "iconPath": "icon_ddydzy.png",
+            "id": "digit_14",
+            "name": "i配网-数字化班组-带电移动作业",
+            "order": 14,
+            "title": "带电移动作业",
+            "type": "icon"
+          }
+        ],
+        "maxItem": 100,
+        "name": "i配网App首页-数字化班组",
+        "order": 2,
+        "renderType": "grid",
+        "title": "数字化班组"
+      },
+      {
+        "colspan": 3,
+        "id": "3",
+        "items": [
+          {
+            "active": 0,
+            "href": "yhgd/index.html#/repairOrder",
+            "iconPath": "icon_xlzdqx.png",
+            "id": "gd_1",
+            "name": "i配网-工单-线路主动抢修",
+            "order": 1,
+            "title": "线路主动抢修",
+            "type": "icon"
+          },
+          {
+            "active": 0,
+            "href": "yhgd/index.html#/courtsoreder",
+            "iconPath": "icon_tqzdqx.png",
+            "id": "gd_2",
+            "name": "i配网-工单-台区主动抢修",
+            "order": 2,
+            "title": "台区主动抢修",
+            "type": "icon"
+          },
+          {
+            "active": 0,
+            "href": "zqxsgd/",
+            "iconPath": "icon_zqxs.png",
+            "id": "gd_3",
+            "name": "i配网-工单-周期巡视",
+            "order": 3,
+            "title": "周期巡视",
+            "type": "icon",
+            "dyCode": "zqxs"
+          },
+          {
+            "active": 0,
+            "href": "ykgd/index.html#/line/earlyWarn",
+            "iconPath": "icon_xlyczl.png",
+            "id": "gd_4",
+            "name": "i配网-工单-线路异常治理",
+            "order": 4,
+            "title": "线路异常治理",
+            "type": "icon",
+            "dyCode": "xlyc"
+          },
+          {
+            "active": 0,
+            "href": "ykgd/index.html#/withVariable/earlyWarn",
+            "iconPath": "icon_pbyczl.png",
+            "id": "gd_5",
+            "name": "i配网-工单-配变异常治理",
+            "order": 5,
+            "title": "配变异常治理",
+            "type": "icon",
+            "dyCode": "pbyc"
+          },
+          {
+            "active": 0,
+            "href": "zdjx/index.html#/detectionList",
+            "iconPath": "icon_xlzdjx.png",
+            "id": "gd_6",
+            "name": "i配网-工单-线路主动检修",
+            "order": 6,
+            "title": "线路主动检修",
+            "type": "icon"
+          },
+          {
+            "active": 0,
+            "href": "ykgd/",
+            "iconPath": "icon_ykqlcgk.png",
+            "id": "gd_7",
+            "name": "i配网-工单-业扩全流程管控",
+            "order": 7,
+            "title": "业扩全流程管控",
+            "type": "icon"
+          },
+          {
+            "active": 0,
+            "href": "",
+            "iconPath": "icon_zdhzdzl.png",
+            "id": "gd_8",
+            "name": "i配网-工单-自动化终端治理",
+            "order": 8,
+            "title": "自动化终端治理",
+            "type": "icon"
+          },
+          {
+            "active": 0,
+            "href": "",
+            "iconPath": "icon_fxxsyczl.png",
+            "id": "gd_9",
+            "name": "i配网-工单-分线线损异常治理",
+            "order": 9,
+            "title": "分线线损异常治理",
+            "type": "icon"
+          },
+          {
+            "active": 0,
+            "href": "",
+            "iconPath": "icon_jcsjzl.png",
+            "id": "gd_10",
+            "name": "i配网-工单-基础数据治理",
+            "order": 10,
+            "title": "基础数据治理",
+            "type": "icon"
+          },
+          {
+            "active": 0,
+            "href": "yhgd/index.html#/reorder",
+            "iconPath": "icon_kkxgk.png",
+            "id": "gd_11",
+            "name": "i配网-工单-可靠性管控",
+            "order": 11,
+            "title": "可靠性管控",
+            "type": "icon"
+          },
+          {
+            "active": 0,
+            "href": "zdjx/index.html#/orderSurvey",
+            "iconPath": "icon_xckcjl.png",
+            "id": "gd_12",
+            "name": "i配网-工单-现场勘察记录",
+            "order": 12,
+            "title": "现场勘察记录",
+            "type": "icon"
+          }
+        ],
+        "maxItem": 100,
+        "name": "i配网App首页-工单",
+        "order": 3,
+        "renderType": "grid",
+        "title": "工单"
+      }
+    ],
+    "renderType": "tab",
+    "title": "工作台"
+  },
+  {
+    "renderType": "tab",
+    "appType": "igw",
+    "href": "/dashboard",
+    "parts": [
+      {
+        "renderType": "grid",
+        "colspan": 3,
+        "maxItem": 100,
+        "items": [
+          {
+            "href": "-",
+            "type": "icon",
+            "active": 0,
+            "id": "db-1",
+            "name": "i配网-看板-默认",
+            "title": "看板-默认",
+            "iconPath": "",
+            "order": 1,
+            "dyCode": ""
+          }
+        ],
+        "id": "31",
+        "name": "i配网App首页-看板",
+        "title": "看板",
+        "order": 3
+      }
+    ],
+    "id": "2",
+    "name": "i配网App看板",
+    "title": "看板",
+    "iconCls": "main-tab",
+    "iconPath": "tabbar_dashboard",
+    "order": 2
+  },
+  {
+    "renderType": "tab",
+    "appType": "igw",
+    "href": "/my",
+    "parts": [
+      {
+        "renderType": "grid",
+        "colspan": 3,
+        "maxItem": 100,
+        "items": [
+          {
+            "href": "",
+            "type": "icon",
+            "active": 0,
+            "id": "db-1",
+            "name": "i配网-我的-默认",
+            "title": "我的-默认",
+            "iconPath": "",
+            "order": 1,
+            "dyCode": ""
+          }
+        ],
+        "id": "31",
+        "name": "i配网App首页-我的",
+        "title": "我的",
+        "order": 3
+      }
+    ],
+    "id": "3",
+    "name": "i配网App看板",
+    "title": "我的",
+    "iconCls": "main-tab",
+    "iconPath": "tabbar_my",
+    "order": 3
+  }
+]

BIN
100548/modules/thrid-nrpw-pwai.zip


تفاوت فایلی نمایش داده نمی شود زیرا این فایل بسیار بزرگ است
+ 0 - 0
100548/modules/thrid-nrpw-pwai/assets/thrid-nrpw-pwai-Agent.C5sgg0rl.js


+ 1 - 0
100548/modules/thrid-nrpw-pwai/assets/thrid-nrpw-pwai-Agent.css

@@ -0,0 +1 @@
+.nav-header[data-v-fef927df]{position:relative;display:flex;align-items:center;justify-content:space-between;height:1.33333rem;padding:0 .4rem;box-sizing:border-box}.icon[data-v-fef927df]{width:.26667rem}.center[data-v-fef927df]{position:absolute;width:100%;height:100%;line-height:1.33333rem;text-align:center;font-weight:600;font-size:.48rem;color:#2c2c2c;z-index:0}.left[data-v-fef927df]{display:flex}.right .icon[data-v-fef927df]{width:.64rem}.left[data-v-fef927df],.right[data-v-fef927df]{z-index:1}.agent-item[data-v-9a56d248]{display:flex;flex-direction:row;align-items:center;justify-content:space-between;gap:.26667rem;height:1.17333rem;border-radius:.48rem;background:#fff;padding:0 .4rem}.agent-item .item-left[data-v-9a56d248]{display:flex;flex-direction:row;align-items:center;gap:.26667rem}.agent-item .icon[data-v-9a56d248]{width:.53333rem}.agent-item .title[data-v-9a56d248]{font-size:.37333rem;color:#2c2c2c;font-weight:600}.agent-item[data-v-9a56d248]:active{color:#a2e5e3}.agent-container[data-v-fae061d4]{position:relative}.bg-icon[data-v-fae061d4]{position:absolute;top:.8rem;left:.53333rem;width:calc(100% - 1.06667rem);z-index:0}.icon_logo[data-v-fae061d4]{position:absolute;top:.74667rem;left:.69333rem;z-index:0;width:1.33333rem}.logo-title[data-v-fae061d4]{position:absolute;top:1.12rem;left:2.66667rem;font-family:思源黑体,Source Han Sans,sans-serif;font-size:.48rem;font-weight:600;font-style:italic;color:#00615f;line-height:.64rem;text-shadow:0 0 .13333rem rgba(0,0,0,.5)}.agent-list[data-v-fae061d4]{position:absolute;left:1.06667rem;top:3.2rem;display:flex;flex-direction:column;gap:.4rem;padding:.4rem 0;z-index:6;width:calc(100% - 2.13334rem)}

تفاوت فایلی نمایش داده نمی شود زیرا این فایل بسیار بزرگ است
+ 0 - 0
100548/modules/thrid-nrpw-pwai/assets/thrid-nrpw-pwai-Conversation.BOo0bJxD.js


تفاوت فایلی نمایش داده نمی شود زیرا این فایل بسیار بزرگ است
+ 0 - 0
100548/modules/thrid-nrpw-pwai/assets/thrid-nrpw-pwai-Conversation.css


+ 16 - 0
100548/modules/thrid-nrpw-pwai/assets/thrid-nrpw-pwai-excel-icon.svg

@@ -0,0 +1,16 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<svg width="38px" height="39px" viewBox="0 0 38 39" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
+    <title>excel-icon</title>
+    <g id="页面-1" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
+        <g id="表格处理页面" transform="translate(-658.000000, -298.000000)" fill-rule="nonzero">
+            <g id="excel-icon" transform="translate(658.000000, 298.000000)">
+                <path d="M34.1838241,35.2857752 C34.185845,35.7783862 33.9855,36.2511688 33.6277262,36.5979653 C33.2715283,36.9455511 32.7890637,37.1410541 32.285854,37.14173 L5.69576419,37.14173 C5.1920794,37.143686 4.70868421,36.9477767 4.35409174,36.5979653 C3.99855094,36.2497068 3.798609,35.7778752 3.79802703,35.2857752 L3.79802703,1.85833807 C3.79603677,1.36556734 3.9963596,0.89262581 4.35409174,0.54556182 C4.71021156,0.198004946 5.19263054,0.00256151249 5.69576419,0.00195234456 L22.007624,0.00195234456 C22.5128671,-0.00179053139 22.9987648,0.191757736 23.3574884,0.53970034 L33.6343197,10.5886225 C33.9896478,10.9396938 34.1873672,11.4146918 34.1838241,11.9086279 L34.1838241,35.2857752 Z" id="路径" fill="#F1F1F1"></path>
+                <path d="M34.1837902,35.2857752 L34.1837902,37.1436691 C34.1857276,37.6363722 33.9854089,38.1092336 33.6277262,38.45625 C33.2715283,38.8038358 32.7890637,38.9993388 32.285854,39 L5.69576419,39 C4.64657209,38.9994608 3.79602723,38.1676994 3.79602723,37.1417153 L3.79602723,35.2857752 C3.79392224,35.7783578 3.99419352,36.2511364 4.35189392,36.5979653 C4.70803014,36.9456415 5.19053466,37.1411608 5.69376617,37.1417153 L32.281858,37.1417153 C33.3300158,37.1390311 34.1790331,36.308794 34.181778,35.2838214 L34.1837902,35.2857752 Z" id="路径" fill="#E5E5E5"></path>
+                <path d="M0,20.4300483 L37.97982,20.4300483 L37.97982,29.716001 C37.9769728,30.7399099 37.1295629,31.5696223 36.0824973,31.5737142 L1.90031968,31.5737142 C1.39650048,31.5756596 0.912946917,31.379844 0.558047826,31.030145 C0.202507028,30.6818865 0.0025650856,30.2100549 0.00199802301,29.7179549 L0,20.4300483 Z" id="路径" fill="#0A817E"></path>
+                <path d="M3.80003996,20.4296575 L3.80003996,16.714065 L0,20.4296575 L3.80003996,20.4296575 Z M34.1837761,20.4296575 L34.2201401,16.714065 L38,20.4296575 L34.1837761,20.4296575 Z" id="形状" fill="#005856"></path>
+                <path d="M34.1837761,11.9066741 L34.1837761,12.1677053 L23.9079437,12.1677053 C22.8586925,12.1677053 22.0080445,11.3360486 22.0078238,10.3100068 L22.0078238,0 C22.5129978,-0.00369217736 22.9988138,0.189852153 23.3574884,0.537746513 L33.6505037,10.582761 C33.9985384,10.9388467 34.189987,11.4141411 34.1837761,11.9066741 L34.1837761,11.9066741 Z" id="路径" fill="#E5E5E5"></path>
+                <path d="M9.07696654,29.4906738 L4,29.4906738 L4,22.7822847 L8.97811044,22.7822847 L8.97811044,24.3501115 L6.0110154,24.3501115 L6.0110154,25.2979027 L8.51671475,25.2979027 L8.51671475,26.8655064 L6.0110154,26.8655064 L6.0110154,27.9230701 L9.07696654,27.9230701 L9.07696654,29.4906738 Z M12.736256,27.5948684 L11.7472916,29.4906738 L9.50547745,29.4906738 L11.6484355,25.9904507 L9.70318962,22.7822847 L11.9450037,22.7822847 L12.8022273,24.4958054 L13.6923356,22.7822847 L15.933948,22.7822847 L13.8573648,25.9908969 L15.9341498,29.4908969 L13.6923356,29.4908969 L12.736256,27.5948684 Z M22.2635625,25.3344935 L20.3846914,25.3344935 C20.2965952,24.6294511 19.9339211,24.2648074 19.2966692,24.2405622 C18.571321,24.2649561 18.1976853,24.9212108 18.1757621,26.2093262 C18.1757621,27.4250037 18.5713882,28.0326194 19.3626405,28.0321731 C19.9559116,28.0321731 20.2965952,27.6554812 20.3846914,26.9020973 L22.296649,26.9020973 C22.0766101,28.6282612 21.1095689,29.5275621 19.3955252,29.6 C17.3295001,29.5271159 16.2636028,28.3725718 16.1978332,26.1363677 C16.3075837,23.924855 17.3185386,22.7460657 19.2306978,22.6 C21.0547609,22.6243939 22.0657158,23.5358917 22.2635625,25.3344935 L22.2635625,25.3344935 Z M28.2635221,29.4906738 L23.1865556,29.4906738 L23.1865556,22.7822847 L28.164666,22.7822847 L28.164666,24.3501115 L25.197571,24.3501115 L25.197571,25.2979027 L27.7032703,25.2979027 L27.7032703,26.8655064 L25.197571,26.8655064 L25.197571,27.9230701 L28.2635221,27.9230701 L28.2635221,29.4906738 Z M34,29.4906738 L29.2526883,29.4906738 L29.2526883,22.7822847 L31.2637037,22.7822847 L31.2637037,27.9228469 L34,27.9228469 L34,29.4906738 Z" id="形状" fill="#FFFFFF"></path>
+            </g>
+        </g>
+    </g>
+</svg>

تفاوت فایلی نمایش داده نمی شود زیرا این فایل بسیار بزرگ است
+ 0 - 0
100548/modules/thrid-nrpw-pwai/assets/thrid-nrpw-pwai-icon_1.svg


تفاوت فایلی نمایش داده نمی شود زیرا این فایل بسیار بزرگ است
+ 0 - 0
100548/modules/thrid-nrpw-pwai/assets/thrid-nrpw-pwai-icon_2.svg


+ 1 - 0
100548/modules/thrid-nrpw-pwai/assets/thrid-nrpw-pwai-icon_3.css

@@ -0,0 +1 @@
+.app-wraper[data-v-037407db]{width:100vw;height:100vh}.app-body-container[data-v-db1e38fd]{height:100%;background-color:var(--color-bg-v0);flex-grow:1;overflow-y:auto}.layout-type2-body-container[data-v-3cec095f]{width:100%;position:relative;background:#eff7f7;overflow-x:hidden}.bg-1[data-v-3cec095f]{position:absolute;top:0;left:0;width:80%;height:6rem;background:#4bd0cc;opacity:.2;filter:blur(1.33333rem);z-index:0}.bg-2[data-v-3cec095f]{position:absolute;top:1.78667rem;right:0;width:50%;height:8.34667rem;background:#31a9ff;opacity:.1;filter:blur(1.33333rem);z-index:0}

تفاوت فایلی نمایش داده نمی شود زیرا این فایل بسیار بزرگ است
+ 0 - 0
100548/modules/thrid-nrpw-pwai/assets/thrid-nrpw-pwai-icon_3.yAyePlNU.js


تفاوت فایلی نمایش داده نمی شود زیرا این فایل بسیار بزرگ است
+ 0 - 0
100548/modules/thrid-nrpw-pwai/assets/thrid-nrpw-pwai-icon_4.svg


تفاوت فایلی نمایش داده نمی شود زیرا این فایل بسیار بزرگ است
+ 1 - 0
100548/modules/thrid-nrpw-pwai/assets/thrid-nrpw-pwai-index.BNTlphC0.js


تفاوت فایلی نمایش داده نمی شود زیرا این فایل بسیار بزرگ است
+ 0 - 0
100548/modules/thrid-nrpw-pwai/assets/thrid-nrpw-pwai-index.css


BIN
100548/modules/thrid-nrpw-pwai/assets/thrid-nrpw-pwai-report-ing.png


تفاوت فایلی نمایش داده نمی شود زیرا این فایل بسیار بزرگ است
+ 0 - 0
100548/modules/thrid-nrpw-pwai/assets/thrid-nrpw-pwai-robot.svg


تفاوت فایلی نمایش داده نمی شود زیرا این فایل بسیار بزرگ است
+ 4 - 0
100548/modules/thrid-nrpw-pwai/assets/thrid-nrpw-pwai-vue-vendor.ZLY8oEax.js


تفاوت فایلی نمایش داده نمی شود زیرا این فایل بسیار بزرگ است
+ 11 - 0
100548/modules/thrid-nrpw-pwai/assets/thrid-nrpw-pwai-word-icon.svg


+ 23 - 0
100548/modules/thrid-nrpw-pwai/index.html

@@ -0,0 +1,23 @@
+<!DOCTYPE html>
+<html lang="en">
+  <head>
+    <meta charset="UTF-8" />
+
+    <title></title>
+    <!-- <link rel="icon" type="image/png" href="/logo.png" /> -->
+
+    <meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no" />
+
+    <meta name="format-detection" content="telephone=no" />
+    <meta name="format-detection" content="email=no" />
+    <meta name="format-detection" content="telephone=no, email=no" />
+
+    <!-- <script type="module" src="/thrid-nrpw-pwai-config.js"></script> -->
+    <script type="module" crossorigin src="./assets/thrid-nrpw-pwai-index.BNTlphC0.js"></script>
+    <link rel="modulepreload" crossorigin href="./assets/thrid-nrpw-pwai-vue-vendor.ZLY8oEax.js">
+    <link rel="stylesheet" crossorigin href="./assets/thrid-nrpw-pwai-index.css">
+  </head>
+  <body>
+    <div id="guowangzhushou"></div>
+  </body>
+</html>

+ 3632 - 0
100548/plugins/entry-SmCrypto-2.9.js

@@ -0,0 +1,3632 @@
+/********************************************/
+/*                                          */
+/*        Copyright (c) 2020 Aostar         */
+/*        @author bgu                       */
+/*        @version 2.9  		            */
+/*                                          */
+/********************************************/
+
+function K(src, ei, ed, eo, dm) {
+  var gX = dm;
+  if (ei + dm > src.length && eo + dm <= ed.length) {
+    gX = src.length - ei;
+  } else if (eo + dm > ed.length && ei + dm <= src.length) {
+    gX = ed.length - eo;
+  } else if (ei + dm <= src.length && eo + dm <= ed.length) {
+    gX = dm;
+  } else if (ed.length < src.length) {
+    gX = ed.length - eo;
+  } else {
+    gX = src.length - eo;
+  }
+  for (var i = 0; i < gX; i++) {
+    ed[i + eo] = src[i + ei];
+  }
+};
+
+function co(jr, ei, ij, eo, dm) {
+  if (jr.length - ei < dm) {
+    return -1;
+  }
+  if (ij.length - eo < dm) {
+    return -1;
+  }
+  for (var i = 0; i < dm; i++) {
+    if (jr[ei++] != ij[eo++]) {
+      return -1;
+    }
+  }
+  return 0;
+};
+
+function F(hA) {
+  return new Array((hA >> 24) & 0x000000FF, (hA >> 16) & 0x000000FF, (hA >> 8) & 0x000000FF, (hA) & 0x000000FF);
+};
+
+function ap(gL) {
+  var b = new Array(gL.length * 4);
+  for (var i = 0; i < gL.length; i++) {
+    K(F(gL[i]), 0, b, i * 4, 4);
+  }
+  return b;
+};
+
+function bB(b, pos) {
+  if (pos + 3 < b.length) {
+    return ((b[pos]) << 24) | ((b[pos + 1]) << 16) | ((b[pos + 2]) << 8) | ((b[pos + 3]));
+  } else if (pos + 2 < b.length) {
+    return ((b[pos + 1]) << 16) | ((b[pos + 2]) << 8) | ((b[pos + 3]));
+  } else if (pos + 1 < b.length) {
+    return ((b[pos]) << 8) | ((b[pos + 1]));
+  } else {
+    return ((b[pos]));
+  }
+};
+
+function aI(b) {
+  var kF = Math.ceil(b.length / 4);
+  var out = new Array(kF);
+  for (var i = 0; i < b.length; i++) {
+    b[i] = b[i] & 0xFF;
+  }
+  for (var i = 0; i < out.length; i++) {
+    out[i] = bB(b, i * 4);
+  }
+  return out;
+};
+var CommonUtils = {
+  bytesToHex: function (ev) {
+    var dm = ev.length;
+    var dg = new Array(dm * 2);
+    var ju = new Array('0', '1', '2', '3', '4', '5', '6', '7', '8', '9', 'A', 'B', 'C', 'D', 'E', 'F');
+    for (var i = 0, j = 0; i < dm; i++, j++) {
+      dg[j] = ju[(ev[i] & 0xFF) >> 4];
+      dg[++j] = ju[(ev[i] & 0x0F)];
+    }
+    return dg.join('');
+  },
+  hexToBytes: function (hC) {
+    if (hC == null || hC == '') {
+      return null;
+    }
+    if (hC.length % 2 != 0) {
+      return null;
+    }
+    var il = hC.length / 2;
+    var dg = this.jY(hC);
+    var eG = new Array(il);
+    for (var i = 0; i < il; i++) {
+      if (dg[2 * i] >= 0x30 && dg[2 * i] <= 0x39) {
+        eG[i] = ((dg[2 * i] - 0x30) << 4);
+      } else if (dg[2 * i] >= 0x41 && dg[2 * i] <= 0x46) {
+        eG[i] = ((dg[2 * i] - 0x41 + 10) << 4);
+      } else if (dg[2 * i] >= 0x61 && dg[2 * i] <= 0x66) {
+        eG[i] = ((dg[2 * i] - 0x61 + 10) << 4);
+      } else {
+        return null;
+      }
+      if (dg[2 * i + 1] >= 0x30 && dg[2 * i + 1] <= 0x39) {
+        eG[i] = (eG[i] | (dg[2 * i + 1] - 0x30));
+      } else if (dg[2 * i + 1] >= 0x41 && dg[2 * i + 1] <= 0x46) {
+        eG[i] = (eG[i] | (dg[2 * i + 1] - 0x41 + 10));
+      } else if (dg[2 * i + 1] >= 0x61 && dg[2 * i + 1] <= 0x66) {
+        eG[i] = (eG[i] | (dg[2 * i + 1] - 0x61 + 10));
+      } else {
+        return null;
+      }
+    }
+    return eG;
+  },
+  utf8StrToHex: function (fT) {
+    var iG = encodeURIComponent(fT);
+    var gA = unescape(iG);
+    var iY = gA.length;
+    var eN = [];
+    for (var i = 0; i < iY; i++) {
+      eN[i] = (gA.charCodeAt(i).toString(16)).toUpperCase();
+    }
+    return eN.join('');
+  },
+  utf8StrToBytes: function (fT) {
+    var iG = encodeURIComponent(fT);
+    var gA = unescape(iG);
+    var iY = gA.length;
+    var eN = [];
+    for (var i = 0; i < iY; i++) {
+      eN[i] = gA.charCodeAt(i);
+    }
+    return eN;
+  },
+  hexToUtf8Str: function (fT) {
+    var gn = CommonUtils.hexToBytes(fT);
+    var gE = [];
+    for (var i = 0; i < gn.length; i++) {
+      gE.push(String.fromCharCode(gn[i]));
+    }
+    return decodeURIComponent(escape(gE.join('')));
+  },
+  bytesToUtf8Str: function (kt) {
+    var gn = kt;
+    var gE = [];
+    for (var i = 0; i < gn.length; i++) {
+      gE.push(String.fromCharCode(gn[i]));
+    }
+    return decodeURIComponent(escape(gE.join('')));
+  },
+  jY: function (hN) {
+    var iW = new Array(hN.length);
+    for (var i = 0; i < hN.length; i++) {
+      iW[i] = hN.charCodeAt(i);
+    }
+    return iW;
+  },
+  isHexString: function (fL) {
+    var pattern = new RegExp(/^[A-Za-z0-9]+$/);
+    return fL != null && pattern.test(fL);
+  },
+  randomWord: function (dm) {
+    var fL = "";
+    var hF = ['0', '1', '2', '3', '4', '5', '6', '7', '8', '9', 'a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j',
+      'k', 'l', 'm', 'n', 'o', 'p', 'q', 'r', 's', 't', 'u', 'v', 'w', 'x', 'y', 'z', 'A', 'B', 'C', 'D', 'E',
+      'F', 'G', 'H', 'I', 'J', 'K', 'L', 'M', 'N', 'O', 'P', 'Q', 'R', 'S', 'T', 'U', 'V', 'W', 'X', 'Y', 'Z',
+      '~', '!', '@', '#', '$', '%', '^', '&', '*', '(', ')', '_'
+    ];
+    for (var i = 0; i < dm; i++) {
+      pos = Math.round(Math.random() * (hF.length - 1));
+      fL += hF[pos];
+    }
+    return fL;
+  },
+  randomHex: function (dm) {
+    var fL = "";
+    var hF = ['0', '1', '2', '3', '4', '5', '6', '7', '8', '9', 'a', 'b', 'c', 'd', 'e', 'f'];
+    for (var i = 0; i < dm; i++) {
+      pos = Math.round(Math.random() * (hF.length - 1));
+      fL += hF[pos];
+    }
+    return fL;
+  },
+  equals: function (eH, fv) {
+    for (fK in eH) {
+      if (eH.hasOwnProperty(fK) != fv.hasOwnProperty(fK)) {
+        return false;
+      } else if (typeof eH[fK] != typeof fv[fK]) {
+        return false;
+      }
+    }
+    for (fK in fv) {
+      if (eH.hasOwnProperty(fK) != fv.hasOwnProperty(fK)) {
+        return false;
+      } else if (typeof eH[fK] != typeof fv[fK]) {
+        return false;
+      }
+      if (!eH.hasOwnProperty(fK)) continue;
+      if (eH[fK] instanceof Array && fv[fK] instanceof Array) {
+        if (!eH[fK].equals(fv[fK])) return false;
+      } else if (eH[fK] instanceof Object && fv[fK] instanceof Object) {
+        if (!eH[fK].equals(fv[fK])) return false;
+      } else if (eH[fK] != fv[fK]) {
+        return false;
+      }
+    }
+    return true;
+  },
+  v_ltd: function () {
+    var word = new jW.mG.mP.gD([-442786843, -1214389064, -1377332043, -443502618, -1735465320, -1612398687, -
+      427708442, -1971263844, -1343841143, -375811867, -2052266609, -1207959552
+    ]);
+    var text = word.toString(jW.ey.nj);
+    return text;
+  }
+};
+var ep;
+var kK = 0xdeadbeefcafe;
+var iL = ((kK & 0xffffff) == 0xefcafe);
+
+function L(a, b, c) {
+  if (a != null)
+    if ("number" == typeof a) this.iM(a, b, c);
+    else if (b == null && "string" != typeof a) this.hK(a, 256);
+    else this.hK(a, b);
+};
+
+function C() {
+  return new L(null);
+};
+
+function al(i, x, w, j, c, n) {
+  while (--n >= 0) {
+    var v = x * this[i++] + w[j] + c;
+    c = Math.floor(v / 0x4000000);
+    w[j++] = v & 0x3ffffff;
+  }
+  return c;
+};
+
+function bD(i, x, w, j, c, n) {
+  var gw = x & 0x7fff,
+    gl = x >> 15;
+  while (--n >= 0) {
+    var l = this[i] & 0x7fff;
+    var h = this[i++] >> 15;
+    var m = gl * l + h * gw;
+    l = gw * l + ((m & 0x7fff) << 15) + w[j] + (c & 0x3fffffff);
+    c = (l >>> 30) + (m >>> 15) + gl * h + (c >>> 30);
+    w[j++] = l & 0x3fffffff;
+  }
+  return c;
+};
+
+function dK(i, x, w, j, c, n) {
+  var gw = x & 0x3fff,
+    gl = x >> 14;
+  while (--n >= 0) {
+    var l = this[i] & 0x3fff;
+    var h = this[i++] >> 14;
+    var m = gl * l + h * gw;
+    l = gw * l + ((m & 0x3fff) << 14) + w[j] + c;
+    c = (l >> 28) + (m >> 14) + gl * h;
+    w[j++] = l & 0xfffffff;
+  }
+  return c;
+};
+if (iL && (navigator.appName == "Microsoft Internet Explorer")) {
+  L.prototype.eZ = bD;
+  ep = 30;
+} else if (iL && (navigator.appName != "Netscape")) {
+  L.prototype.eZ = al;
+  ep = 26;
+} else {
+  L.prototype.eZ = dK;
+  ep = 28;
+}
+L.prototype.ct = ep;
+L.prototype.fi = ((1 << ep) - 1);
+L.prototype.ez = (1 << ep);
+var im = 52;
+L.prototype.ku = Math.pow(2, im);
+L.prototype.iR = im - ep;
+L.prototype.io = 2 * ep - im;
+var jV = "0123456789abcdefghijklmnopqrstuvwxyz";
+var gQ = new Array();
+var gr = "0".charCodeAt(0);
+for (var ej = 0; ej <= 9; ++ej) gQ[gr++] = ej;
+gr = "a".charCodeAt(0);
+for (var ej = 10; ej < 36; ++ej) gQ[gr++] = ej;
+gr = "A".charCodeAt(0);
+for (var ej = 10; ej < 36; ++ej) gQ[gr++] = ej;
+
+function bk(n) {
+  return jV.charAt(n);
+};
+
+function bw(s, i) {
+  var c = gQ[s.charCodeAt(i)];
+  return (c == null) ? -1 : c;
+};
+
+function dQ(r) {
+  for (var i = this.t - 1; i >= 0; --i) r[i] = this[i];
+  r.t = this.t;
+  r.s = this.s;
+};
+
+function cS(x) {
+  this.t = 1;
+  this.s = (x < 0) ? -1 : 0;
+  if (x > 0) this[0] = x;
+  else if (x < -1) this[0] = x + this.ez;
+  else this.t = 0;
+};
+
+function H(i) {
+  var r = C();
+  r.eT(i);
+  return r;
+};
+
+function dc(s, b) {
+  var k;
+  if (b == 16) k = 4;
+  else if (b == 8) k = 3;
+  else if (b == 256) k = 8;
+  else if (b == 2) k = 1;
+  else if (b == 32) k = 5;
+  else if (b == 4) k = 2;
+  else {
+    this.jP(s, b);
+    return;
+  }
+  this.t = 0;
+  this.s = 0;
+  var i = s.length,
+    gO = false,
+    fr = 0;
+  while (--i >= 0) {
+    var x = (k == 8) ? s[i] & 0xff : bw(s, i);
+    if (x < 0) {
+      if (s.charAt(i) == "-") gO = true;
+      continue;
+    }
+    gO = false;
+    if (fr == 0) this[this.t++] = x;
+    else if (fr + k > this.ct) {
+      this[this.t - 1] |= (x & ((1 << (this.ct - fr)) - 1)) << fr;
+      this[this.t++] = (x >> (this.ct - fr));
+    } else this[this.t - 1] |= x << fr;
+    fr += k;
+    if (fr >= this.ct) fr -= this.ct;
+  }
+  if (k == 8 && (s[0] & 0x80) != 0) {
+    this.s = -1;
+    if (fr > 0) this[this.t - 1] |= ((1 << (this.ct - fr)) - 1) << fr;
+  }
+  this.ff();
+  if (gO) L.ZERO.cp(this, this);
+};
+
+function cf() {
+  var c = this.s & this.fi;
+  while (this.t > 0 && this[this.t - 1] == c) --this.t;
+};
+
+function aH(b) {
+  if (this.s < 0) return "-" + this.el().toString(b);
+  var k;
+  if (b == 16) k = 4;
+  else if (b == 8) k = 3;
+  else if (b == 2) k = 1;
+  else if (b == 32) k = 5;
+  else if (b == 4) k = 2;
+  else return this.eD(b);
+  var hx = (1 << k) - 1,
+    d, m = false,
+    r = "",
+    i = this.t;
+  var p = this.ct - (i * this.ct) % k;
+  if (i-- > 0) {
+    if (p < this.ct && (d = this[i] >> p) > 0) {
+      m = true;
+      r = bk(d);
+    }
+    while (i >= 0) {
+      if (p < k) {
+        d = (this[i] & ((1 << p) - 1)) << (k - p);
+        d |= this[--i] >> (p += this.ct - k);
+      } else {
+        d = (this[i] >> (p -= k)) & hx;
+        if (p <= 0) {
+          p += this.ct;
+          --i;
+        }
+      }
+      if (d > 0) m = true;
+      if (m) r += bk(d);
+    }
+  }
+  return m ? r : "0";
+};
+
+function aL() {
+  var r = C();
+  L.ZERO.cp(this, r);
+  return r;
+};
+
+function cn() {
+  return (this.s < 0) ? this.el() : this;
+};
+
+function aD(a) {
+  var r = this.s - a.s;
+  if (r != 0) return r;
+  var i = this.t;
+  r = i - a.t;
+  if (r != 0) return (this.s < 0) ? -r : r;
+  while (--i >= 0)
+    if ((r = this[i] - a[i]) != 0) return r;
+  return 0;
+};
+
+function bN(x) {
+  var r = 1,
+    t;
+  if ((t = x >>> 16) != 0) {
+    x = t;
+    r += 16;
+  }
+  if ((t = x >> 8) != 0) {
+    x = t;
+    r += 8;
+  }
+  if ((t = x >> 4) != 0) {
+    x = t;
+    r += 4;
+  }
+  if ((t = x >> 2) != 0) {
+    x = t;
+    r += 2;
+  }
+  if ((t = x >> 1) != 0) {
+    x = t;
+    r += 1;
+  }
+  return r;
+};
+
+function dI() {
+  if (this.t <= 0) return 0;
+  return this.ct * (this.t - 1) + bN(this[this.t - 1] ^ (this.s & this.fi));
+};
+
+function da(n, r) {
+  var i;
+  for (i = this.t - 1; i >= 0; --i) r[i + n] = this[i];
+  for (i = n - 1; i >= 0; --i) r[i] = 0;
+  r.t = this.t + n;
+  r.s = this.s;
+};
+
+function cP(n, r) {
+  for (var i = n; i < this.t; ++i) r[i - n] = this[i];
+  r.t = Math.max(this.t - n, 0);
+  r.s = this.s;
+};
+
+function cq(n, r) {
+  var fD = n % this.ct;
+  var gC = this.ct - fD;
+  var hD = (1 << gC) - 1;
+  var eL = Math.floor(n / this.ct),
+    c = (this.s << fD) & this.fi,
+    i;
+  for (i = this.t - 1; i >= 0; --i) {
+    r[i + eL + 1] = (this[i] >> gC) | c;
+    c = (this[i] & hD) << fD;
+  }
+  for (i = eL - 1; i >= 0; --i) r[i] = 0;
+  r[eL] = c;
+  r.t = this.t + eL + 1;
+  r.s = this.s;
+  r.ff();
+};
+
+function dM(n, r) {
+  r.s = this.s;
+  var eL = Math.floor(n / this.ct);
+  if (eL >= this.t) {
+    r.t = 0;
+    return;
+  }
+  var fD = n % this.ct;
+  var gC = this.ct - fD;
+  var hD = (1 << fD) - 1;
+  r[0] = this[eL] >> fD;
+  for (var i = eL + 1; i < this.t; ++i) {
+    r[i - eL - 1] |= (this[i] & hD) << gC;
+    r[i - eL] = this[i] >> fD;
+  }
+  if (fD > 0) r[this.t - eL - 1] |= (this.s & hD) << gC;
+  r.t = this.t - eL;
+  r.ff();
+};
+
+function de(a, r) {
+  var i = 0,
+    c = 0,
+    m = Math.min(a.t, this.t);
+  while (i < m) {
+    c += this[i] - a[i];
+    r[i++] = c & this.fi;
+    c >>= this.ct;
+  }
+  if (a.t < this.t) {
+    c -= a.s;
+    while (i < this.t) {
+      c += this[i];
+      r[i++] = c & this.fi;
+      c >>= this.ct;
+    }
+    c += this.s;
+  } else {
+    c += this.s;
+    while (i < a.t) {
+      c -= a[i];
+      r[i++] = c & this.fi;
+      c >>= this.ct;
+    }
+    c -= a.s;
+  }
+  r.s = (c < 0) ? -1 : 0;
+  if (c < -1) r[i++] = this.ez + c;
+  else if (c > 0) r[i++] = c;
+  r.t = i;
+  r.ff();
+};
+
+function bX(a, r) {
+  var x = this.abs(),
+    y = a.abs();
+  var i = x.t;
+  r.t = i + y.t;
+  while (--i >= 0) r[i] = 0;
+  for (i = 0; i < y.t; ++i) r[i + x.t] = x.eZ(0, y[i], r, i, 0, x.t);
+  r.s = 0;
+  r.ff();
+  if (this.s != a.s) L.ZERO.cp(r, r);
+};
+
+function cr(r) {
+  var x = this.abs();
+  var i = r.t = 2 * x.t;
+  while (--i >= 0) r[i] = 0;
+  for (i = 0; i < x.t - 1; ++i) {
+    var c = x.eZ(i, x[i], r, 2 * i, 0, 1);
+    if ((r[i + x.t] += x.eZ(i + 1, 2 * x[i], r, 2 * i + 1, c, x.t - i - 1)) >= x.ez) {
+      r[i + x.t] -= x.ez;
+      r[i + x.t + 1] = 1;
+    }
+  }
+  if (r.t > 0) r[r.t - 1] += x.eZ(i, x[i], r, 2 * i, 0, 1);
+  r.s = 0;
+  r.ff();
+};
+
+function dJ(m, q, r) {
+  var hz = m.abs();
+  if (hz.t <= 0) return;
+  var pt = this.abs();
+  if (pt.t < hz.t) {
+    if (q != null) q.eT(0);
+    if (r != null) this.eh(r);
+    return;
+  }
+  if (r == null) r = C();
+  var y = C(),
+    jb = this.s,
+    ms = m.s;
+  var gP = this.ct - bN(hz[hz.t - 1]);
+  if (gP > 0) {
+    hz.gx(gP, y);
+    pt.gx(gP, r);
+  } else {
+    hz.eh(y);
+    pt.eh(r);
+  }
+  var fG = y.t;
+  var gb = y[fG - 1];
+  if (gb == 0) return;
+  var jA = gb * (1 << this.iR) + ((fG > 1) ? y[fG - 2] >> this.io : 0);
+  var kA = this.ku / jA,
+    ko = (1 << this.iR) / jA,
+    e = 1 << this.io;
+  var i = r.t,
+    j = i - fG,
+    t = (q == null) ? C() : q;
+  y.gS(j, t);
+  if (r.dw(t) >= 0) {
+    r[r.t++] = 1;
+    r.cp(t, r);
+  }
+  L.ONE.gS(fG, t);
+  t.cp(y, y);
+  while (y.t < fG) y[y.t++] = 0;
+  while (--j >= 0) {
+    var gc = (r[--i] == gb) ? this.fi : Math.floor(r[i] * kA + (r[i - 1] + e) * ko);
+    if ((r[i] += y.eZ(0, gc, r, j, 0, fG)) < gc) {
+      y.gS(j, t);
+      r.cp(t, r);
+      while (r[i] < --gc) r.cp(t, r);
+    }
+  }
+  if (q != null) {
+    r.gJ(fG, q);
+    if (jb != ms) L.ZERO.cp(q, q);
+  }
+  r.t = fG;
+  r.ff();
+  if (gP > 0) r.dY(gP, r);
+  if (jb < 0) L.ZERO.cp(r, r);
+};
+
+function aZ(a) {
+  var r = C();
+  this.abs().fw(a, null, r);
+  if (this.s < 0 && r.dw(L.ZERO) > 0) a.cp(r, r);
+  return r;
+};
+
+function af(m) {
+  this.m = m;
+};
+
+function ak(x) {
+  if (x.s < 0 || x.dw(this.m) >= 0) return x.cl(this.m);
+  else return x;
+};
+
+function aj(x) {
+  return x;
+};
+
+function aU(x) {
+  x.fw(this.m, null, x);
+};
+
+function bM(x, y, r) {
+  x.gG(y, r);
+  this.reduce(r);
+};
+
+function bE(x, r) {
+  x.hc(r);
+  this.reduce(r);
+};
+af.prototype.convert = ak;
+af.prototype.revert = aj;
+af.prototype.reduce = aU;
+af.prototype.fO = bM;
+af.prototype.eO = bE;
+
+function dh() {
+  if (this.t < 1) return 0;
+  var x = this[0];
+  if ((x & 1) == 0) return 0;
+  var y = x & 3;
+  y = (y * (2 - (x & 0xf) * y)) & 0xf;
+  y = (y * (2 - (x & 0xff) * y)) & 0xff;
+  y = (y * (2 - (((x & 0xffff) * y) & 0xffff))) & 0xffff;
+  y = (y * (2 - x * y % this.ez)) % this.ez;
+  return (y > 0) ? this.ez - y : -y;
+};
+
+function O(m) {
+  this.m = m;
+  this.ik = m.kC();
+  this.jB = this.ik & 0x7fff;
+  this.kl = this.ik >> 15;
+  this.lf = (1 << (m.ct - 15)) - 1;
+  this.kV = 2 * m.t;
+};
+
+function bC(x) {
+  var r = C();
+  x.abs().gS(this.m.t, r);
+  r.fw(this.m, null, r);
+  if (x.s < 0 && r.dw(L.ZERO) > 0) this.m.cp(r, r);
+  return r;
+};
+
+function ax(x) {
+  var r = C();
+  x.eh(r);
+  this.reduce(r);
+  return r;
+};
+
+function au(x) {
+  while (x.t <= this.kV) x[x.t++] = 0;
+  for (var i = 0; i < this.m.t; ++i) {
+    var j = x[i] & 0x7fff;
+    var kh = (j * this.jB + (((j * this.kl + (x[i] >> 15) * this.jB) & this.lf) << 15)) & x.fi;
+    j = i + this.m.t;
+    x[j] += this.m.eZ(0, kh, x, i, 0, this.m.t);
+    while (x[j] >= x.ez) {
+      x[j] -= x.ez;
+      x[++j]++;
+    }
+  }
+  x.ff();
+  x.gJ(this.m.t, x);
+  if (x.dw(this.m) >= 0) x.cp(this.m, x);
+};
+
+function aC(x, r) {
+  x.hc(r);
+  this.reduce(r);
+};
+
+function bi(x, y, r) {
+  x.gG(y, r);
+  this.reduce(r);
+};
+O.prototype.convert = bC;
+O.prototype.revert = ax;
+O.prototype.reduce = au;
+O.prototype.fO = bi;
+O.prototype.eO = aC;
+
+function cz() {
+  return ((this.t > 0) ? (this[0] & 1) : this.s) == 0;
+};
+
+function df(e, z) {
+  if (e > 0xffffffff || e < 1) return L.ONE;
+  var r = C(),
+    r2 = C(),
+    g = z.convert(this),
+    i = bN(e) - 1;
+  g.eh(r);
+  while (--i >= 0) {
+    z.eO(r, r2);
+    if ((e & (1 << i)) > 0) z.fO(r2, g, r);
+    else {
+      var t = r;
+      r = r2;
+      r2 = t;
+    }
+  }
+  return z.revert(r);
+};
+
+function bH(e, m) {
+  var z;
+  if (e < 256 || m.ef()) z = new af(m);
+  else z = new O(m);
+  return this.exp(e, z);
+};
+L.prototype.eh = dQ;
+L.prototype.eT = cS;
+L.prototype.hK = dc;
+L.prototype.ff = cf;
+L.prototype.gS = da;
+L.prototype.gJ = cP;
+L.prototype.gx = cq;
+L.prototype.dY = dM;
+L.prototype.cp = de;
+L.prototype.gG = bX;
+L.prototype.hc = cr;
+L.prototype.fw = dJ;
+L.prototype.kC = dh;
+L.prototype.ef = cz;
+L.prototype.exp = df;
+L.prototype.toString = aH;
+L.prototype.el = aL;
+L.prototype.abs = cn;
+L.prototype.dw = aD;
+L.prototype.fg = dI;
+L.prototype.cl = aZ;
+L.prototype.kr = bH;
+L.ZERO = H(0);
+L.ONE = H(1);
+
+function an() {
+  var r = C();
+  this.eh(r);
+  return r;
+};
+
+function bK() {
+  if (this.s < 0) {
+    if (this.t == 1) return this[0] - this.ez;
+    else if (this.t == 0) return -1;
+  } else if (this.t == 1) return this[0];
+  else if (this.t == 0) return 0;
+  return ((this[1] & ((1 << (32 - this.ct)) - 1)) << this.ct) | this[0];
+};
+
+function cI() {
+  return (this.t == 0) ? this.s : (this[0] << 24) >> 24;
+};
+
+function dn() {
+  return (this.t == 0) ? this.s : (this[0] << 16) >> 16;
+};
+
+function ca(r) {
+  return Math.floor(Math.LN2 * this.ct / Math.log(r));
+};
+
+function aF() {
+  if (this.s < 0) return -1;
+  else if (this.t <= 0 || (this.t == 1 && this[0] <= 0)) return 0;
+  else return 1;
+};
+
+function dk(b) {
+  if (b == null) b = 10;
+  if (this.eJ() == 0 || b < 2 || b > 36) return "0";
+  var gf = this.iw(b);
+  var a = Math.pow(b, gf);
+  var d = H(a),
+    y = C(),
+    z = C(),
+    r = "";
+  this.fw(d, y, z);
+  while (y.eJ() > 0) {
+    r = (a + z.hs()).toString(b).substr(1) + r;
+    y.fw(d, y, z);
+  }
+  return z.hs().toString(b) + r;
+};
+
+function bY(s, b) {
+  this.eT(0);
+  if (b == null) b = 10;
+  var gf = this.iw(b);
+  var d = Math.pow(b, gf),
+    gO = false,
+    j = 0,
+    w = 0;
+  for (var i = 0; i < s.length; ++i) {
+    var x = bw(s, i);
+    if (x < 0) {
+      if (s.charAt(i) == "-" && this.eJ() == 0) gO = true;
+      continue;
+    }
+    w = b * w + x;
+    if (++j >= gf) {
+      this.ja(d);
+      this.hJ(w, 0);
+      j = 0;
+      w = 0;
+    }
+  }
+  if (j > 0) {
+    this.ja(Math.pow(b, j));
+    this.hJ(w, 0);
+  }
+  if (gO) L.ZERO.cp(this, this);
+};
+
+function cX(a, b, c) {
+  if ("number" == typeof b) {
+    if (a < 2) this.eT(1);
+    else {
+      this.iM(a, c);
+      if (!this.en(a - 1)) this.gj(L.ONE.shiftLeft(a - 1), ay, this);
+      if (this.ef()) this.hJ(1, 0);
+      while (!this.kv(b)) {
+        this.hJ(2, 0);
+        if (this.fg() > a) this.cp(L.ONE.shiftLeft(a - 1), this);
+      }
+    }
+  } else {
+    var x = new Array(),
+      t = a & 7;
+    x.length = (a >> 3) + 1;
+    b.kj(x);
+    if (t > 0) x[0] &= ((1 << t) - 1);
+    else x[0] = 0;
+    this.hK(x, 256);
+  }
+};
+
+function bv() {
+  var i = this.t,
+    r = new Array();
+  r[0] = this.s;
+  var p = this.ct - (i * this.ct) % 8,
+    d, k = 0;
+  if (i-- > 0) {
+    if (p < this.ct && (d = this[i] >> p) != (this.s & this.fi) >> p) r[k++] = d | (this.s << (this.ct - p));
+    while (i >= 0) {
+      if (p < 8) {
+        d = (this[i] & ((1 << p) - 1)) << (8 - p);
+        d |= this[--i] >> (p += this.ct - 8);
+      } else {
+        d = (this[i] >> (p -= 8)) & 0xff;
+        if (p <= 0) {
+          p += this.ct;
+          --i;
+        }
+      }
+      if ((d & 0x80) != 0) d |= -256;
+      if (k == 0 && (this.s & 0x80) != (d & 0x80)) ++k;
+      if (k > 0 || d != this.s) r[k++] = d;
+    }
+  }
+  return r;
+};
+
+function ab(a) {
+  return (this.dw(a) == 0);
+};
+
+function aw(a) {
+  return (this.dw(a) < 0) ? this : a;
+};
+
+function ao(a) {
+  return (this.dw(a) > 0) ? this : a;
+};
+
+function cC(a, hv, r) {
+  var i, f, m = Math.min(a.t, this.t);
+  for (i = 0; i < m; ++i) r[i] = hv(this[i], a[i]);
+  if (a.t < this.t) {
+    f = a.s & this.fi;
+    for (i = m; i < this.t; ++i) r[i] = hv(this[i], f);
+    r.t = this.t;
+  } else {
+    f = this.s & this.fi;
+    for (i = m; i < a.t; ++i) r[i] = hv(f, a[i]);
+    r.t = a.t;
+  }
+  r.s = hv(this.s, a.s);
+  r.ff();
+};
+
+function aR(x, y) {
+  return x & y;
+};
+
+function dN(a) {
+  var r = C();
+  this.gj(a, aR, r);
+  return r;
+};
+
+function ay(x, y) {
+  return x | y;
+};
+
+function bW(a) {
+  var r = C();
+  this.gj(a, ay, r);
+  return r;
+};
+
+function aT(x, y) {
+  return x ^ y;
+};
+
+function aQ(a) {
+  var r = C();
+  this.gj(a, aT, r);
+  return r;
+};
+
+function ag(x, y) {
+  return x & ~y;
+};
+
+function cg(a) {
+  var r = C();
+  this.gj(a, ag, r);
+  return r;
+};
+
+function db() {
+  var r = C();
+  for (var i = 0; i < this.t; ++i) r[i] = this.fi & ~this[i];
+  r.t = this.t;
+  r.s = ~this.s;
+  return r;
+};
+
+function cA(n) {
+  var r = C();
+  if (n < 0) this.dY(-n, r);
+  else this.gx(n, r);
+  return r;
+};
+
+function dv(n) {
+  var r = C();
+  if (n < 0) this.gx(-n, r);
+  else this.dY(n, r);
+  return r;
+};
+
+function aA(x) {
+  if (x == 0) return -1;
+  var r = 0;
+  if ((x & 0xffff) == 0) {
+    x >>= 16;
+    r += 16;
+  }
+  if ((x & 0xff) == 0) {
+    x >>= 8;
+    r += 8;
+  }
+  if ((x & 0xf) == 0) {
+    x >>= 4;
+    r += 4;
+  }
+  if ((x & 3) == 0) {
+    x >>= 2;
+    r += 2;
+  }
+  if ((x & 1) == 0) ++r;
+  return r;
+};
+
+function aq() {
+  for (var i = 0; i < this.t; ++i)
+    if (this[i] != 0) return i * this.ct + aA(this[i]);
+  if (this.s < 0) return this.t * this.ct;
+  return -1;
+};
+
+function ad(x) {
+  var r = 0;
+  while (x != 0) {
+    x &= x - 1;
+    ++r;
+  }
+  return r;
+};
+
+function cj() {
+  var r = 0,
+    x = this.s & this.fi;
+  for (var i = 0; i < this.t; ++i) r += ad(this[i] ^ x);
+  return r;
+};
+
+function aM(n) {
+  var j = Math.floor(n / this.ct);
+  if (j >= this.t) return (this.s != 0);
+  return ((this[j] & (1 << (n % this.ct))) != 0);
+};
+
+function dE(n, hv) {
+  var r = L.ONE.shiftLeft(n);
+  this.gj(r, hv, r);
+  return r;
+};
+
+function cc(n) {
+  return this.hY(n, ay);
+};
+
+function cT(n) {
+  return this.hY(n, ag);
+};
+
+function bb(n) {
+  return this.hY(n, aT);
+};
+
+function ce(a, r) {
+  var i = 0,
+    c = 0,
+    m = Math.min(a.t, this.t);
+  while (i < m) {
+    c += this[i] + a[i];
+    r[i++] = c & this.fi;
+    c >>= this.ct;
+  }
+  if (a.t < this.t) {
+    c += a.s;
+    while (i < this.t) {
+      c += this[i];
+      r[i++] = c & this.fi;
+      c >>= this.ct;
+    }
+    c += this.s;
+  } else {
+    c += this.s;
+    while (i < a.t) {
+      c += a[i];
+      r[i++] = c & this.fi;
+      c >>= this.ct;
+    }
+    c += a.s;
+  }
+  r.s = (c < 0) ? -1 : 0;
+  if (c > 0) r[i++] = c;
+  else if (c < -1) r[i++] = this.ez + c;
+  r.t = i;
+  r.ff();
+};
+
+function cO(a) {
+  var r = C();
+  this.hG(a, r);
+  return r;
+};
+
+function bQ(a) {
+  var r = C();
+  this.cp(a, r);
+  return r;
+};
+
+function bF(a) {
+  var r = C();
+  this.gG(a, r);
+  return r;
+};
+
+function aa() {
+  var r = C();
+  this.hc(r);
+  return r;
+};
+
+function bd(a) {
+  var r = C();
+  this.fw(a, r, null);
+  return r;
+};
+
+function cQ(a) {
+  var r = C();
+  this.fw(a, null, r);
+  return r;
+};
+
+function bI(a) {
+  var q = C(),
+    r = C();
+  this.fw(a, q, r);
+  return new Array(q, r);
+};
+
+function dp(n) {
+  this[this.t] = this.eZ(0, n - 1, this, 0, 0, this.t);
+  ++this.t;
+  this.ff();
+};
+
+function cJ(n, w) {
+  if (n == 0) return;
+  while (this.t <= w) this[this.t++] = 0;
+  this[w] += n;
+  while (this[w] >= this.ez) {
+    this[w] -= this.ez;
+    if (++w >= this.t) this[this.t++] = 0;
+    ++this[w];
+  }
+};
+
+function bj() { };
+
+function aY(x) {
+  return x;
+};
+
+function aG(x, y, r) {
+  x.gG(y, r);
+};
+
+function bA(x, r) {
+  x.hc(r);
+};
+bj.prototype.convert = aY;
+bj.prototype.revert = aY;
+bj.prototype.fO = aG;
+bj.prototype.eO = bA;
+
+function cG(e) {
+  return this.exp(e, new bj());
+};
+
+function cW(a, n, r) {
+  var i = Math.min(this.t + a.t, n);
+  r.s = 0;
+  r.t = i;
+  while (i > 0) r[--i] = 0;
+  var j;
+  for (j = r.t - this.t; i < j; ++i) r[i + this.t] = this.eZ(0, a[i], r, i, 0, this.t);
+  for (j = Math.min(a.t, n); i < j; ++i) this.eZ(0, a[i], r, i, 0, n - i);
+  r.ff();
+};
+
+function ci(a, n, r) {
+  --n;
+  var i = r.t = this.t + a.t - n;
+  r.s = 0;
+  while (--i >= 0) r[i] = 0;
+  for (i = Math.max(n - this.t, 0); i < a.t; ++i) r[this.t + i - n] = this.eZ(n - i, a[i], r, 0, 0, this.t + i - n);
+  r.ff();
+  r.gJ(1, r);
+};
+
+function bh(m) {
+  this.r2 = C();
+  this.jx = C();
+  L.ONE.gS(2 * m.t, this.r2);
+  this.jQ = this.r2.divide(m);
+  this.m = m;
+};
+
+function bu(x) {
+  if (x.s < 0 || x.t > 2 * this.m.t) return x.cl(this.m);
+  else if (x.dw(this.m) < 0) return x;
+  else {
+    var r = C();
+    x.eh(r);
+    this.reduce(r);
+    return r;
+  }
+};
+
+function aN(x) {
+  return x;
+};
+
+function bS(x) {
+  x.gJ(this.m.t - 1, this.r2);
+  if (x.t > this.m.t + 1) {
+    x.t = this.m.t + 1;
+    x.ff();
+  }
+  this.jQ.ld(this.r2, this.m.t + 1, this.jx);
+  this.m.lx(this.jx, this.m.t + 1, this.r2);
+  while (x.dw(this.r2) < 0) x.hJ(1, this.m.t + 1);
+  x.cp(this.r2, x);
+  while (x.dw(this.m) >= 0) x.cp(this.m, x);
+};
+
+function dq(x, r) {
+  x.hc(r);
+  this.reduce(r);
+};
+
+function bU(x, y, r) {
+  x.gG(y, r);
+  this.reduce(r);
+};
+bh.prototype.convert = bu;
+bh.prototype.revert = aN;
+bh.prototype.reduce = bS;
+bh.prototype.fO = bU;
+bh.prototype.eO = dq;
+
+function aE(e, m) {
+  var i = e.fg(),
+    k, r = H(1),
+    z;
+  if (i <= 0) return r;
+  else if (i < 18) k = 1;
+  else if (i < 48) k = 3;
+  else if (i < 144) k = 4;
+  else if (i < 768) k = 5;
+  else k = 6;
+  if (i < 8) z = new af(m);
+  else if (m.ef()) z = new bh(m);
+  else z = new O(m);
+  var g = new Array(),
+    n = 3,
+    hh = k - 1,
+    hx = (1 << k) - 1;
+  g[1] = z.convert(this);
+  if (k > 1) {
+    var jg = C();
+    z.eO(g[1], jg);
+    while (n <= hx) {
+      g[n] = C();
+      z.fO(jg, g[n - 2], g[n]);
+      n += 2;
+    }
+  }
+  var j = e.t - 1,
+    w, iZ = true,
+    r2 = C(),
+    t;
+  i = bN(e[j]) - 1;
+  while (j >= 0) {
+    if (i >= hh) w = (e[j] >> (i - hh)) & hx;
+    else {
+      w = (e[j] & ((1 << (i + 1)) - 1)) << (hh - i);
+      if (j > 0) w |= e[j - 1] >> (this.ct + i - hh);
+    }
+    n = k;
+    while ((w & 1) == 0) {
+      w >>= 1;
+      --n;
+    }
+    if ((i -= n) < 0) {
+      i += this.ct;
+      --j;
+    }
+    if (iZ) {
+      g[w].eh(r);
+      iZ = false;
+    } else {
+      while (n > 1) {
+        z.eO(r, r2);
+        z.eO(r2, r);
+        n -= 2;
+      }
+      if (n > 0) z.eO(r, r2);
+      else {
+        t = r;
+        r = r2;
+        r2 = t;
+      }
+      z.fO(r2, g[w], r);
+    }
+    while (j >= 0 && (e[j] & (1 << i)) == 0) {
+      z.eO(r, r2);
+      t = r;
+      r = r2;
+      r2 = t;
+      if (--i < 0) {
+        i = this.ct - 1;
+        --j;
+      }
+    }
+  }
+  return z.revert(r);
+};
+
+function aV(a) {
+  var x = (this.s < 0) ? this.el() : this.clone();
+  var y = (a.s < 0) ? a.el() : a.clone();
+  if (x.dw(y) < 0) {
+    var t = x;
+    x = y;
+    y = t;
+  }
+  var i = x.gg(),
+    g = y.gg();
+  if (g < 0) return x;
+  if (i < g) g = i;
+  if (g > 0) {
+    x.dY(g, x);
+    y.dY(g, y);
+  }
+  while (x.eJ() > 0) {
+    if ((i = x.gg()) > 0) x.dY(i, x);
+    if ((i = y.gg()) > 0) y.dY(i, y);
+    if (x.dw(y) >= 0) {
+      x.cp(y, x);
+      x.dY(1, x);
+    } else {
+      y.cp(x, y);
+      y.dY(1, y);
+    }
+  }
+  if (g > 0) y.gx(g, y);
+  return y;
+};
+
+function di(n) {
+  if (n <= 0) return 0;
+  var d = this.ez % n,
+    r = (this.s < 0) ? n - 1 : 0;
+  if (this.t > 0)
+    if (d == 0) r = this[0] % n;
+    else
+      for (var i = this.t - 1; i >= 0; --i) r = (d * r + this[i]) % n;
+  return r;
+};
+
+function ah(m) {
+  var fY = m.ef();
+  if ((this.ef() && fY) || m.eJ() == 0) return L.ZERO;
+  var u = m.clone(),
+    v = this.clone();
+  var a = H(1),
+    b = H(0),
+    c = H(0),
+    d = H(1);
+  while (u.eJ() != 0) {
+    while (u.ef()) {
+      u.dY(1, u);
+      if (fY) {
+        if (!a.ef() || !b.ef()) {
+          a.hG(this, a);
+          b.cp(m, b);
+        }
+        a.dY(1, a);
+      } else if (!b.ef()) b.cp(m, b);
+      b.dY(1, b);
+    }
+    while (v.ef()) {
+      v.dY(1, v);
+      if (fY) {
+        if (!c.ef() || !d.ef()) {
+          c.hG(this, c);
+          d.cp(m, d);
+        }
+        c.dY(1, c);
+      } else if (!d.ef()) d.cp(m, d);
+      d.dY(1, d);
+    }
+    if (u.dw(v) >= 0) {
+      u.cp(v, u);
+      if (fY) a.cp(c, a);
+      b.cp(d, b);
+    } else {
+      v.cp(u, v);
+      if (fY) c.cp(a, c);
+      d.cp(b, d);
+    }
+  }
+  if (v.dw(L.ONE) != 0) return L.ZERO;
+  if (d.dw(m) >= 0) return d.cv(m);
+  if (d.eJ() < 0) d.hG(m, d);
+  else return d;
+  if (d.eJ() < 0) return d.add(m);
+  else return d;
+};
+var eb = [2, 3, 5, 7, 11, 13, 17, 19, 23, 29, 31, 37, 41, 43, 47, 53, 59, 61, 67, 71, 73, 79, 83, 89, 97, 101, 103, 107,
+  109, 113, 127, 131, 137, 139, 149, 151, 157, 163, 167, 173, 179, 181, 191, 193, 197, 199, 211, 223, 227, 229, 233,
+  239, 241, 251, 257, 263, 269, 271, 277, 281, 283, 293, 307, 311, 313, 317, 331, 337, 347, 349, 353, 359, 367, 373,
+  379, 383, 389, 397, 401, 409, 419, 421, 431, 433, 439, 443, 449, 457, 461, 463, 467, 479, 487, 491, 499, 503, 509,
+  521, 523, 541, 547, 557, 563, 569, 571, 577, 587, 593, 599, 601, 607, 613, 617, 619, 631, 641, 643, 647, 653, 659,
+  661, 673, 677, 683, 691, 701, 709, 719, 727, 733, 739, 743, 751, 757, 761, 769, 773, 787, 797, 809, 811, 821, 823,
+  827, 829, 839, 853, 857, 859, 863, 877, 881, 883, 887, 907, 911, 919, 929, 937, 941, 947, 953, 967, 971, 977, 983,
+  991, 997
+];
+var kE = (1 << 26) / eb[eb.length - 1];
+
+function as(t) {
+  var i, x = this.abs();
+  if (x.t == 1 && x[0] <= eb[eb.length - 1]) {
+    for (i = 0; i < eb.length; ++i)
+      if (x[0] == eb[i]) return true;
+    return false;
+  }
+  if (x.ef()) return false;
+  i = 1;
+  while (i < eb.length) {
+    var m = eb[i],
+      j = i + 1;
+    while (j < eb.length && m < kE) m *= eb[j++];
+    m = x.kq(m);
+    while (i < j)
+      if (m % eb[i++] == 0) return false;
+  }
+  return x.kJ(t);
+};
+
+function dR(t) {
+  var gV = this.cv(L.ONE);
+  var k = gV.gg();
+  if (k <= 0) return false;
+  var r = gV.ic(k);
+  t = (t + 1) >> 1;
+  if (t > eb.length) t = eb.length;
+  var a = C();
+  for (var i = 0; i < t; ++i) {
+    a.eT(eb[Math.floor(Math.random() * eb.length)]);
+    var y = a.lb(r, this);
+    if (y.dw(L.ONE) != 0 && y.dw(gV) != 0) {
+      var j = 1;
+      while (j++ < k && y.dw(gV) != 0) {
+        y = y.kr(2, this);
+        if (y.dw(L.ONE) == 0) return false;
+      }
+      if (y.dw(gV) != 0) return false;
+    }
+  }
+  return true;
+};
+L.prototype.iw = ca;
+L.prototype.eD = dk;
+L.prototype.jP = bY;
+L.prototype.iM = cX;
+L.prototype.gj = cC;
+L.prototype.hY = dE;
+L.prototype.hG = ce;
+L.prototype.ja = dp;
+L.prototype.hJ = cJ;
+L.prototype.lx = cW;
+L.prototype.ld = ci;
+L.prototype.kq = di;
+L.prototype.kJ = dR;
+L.prototype.clone = an;
+L.prototype.hs = bK;
+L.prototype.lQ = cI;
+L.prototype.lZ = dn;
+L.prototype.eJ = aF;
+L.prototype.gv = bv;
+L.prototype.equals = ab;
+L.prototype.min = aw;
+L.prototype.max = ao;
+L.prototype.and = dN;
+L.prototype.jw = bW;
+L.prototype.xor = aQ;
+L.prototype.mg = cg;
+L.prototype.not = db;
+L.prototype.shiftLeft = cA;
+L.prototype.ic = dv;
+L.prototype.gg = aq;
+L.prototype.nx = cj;
+L.prototype.en = aM;
+L.prototype.nu = cc;
+L.prototype.mR = cT;
+L.prototype.nc = bb;
+L.prototype.add = cO;
+L.prototype.cv = bQ;
+L.prototype.multiply = bF;
+L.prototype.divide = bd;
+L.prototype.mU = cQ;
+L.prototype.lH = bI;
+L.prototype.lb = aE;
+L.prototype.fZ = ah;
+L.prototype.pow = cG;
+L.prototype.mN = aV;
+L.prototype.kv = as;
+L.prototype.square = aa;
+
+function J(q, x) {
+  this.x = x;
+  this.q = q;
+};
+
+function bx(other) {
+  if (other == this) return true;
+  return (this.q.equals(other.q) && this.x.equals(other.x));
+};
+
+function av() {
+  return this.x;
+};
+
+function aO() {
+  return new J(this.q, this.x.el().cl(this.q));
+};
+
+function bz(b) {
+  return new J(this.q, this.x.add(b.cR()).cl(this.q));
+};
+
+function be(b) {
+  return new J(this.q, this.x.cv(b.cR()).cl(this.q));
+};
+
+function bf(b) {
+  return new J(this.q, this.x.multiply(b.cR()).cl(this.q));
+};
+
+function aJ() {
+  return new J(this.q, this.x.square().cl(this.q));
+};
+
+function ar(b) {
+  return new J(this.q, this.x.multiply(b.cR().fZ(this.q)).cl(this.q));
+};
+J.prototype.equals = bx;
+J.prototype.cR = av;
+J.prototype.el = aO;
+J.prototype.add = bz;
+J.prototype.cv = be;
+J.prototype.multiply = bf;
+J.prototype.square = aJ;
+J.prototype.divide = ar;
+
+function G(dP, x, y, z) {
+  this.dP = dP;
+  this.x = x;
+  this.y = y;
+  if (z == null) {
+    this.z = L.ONE;
+  } else {
+    this.z = z;
+  }
+  this.gH = null;
+};
+
+function az() {
+  if (this.gH == null) {
+    this.gH = this.z.fZ(this.dP.q);
+  }
+  return this.dP.fm(this.x.cR().multiply(this.gH).cl(this.dP.q));
+};
+
+function bP() {
+  if (this.gH == null) {
+    this.gH = this.z.fZ(this.dP.q);
+  }
+  return this.dP.fm(this.y.cR().multiply(this.gH).cl(this.dP.q));
+};
+
+function bV(other) {
+  if (other == this) return true;
+  if (this.eg()) return other.eg();
+  if (other.eg()) return this.eg();
+  var u, v;
+  u = other.y.cR().multiply(this.z).cv(this.y.cR().multiply(other.z)).cl(this.dP.q);
+  if (!u.equals(L.ZERO)) return false;
+  v = other.x.cR().multiply(this.z).cv(this.x.cR().multiply(other.z)).cl(this.dP.q);
+  return v.equals(L.ZERO);
+};
+
+function bp() {
+  if ((this.x == null) && (this.y == null)) return true;
+  return this.z.equals(L.ZERO) && !this.y.cR().equals(L.ZERO);
+};
+
+function aX() {
+  return new G(this.dP, this.x, this.y.el(), this.z);
+};
+
+function aB(b) {
+  if (this.eg()) return b;
+  if (b.eg()) return this;
+  var u = b.y.cR().multiply(this.z).cv(this.y.cR().multiply(b.z)).cl(this.dP.q);
+  var v = b.x.cR().multiply(this.z).cv(this.x.cR().multiply(b.z)).cl(this.dP.q);
+  if (L.ZERO.equals(v)) {
+    if (L.ZERO.equals(u)) {
+      return this.gI();
+    }
+    return this.dP.gy();
+  }
+  var hm = new L("3");
+  var x1 = this.x.cR();
+  var y1 = this.y.cR();
+  var iT = v.square();
+  var hq = iT.multiply(v);
+  var iy = x1.multiply(iT);
+  var iq = u.square().multiply(this.z);
+  var eE = iq.cv(iy.shiftLeft(1)).multiply(b.z).cv(hq).multiply(v).cl(this.dP.q);
+  var fE = iy.multiply(hm).multiply(u).cv(y1.multiply(hq)).cv(iq.multiply(u)).multiply(b.z).add(u.multiply(hq)).cl(this
+    .dP.q);
+  var js = hq.multiply(this.z).multiply(b.z).cl(this.dP.q);
+  return new G(this.dP, this.dP.fm(eE), this.dP.fm(fE), js);
+};
+
+function bq() {
+  if (this.eg()) return this;
+  if (this.y.cR().eJ() == 0) return this.dP.gy();
+  var hm = new L("3");
+  var x1 = this.x.cR();
+  var y1 = this.y.cR();
+  var gz = y1.multiply(this.z);
+  var jp = gz.multiply(y1).cl(this.dP.q);
+  var a = this.dP.a.cR();
+  var w = x1.square().multiply(hm);
+  if (!L.ZERO.equals(a)) {
+    w = w.add(this.z.square().multiply(a));
+  }
+  w = w.cl(this.dP.q);
+  var eE = w.square().cv(x1.shiftLeft(3).multiply(jp)).shiftLeft(1).multiply(gz).cl(this.dP.q);
+  var fE = w.multiply(hm).multiply(x1).cv(jp.shiftLeft(1)).shiftLeft(2).multiply(jp).cv(w.square().multiply(w)).cl(this
+    .dP.q);
+  var js = gz.square().multiply(gz).shiftLeft(3).cl(this.dP.q);
+  return new G(this.dP, this.dP.fm(eE), this.dP.fm(fE), js);
+};
+
+function ai(k) {
+  if (this.eg()) return this;
+  if (k.eJ() == 0) return this.dP.gy();
+  var e = k;
+  var h = e.multiply(new L("3"));
+  var hw = this.el();
+  var R = this;
+  var i;
+  for (i = h.fg() - 2; i > 0; --i) {
+    R = R.gI();
+    var gm = h.en(i);
+    var hV = e.en(i);
+    if (gm != hV) {
+      R = R.add(gm ? this : hw);
+    }
+  }
+  return R;
+};
+
+function aS(j, x, k) {
+  var i;
+  if (j.fg() > k.fg()) i = j.fg() - 1;
+  else i = k.fg() - 1;
+  var R = this.dP.gy();
+  var both = this.add(x);
+  while (i >= 0) {
+    R = R.gI();
+    if (j.en(i)) {
+      if (k.en(i)) {
+        R = R.add(both);
+      } else {
+        R = R.add(this);
+      }
+    } else {
+      if (k.en(i)) {
+        R = R.add(x);
+      }
+    } --i;
+  }
+  return R;
+};
+G.prototype.fI = az;
+G.prototype.ec = bP;
+G.prototype.equals = bV;
+G.prototype.eg = bp;
+G.prototype.el = aX;
+G.prototype.add = aB;
+G.prototype.gI = bq;
+G.prototype.multiply = ai;
+G.prototype.nb = aS;
+
+function V(q, a, b) {
+  this.q = q;
+  this.a = this.fm(a);
+  this.b = this.fm(b);
+  this.jz = new G(this, null, null);
+};
+
+function bO() {
+  return this.q;
+};
+
+function aW() {
+  return this.a;
+};
+
+function bc() {
+  return this.b;
+};
+
+function bJ(other) {
+  if (other == this) return true;
+  return (this.q.equals(other.q) && this.a.equals(other.a) && this.b.equals(other.b));
+};
+
+function bn() {
+  return this.jz;
+};
+
+function ae(x) {
+  return new J(this.q, x);
+};
+
+function by(s) {
+  switch (parseInt(s.substr(0, 2), 16)) {
+    case 0:
+      return this.jz;
+    case 2:
+    case 3:
+      return null;
+    case 4:
+    case 6:
+    case 7:
+      var dm = (s.length - 2) / 2;
+      var hf = s.substr(2, dm);
+      var ih = s.substr(dm + 2, dm);
+      return new G(this, this.fm(new L(hf, 16)), this.fm(new L(ih, 16)));
+    default:
+      return null;
+  }
+};
+
+function bG(x, y) {
+  return new G(this, this.fm(x), this.fm(y));
+};
+V.prototype.jh = bO;
+V.prototype.kH = aW;
+V.prototype.kB = bc;
+V.prototype.equals = bJ;
+V.prototype.gy = bn;
+V.prototype.fm = ae;
+V.prototype.kR = by;
+V.prototype.kU = bG;
+J.prototype.lO = function () {
+  return Math.floor((this.cR().fg() + 7) / 8);
+};
+G.prototype.mj = function (jG) {
+  var hM = function (i, dm) {
+    var ev = i.lW();
+    if (dm < ev.length) {
+      ev = ev.slice(ev.length - dm);
+    } else
+      while (dm > ev.length) {
+        ev.unshift(0);
+      }
+    return ev;
+  };
+  var x = this.fI().cR();
+  var y = this.ec().cR();
+  var ey = hM(x, 32);
+  if (jG) {
+    if (y.ef()) {
+      ey.unshift(0x02);
+    } else {
+      ey.unshift(0x03);
+    }
+  } else {
+    ey.unshift(0x04);
+    ey = ey.concat(hM(y, 32));
+  }
+  return ey;
+};
+G.jZ = function (dP, ey) {
+  var ea = ey.length - 1;
+  var iP = ey.slice(1, 1 + ea / 2);
+  var je = ey.slice(1 + ea / 2, 1 + ea);
+  iP.unshift(0);
+  je.unshift(0);
+  var x = new L(iP);
+  var y = new L(je);
+  return new G(dP, dP.fm(x), dP.fm(y));
+};
+G.hQ = function (dP, hU) {
+  var ea = hU.length - 2;
+  var hf = hU.substr(2, ea / 2);
+  var ih = hU.substr(2 + ea / 2, ea / 2);
+  var x = new L(hf, 16);
+  var y = new L(ih, 16);
+  return new G(dP, dP.fm(x), dP.fm(y));
+};
+G.prototype.jK = function (b) {
+  if (this.eg()) return b;
+  if (b.eg()) return this;
+  if (this.x.equals(b.x)) {
+    if (this.y.equals(b.y)) {
+      return this.gI();
+    }
+    return this.dP.gy();
+  }
+  var kW = b.x.cv(this.x);
+  var la = b.y.cv(this.y);
+  var hl = la.divide(kW);
+  var eE = hl.square().cv(this.x).cv(b.x);
+  var fE = hl.multiply(this.x.cv(eE)).cv(this.y);
+  return new G(this.dP, eE, fE);
+};
+G.prototype.mV = function () {
+  if (this.eg()) return this;
+  if (this.y.cR().eJ() == 0) {
+    return this.dP.gy();
+  }
+  var jF = this.dP.fm(L.valueOf(2));
+  var hm = this.dP.fm(L.valueOf(3));
+  var hl = this.x.square().multiply(hm).add(this.dP.a).divide(this.y.multiply(jF));
+  var eE = hl.square().cv(this.x.multiply(jF));
+  var fE = hl.multiply(this.x.cv(eE)).cv(this.y);
+  return new G(this.dP, eE, fE);
+};
+G.prototype.nl = function (k) {
+  if (this.eg()) return this;
+  if (k.eJ() == 0) return this.dP.gy();
+  var e = k;
+  var h = e.multiply(new L("3"));
+  var hw = this.el();
+  var R = this;
+  var i;
+  for (i = h.fg() - 2; i > 0; --i) {
+    R = R.gI();
+    var gm = h.en(i);
+    var hV = e.en(i);
+    if (gm != hV) {
+      R = R.jK(gm ? this : hw);
+    }
+  }
+  return R;
+};
+G.prototype.kM = function () {
+  var x = this.fI().cR();
+  var y = this.ec().cR();
+  var a = this.dP.kH().cR();
+  var b = this.dP.kB().cR();
+  var n = this.dP.jh();
+  var lhs = y.multiply(y).cl(n);
+  var rhs = x.multiply(x).multiply(x).add(a.multiply(x)).add(b).cl(n);
+  return lhs.equals(rhs);
+};
+G.prototype.toString = function () {
+  return '(' + this.fI().cR().toString() + ',' + this.ec().cR().toString() + ')';
+};
+G.prototype.mY = function () {
+  var n = this.dP.jh();
+  if (this.eg()) {
+    throw new Error("Point is at jz.");
+  }
+  var x = this.fI().cR();
+  var y = this.ec().cR();
+  if (x.dw(L.ONE) < 0 || x.dw(n.cv(L.ONE)) > 0) {
+    throw new Error('x coordinate out of bounds');
+  }
+  if (y.dw(L.ONE) < 0 || y.dw(n.cv(L.ONE)) > 0) {
+    throw new Error('y coordinate out of bounds');
+  }
+  if (!this.kM()) {
+    throw new Error("Point is not on the dP.");
+  }
+  if (this.multiply(n).eg()) {
+    throw new Error("Point is not a scalar multiple of G.");
+  }
+  return true;
+};
+
+function bo() {
+  this.fB = null;
+  this.et = null;
+  this.iA = null;
+  this.hb = 256;
+  this.ho = 0;
+  this.gR = 0;
+  this.eu = new Array();
+  if (this.fB == null) {
+    this.fB = new Array();
+    this.et = 0;
+    if (navigator.appName == "Netscape" && navigator.appVersion < "5" && window.crypto) {
+      var z = window.crypto.random(32);
+      for (var t = 0; t < z.length; ++t) {
+        this.fB[this.et++] = z.charCodeAt(t) & 255;
+      }
+    }
+    while (this.et < this.hb) {
+      t = Math.floor(65536 * Math.random());
+      this.fB[this.et++] = t >>> 8;
+      this.fB[this.et++] = t & 255;
+    }
+    this.et = 0;
+    this.jj();
+  }
+};
+bo.prototype = {
+  ka: function (x) {
+    this.fB[this.et++] ^= x & 255;
+    this.fB[this.et++] ^= (x >> 8) & 255;
+    this.fB[this.et++] ^= (x >> 16) & 255;
+    this.fB[this.et++] ^= (x >> 24) & 255;
+    if (this.et >= this.hb) this.et -= this.hb;
+  },
+  jj: function () {
+    this.ka(new Date().getTime());
+  },
+  kg: function () {
+    if (this.iA == null) {
+      this.jj();
+      this.iA = 1;
+      this.gD(this.fB);
+      for (var et = 0; et < this.fB.length; ++et) {
+        this.fB[et] = 0;
+      }
+      this.et = 0;
+    }
+    return this.next();
+  },
+  kj: function (iQ) {
+    var i;
+    for (i = 0; i < iQ.length; ++i) iQ[i] = this.kg();
+  },
+  gD: function (key) {
+    var i, j, t;
+    for (i = 0; i < 256; ++i) this.eu[i] = i;
+    j = 0;
+    for (i = 0; i < 256; ++i) {
+      j = (j + this.eu[i] + key[i % key.length]) & 255;
+      t = this.eu[i];
+      this.eu[i] = this.eu[j];
+      this.eu[j] = t;
+    }
+    this.ho = 0;
+    this.gR = 0;
+  },
+  next: function () {
+    var t;
+    this.ho = (this.ho + 1) & 255;
+    this.gR = (this.gR + this.eu[this.ho]) & 255;
+    t = this.eu[this.ho];
+    this.eu[this.ho] = this.eu[this.gR];
+    this.eu[this.gR] = t;
+    return this.eu[(t + this.eu[this.ho]) & 255];
+  }
+};
+
+function aP() {
+  this.dX = new Array(0xd6, 0x90, 0xe9, 0xfe, 0xcc, 0xe1, 0x3d, 0xb7, 0x16, 0xb6, 0x14, 0xc2, 0x28, 0xfb, 0x2c, 0x05,
+    0x2b, 0x67, 0x9a, 0x76, 0x2a, 0xbe, 0x04, 0xc3, 0xaa, 0x44, 0x13, 0x26, 0x49, 0x86, 0x06, 0x99, 0x9c, 0x42, 0x50,
+    0xf4, 0x91, 0xef, 0x98, 0x7a, 0x33, 0x54, 0x0b, 0x43, 0xed, 0xcf, 0xac, 0x62, 0xe4, 0xb3, 0x1c, 0xa9, 0xc9, 0x08,
+    0xe8, 0x95, 0x80, 0xdf, 0x94, 0xfa, 0x75, 0x8f, 0x3f, 0xa6, 0x47, 0x07, 0xa7, 0xfc, 0xf3, 0x73, 0x17, 0xba, 0x83,
+    0x59, 0x3c, 0x19, 0xe6, 0x85, 0x4f, 0xa8, 0x68, 0x6b, 0x81, 0xb2, 0x71, 0x64, 0xda, 0x8b, 0xf8, 0xeb, 0x0f, 0x4b,
+    0x70, 0x56, 0x9d, 0x35, 0x1e, 0x24, 0x0e, 0x5e, 0x63, 0x58, 0xd1, 0xa2, 0x25, 0x22, 0x7c, 0x3b, 0x01, 0x21, 0x78,
+    0x87, 0xd4, 0x00, 0x46, 0x57, 0x9f, 0xd3, 0x27, 0x52, 0x4c, 0x36, 0x02, 0xe7, 0xa0, 0xc4, 0xc8, 0x9e, 0xea, 0xbf,
+    0x8a, 0xd2, 0x40, 0xc7, 0x38, 0xb5, 0xa3, 0xf7, 0xf2, 0xce, 0xf9, 0x61, 0x15, 0xa1, 0xe0, 0xae, 0x5d, 0xa4, 0x9b,
+    0x34, 0x1a, 0x55, 0xad, 0x93, 0x32, 0x30, 0xf5, 0x8c, 0xb1, 0xe3, 0x1d, 0xf6, 0xe2, 0x2e, 0x82, 0x66, 0xca, 0x60,
+    0xc0, 0x29, 0x23, 0xab, 0x0d, 0x53, 0x4e, 0x6f, 0xd5, 0xdb, 0x37, 0x45, 0xde, 0xfd, 0x8e, 0x2f, 0x03, 0xff, 0x6a,
+    0x72, 0x6d, 0x6c, 0x5b, 0x51, 0x8d, 0x1b, 0xaf, 0x92, 0xbb, 0xdd, 0xbc, 0x7f, 0x11, 0xd9, 0x5c, 0x41, 0x1f, 0x10,
+    0x5a, 0xd8, 0x0a, 0xc1, 0x31, 0x88, 0xa5, 0xcd, 0x7b, 0xbd, 0x2d, 0x74, 0xd0, 0x12, 0xb8, 0xe5, 0xb4, 0xb0, 0x89,
+    0x69, 0x97, 0x4a, 0x0c, 0x96, 0x77, 0x7e, 0x65, 0xb9, 0xf1, 0x09, 0xc5, 0x6e, 0xc6, 0x84, 0x18, 0xf0, 0x7d, 0xec,
+    0x3a, 0xdc, 0x4d, 0x20, 0x79, 0xee, 0x5f, 0x3e, 0xd7, 0xcb, 0x39, 0x48);
+  this.gi = new Array(0xa3b1bac6, 0x56aa3350, 0x677d9197, 0xb27022dc);
+  this.kw = new Array(0x00070e15, 0x1c232a31, 0x383f464d, 0x545b6269, 0x70777e85, 0x8c939aa1, 0xa8afb6bd, 0xc4cbd2d9,
+    0xe0e7eef5, 0xfc030a11, 0x181f262d, 0x343b4249, 0x50575e65, 0x6c737a81, 0x888f969d, 0xa4abb2b9, 0xc0c7ced5,
+    0xdce3eaf1, 0xf8ff060d, 0x141b2229, 0x30373e45, 0x4c535a61, 0x686f767d, 0x848b9299, 0xa0a7aeb5, 0xbcc3cad1,
+    0xd8dfe6ed, 0xf4fb0209, 0x10171e25, 0x2c333a41, 0x484f565d, 0x646b7279);
+};
+aP.prototype = {
+  hy: function (key) {
+    var k = new Array(36);
+    var gM = aI(key);
+    k[0] = gM[0] ^ this.gi[0];
+    k[1] = gM[1] ^ this.gi[1];
+    k[2] = gM[2] ^ this.gi[2];
+    k[3] = gM[3] ^ this.gi[3];
+    var fH = new Array(32);
+    for (var i = 0; i < 32; i++) {
+      k[(i + 4)] = (k[i] ^ this.jO(k[(i + 1)] ^ k[(i + 2)] ^ k[(i + 3)] ^ this.kw[i]));
+      fH[i] = k[(i + 4)];
+    }
+    return fH;
+  },
+  jO: function (fS) {
+    var b = new Array(4);
+    var a = F(fS);
+    b[0] = this.dX[a[0] & 0xFF];
+    b[1] = this.dX[a[1] & 0xFF];
+    b[2] = this.dX[a[2] & 0xFF];
+    b[3] = this.dX[a[3] & 0xFF];
+    var ek = bB(b, 0);
+    var fH = ek ^ (ek << 13 | (ek >>> (32 - 13))) ^ (ek << 23 | (ek >>> (32 - 23)));
+    return fH;
+  },
+  eA: function (fH, data) {
+    var x = new Array(36);
+    x[0] = bB(data, 0);
+    x[1] = bB(data, 4);
+    x[2] = bB(data, 8);
+    x[3] = bB(data, 12);
+    for (var i = 0; i < 32; i++) {
+      x[(i + 4)] = x[i] ^ this.kN(x[(i + 1)] ^ x[(i + 2)] ^ x[(i + 3)] ^ fH[i]);
+    }
+    var iI = new Array(4);
+    for (var i = 35; i >= 32; i--) {
+      iI[35 - i] = x[i];
+    }
+    var kS = ap(iI);
+    return kS;
+  },
+  kN: function (fS) {
+    var a = F(fS);
+    var b = new Array(4);
+    b[0] = this.dX[a[0] & 0xFF];
+    b[1] = this.dX[a[1] & 0xFF];
+    b[2] = this.dX[a[2] & 0xFF];
+    b[3] = this.dX[a[3] & 0xFF];
+    var ek = bB(b, 0);
+    var c = ek ^ (ek << 2 | (ek >>> (32 - 2))) ^ (ek << 10 | (ek >>> (32 - 10))) ^ (ek << 18 | (ek >>> (32 - 18))) ^
+      (ek << 24 | (ek >>> (32 - 24)));
+    return c;
+  },
+  gY: function (input, mode) {
+    if (input == null) {
+      return null;
+    }
+    var gT = null;
+    if (mode == 1) {
+      var p = 16 - input.length % 16;
+      gT = new Array(input.length + p);
+      K(input, 0, gT, 0, input.length);
+      for (var i = 0; i < p; i++) {
+        gT[input.length + i] = p;
+      }
+    } else {
+      var p = input[input.length - 1];
+      gT = new Array(input.length - p);
+      K(input, 0, gT, 0, input.length - p);
+    }
+    return gT;
+  },
+  lk: function (data, key) {
+    if (data == undefined || data == null || data.length <= 0) {
+      dB.log("data is error!");
+      return null;
+    }
+    if (key == undefined || key == null || key.length % 16 != 0) {
+      dB.log("dV key is error!");
+      return null;
+    }
+    var fH = this.hy(key);
+    var cU = 16;
+    var loop = parseInt(data.length / cU);
+    var cw = new Array((loop + 1) * cU);
+    var dF = new Array(cU);
+    var hk = null;
+    for (var i = 0; i < loop; i++) {
+      K(data, i * cU, dF, 0, cU);
+      hk = this.eA(fH, dF);
+      K(hk, 0, cw, i * cU, cU);
+    }
+    var eR = new Array(data.length % cU);
+    if (eR.length > 0) {
+      K(data, loop * cU, eR, 0, data.length % cU);
+    }
+    var padding = this.gY(eR, 1);
+    hk = this.eA(fH, padding);
+    K(hk, 0, cw, loop * cU, cU);
+    return cw;
+  },
+  kY: function (data, key) {
+    if (data == undefined || data == null || data.length % 16 != 0) {
+      dB.log("data is error!");
+      return null;
+    }
+    if (key == undefined || key == null || key.length % 16 != 0) {
+      dB.log("dV key is error!");
+      return null;
+    }
+    var fH = this.hy(key);
+    var gW = new Array(32);
+    for (var i = 0; i < fH.length; i++) {
+      gW[i] = fH[32 - i - 1];
+    }
+    var cU = 16;
+    var loop = data.length / cU - 1;
+    var dF = new Array(cU);
+    var fh = null;
+    var fz = null;
+    K(data, loop * cU, dF, 0, cU);
+    fh = this.eA(gW, dF);
+    var eY = this.gY(fh, 0);
+    fz = new Array(loop * cU + eY.length);
+    K(eY, 0, fz, loop * cU, eY.length);
+    for (var i = 0; i < loop; i++) {
+      K(data, i * cU, dF, 0, cU);
+      fh = this.eA(gW, dF);
+      K(fh, 0, fz, i * cU, cU);
+    }
+    return fz;
+  },
+  ll: function (data, key, cd) {
+    if (cd == undefined || cd == null || cd.length % 16 != 0) {
+      dB.log("cd is error!");
+      return null;
+    }
+    if (key == undefined || key == null || key.length % 16 != 0) {
+      dB.log("dV key is error!");
+      return null;
+    }
+    if (data == undefined || data == null || data.length <= 0) {
+      dB.log("data is error!");
+      return null;
+    }
+    var fH = this.hy(key);
+    var cU = 16;
+    var loop = parseInt(data.length / cU);
+    var cw = new Array((loop + 1) * cU);
+    var dF = new Array(cU);
+    for (var i = 0; i < loop; i++) {
+      K(data, i * cU, dF, 0, cU);
+      for (var j = 0; j < cU; j++) {
+        dF[j] = dF[j] ^ cd[j];
+      }
+      cd = this.eA(fH, dF);
+      K(cd, 0, cw, i * cU, cU);
+    }
+    var eR = new Array(data.length % cU);
+    if (eR.length > 0) {
+      K(data, loop * cU, eR, 0, data.length % cU);
+    }
+    var padding = this.gY(eR, 1);
+    for (var i = 0; i < cU; i++) {
+      padding[i] = padding[i] ^ cd[i];
+    }
+    cd = this.eA(fH, padding);
+    K(cd, 0, cw, loop * cU, cU);
+    return cw;
+  },
+  kD: function (data, key, cd) {
+    if (cd == undefined || cd == null || cd.length % 16 != 0) {
+      dB.log("cd is error!");
+      return null;
+    }
+    if (key == undefined || key == null || key.length % 16 != 0) {
+      dB.log("dV key is error!");
+      return null;
+    }
+    if (data == undefined || data == null || data.length % 16 != 0) {
+      dB.log("data is error!");
+      return null;
+    }
+    var fH = this.hy(key);
+    var gW = new Array(32);
+    for (var i = 0; i < fH.length; i++) {
+      gW[i] = fH[32 - i - 1];
+    }
+    var cU = 16;
+    var loop = data.length / cU;
+    var dF = new Array(cU);
+    var fh = null;
+    var fz = null;
+    fz = new Array(data.length);
+    for (var i = 0; i < loop; i++) {
+      K(data, i * cU, dF, 0, cU);
+      fh = this.eA(gW, dF);
+      for (var j = 0; j < cU; j++) {
+        fh[j] = fh[j] ^ cd[j];
+      }
+      K(dF, 0, cd, 0, cU);
+      K(fh, 0, fz, i * cU, cU);
+    }
+    var eY = this.gY(fh, 0);
+    var gq = new Array(fz.length - cU + eY.length);
+    K(fz, 0, gq, 0, fz.length - cU);
+    K(eY, 0, gq, fz.length - cU, eY.length);
+    return gq;
+  }
+};
+
+function T() {
+  this.ft = new Array();
+  this.eW = 0;
+  this.hB = 0;
+  this.hZ = 32;
+  this.gU = [0x7380166f, 0x4914b2b9, 0x172442d7, 0xda8a0600, 0xa96f30bc, 0x163138aa, 0xe38dee4d, 0xb0fb0e4e];
+  this.gU = [0x7380166f, 0x4914b2b9, 0x172442d7, -628488704, -1452330820, 0x163138aa, -477237683, -1325724082];
+  this.v = new Array(8);
+  this.jJ = new Array(8);
+  this.fU = [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0];
+  this.X = new Array(68);
+  this.eI = 0;
+  this.lw = 0x79cc4519;
+  this.lz = 0x7a879d8a;
+  if (arguments.length > 0) {
+    this.lc(arguments[0]);
+  } else {
+    this.gD();
+  }
+};
+T.prototype = {
+  dj: {
+    ki: -parseInt('10000000000000000000000000000000', 2),
+    ir: parseInt('1111111111111111111111111111111', 2),
+    parse: function (n) {
+      if (n < this.ki) {
+        var fa = new Number(-n);
+        var fe = fa.toString(2);
+        var dU = fe.substr(fe.length - 31, 31);
+        var fC = '';
+        for (var i = 0; i < dU.length; i++) {
+          var hE = dU.substr(i, 1);
+          fC += hE == '0' ? '1' : '0';
+        }
+        var result = parseInt(fC, 2);
+        return (result + 1);
+      } else if (n > this.ir) {
+        var fa = Number(n);
+        var fe = fa.toString(2);
+        var dU = fe.substr(fe.length - 31, 31);
+        var fC = '';
+        for (var i = 0; i < dU.length; i++) {
+          var hE = dU.substr(i, 1);
+          fC += hE == '0' ? '1' : '0';
+        }
+        var result = parseInt(fC, 2);
+        return -(result + 1);
+      } else {
+        return n;
+      }
+    },
+    gK: function (n) {
+      if (n < 0) {
+        var fa = new Number(-n);
+        var fe = fa.toString(2);
+        var dU = fe.substr(fe.length - 8, 8);
+        var fC = '';
+        for (var i = 0; i < dU.length; i++) {
+          var hE = dU.substr(i, 1);
+          fC += hE == '0' ? '1' : '0';
+        }
+        var result = parseInt(fC, 2);
+        return (result + 1);
+      } else if (n > 255) {
+        var fa = Number(n);
+        var fe = fa.toString(2);
+        return parseInt(fe.substr(fe.length - 8, 8), 2);
+      } else {
+        return n;
+      }
+    }
+  },
+  gD: function () {
+    this.ft = new Array(4);
+    this.reset();
+  },
+  lc: function (t) {
+    this.ft = [].concat(t.ft);
+    this.eW = t.eW;
+    this.hB = t.hB;
+    K(t.X, 0, this.X, 0, t.X.length);
+    this.eI = t.eI;
+    K(t.v, 0, this.v, 0, t.v.length);
+  },
+  hL: function () {
+    return this.hZ;
+  },
+  reset: function () {
+    this.hB = 0;
+    this.eW = 0;
+    for (var kc in this.ft) this.ft[kc] = null;
+    K(this.gU, 0, this.v, 0, this.gU.length);
+    this.eI = 0;
+    K(this.fU, 0, this.X, 0, this.fU.length);
+  },
+  hS: function () {
+    var i;
+    var fs = this.X;
+    var gu = new Array(64);
+    for (i = 16; i < 68; i++) {
+      fs[i] = this.kT(fs[i - 16] ^ fs[i - 9] ^ (this.rotate(fs[i - 3], 15))) ^ (this.rotate(fs[i - 13], 7)) ^ fs[i -
+        6];
+    }
+    for (i = 0; i < 64; i++) {
+      gu[i] = fs[i] ^ fs[i + 4];
+    }
+    var ej = this.v;
+    var dr = this.jJ;
+    K(ej, 0, dr, 0, this.gU.length);
+    var fj, fV, hI, fQ, fW;
+    for (i = 0; i < 16; i++) {
+      fW = this.rotate(dr[0], 12);
+      fj = this.dj.parse(this.dj.parse(fW + dr[4]) + this.rotate(this.lw, i));
+      fj = this.rotate(fj, 7);
+      fV = fj ^ fW;
+      hI = this.dj.parse(this.dj.parse(this.lu(dr[0], dr[1], dr[2]) + dr[3]) + fV) + gu[i];
+      fQ = this.dj.parse(this.dj.parse(this.ky(dr[4], dr[5], dr[6]) + dr[7]) + fj) + fs[i];
+      dr[3] = dr[2];
+      dr[2] = this.rotate(dr[1], 9);
+      dr[1] = dr[0];
+      dr[0] = hI;
+      dr[7] = dr[6];
+      dr[6] = this.rotate(dr[5], 19);
+      dr[5] = dr[4];
+      dr[4] = this.ii(fQ);
+    }
+    for (i = 16; i < 64; i++) {
+      fW = this.rotate(dr[0], 12);
+      fj = this.dj.parse(this.dj.parse(fW + dr[4]) + this.rotate(this.lz, i));
+      fj = this.rotate(fj, 7);
+      fV = fj ^ fW;
+      hI = this.dj.parse(this.dj.parse(this.kk(dr[0], dr[1], dr[2]) + dr[3]) + fV) + gu[i];
+      fQ = this.dj.parse(this.dj.parse(this.jL(dr[4], dr[5], dr[6]) + dr[7]) + fj) + fs[i];
+      dr[3] = dr[2];
+      dr[2] = this.rotate(dr[1], 9);
+      dr[1] = dr[0];
+      dr[0] = hI;
+      dr[7] = dr[6];
+      dr[6] = this.rotate(dr[5], 19);
+      dr[5] = dr[4];
+      dr[4] = this.ii(fQ);
+    }
+    for (i = 0; i < 8; i++) {
+      ej[i] ^= this.dj.parse(dr[i]);
+    }
+    this.eI = 0;
+    K(this.fU, 0, this.X, 0, this.fU.length);
+  },
+  iC: function (hg, ee) {
+    var n = hg[ee] << 24;
+    n |= (hg[++ee] & 0xff) << 16;
+    n |= (hg[++ee] & 0xff) << 8;
+    n |= (hg[++ee] & 0xff);
+    this.X[this.eI] = n;
+    if (++this.eI == 16) {
+      this.hS();
+    }
+  },
+  ly: function (fg) {
+    if (this.eI > 14) {
+      this.hS();
+    }
+    this.X[14] = (this.ke(fg, 32));
+    this.X[15] = (fg & (0xffffffff));
+  },
+  kP: function (n, fD, off) {
+    fD[off] = this.dj.gK(this.hu(n, 24)) & 0x000000FF;
+    fD[++off] = this.dj.gK(this.hu(n, 16)) & 0x000000FF;
+    fD[++off] = this.dj.gK(this.hu(n, 8)) & 0x000000FF;
+    fD[++off] = this.dj.gK(n) & 0x000000FF;
+  },
+  gN: function (lm, lv) {
+    this.finish();
+    for (var i = 0; i < 8; i++) {
+      this.kP(this.v[i], lm, lv + i * 4);
+    }
+    this.reset();
+    return this.hZ;
+  },
+  update: function (input) {
+    this.ft[this.eW++] = input;
+    if (this.eW == this.ft.length) {
+      this.iC(this.ft, 0);
+      this.eW = 0;
+    }
+    this.hB++;
+  },
+  fc: function (input, ee, length) {
+    while ((this.eW != 0) && (length > 0)) {
+      this.update(input[ee]);
+      ee++;
+      length--;
+    }
+    while (length > this.ft.length) {
+      this.iC(input, ee);
+      ee += this.ft.length;
+      length -= this.ft.length;
+      this.hB += this.ft.length;
+    }
+    while (length > 0) {
+      this.update(input[ee]);
+      ee++;
+      length--;
+    }
+  },
+  finish: function () {
+    var fg = (this.hB << 3);
+    this.update((128));
+    while (this.eW != 0) this.update((0));
+    this.ly(fg);
+    this.hS();
+  },
+  rotate: function (x, n) {
+    return (x << n) | (this.hu(x, (32 - n)));
+  },
+  ii: function (X) {
+    return ((X) ^ this.rotate((X), 9) ^ this.rotate((X), 17));
+  },
+  kT: function (X) {
+    return ((X) ^ this.rotate((X), 15) ^ this.rotate((X), 23));
+  },
+  lu: function (X, Y, Z) {
+    return (X ^ Y ^ Z);
+  },
+  kk: function (X, Y, Z) {
+    return ((X & Y) | (X & Z) | (Y & Z));
+  },
+  ky: function (X, Y, Z) {
+    return (X ^ Y ^ Z);
+  },
+  jL: function (X, Y, Z) {
+    return ((X & Y) | (~X & Z));
+  },
+  hu: function (number, fu) {
+    if (number > this.dj.ir || number < this.dj.ki) {
+      number = this.dj.parse(number);
+    }
+    if (number >= 0) {
+      return number >> fu;
+    } else {
+      return (number >> fu) + (2 << ~fu);
+    }
+  },
+  ke: function (number, fu) {
+    var fR;
+    var big = new L();
+    big.eT(number);
+    if (big.eJ() >= 0) {
+      fR = big.ic(fu).hs();
+    } else {
+      var jm = new L();
+      jm.eT(2);
+      var iU = ~fu;
+      var gh = '';
+      if (iU < 0) {
+        var jS = 64 + iU;
+        for (var i = 0; i < jS; i++) {
+          gh += '0';
+        }
+        var jE = new L();
+        jE.eT(number >> fu);
+        var jC = new L("10" + gh, 2);
+        gh = jC.eD(10);
+        var r = jC.add(jE);
+        fR = r.eD(10);
+      } else {
+        gh = jm.shiftLeft((~fu)).hs();
+        fR = (number >> fu) + gh;
+      }
+    }
+    return fR;
+  },
+  jN: function (g, kz) {
+    var jf = new Array(32);
+    var iz = new Array(32);
+    K(kz, 1, jf, 0, 32);
+    K(kz, 33, iz, 0, 32);
+    var iB = CommonUtils.utf8StrToHex('1234567812345678');
+    var dm = iB.length * 4;
+    this.update((dm >> 8 & 0x00ff));
+    this.update((dm & 0x00ff));
+    var ia = this.gB(iB);
+    this.fc(ia, 0, ia.length);
+    var it = this.gB(g.dP.a.cR().eD(16));
+    var ip = this.gB(g.dP.b.cR().eD(16));
+    var jl = this.gB(g.fI().cR().eD(16));
+    var ie = this.gB(g.ec().cR().eD(16));
+    var ig = jf;
+    var iu = iz;
+    this.fc(it, 0, it.length);
+    this.fc(ip, 0, ip.length);
+    this.fc(jl, 0, jl.length);
+    this.fc(ie, 0, ie.length);
+    this.fc(ig, 0, ig.length);
+    this.fc(iu, 0, iu.length);
+    var hX = new Array(this.hL());
+    this.gN(hX, 0);
+    return hX;
+  },
+  gB: function (jq) {
+    var eN = [];
+    var lp = jq.length;
+    for (var i = 0; i < lp; i += 2) {
+      eN.push(parseInt(jq.substr(i, 2), 16));
+    }
+    return eN;
+  }
+};
+window.CipherMode = {
+  C1C2C3: 0,
+  C1C3C2: 1,
+  c1c2c3: 0,
+  c1c3c2: 1
+};
+
+function aK(eV, eC) {
+  if (typeof (eV) != 'undefined' && eV === 1) {
+    this.eV = CipherMode.C1C3C2;
+  } else {
+    this.eV = CipherMode.C1C2C3;
+  }
+  if (typeof (eC) != 'undefined' && CommonUtils.isHexString(eC)) {
+    this.eC = eC;
+  } else {
+    this.eC = null;
+  }
+  this.kQ = new L("FFFFFFFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF00000000FFFFFFFFFFFFFFFF", 16);
+  this.ks = new L("FFFFFFFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF00000000FFFFFFFFFFFFFFFC", 16);
+  this.kG = new L("28E9FA9E9D9F5E344D5A9E4BCF6509A7F39789F515AB8F92DDBCBD414D940E93", 16);
+  this.eB = new L("FFFFFFFEFFFFFFFFFFFFFFFFFFFFFFFF7203DF6B21C6052B53BBF40939D54123", 16);
+  this.jX = new L("32C4AE2C1F1981195F9904466A39C9948FE30BBFF2660BE1715A4589334C74C7", 16);
+  this.kI = new L("BC3736A2F4F6779C59BDCEE36B692153D0A9877CC62A474002DF32E52139F0A0", 16);
+  this.lK = 256;
+  this.jM = new bo();
+  this.gZ = new V(this.kQ, this.ks, this.kG);
+  this.ha = G.hQ(this.gZ, "04" + this.jX.toString(16) + this.kI.toString(16));
+};
+aK.prototype = {
+  jU: function (jo) {
+    return new L(jo.fg(), this.jM).cl(jo.cv(L.ONE)).add(L.ONE);
+  },
+  generateKeyPair: function () {
+    var eF = this.jt();
+    var cZ = eF['gk'].gv();
+    var jd = eF['fb'].fI().cR();
+    var jn = eF['fb'].ec().cR();
+    var jH = this.fN(jd, 32);
+    var lj = this.fN(jn, 32);
+    var dC = new Array(65);
+    dC[0] = 0x04;
+    K(jH, 0, dC, 1, 32);
+    K(lj, 0, dC, 33, 32);
+    return {
+      'gk': cZ,
+      'fb': dC
+    };
+  },
+  kX: function () {
+    var eF = this.generateKeyPair();
+    var lo = eF.fb;
+    var lA = eF.gk;
+    return {
+      'prvkeyhex': CommonUtils.bytesToHex(lA),
+      'pubkeyhex': CommonUtils.bytesToHex(lo)
+    };
+  },
+  jt: function (eC) {
+    var iJ = this.eB;
+    var gF = null;
+    var iV = null;
+    if (CommonUtils.isHexString(eC)) {
+      gF = new L(eC, 16);
+    } else {
+      do {
+        gF = this.jU(iJ);
+      } while (gF.equals(L.ZERO) || gF.dw(iJ) >= 0);
+    }
+    iV = this.ha.multiply(gF);
+    return {
+      'gk': gF,
+      "fb": iV
+    };
+  },
+  jR: function (cZ) {
+    var hn = this.ha.multiply(new L(CommonUtils.bytesToHex(cZ), 16));
+    var x = this.fN(hn.fI().cR(), 32);
+    var y = this.fN(hn.ec().cR(), 32);
+    var dC = new Array(65);
+    dC[0] = 0x04;
+    K(x, 0, dC, 1, 32);
+    K(y, 0, dC, 33, 32);
+    return dC;
+  },
+  jT: function () {
+    var eF = this.jt();
+    var jd = eF['fb'].fI().cR();
+    var jn = eF['fb'].ec().cR();
+    var hn = this.gZ.kU(jd, jn);
+    eF.x1 = hn.fI().cR();
+    return eF;
+  },
+  fN: function (kb, hH) {
+    var dF = new Array(hH);
+    for (var i = 0; i < dF.length; i++) {
+      dF[i] = 0;
+    }
+    var eK = kb.gv();
+    if (eK == null) {
+      return null;
+    }
+    if (eK.length > hH) {
+      K(eK, eK.length - hH, dF, 0, hH);
+    } else if (eK.length == hH) {
+      dF = eK;
+    } else {
+      K(eK, 0, dF, hH - eK.length, eK.length);
+    }
+    return dF;
+  },
+  iH: function (eU, data) {
+    var loop = Math.ceil(data.length / 32);
+    var eP;
+    var hash = new Array(32);
+    for (var i = 0; i < loop; i++) {
+      eP = new T();
+      eP.fc(eU, 0, eU.length);
+      eP.fc(F(i + 1), 0, 4);
+      eP.gN(hash, 0);
+      for (var j = 0; j < hash.length && (i * 32 + j) < data.length; j++) {
+        data[i * 32 + j] ^= hash[j];
+      }
+    }
+    return 0;
+  },
+  iO: function (data, dC) {
+    var hi = new T();
+    var iK = new T().jN(this.ha, dC);
+    var hO = data;
+    var eQ = new Array(hi.hL());
+    hi.fc(iK, 0, iK.length);
+    hi.fc(hO, 0, hO.length);
+    hi.gN(eQ, 0);
+    return eQ;
+  },
+  er: function (data, cZ, bZ) {
+    var dC = this.jR(cZ);
+    var eQ = this.iO(data, dC);
+    var iE = new L(CommonUtils.bytesToHex(cZ), 16);
+    var e = new L(CommonUtils.bytesToHex(eQ), 16);
+    var k = null;
+    var r = null;
+    var s = null;
+    do {
+      do {
+        var ib = this.jT();
+        k = ib.gk;
+        r = e.add(ib.x1).cl(this.eB);
+      } while (r.equals(L.ZERO) || r.add(k).equals(this.eB));
+      s = iE.add(L.ONE).fZ(this.eB).multiply(k.cv(r.multiply(iE))).cl(this.eB);
+    } while (s.equals(L.ZERO));
+    if (typeof (bZ) != 'undefined' && bZ == true) {
+      var kx = this.kd(r.gv(), s.gv());
+      return kx;
+    } else {
+      var kO = this.fN(r, 32);
+      var jI = this.fN(s, 32);
+      return CommonUtils.hexToBytes(CommonUtils.bytesToHex(kO) + CommonUtils.bytesToHex(jI));
+    }
+  },
+  ga: function (data, cB, dC, bZ) {
+    var eQ = this.iO(data, dC);
+    var r = null;
+    var s = null;
+    if (typeof (bZ) != 'undefined' && bZ == true) {
+      var cN = this.le(cB);
+      var hW = new Array(cN["r"].length);
+      var iF = new Array(cN["s"].length);
+      K(cN["r"], 0, hW, 0, cN["r"].length);
+      K(cN["s"], 0, iF, 0, cN["s"].length);
+      r = new L(CommonUtils.bytesToHex(hW), 16);
+      s = new L(CommonUtils.bytesToHex(iF), 16);
+    } else {
+      var dW = CommonUtils.bytesToHex(cB);
+      r = new L(dW.substring(0, 64), 16);
+      s = new L(dW.substring(64), 16);
+    }
+    var hn = this.gZ.kR(CommonUtils.bytesToHex(dC));
+    var e = new L(CommonUtils.bytesToHex(eQ), 16);
+    var t = r.add(s).cl(this.eB);
+    if (t.equals(L.ZERO)) return false;
+    var lB = this.ha.multiply(s).add(hn.multiply(t));
+    var R = e.add(lB.fI().cR()).cl(this.eB);
+    return r.equals(R);
+  },
+  gd: function (dC, data, bZ) {
+    if (dC == null || dC.length == 0 || data == null || data.length == 0) {
+      return null;
+    }
+    var lq = G.jZ(this.gZ, dC);
+    var cL = null;
+    var fA = null;
+    var x2 = null;
+    var y2 = null;
+    var ji = this.jt(this.eC);
+    fA = ji['fb'];
+    var iS = lq.multiply(ji['gk']);
+    x2 = this.fN(iS.fI().cR(), 32);
+    y2 = this.fN(iS.ec().cR(), 32);
+    cL = new Array(data.length);
+    K(data, 0, cL, 0, data.length);
+    var eU = new Array(x2.length + y2.length);
+    K(x2, 0, eU, 0, x2.length);
+    K(y2, 0, eU, x2.length, y2.length);
+    this.iH(eU, cL);
+    var cD = new Array(32);
+    var eP = new T();
+    eP.fc(x2, 0, x2.length);
+    eP.fc(data, 0, data.length);
+    eP.fc(y2, 0, y2.length);
+    eP.gN(cD, 0);
+    if (typeof (bZ) != 'undefined' && bZ == true) {
+      var ln = fA.fI().cR().gv();
+      var kf = fA.ec().cR().gv();
+      var kn = this.kZ(ln, kf, cL, cD);
+      return kn;
+    } else {
+      var dG = this.fN(fA.fI().cR(), 32);
+      var cF = this.fN(fA.ec().cR(), 32);
+      var cw = new Array(97 + cL.length);
+      cw[0] = 0x04;
+      K(dG, 0, cw, 1, dG.length);
+      K(cF, 0, cw, 1 + dG.length, cF.length);
+      if (this.eV === CipherMode.C1C2C3) {
+        K(cL, 0, cw, 1 + dG.length + cF.length, cL.length);
+        K(cD, 0, cw, 1 + dG.length + cF.length + cL.length, cD.length);
+      } else {
+        K(cD, 0, cw, 1 + dG.length + cF.length, cD.length);
+        K(cL, 0, cw, 1 + dG.length + cF.length + cD.length, cL.length);
+      }
+      return cw;
+    }
+  },
+  ht: function (cZ, dH, bZ) {
+    if (cZ == null || cZ.length == 0 || dH == null || dH.length == 0) {
+      return null;
+    }
+    var fA = new Array(64 + 1);
+    var cL = null;
+    var cD = new Array(32);
+    if (typeof (bZ) != 'undefined' && bZ == true) {
+      var cN = this.lh(dH);
+      cL = new Array(cN["cL"].length);
+      for (var i = 0; i < fA.length; i++) {
+        fA[i] = 0;
+      }
+      fA[0] = 0x04;
+      if (cN["dG"].length <= 32) {
+        K(cN["dG"], 0, fA, 1 + (32 - cN["dG"].length), cN["dG"].length);
+      } else {
+        K(cN["dG"], cN["dG"].length - 32, fA, 1, 32);
+      }
+      if (cN["cF"].length <= 32) {
+        K(cN["cF"], 0, fA, 1 + 32 + (32 - cN["cF"].length), cN["cF"].length);
+      } else {
+        K(cN["cF"], cN["cF"].length - 32, fA, 1 + 32, 32);
+      }
+      K(cN["cL"], 0, cL, 0, cL.length);
+      K(cN["cD"], 0, cD, 0, 32);
+    } else {
+      cL = new Array(dH.length - 97);
+      K(dH, 0, fA, 0, 65);
+      if (this.eV === CipherMode.C1C2C3) {
+        K(dH, 65, cL, 0, dH.length - 97);
+        K(dH, dH.length - 32, cD, 0, 32);
+      } else {
+        K(dH, 65, cD, 0, 32);
+        K(dH, 97, cL, 0, dH.length - 97);
+      }
+    }
+    var lg = G.hQ(this.gZ, CommonUtils.bytesToHex(fA));
+    var jc = lg.multiply(new L(CommonUtils.bytesToHex(cZ), 16));
+    var x2 = this.fN(jc.fI().cR(), 32);
+    var y2 = this.fN(jc.ec().cR(), 32);
+    var eU = new Array(x2.length + y2.length);
+    K(x2, 0, eU, 0, x2.length);
+    K(y2, 0, eU, x2.length, y2.length);
+    var jv = new Array(cL.length);
+    K(cL, 0, jv, 0, cL.length);
+    this.iH(eU, cL);
+    if (co(jv, 0, cL, 0, cL.length) == 0) {
+      return null;
+    }
+    var eP = new T();
+    var hash = new Array(32);
+    eP.fc(x2, 0, x2.length);
+    eP.fc(cL, 0, cL.length);
+    eP.fc(y2, 0, y2.length);
+    eP.gN(hash, 0);
+    var hT = CommonUtils.bytesToHex(cD);
+    var ix = CommonUtils.bytesToHex(hash);
+    if (!hT || !ix || hT != ix) {
+      return null;
+    }
+    return cL;
+  },
+  kd: function (r, s) {
+    var fl = r.length + s.length + 4;
+    var ew = [];
+    ew[0] = 0x30;
+    if (fl < 0x80) {
+      ew[1] = fl;
+    } else {
+      var fp = F(fl);
+      var i = 0;
+      while (fp[i] == 0 && i < fp.length) {
+        i++;
+      }
+      ew[1] = 0x80 | (fp.length - i);
+      for (var j = 2; i < fp.length; i++, j++) {
+        ew[j] = fp[i];
+      }
+    }
+    var bZ = new Array(fl + ew.length);
+    var cY = 0;
+    K(ew, 0, bZ, 0, ew.length);
+    cY += ew.length;
+    bZ[cY++] = 0x02;
+    bZ[cY++] = r.length;
+    K(r, 0, bZ, cY, r.length);
+    cY += r.length;
+    bZ[cY++] = 0x02;
+    bZ[cY++] = s.length;
+    K(s, 0, bZ, cY, s.length);
+    cY += s.length;
+    return bZ;
+  },
+  kZ: function (dG, cF, cL, cD) {
+    var fJ = cL.length;
+    var dS = [];
+    if (fJ < 0x80) {
+      dS[0] = 0x04;
+      dS[1] = fJ;
+    } else {
+      dS[0] = 0x04;
+      var gs = F(fJ);
+      var i = 0;
+      while (gs[i] == 0 && i < gs.length) {
+        i++;
+      }
+      dS[1] = 0x80 | (gs.length - i);
+      for (var j = 2; i < gs.length; i++, j++) {
+        dS[j] = gs[i];
+      }
+    }
+    var fl = dG.length + cF.length + cL.length + cD.length + 6 + dS.length;
+    var ew = [];
+    ew[0] = 0x30;
+    if (fl < 0x80) {
+      ew[1] = fl;
+    } else {
+      var fp = F(fl);
+      var i = 0;
+      while (fp[i] == 0 && i < fp.length) {
+        i++;
+      }
+      ew[1] = 0x80 | (fp.length - i);
+      for (var j = 2; i < fp.length; i++, j++) {
+        ew[j] = fp[i];
+      }
+    }
+    var bZ = new Array(fl + ew.length);
+    var cY = 0;
+    K(ew, 0, bZ, 0, ew.length);
+    cY += ew.length;
+    bZ[cY++] = 0x02;
+    bZ[cY++] = dG.length;
+    K(dG, 0, bZ, cY, dG.length);
+    cY += dG.length;
+    bZ[cY++] = 0x02;
+    bZ[cY++] = cF.length;
+    K(cF, 0, bZ, cY, cF.length);
+    cY += cF.length;
+    bZ[cY++] = 0x04;
+    bZ[cY++] = cD.length;
+    K(cD, 0, bZ, cY, cD.length);
+    cY += cD.length;
+    K(dS, 0, bZ, cY, dS.length);
+    cY += dS.length;
+    K(cL, 0, bZ, cY, cL.length);
+    return bZ;
+  },
+  le: function (bZ) {
+    var pos = 0;
+    if (bZ[pos++] != 0x30) {
+      return null;
+    }
+    if ((bZ[pos] & 0xFF) <= 0x7F) {
+      pos++;
+    } else {
+      pos += (bZ[pos] & 0x7F) + 1;
+    }
+    pos++;
+    var fX = bZ[pos];
+    var r = new Array(fX);
+    K(bZ, ++pos, r, 0, fX);
+    pos += fX;
+    pos++;
+    var he = bZ[pos];
+    var s = new Array(he);
+    K(bZ, ++pos, s, 0, he);
+    pos += he;
+    return {
+      'r': r,
+      "s": s
+    };
+  },
+  lh: function (bZ) {
+    var pos = 0;
+    if (bZ[pos++] != 0x30) {
+      return null;
+    }
+    if ((bZ[pos] & 0xFF) <= 0x7F) {
+      pos++;
+    } else {
+      pos += (bZ[pos] & 0x7F) + 1;
+    }
+    pos++;
+    var jk = bZ[pos];
+    var dG = new Array(jk);
+    K(bZ, ++pos, dG, 0, jk);
+    pos += jk;
+    pos++;
+    var iX = bZ[pos];
+    var cF = new Array(iX);
+    K(bZ, ++pos, cF, 0, iX);
+    pos += iX;
+    pos++;
+    var jD = bZ[pos];
+    var cD = new Array(jD);
+    K(bZ, ++pos, cD, 0, jD);
+    pos += jD;
+    pos++;
+    var fJ = 0;
+    if ((bZ[pos] & 0xFF) <= 0x7F) {
+      fJ = bZ[pos] & 0xFF;
+    } else {
+      for (var i = 0, j = (bZ[pos] & 0x7F) - 1; i < (bZ[pos] & 0x7F); i++, j--) {
+        fJ = fJ | ((bZ[pos + i + 1] & 0xFF) << (j * 8));
+      }
+      pos += (bZ[pos] & 0x7F);
+    }
+    var cL = new Array(fJ);
+    K(bZ, ++pos, cL, 0, fJ);
+    pos += fJ;
+    return {
+      'dG': dG,
+      "cF": cF,
+      "cL": cL,
+      "cD": cD
+    };
+  }
+};
+
+function bL() { };
+bL.prototype = {
+  source: function (source) {
+    if (!source) {
+      dB.error("source is empty!");
+      return false;
+    } else {
+      return true;
+    }
+  },
+  fd: function (eS) {
+    if (typeof (eS) == 'undefined') {
+      dB.error("eS type undefined!");
+    } else if (eS instanceof Array) {
+      eS = CommonUtils.bytesToHex(eS);
+    }
+    if (this.ge(eS, "04") && eS.length == 130) {
+      return true;
+    } else {
+      dB.error("eS length error!");
+      return false;
+    }
+  },
+  fo: function (fM) {
+    if (typeof (fM) == 'undefined') {
+      dB.error("fM type undefined!");
+    } else if (fM instanceof Array) {
+      fM = CommonUtils.bytesToHex(fM);
+    }
+    if (fM.length % 2 == 0) {
+      return true;
+    } else {
+      dB.error("fM length error!");
+      return false;
+    }
+  },
+  gp: function (cw) {
+    if (typeof (cw) == 'undefined') {
+      dB.error("cw type undefined!");
+    } else if (cw instanceof Array) {
+      cw = CommonUtils.bytesToHex(cw);
+    }
+    if (this.ge(cw, "04") && cw.length % 2 == 0 && cw.length > 194) {
+      return true;
+    } else if (this.ge(cw, "30") && cw.length % 2 == 0 && cw.length > 216) {
+      return true;
+    } else {
+      dB.error("cw format jw length error!");
+      return false;
+    }
+  },
+  fP: function (er) {
+    if (typeof (er) == 'undefined') {
+      dB.error("er type undefined!");
+    } else if (er instanceof Array) {
+      er = CommonUtils.bytesToHex(er);
+    }
+    if (er.length == 128) {
+      return true;
+    } else if (this.ge(er, "30") && er.length % 2 == 0) {
+      return true;
+    } else {
+      dB.error("er format jw length error!");
+      return false;
+    }
+  },
+  fF: function (key) {
+    if (typeof (key) == 'undefined') {
+      dB.error("key type undefined!");
+    } else if (key instanceof Array) {
+      key = CommonUtils.bytesToHex(key);
+    }
+    if (key.length == 32) {
+      return true;
+    } else {
+      dB.error("key length error!");
+      return false;
+    }
+  },
+  hj: function (cd) {
+    if (typeof (cd) == 'undefined') {
+      dB.error("cd type undefined!");
+    } else if (cd instanceof Array) {
+      cd = CommonUtils.bytesToHex(cd);
+    }
+    if (cd.length == 32) {
+      return true;
+    } else {
+      dB.error("cd length error!");
+      return false;
+    }
+  },
+  hd: function (cw) {
+    if (typeof (cw) == 'undefined') {
+      dB.error("cw type undefined!");
+    } else if (cw instanceof Array) {
+      cw = CommonUtils.bytesToHex(cw);
+    }
+    if (cw && cw.length % 16 == 0) {
+      return true;
+    } else {
+      dB.error("cw format jw length error!");
+      return false;
+    }
+  },
+  ge: function (fL, start) {
+    var reg = new RegExp("^" + start);
+    return reg.test(fL);
+  }
+};
+
+function Sm2Utils(eV, eC) {
+  if (typeof (eV) != 'undefined') {
+    this.eV = eV;
+  } else {
+    this.eV = CipherMode.C1C2C3;
+  }
+  if (typeof (eC) != 'undefined' && CommonUtils.isHexString(eC)) {
+    this.eC = eC;
+  } else {
+    this.eC = null;
+  }
+  this.cw = new aK(this.eV, this.eC);
+  this.smValidate = new bL();
+};
+Sm2Utils.prototype = {
+  generateKeyPair: function () {
+    return this.cw.kX();
+  },
+  getPublicKey: function (kL) {
+    var cZ = CommonUtils.hexToBytes(kL);
+    var dC = this.cw.jR(cZ);
+    return CommonUtils.bytesToHex(dC);
+  },
+  encryptFromText: function (cV, cb) {
+    if (!this.smValidate.fd(cV)) {
+      return null;
+    }
+    if (!this.smValidate.source(cb)) {
+      return null;
+    }
+    var dC = CommonUtils.hexToBytes(cV);
+    var cu = CommonUtils.utf8StrToBytes(cb);
+    var dH = this.cw.gd(dC, cu, false);
+    return CommonUtils.bytesToHex(dH);
+  },
+  decryptToText: function (du, cE) {
+    if (!this.smValidate.fo(du)) {
+      return null;
+    }
+    if (!this.smValidate.gp(cE)) {
+      return null;
+    }
+    var cZ = CommonUtils.hexToBytes(du);
+    var dH = CommonUtils.hexToBytes(cE);
+    var cu = this.cw.ht(cZ, dH, false);
+    return CommonUtils.bytesToUtf8Str(cu);
+  },
+  encryptFromHex: function (cV, dO) {
+    if (!this.smValidate.fd(cV)) {
+      return null;
+    }
+    if (!this.smValidate.source(dO)) {
+      return null;
+    }
+    var dC = CommonUtils.hexToBytes(cV);
+    var cu = CommonUtils.hexToBytes(dO);
+    var dH = this.cw.gd(dC, cu, false);
+    return CommonUtils.bytesToHex(dH);
+  },
+  decryptToHex: function (du, cE) {
+    if (!this.smValidate.fo(du)) {
+      return null;
+    }
+    if (!this.smValidate.gp(cE)) {
+      return null;
+    }
+    var cZ = CommonUtils.hexToBytes(du);
+    var dH = CommonUtils.hexToBytes(cE);
+    var cu = this.cw.ht(cZ, dH, false);
+    return CommonUtils.bytesToHex(cu);
+  },
+  encryptFromData: function (dC, cu) {
+    if (!this.smValidate.fd(dC)) {
+      return null;
+    }
+    if (!this.smValidate.source(cu)) {
+      return null;
+    }
+    return this.cw.gd(dC, cu, false);
+  },
+  decryptToData: function (cZ, dH) {
+    if (!this.smValidate.fo(cZ)) {
+      return null;
+    }
+    if (!this.smValidate.gp(dH)) {
+      return null;
+    }
+    return this.cw.ht(cZ, dH, false);
+  },
+  encryptASN1FromText: function (cV, cb) {
+    if (!this.smValidate.fd(cV)) {
+      return null;
+    }
+    if (!this.smValidate.source(cb)) {
+      return null;
+    }
+    var dC = CommonUtils.hexToBytes(cV);
+    var cu = CommonUtils.utf8StrToBytes(cb);
+    var dH = this.cw.gd(dC, cu, true);
+    return CommonUtils.bytesToHex(dH);
+  },
+  decryptASN1ToText: function (du, cE) {
+    if (!this.smValidate.fo(du)) {
+      return null;
+    }
+    if (!this.smValidate.gp(cE)) {
+      return null;
+    }
+    var cZ = CommonUtils.hexToBytes(du);
+    var dH = CommonUtils.hexToBytes(cE);
+    var cu = this.cw.ht(cZ, dH, true);
+    return CommonUtils.bytesToUtf8Str(cu);
+  },
+  encryptASN1FromHex: function (cV, dO) {
+    if (!this.smValidate.fd(cV)) {
+      return null;
+    }
+    if (!this.smValidate.source(dO)) {
+      return null;
+    }
+    var dC = CommonUtils.hexToBytes(cV);
+    var cu = CommonUtils.hexToBytes(dO);
+    var dH = this.cw.gd(dC, cu, true);
+    return CommonUtils.bytesToHex(dH);
+  },
+  decryptASN1ToHex: function (du, cE) {
+    if (!this.smValidate.fo(du)) {
+      return null;
+    }
+    if (!this.smValidate.gp(cE)) {
+      return null;
+    }
+    var cZ = CommonUtils.hexToBytes(du);
+    var dH = CommonUtils.hexToBytes(cE);
+    var cu = this.cw.ht(cZ, dH, true);
+    return CommonUtils.bytesToHex(cu);
+  },
+  encryptASN1FromData: function (dC, cu) {
+    if (!this.smValidate.fd(dC)) {
+      return null;
+    }
+    if (!this.smValidate.source(cu)) {
+      return null;
+    }
+    return this.cw.gd(dC, cu, true);
+  },
+  decryptASN1ToData: function (cZ, dH) {
+    if (!this.smValidate.fo(cZ)) {
+      return null;
+    }
+    if (!this.smValidate.gp(dH)) {
+      return null;
+    }
+    return this.cw.ht(cZ, dH, true);
+  },
+  signFromText: function (du, cb) {
+    if (!this.smValidate.fo(du)) {
+      return null;
+    }
+    if (!this.smValidate.source(cb)) {
+      return null;
+    }
+    var cZ = CommonUtils.hexToBytes(du);
+    var cu = CommonUtils.utf8StrToBytes(cb);
+    var cB = this.cw.er(cu, cZ, false);
+    return CommonUtils.bytesToHex(cB);
+  },
+  verifySignFromText: function (cV, cb, dW) {
+    if (!this.smValidate.fd(cV)) {
+      return null;
+    }
+    if (!this.smValidate.source(cb)) {
+      return null;
+    }
+    if (!this.smValidate.fP(dW)) {
+      return null;
+    }
+    var dC = CommonUtils.hexToBytes(cV);
+    var cu = CommonUtils.utf8StrToBytes(cb);
+    var cB = CommonUtils.hexToBytes(dW);
+    return this.cw.ga(cu, cB, dC, false);
+  },
+  signFromHex: function (du, dO) {
+    if (!this.smValidate.fo(du)) {
+      return null;
+    }
+    if (!this.smValidate.source(dO)) {
+      return null;
+    }
+    var cZ = CommonUtils.hexToBytes(du);
+    var cu = CommonUtils.hexToBytes(dO);
+    var cB = this.cw.er(cu, cZ, false);
+    return CommonUtils.bytesToHex(cB);
+  },
+  verifySignFromHex: function (cV, dO, dW) {
+    if (!this.smValidate.fd(cV)) {
+      return null;
+    }
+    if (!this.smValidate.source(dO)) {
+      return null;
+    }
+    if (!this.smValidate.fP(dW)) {
+      return null;
+    }
+    var dC = CommonUtils.hexToBytes(cV);
+    var cu = CommonUtils.hexToBytes(dO);
+    var cB = CommonUtils.hexToBytes(dW);
+    return this.cw.ga(cu, cB, dC, false);
+  },
+  signFromData: function (cZ, cu) {
+    if (!this.smValidate.fo(cZ)) {
+      return null;
+    }
+    if (!this.smValidate.source(cu)) {
+      return null;
+    }
+    return this.cw.er(cu, cZ, false);
+  },
+  verifySignFromData: function (dC, cu, cB) {
+    if (!this.smValidate.fd(dC)) {
+      return null;
+    }
+    if (!this.smValidate.source(cu)) {
+      return null;
+    }
+    if (!this.smValidate.fP(cB)) {
+      return null;
+    }
+    return this.cw.ga(cu, cB, dC, false);
+  },
+  signASN1FromText: function (du, cb) {
+    if (!this.smValidate.fo(du)) {
+      return null;
+    }
+    if (!this.smValidate.source(cb)) {
+      return null;
+    }
+    var cZ = CommonUtils.hexToBytes(du);
+    var cu = CommonUtils.utf8StrToBytes(cb);
+    var cB = this.cw.er(cu, cZ, true);
+    return CommonUtils.bytesToHex(cB);
+  },
+  verifySignASN1FromText: function (cV, cb, dW) {
+    if (!this.smValidate.fd(cV)) {
+      return null;
+    }
+    if (!this.smValidate.source(cb)) {
+      return null;
+    }
+    if (!this.smValidate.fP(dW)) {
+      return null;
+    }
+    var dC = CommonUtils.hexToBytes(cV);
+    var cu = CommonUtils.utf8StrToBytes(cb);
+    var cB = CommonUtils.hexToBytes(dW);
+    return this.cw.ga(cu, cB, dC, true);
+  },
+  signASN1FromHex: function (du, dO) {
+    if (!this.smValidate.fo(du)) {
+      return null;
+    }
+    if (!this.smValidate.source(dO)) {
+      return null;
+    }
+    var cZ = CommonUtils.hexToBytes(du);
+    var cu = CommonUtils.hexToBytes(dO);
+    var cB = this.cw.er(cu, cZ, true);
+    return CommonUtils.bytesToHex(cB);
+  },
+  verifySignASN1FromHex: function (cV, dO, dW) {
+    if (!this.smValidate.fd(cV)) {
+      return null;
+    }
+    if (!this.smValidate.source(dO)) {
+      return null;
+    }
+    if (!this.smValidate.fP(dW)) {
+      return null;
+    }
+    var dC = CommonUtils.hexToBytes(cV);
+    var cu = CommonUtils.hexToBytes(dO);
+    var cB = CommonUtils.hexToBytes(dW);
+    return this.cw.ga(cu, cB, dC, true);
+  },
+  signASN1FromData: function (cZ, cu) {
+    if (!this.smValidate.fo(cZ)) {
+      return null;
+    }
+    if (!this.smValidate.source(cu)) {
+      return null;
+    }
+    return this.cw.er(cu, cZ, true);
+  },
+  verifySignASN1FromData: function (dC, cu, cB) {
+    if (!this.smValidate.fd(dC)) {
+      return null;
+    }
+    if (!this.smValidate.source(cu)) {
+      return null;
+    }
+    if (!this.smValidate.fP(cB)) {
+      return null;
+    }
+    return this.cw.ga(cu, cB, dC, true);
+  }
+};
+var Sm3Utils = {
+  smValidate: new bL(),
+  encryptFromText: function (cb) {
+    if (!this.smValidate.source(cb)) {
+      return null;
+    }
+    var cu = CommonUtils.utf8StrToBytes(cb);
+    var eQ = this.encryptFromData(cu);
+    return CommonUtils.bytesToHex(eQ);
+  },
+  encryptFromHex: function (dO) {
+    if (!this.smValidate.source(dO)) {
+      return null;
+    }
+    var cu = CommonUtils.hexToBytes(dO);
+    var eQ = this.encryptFromData(cu);
+    return CommonUtils.bytesToHex(eQ);
+  },
+  encryptFromData: function (cu) {
+    if (!this.smValidate.source(cu)) {
+      return null;
+    }
+    var eQ = new Array(32);
+    var jy = new T();
+    jy.fc(cu, 0, cu.length);
+    jy.gN(eQ, 0);
+    return eQ;
+  }
+};
+var Sm4Utils = {
+  ECB: {
+    smValidate: new bL(),
+    encryptFromText: function (cb, dz) {
+      if (!this.smValidate.source(cb)) {
+        return null;
+      }
+      if (!this.smValidate.fF(dz)) {
+        return null;
+      }
+      var cK = CommonUtils.hexToBytes(dz);
+      var cu = CommonUtils.utf8StrToBytes(cb);
+      var dH = this.encryptFromData(cu, cK);
+      return CommonUtils.bytesToHex(dH);
+    },
+    encryptFromHex: function (dO, dz) {
+      if (!this.smValidate.source(dO)) {
+        return null;
+      }
+      if (!this.smValidate.fF(dz)) {
+        return null;
+      }
+      var cK = CommonUtils.hexToBytes(dz);
+      var cu = CommonUtils.hexToBytes(dO);
+      var dH = this.encryptFromData(cu, cK);
+      return CommonUtils.bytesToHex(dH);
+    },
+    encryptFromData: function (cu, cK) {
+      if (!this.smValidate.source(cu)) {
+        return null;
+      }
+      if (!this.smValidate.fF(cK)) {
+        return null;
+      }
+      try {
+        var dV = new aP();
+        return dV.lk(cu, cK);
+      } catch (e) {
+        dB.error(e);
+        return null;
+      }
+    },
+    decryptToText: function (cE, dz) {
+      if (!this.smValidate.hd(cE)) {
+        return null;
+      }
+      if (!this.smValidate.fF(dz)) {
+        return null;
+      }
+      var cK = CommonUtils.hexToBytes(dz);
+      var dH = CommonUtils.hexToBytes(cE);
+      var cu = this.decryptToData(dH, cK);
+      return CommonUtils.bytesToUtf8Str(cu);
+    },
+    decryptToHex: function (cE, dz) {
+      if (!this.smValidate.hd(cE)) {
+        return null;
+      }
+      if (!this.smValidate.fF(dz)) {
+        return null;
+      }
+      var cK = CommonUtils.hexToBytes(dz);
+      var dH = CommonUtils.hexToBytes(cE);
+      var cu = this.decryptToData(dH, cK);
+      return CommonUtils.bytesToHex(cu);
+    },
+    decryptToData: function (dH, cK) {
+      if (!this.smValidate.hd(dH)) {
+        return null;
+      }
+      if (!this.smValidate.fF(cK)) {
+        return null;
+      }
+      try {
+        var dV = new aP();
+        return dV.kY(dH, cK);
+      } catch (e) {
+        dB.error(e);
+        return null;
+      }
+    }
+  },
+  CBC: {
+    smValidate: new bL(),
+    encryptFromText: function (cb, dz, dZ) {
+      if (!this.smValidate.source(cb)) {
+        return null;
+      }
+      if (!this.smValidate.fF(dz)) {
+        return null;
+      }
+      if (!this.smValidate.hj(dZ)) {
+        return null;
+      }
+      var cK = CommonUtils.hexToBytes(dz);
+      var fq = CommonUtils.hexToBytes(dZ);
+      var cu = CommonUtils.utf8StrToBytes(cb);
+      var dH = this.encryptFromData(cu, cK, fq);
+      return CommonUtils.bytesToHex(dH);
+    },
+    encryptFromHex: function (dO, dz, dZ) {
+      if (!this.smValidate.source(dO)) {
+        return null;
+      }
+      if (!this.smValidate.fF(dz)) {
+        return null;
+      }
+      if (!this.smValidate.hj(dZ)) {
+        return null;
+      }
+      var cK = CommonUtils.hexToBytes(dz);
+      var fq = CommonUtils.hexToBytes(dZ);
+      var cu = CommonUtils.hexToBytes(dO);
+      var dH = this.encryptFromData(cu, cK, fq);
+      return CommonUtils.bytesToHex(dH);
+    },
+    encryptFromData: function (cu, cK, fq) {
+      if (!this.smValidate.source(cu)) {
+        return null;
+      }
+      if (!this.smValidate.fF(cK)) {
+        return null;
+      }
+      if (!this.smValidate.hj(fq)) {
+        return null;
+      }
+      try {
+        var dV = new aP();
+        return dV.ll(cu, cK, fq);
+      } catch (e) {
+        dB.error(e);
+        return null;
+      }
+    },
+    decryptToText: function (cE, dz, dZ) {
+      if (!this.smValidate.hd(cE)) {
+        return null;
+      }
+      if (!this.smValidate.fF(dz)) {
+        return null;
+      }
+      if (!this.smValidate.hj(dZ)) {
+        return null;
+      }
+      var cK = CommonUtils.hexToBytes(dz);
+      var fq = CommonUtils.hexToBytes(dZ);
+      var dH = CommonUtils.hexToBytes(cE);
+      var cu = this.decryptToData(dH, cK, fq);
+      return CommonUtils.bytesToUtf8Str(cu);
+    },
+    decryptToHex: function (cE, dz, dZ) {
+      if (!this.smValidate.hd(cE)) {
+        return null;
+      }
+      if (!this.smValidate.fF(dz)) {
+        return null;
+      }
+      if (!this.smValidate.hj(dZ)) {
+        return null;
+      }
+      var cK = CommonUtils.hexToBytes(dz);
+      var fq = CommonUtils.hexToBytes(dZ);
+      var dH = CommonUtils.hexToBytes(cE);
+      var cu = this.decryptToData(dH, cK, fq);
+      return CommonUtils.bytesToHex(cu);
+    },
+    decryptToData: function (dH, cK, fq) {
+      if (!this.smValidate.hd(dH)) {
+        return null;
+      }
+      if (!this.smValidate.fF(cK)) {
+        return null;
+      }
+      if (!this.smValidate.hj(fq)) {
+        return null;
+      }
+      try {
+        var dV = new aP();
+        return dV.kD(dH, cK, fq);
+      } catch (e) {
+        dB.error(e);
+        return null;
+      }
+    }
+  }
+};
+
+// export {
+//   Sm3Utils,
+//   Sm4Utils,
+//   Sm2Utils
+// }
+
+Sm3Utils,
+  Sm4Utils,
+  Sm2Utils

+ 169 - 0
100548/plugins/entry-igw.js

@@ -0,0 +1,169 @@
+// entry-igw  begin
+!function (a, b) { "function" != typeof define || !define.amd && !define.cmd || window.requirejs ? b(a, !0) : define("js/wwopen/jsapi/jweixin-1.0.0", [], function () { return b(a) }) }(this, function (a, b) {
+    function c(b, c, d) { a.WeixinJSBridge ? (E.debug && alert("invoke method:" + b), WeixinJSBridge.invoke(b, e(c), function (a) { h(b, a, d) })) : k(b, d) } function d(b, c, d) { a.WeixinJSBridge ? WeixinJSBridge.on(b, function (a) { d && d.trigger && d.trigger(a), h(b, a, c) }) : d ? k(b, d) : k(b, c) } function e(a) {
+        return a = a || {}, a.appId = E.appId, a.verifyAppId = E.appId, a.verifySignType = "sha1",
+            a.verifyTimestamp = E.timestamp + "", a.verifyNonceStr = E.nonceStr, a.verifySignature = E.signature, a
+    } function f(a) { return { timeStamp: a.timestamp + "", nonceStr: a.nonceStr, "package": a["package"], paySign: a.paySign, signType: a.signType || "SHA1" } } function g(a) {
+        return a.postalCode = a.addressPostalCode, delete a.addressPostalCode, a.provinceName = a.proviceFirstStageName, delete a.proviceFirstStageName, a.cityName = a.addressCitySecondStageName, delete a.addressCitySecondStageName, a.countryName = a.addressCountiesThirdStageName,
+            delete a.addressCountiesThirdStageName, a.detailInfo = a.addressDetailInfo, delete a.addressDetailInfo, a
+    } function h(a, b, c) {
+        "openEnterpriseChat" == a && (b.errCode = b.err_code), delete b.err_code, delete b.err_desc, delete b.err_detail; var d = b.errMsg; d || (d = b.err_msg, delete b.err_msg, d = i(a, d), b.errMsg = d), c = c || {}, c._complete && (c._complete(b), delete c._complete), d = b.errMsg || "", E.debug && !c.isInnerInvoke && alert(JSON.stringify(b)); var e = d.indexOf(":"), f = d.substring(e + 1); switch (f) {
+            case "ok": c.success && c.success(b); break;
+            case "cancel": c.cancel && c.cancel(b); break; default: c.fail && c.fail(b)
+        }c.complete && c.complete(b)
+    } function i(a, b) {
+        var c = a, d = s[c]; d && (c = d); var e = "ok"; if (b) {
+            var f = b.indexOf(":"); e = b.substring(f + 1), "confirm" == e && (e = "ok"), "failed" == e && (e = "fail"), -1 != e.indexOf("failed_") && (e = e.substring(7)), -1 != e.indexOf("fail_") && (e = e.substring(5)), e = e.replace(/_/g, " "), e = e.toLowerCase(), ("access denied" == e || "no permission to execute" == e) && (e = "permission denied"), "config" == c && "function not exist" == e && (e = "ok"), "" == e && (e = "fail");
+        } return b = c + ":" + e
+    } function j(a) { if (a) { for (var b = 0, c = a.length; c > b; ++b) { var d = a[b], e = r[d]; e && (a[b] = e) } return a } } function k(a, b) { if (!(!E.debug || b && b.isInnerInvoke)) { var c = s[a]; c && (a = c), b && b._complete && delete b._complete, console.log('"' + a + '",', b || "") } } function l(a) { if (!x && !E.debug) { new Image; D.appId = E.appId, D.initTime = C.initEndTime - C.initStartTime, D.preVerifyTime = C.preVerifyEndTime - C.preVerifyStartTime } } function m() { return (new Date).getTime() } function n(b) {
+        y && (a.WeixinJSBridge ? b() : t.addEventListener && t.addEventListener("WeixinJSBridgeReady", b, !1));
+    } function o() { H.invoke || (H.invoke = function (b, c, d) { a.WeixinJSBridge && (E.debug && alert("invoke method:" + b), WeixinJSBridge.invoke(b, e(c), d)) }, H.on = function (b, c) { a.WeixinJSBridge && (E.debug && alert("invoke method:" + b), WeixinJSBridge.on(b, c)) }) } function p(b) { if ("undefined" == typeof b) return b; for (var c = "", d = new Uint8Array(b), e = d.byteLength, f = 0; e > f; f++)c += String.fromCharCode(d[f]); return a.btoa(c) } function q(b) {
+        if ("undefined" == typeof b) return b; for (var c = a.atob(b), d = c.length, e = new Uint8Array(d), f = 0; d > f; f++)e[f] = c.charCodeAt(f);
+        return e.buffer
+    } if (!a.jWeixin) {
+        var r = {
+            config: "preVerifyJSAPI", onMenuShareTimeline: "menu:share:timeline", onMenuShareAppMessage: "menu:share:appmessage", onMenuShareWechat: "menu:share:wechat", onMenuShareQQ: "menu:share:qq", onMenuShareWeibo: "menu:share:weiboApp", onMenuShareQZone: "menu:share:QZone", previewImage: "imagePreview", getLocation: "geoLocation", openProductSpecificView: "openProductViewWithPid", addCard: "batchAddCard", openCard: "batchViewCard", chooseWXPay: "getBrandWCPayRequest", openEnterpriseRedPacket: "getRecevieBizHongBaoRequest",
+            startSearchBeacons: "startMonitoringBeacons", stopSearchBeacons: "stopMonitoringBeacons", onSearchBeacons: "onBeaconsInRange", consumeAndShareCard: "consumedShareCard", openAddress: "editAddress", getUserOpenID: "getUserOpenID", getBrandWCPayRequest: "getBrandWCPayRequest", notifyNativeEvent: "notifyNativeEvent"
+        }, s = function () { var a = {}; for (var b in r) a[r[b]] = b; return a }(), t = a.document, u = t.title, v = navigator.userAgent.toLowerCase(), w = navigator.platform.toLowerCase(), x = (!(!w.match("mac") && !w.match("win")), -1 != v.indexOf("wxdebugger")), y = -1 != v.indexOf("wxwork"), z = -1 != v.indexOf("android"), A = -1 != v.indexOf("iphone") || -1 != v.indexOf("ipad"), B = function () {
+            var a = v.match(/wxwork\/(\d+\.\d+\.\d+)/) || v.match(/wxwork\/(\d+\.\d+)/); return a ? a[1] : ""
+        }(), C = { initStartTime: m(), initEndTime: 0, preVerifyStartTime: 0, preVerifyEndTime: 0 }, D = { version: "1.0.0", appId: "", initTime: 0, preVerifyTime: 0, networkType: "", isPreVerifyOk: 1, systemType: A ? 1 : z ? 2 : -1, clientVersion: B, url: encodeURIComponent(location.href) }, E = {}, F = { _completes: [] }, G = { state: 0, data: {} }; n(function () { C.initEndTime = m() }); var H = {
+            config: function (a) {
+                E = a, k("config", a); var b = E.check === !1 ? !1 : !0; n(function () {
+                    if (b) c(r.config, {
+                        verifyJsApiList: j(E.jsApiList)
+                    }, function () { F._complete = function (a) { C.preVerifyEndTime = m(), G.state = 1, G.data = a }, F.success = function (a) { D.isPreVerifyOk = 0 }, F.fail = function (a) { F._fail ? F._fail(a) : G.state = -1 }; var a = F._completes; return a.push(function () { l() }), F.complete = function (b) { for (var c = 0, d = a.length; d > c; ++c)a[c](); F._completes = [] }, F }()), C.preVerifyStartTime = m(); else { G.state = 1; for (var a = F._completes, d = 0, e = a.length; e > d; ++d)a[d](); F._completes = [] }
+                }), E.beta && o()
+            }, ready: function (a) {
+                0 != G.state ? a() : (F._completes.push(a),
+                    !y && E.debug && a())
+            }, error: function (a) { -1 == G.state ? a(G.data) : F._fail = a }, checkJsApi: function (a) { var b = function (a) { var b = a.checkResult; for (var c in b) { var d = s[c]; d && (b[d] = b[c], delete b[c]) } return a }; c("checkJsApi", { jsApiList: j(a.jsApiList) }, function () { return a._complete = function (a) { if (z) { var c = a.checkResult; c && (a.checkResult = JSON.parse(c)) } a = b(a) }, a }()) }, onMenuShareTimeline: function (a) {
+                d(r.onMenuShareTimeline, {
+                    complete: function () {
+                        c("shareTimeline", {
+                            title: a.title || u, desc: a.title || u, img_url: a.imgUrl || "",
+                            link: a.link || location.href, type: a.type || "link", data_url: a.dataUrl || ""
+                        }, a)
+                    }
+                }, a)
+            }, onMenuShareAppMessage: function (a) { d(r.onMenuShareAppMessage, { complete: function () { c("sendAppMessage", { title: a.title || u, desc: a.desc || "", link: a.link || location.href, img_url: a.imgUrl || "", type: a.type || "link", data_url: a.dataUrl || "" }, a) } }, a) }, onMenuShareWechat: function (a) {
+                d(r.onMenuShareWechat, {
+                    complete: function () {
+                        c("shareWechat", {
+                            title: a.title || u, desc: a.desc || "", link: a.link || location.href, img_url: a.imgUrl || "", type: a.type || "link",
+                            data_url: a.dataUrl || ""
+                        }, a)
+                    }
+                }, a)
+            }, onMenuShareQQ: function (a) { d(r.onMenuShareQQ, { complete: function () { c("shareQQ", { title: a.title || u, desc: a.desc || "", img_url: a.imgUrl || "", link: a.link || location.href }, a) } }, a) }, onMenuShareWeibo: function (a) { d(r.onMenuShareWeibo, { complete: function () { c("shareWeiboApp", { title: a.title || u, desc: a.desc || "", img_url: a.imgUrl || "", link: a.link || location.href }, a) } }, a) }, onMenuShareQZone: function (a) {
+                d(r.onMenuShareQZone, {
+                    complete: function () {
+                        c("shareQZone", {
+                            title: a.title || u, desc: a.desc || "",
+                            img_url: a.imgUrl || "", link: a.link || location.href
+                        }, a)
+                    }
+                }, a)
+            }, startRecord: function (a) { a = a || {}, c("startRecord", { duration: a.duration, sampleRate: a.sampleRate, numberOfChannels: a.numberOfChannels, encodeBitRate: a.encodeBitRate, format: a.format, frameSize: a.frameSize, audioSource: a.audioSource }, a) }, stopRecord: function (a) { c("stopRecord", {}, a) }, onVoiceRecordEnd: function (a) { d("onVoiceRecordEnd", a) }, playVoice: function (a) { c("playVoice", { localId: a.localId }, a) }, pauseVoice: function (a) {
+                c("pauseVoice", {
+                    localId: a.localId
+                }, a)
+            }, stopVoice: function (a) { c("stopVoice", { localId: a.localId }, a) }, onVoicePlayEnd: function (a) { d("onVoicePlayEnd", a) }, uploadVoice: function (a) { c("uploadVoice", { localId: a.localId, isShowProgressTips: 0 == a.isShowProgressTips ? 0 : 1 }, a) }, downloadVoice: function (a) { c("downloadVoice", { serverId: a.serverId, isShowProgressTips: 0 == a.isShowProgressTips ? 0 : 1 }, a) }, translateVoice: function (a) { c("translateVoice", { localId: a.localId, isShowProgressTips: 0 == a.isShowProgressTips ? 0 : 1 }, a) }, chooseImage: function (a) {
+                c("chooseImage", {
+                    scene: "1|2", count: a.count || 9, sizeType: a.sizeType || ["original", "compressed"], sourceType: a.sourceType || ["album", "camera"], quality: a.quality || .8
+                }, function () { return a._complete = function (a) { if (z) { var b = a.localIds; b && (a.localIds = JSON.parse(b)) } }, a }())
+            }, previewImage: function (a) { c(r.previewImage, { current: a.current, urls1: a.urls1, urls: a.urls, hidePreviewMenuList: a.hidePreviewMenuList }, a) }, uploadImage: function (a) { c("uploadImage", { localId: a.localId, isShowProgressTips: 0 == a.isShowProgressTips ? 0 : 1 }, a) }, downloadImage: function (a) {
+                c("downloadImage", { serverId: a.serverId, isShowProgressTips: 0 == a.isShowProgressTips ? 0 : 1 }, a)
+            }, getLocalImgData: function (a) { c("getLocalImgData", { localId: a.localId, success: a.success }, a) }, previewFile: function (a) { c("previewFile", { url: a.url, name: a.name, size: a.size, hidePreviewMenuList: a.hidePreviewMenuList }, a) }, getNetworkType: function (a) {
+                var b = function (a) {
+                    var b = a.errMsg; a.errMsg = "getNetworkType:ok"; var c = a.subtype; if (delete a.subtype, c) a.networkType = c; else {
+                        var d = b.indexOf(":"), e = b.substring(d + 1); switch (e) {
+                            case "wifi": case "edge": case "wwan": a.networkType = e; break; default: a.errMsg = "getNetworkType:fail"
+                        }
+                    } return a
+                }; c("getNetworkType", {}, function () { return a._complete = function (a) { a = b(a) }, a }())
+            }, openLocation: function (a) { c("openLocation", { latitude: a.latitude, longitude: a.longitude, name: a.name || "", address: a.address || "", scale: a.scale || 28, infoUrl: a.infoUrl || "" }, a) }, getLocation: function (a) { a = a || {}, c(r.getLocation, { type: a.type || "wgs84" }, function () { return a._complete = function (a) { delete a.type }, a }()) }, hideOptionMenu: function (a) {
+                c("hideOptionMenu", {}, a)
+            }, showOptionMenu: function (a) { c("showOptionMenu", {}, a) }, closeWindow: function (a) { a = a || {}, c("closeWindow", {}, a) }, hideMenuItems: function (a) { c("hideMenuItems", { menuList: a.menuList }, a) }, showMenuItems: function (a) { c("showMenuItems", { menuList: a.menuList }, a) }, hideAllNonBaseMenuItem: function (a) { c("hideAllNonBaseMenuItem", {}, a) }, showAllNonBaseMenuItem: function (a) { c("showAllNonBaseMenuItem", {}, a) }, scanQRCode: function (a) {
+                a = a || {}, c("scanQRCode", {
+                    needResult: a.needResult || 0, scanType: a.scanType || ["qrCode", "barCode"]
+                }, function () { return a._complete = function (a) { if (A) { var b = a.resultStr; if (b) { var c = JSON.parse(b); a.resultStr = c && c.scan_code && c.scan_code.scan_result } } }, a }())
+            }, openAddress: function (a) { c(r.openAddress, {}, function () { return a._complete = function (a) { a = g(a) }, a }()) }, openProductSpecificView: function (a) { c(r.openProductSpecificView, { pid: a.productId, view_type: a.viewType || 0, ext_info: a.extInfo }, a) }, addCard: function (a) {
+                for (var b = a.cardList, d = [], e = 0, f = b.length; f > e; ++e) {
+                    var g = b[e], h = {
+                        card_id: g.cardId, card_ext: g.cardExt
+                    }; d.push(h)
+                } c(r.addCard, { card_list: d }, function () { return a._complete = function (a) { var b = a.card_list; if (b) { b = JSON.parse(b); for (var c = 0, d = b.length; d > c; ++c) { var e = b[c]; e.cardId = e.card_id, e.cardExt = e.card_ext, e.isSuccess = e.is_succ ? !0 : !1, delete e.card_id, delete e.card_ext, delete e.is_succ } a.cardList = b, delete a.card_list } }, a }())
+            }, chooseCard: function (a) {
+                c("chooseCard", {
+                    app_id: E.appId, location_id: a.shopId || "", sign_type: a.signType || "SHA1", card_id: a.cardId || "", card_type: a.cardType || "", card_sign: a.cardSign, time_stamp: a.timestamp + "",
+                    nonce_str: a.nonceStr
+                }, function () { return a._complete = function (a) { a.cardList = a.choose_card_info, delete a.choose_card_info }, a }())
+            }, openCard: function (a) { for (var b = a.cardList, d = [], e = 0, f = b.length; f > e; ++e) { var g = b[e], h = { card_id: g.cardId, code: g.code }; d.push(h) } c(r.openCard, { card_list: d }, a) }, consumeAndShareCard: function (a) { c(r.consumeAndShareCard, { consumedCardId: a.cardId, consumedCode: a.code }, a) }, chooseWXPay: function (a) { c(r.chooseWXPay, f(a), a) }, openEnterpriseRedPacket: function (a) {
+                c(r.openEnterpriseRedPacket, f(a), a);
+            }, startSearchBeacons: function (a) { c(r.startSearchBeacons, { ticket: a.ticket }, a) }, stopSearchBeacons: function (a) { c(r.stopSearchBeacons, {}, a) }, onSearchBeacons: function (a) { d(r.onSearchBeacons, a) }, openEnterpriseChat: function (a) { c("openEnterpriseChat", { useridlist: a.userIds, chatname: a.groupName, userIds: a.userIds, groupName: a.groupName }, a) }, getUserOpenID: function (a) { c("fetchWXOpenIdRequest", {}, a) }, getBrandWCPayRequest: function (a) {
+                c("getBrandWCPayRequest", {
+                    appId: a.appId, partnerId: a.partnerId, openId: a.openId, timeStamp: a.timeStamp,
+                    nonceStr: a.nonceStr, "package": a["package"], signType: a.signType, paySign: a.paySign
+                }, a)
+            }, onHistoryBack: function (a) { d("onHistoryBack", { complete: function () { if ("function" == typeof a) try { var b = a(); if (b === !1 || 0 === b) return !1 } catch (d) { } return c("historyBack"), !1 } }) }, notifyNativeEvent: function (a) { c("notifyNativeEvent", { event: a.event, resultCode: a.resultCode, data: a.data }, a) }, openBluetoothAdapter: function (a) { c("openBluetoothAdapter", {}, a) }, closeBluetoothAdapter: function (a) { c("closeBluetoothAdapter", {}, a) }, getBluetoothAdapterState: function (a) {
+                c("getBluetoothAdapterState", {}, a)
+            }, onBluetoothAdapterStateChange: function (a) { d("onBluetoothAdapterStateChange", { complete: function (b) { "function" == typeof a && a(b) } }) }, startBluetoothDevicesDiscovery: function (a) { c("startBluetoothDevicesDiscovery", { services: a.services || [], allowDuplicatesKey: a.allowDuplicatesKey || !1, interval: a.interval || 0 }, a) }, stopBluetoothDevicesDiscovery: function (a) { c("stopBluetoothDevicesDiscovery", {}, a) }, getBluetoothDevices: function (a) {
+                c("getBluetoothDevices", {}, {
+                    success: function (b) {
+                        if (b && b.devices) for (var c = 0; c < b.devices.length; c++)b.devices[c].advertisData = q(b.devices[c].advertisData), b.devices[c].serviceData = q(b.devices[c].serviceData); "function" == typeof a.success && a.success(b)
+                    }, fail: a.fail, complete: a.complete
+                })
+            }, onBluetoothDeviceFound: function (a) { d("onBluetoothDeviceFound", { complete: function (b) { if (b && b.devices) for (var c = 0; c < b.devices.length; c++)b.devices[c].advertisData = q(b.devices[c].advertisData); "function" == typeof a && a(b ? b.devices : b) } }) }, getConnectedBluetoothDevices: function (a) {
+                c("getConnectedBluetoothDevices", { services: a.services }, a)
+            }, createBLEConnection: function (a) { c("createBLEConnection", { deviceId: a.deviceId }, a) }, closeBLEConnection: function (a) { c("closeBLEConnection", { deviceId: a.deviceId }, a) }, onBLEConnectionStateChange: function (a) { d("onBLEConnectionStateChange", { complete: function (b) { "function" == typeof a && a(b) } }) }, getBLEDeviceServices: function (a) { c("getBLEDeviceServices", { deviceId: a.deviceId }, a) }, readBLECharacteristicValue: function (a) {
+                c("readBLECharacteristicValue", {
+                    deviceId: a.deviceId,
+                    serviceId: a.serviceId, characteristicId: a.characteristicId
+                }, a)
+            }, getBLEDeviceCharacteristics: function (a) { c("getBLEDeviceCharacteristics", { deviceId: a.deviceId, serviceId: a.serviceId }, a) }, writeBLECharacteristicValue: function (a) { "object" == typeof a && a.value && (a.value = p(a.value)), c("writeBLECharacteristicValue", { deviceId: a.deviceId, serviceId: a.serviceId, characteristicId: a.characteristicId, value: a.value }, a) }, notifyBLECharacteristicValueChange: function (a) {
+                c("notifyBLECharacteristicValueChange", {
+                    deviceId: a.deviceId,
+                    serviceId: a.serviceId, characteristicId: a.characteristicId, state: a.state
+                }, a)
+            }, onBLECharacteristicValueChange: function (a) { d("onBLECharacteristicValueChange", { complete: function (b) { b && b.value && (b.value = q(b.value)), "function" == typeof a && a(b) } }) }, startBeaconDiscovery: function (a) { c("startBeaconDiscovery", { uuids: a.uuids }, a) }, stopBeaconDiscovery: function (a) { c("stopBeaconDiscovery", {}, a) }, getBeacons: function (a) { c("getBeacons", {}, a) }, onBeaconUpdate: function (a) {
+                d("onBeaconUpdate", {
+                    complete: function (b) {
+                        "function" == typeof a && a(b);
+                    }
+                })
+            }, onBeaconServiceChange: function (a) { d("onBeaconServiceChange", { complete: function (b) { "function" == typeof a && a(b) } }) }, startWifi: function (a) { c("startWifi", {}, a) }, stopWifi: function (a) { c("stopWifi", {}, a) }, connectWifi: function (a) { var b = { SSID: a.SSID, BSSID: a.BSSID }; a.hasOwnProperty("password") && (b.password = a.password), c("connectWifi", b, a) }, getWifiList: function (a) { c("getWifiList", {}, a) }, onGetWifiList: function (a) { d("onGetWifiList", { complete: function (b) { "function" == typeof a && a(b) } }) }, onWifiConnected: function (a) {
+                d("onWifiConnected", { complete: function (b) { "function" == typeof a && a(b) } })
+            }, getConnectedWifi: function (a) { c("getConnectedWifi", {}, a) }, setClipboardData: function (a) { c("setClipboardData", { data: a.data }, a) }, getClipboardData: function (a) { c("getClipboardData", {}, a) }, onNetworkStatusChange: function (a) { d("onNetworkStatusChange", { complete: function (b) { "function" == typeof a && a(b) } }) }, onLocationChange: function (a) { d("auto:location:report", { complete: function (b) { "function" == typeof a && a(b) } }) }, onUserCaptureScreen: function (a) {
+                d("onUserCaptureScreen", { complete: function (b) { "function" == typeof a && a(b) } })
+            }, startRecordVoiceBuffer: function (a) { c("startRecordVoiceBuffer", { maxDuration: a.maxDuration }, a) }, stopRecordVoiceBuffer: function (a) { c("stopRecordVoiceBuffer", {}, a) }, onRecordBufferReceived: function (a) { d("onRecordBufferReceived", { complete: function (b) { "function" == typeof a && a(b) } }) }
+        }; return b && (a.wx = a.jWeixin = H), H
+    }
+}), function (a) {
+    function b(a, b) { } a.encodeURIComponent; try {
+        a.wwperf = {
+            config: function (c) {
+                function d() {
+                    try {
+                        a.WeixinJSBridge && "complete" === g.readyState && a.setTimeout(e, 0);
+                    } catch (d) { return b(d, c) }
+                } function e() {
+                    try {
+                        if (i) return; i = !0; var d = -1; f.navigation && null != f.navigation.redirectCount && (d = f.navigation.redirectCount); var e = -1; if ("function" == typeof f.getEntries) { var g = f.getEntries(); e = 0; for (var j = g.length - 1; j >= 0; j--)"resource" == g[j].entryType && (e += 1) } a.WeixinJSBridge.invoke("innerSaveWebPerformance", {
+                            perf_data: JSON.stringify({
+                                env: c, url: a.location.href, redirect_count: d, resource_count: e, dns_time: Math.max(0, h.domainLookupEnd - h.domainLookupStart), connect_time: Math.max(0, h.connectEnd - h.connectStart),
+                                request_time: Math.max(0, h.responseEnd - h.requestStart), loading_time: Math.max(0, h.domLoading - h.navigationStart), interactive_time: Math.max(0, h.domInteractive - h.navigationStart), complete_time: Math.max(0, h.domComplete - h.navigationStart), log_time: Math.floor(+new Date / 1e3)
+                            })
+                        }, function () { })
+                    } catch (k) { return b(k, c) }
+                } var f = a.performance, g = a.document, h = f.timing, i = !1; try {
+                    var j = a.navigator.userAgent.toLowerCase(); if (!j.match("wxwork")) return; a.WeixinJSBridge ? d() : g.addEventListener("WeixinJSBridgeReady", d, !1), "complete" === g.readyState ? d() : a.addEventListener("load", d, !1);
+                } catch (k) { return b(k, c) }
+            }
+        }
+    } catch (c) { return b(c) }
+}(this);
+
+
+igwApp = { config: function (e, n) { wx.config({ beta: !0, debug: !1, appId: "ww4d11a39991ebffdc", timestamp: "1608692903", nonceStr: "XKIvykvwOuAeIbl", signature: "ad0c077e6b5fbfe0c9e5394703d8262a3bc21fc3", jsApiList: e }), wx.ready(function () { wx.invoke("agentConfig", { agentid: "1000548", corpid: "ww4d11a39991ebffdc", timestamp: (new Date).valueOf() / 1e3, nonceStr: "", signature: "" }, function (e) { console.log("entry-agentConfig:", e), "agentConfig:ok" != e.err_msg ? n(null) : n(wx) }) }) } };
+
+// entry-igw  end

+ 615 - 0
100548/plugins/entry-igwAuth.js

@@ -0,0 +1,615 @@
+/**
+ * @Description: 将数据加密后存储到 sessionStorage
+ * @Params:
+ *   - sessionStorageKey (String): 存储的键名
+ *   - sessionStorageValue (Any): 需要加密存储的值
+ * @Return: void
+ */
+function setStorageEncryptData(sessionStorageKey, sessionStorageValue) {
+    if (!sessionStorageKey || sessionStorageValue === undefined) {
+        console.error("Invalid parameters for setStorageEncryptData");
+        return;
+    }
+    try {
+        const encryptData = CryptoJS.AES.encrypt(
+            JSON.stringify(sessionStorageValue),
+            secretKey
+        ).toString();
+        sessionStorage.setItem(sessionStorageKey, encryptData);
+    } catch (error) {
+        console.error("Error encrypting data:", error);
+    }
+}
+var wx_code = "",
+    ticket = "", //票据
+    accessToken = "",
+    userInfo = {}, //用户信息
+    AppInfo = {}, //应用参数
+    deviceInfo = {}, //设备信息
+    errorCode = null, //错误码
+    responseText = "", //错误提示
+    rootDirLocation = ""; //本地文件路劲
+
+// 1. 注册程序,获取设备信息等
+/**
+ * handleReady
+ * @description  wx.config => agentConfig 执行微信授权、注册应用
+ * @returns {返回类型} 返回描述
+ * @since 2023年10月11日 15:31:18
+ */
+function handleReady() {
+    const jsApiList = [
+        "IPW",
+        "multiWindows_open",
+        "multiWindows_close",
+        "multiWindows_subscribe",
+        "multiWindows_publish",
+        "multiWindows_finish",
+        "chooseImage",
+        "scanQRCode",
+        "hideOptionMenu",
+        "shareWechatMessage",
+        "shareAppMessage",
+        "startAutoLBS",
+        "stopAutoLBS",
+        "onLocationChange",
+        "onMenuShareAppMessage",
+        "onMenuShareWechat",
+        "previewFile",
+        "openChatWithMsg",
+        "ext_Database_Open",
+        "ext_Database_Exec",
+        "ext_Database_Query",
+        "ext_Database_Close",
+        "ext_ISCP_Init",
+        "ext_ISCP_ConnectService",
+        "ext_ISCP_RhConfig",
+        "ext_ISCP_GetLocalPort",
+        "ext_ISCP_RhConnectCtrl",
+        "ext_ISCP_RhConnState",
+        "ext_ISCP_RhLocalPortCtrl",
+        "ext_ISCP_Close",
+        "ext_ISCP_Status",
+        "ext_screenControl_direction",
+        "getLocation",
+        "getZipAppDirectory",
+        "multiWindows_open",
+        "ext_DeviceInfo_GetInfo",
+        "ext_DeviceInfo_version",
+        "getAuthCode",
+        "key",
+        "setFloatWindow", //开启浮窗
+        "openChatWithMsg", //会话框
+        "shareAppMessage", //分享
+        "getZipAppDirectory", //获取h5包路径
+        "multiWindows_startWidget", //打开应用 2.0
+        "multiWindows_open", //打开窗口 2.0
+        'ext_FileManager_AppList',//获取应用缓存
+        'ext_Intent_Dial',//打电话
+    ]
+    wx.config({
+        beta: true, // 调用wx.invoke形式的接口值时,该值必须为true。
+        debug: false, // 开启调试模式,调用的所有api的返回值会在客户端alert出来,若要查看传入的参数,可以在pc端打开,参数信息会通过log打出,仅在pc端时才会打印。
+        appId: AppInfo.corpid, // 必填,政务微信的cropID
+        timestamp: "1608692903", // 必填,生成签名的时间戳
+        nonceStr: "XKIvykvwOuAeIbl", // 必填,生成签名的随机串
+        signature: "ad0c077e6b5fbfe0c9e5394703d8262a3bc21fc3", // 必填,签名,见附录1
+        jsApiList, // 必填,需要使用的JS接口列表,所有JS接口列表见附录2
+    });
+    return new Promise((resolve, reject) => {
+        wx.ready(function () {
+            console.log("准备:wx.config: ready");
+            wx.onHistoryBack(function (res) {
+                return true;
+            });
+            wx.invoke(
+                "agentConfig",
+                {
+                    agentid: AppInfo.agentid, // 必填,企业应用的agentid
+                    corpid: AppInfo.corpid, // 必填,企业微信的corpid
+                    timestamp: new Date().valueOf() / 1000, // 必填,生成签名的时间戳,int类型, 如
+                    nonceStr: "", // 必填,生成签名的随机串
+                    signature: "", // 必填,签名,见附录5
+                },
+                function (res) {
+                    if (res.err_msg != "agentConfig:ok") {
+                        responseText = res.err_msg || "";
+                        return reject(4002);
+                    }
+                    wx.invoke("ext_DeviceInfo_GetInfo", { data: {} }, function (res) {
+                        if (res.err_msg === "ext_DeviceInfo_GetInfo:ok") {
+                            //成功处理
+                            deviceInfo = { ...res };
+                            sessionStorage.setItem("IPW_KEY", "939847C35AFF0A67");
+                        }
+
+                    });
+                    return resolve();
+                }
+            );
+            window.uexOnload && window.uexOnload(0);
+        });
+
+    });
+}
+
+
+/**
+ * getAuthCode
+ * @desc 获取单点登录企业微信code
+ * try catch 包裹, 如果新单点登录能获取wx_code 则使用新单点登录,否则使用URL参数获取
+ * @since 2023年09月27日 16:14:50
+ */
+async function getAuthCode(variable) {
+    try {
+        // isAndroid()
+        let code = await getAuthCodeNew();
+        return code;
+    } catch (error) {
+        console.log("单点登录失败,使用URL参数获取", error)
+    }
+    let query = window.location.search.substring(1);
+    let vars = query.split("&");
+    console.log("单点登录获取code失败,使用微信跳转换取code", vars)
+    for (let i = 0; i < vars.length; i++) {
+        var pair = vars[i].split("=");
+        if (pair[0] == variable) {
+            return pair[1];
+        }
+    }
+    return "";
+}
+/**
+ *  获取i国网的code(授权码) 替换之前getWxCode()需要 重定向页面获取wx_code
+ */
+function getAuthCodeNew() {
+    return new Promise((resolve, reject) => {
+        wx.ready(function () {
+            wx.invoke(
+                "getAuthCode",
+                {
+                    response_type: 'code', //固定值
+                    scope: 'snsapi_base' //固定值
+                },
+                function (res) {
+                    if (res.err_msg === 'getAuthCode:ok') {
+                        wx_code = res.code;
+                        resolve(res.code)
+                    } else {
+                        reject(res)
+                    }
+
+                }
+            );
+        });
+
+    });
+}
+function getWxCode() {
+    let sURL = AppInfo.url_wxcode;
+    sURL += "appid=" + AppInfo.corpid;
+    sURL +=
+        "&redirect_uri=" + encodeURIComponent("zipapp://local.host/index.html");
+    sURL += "&response_type=code";
+    sURL += "&scope=SCOPE";
+    sURL += "&state=STATE";
+    sURL += "&agentid=" + AppInfo.agentid;
+    sURL += "#wechat_redirect";
+    location.href = sURL;
+}
+
+/**
+ * getIscPort
+ * @desc 建立isc安全链接
+ * @returns {Promise<String>} 安全链接端口号
+ * @since 2023年09月27日 16:34:55
+ */
+function getIscPort() {
+    return new Promise((resolve, reject) => {
+        wx.invoke(
+            "ext_ISCP_Init",
+            {
+                // 初始化交互安全平台
+                data: {
+                    iscpIP: AppInfo.iscpIP,
+                },
+            },
+            function (res) {
+                console.log("=======================建立安全链接", res);
+                if (res.err_msg === "ext_ISCP_Init:ok") {
+                    var para = {
+                        ip: AppInfo.ip, //安全交互平台互联网ip,从对接方获取
+                        port: AppInfo.iscpPort, //安全交互平台互联网port,从对接方获取
+                        user: AppInfo.user, //当前登录用户id,可写死
+                        appid: AppInfo.appId, //需要向安全交互平台申请
+                        iscpIP: AppInfo.iscpIP, //链路唯一标识,自己生成(建议赋值为AgentID)
+                    };
+                    wx.invoke(
+                        "ext_ISCP_ConnectService",
+                        {
+                            // 建立安全交互平台链接
+                            data: para,
+                        },
+                        function (res) {
+                            if (res.err_msg === "ext_ISCP_ConnectService:ok") {
+                                let _data = {
+                                    ip: AppInfo.baseUrlIp,
+                                    port: AppInfo.baseUrlPort,
+                                    iscpIP: AppInfo.iscpIP,
+                                    appid: AppInfo.appId,
+                                };
+                                wx.invoke(
+                                    "ext_ISCP_GetLocalPort",
+                                    {
+                                        // 转换端口
+                                        data: _data,
+                                    },
+                                    function (res) {
+                                        // '939847C35AFF0A67'
+
+                                        if (res.err_msg === "ext_ISCP_GetLocalPort:ok") {
+                                            AppInfo.result = res.result;
+                                            sessionStorage.setItem("IPW_ISCP_PORT", AppInfo.result);
+                                            // TyEvent4005.end();
+                                            console.log("=======ext_ISCP_GetLocalPort:ok", res);
+                                            resolve(res.result);
+                                            wx.invoke(
+                                                "getZipAppDirectory",
+                                                {
+                                                    type: "APP_ROOT_DIR",
+                                                },
+                                                function (res) {
+                                                    console.log("getZipAppDirectory end", res);
+                                                    if (res.err_msg === "getZipAppDirectory:ok") {
+                                                        rootDirLocation = res.directory;
+                                                        sessionStorage.setItem(
+                                                            "ROOT_DIR_LOCATION",
+                                                            res.directory
+                                                        );
+                                                    } else {
+                                                        console.log("getZipAppDirectory end 获取本地路径失败:", res)
+                                                    }
+                                                }
+                                            );
+                                        } else {
+                                            responseText = JSON.stringify(res);
+                                            reject(40055);
+                                        }
+                                    }
+                                );
+                            } else {
+                                responseText = JSON.stringify(res);
+                                reject(4004);
+                            }
+                        }
+                    );
+                } else {
+                    responseText = JSON.stringify(res);
+                    reject(4003);
+                }
+            }
+        );
+    })
+}
+
+/**
+ *  getIscPortBefore
+ * @desc 建立isc安全链接2
+ * @returns {Promise<String>} 安全链接端口号2
+ * @since 2025年29月27日 16:34:55
+ */
+
+function getIscPortBefore() {
+    // 打印当前应用参数
+    console.log("开始建立安全链接AppInfo:", AppInfo);
+
+    // 1. 获取 acl_id_list,优先取 AppInfo.aclIdList,否则默认 [1]
+    const aclIdList = AppInfo.aclIdList || [1];
+
+    // 2. 获取 appId,agentid,iscpIP,iscpPort,ip,sport
+    const appId = AppInfo.appId || "ipw";
+    const agentid = AppInfo.agentid;
+    const iscpIP = AppInfo.iscpIP;
+    const iscpPort = AppInfo.iscpPort;
+    const ip = AppInfo.ip;
+    const sport = AppInfo.iscpPort;
+
+    // 3. 组装 businessServiceInfoList,每个 acl_id 对应一个 businessInfo
+    const businessServiceInfoList = aclIdList.map(acl_id => ({
+        gateway_id: agentid, // 微应用唯一标识
+        acl_id, // 业务交互的id 
+        businessInfo: {
+            sip: AppInfo.baseUrlIp, // 业务交互的ip                            填 222.212.254.69?
+            sport: AppInfo.baseUrlPort // 业务交互端口                        填 20016?
+        }
+    }));
+
+    // 4. 组装 gatewayServiceInfoList,包含所有 acl_id
+    const gatewayServiceInfoList = [
+        {
+            gatewayInfo: {
+                ip: AppInfo.ip, // 安全接入网关ip地址             填: 222.212.254.69?
+                port: AppInfo.iscpPort, // 安全接入网关端口           填 20016?
+                resource: {
+                    acl_id_list: aclIdList, // 业务id集合     填 [1]?
+                    appId: appId // 资源名                    填 "ipw"?
+                },
+                type: 2 // 固定值                             填2?
+                // sslProfile 可选,后面动态添加
+            },
+            gateway_id: agentid // 微应用唯一标识            填 "ipw"?
+        }
+    ];
+
+    // 5. 如果 AppInfo.sslProfile 存在,添加到 gatewayInfo
+    if (AppInfo.sslProfile) {
+        gatewayServiceInfoList[0].gatewayInfo.sslProfile = AppInfo.sslProfile;
+    }
+
+
+    let dataParsms = {
+        businessServiceInfoList: businessServiceInfoList, // 业务交互配置
+        gatewayServiceInfoList: gatewayServiceInfoList // 网关配置
+    }
+
+    console.log("组装好的参数 dataParsms:", dataParsms);
+
+    // 6. 调用微信接口建立安全链接
+    return new Promise((resolve, reject) => {
+        wx.invoke(
+            "ext_ISCP_RhConfig",
+            {
+                data: dataParsms // 传入组装好的参数
+            },
+            function (res) {
+                // 打印返回结果
+                console.log("=======================融合版安全接入网关链接res", res);
+                if (true) { //res.err_msg === "ext_ISCP_RhConfig:ok"
+                    // resolve(res.result);
+                    wx.invoke("ext_ISCP_RhConnectCtrl", {
+                        data: {
+                            "gatewayServiceId": agentid,
+                            "connCtrlType": 1
+                        }
+                    }, function (res) {
+                        console.log("2ISCP 融合版 链接或断开 网关控制接口:", res);
+                        // res.err_msg === "ext_ISCP_RhConnectCtrl:ok"
+                        if (true) {
+                            // 成功处理
+                            resolve(res.result);
+                        } else {
+                            responseText = JSON.stringify(res);
+                            reject(40056);
+                        }
+
+                    });
+
+                    // 获取本地端口
+                    // wx.invoke("ext_ISCP_RhLocalPortCtrl", {
+                    //     data: {
+                    //         "gatewayServiceId": 1,
+                    //         "connCtrlType": "1"
+                    //     }
+                    // }, function (res) {
+                    //     console.log("22hLocalPort融合版安全接入网关链接成功Ctrl:", res);
+                    //     resolve(res.result);
+                    // })
+
+                } else {
+                    responseText = JSON.stringify(res);
+                    console.log("融合版安全接入网关失败:", responseText);
+                    // reject(40057);
+                }
+
+
+            }
+        );
+    });
+}
+
+
+
+
+
+
+// 获取密钥信息
+function getIsolationdmc() {
+    return new Promise((resolve, reject) => {
+        $.ajax({
+            type: "GET",
+            url: "http://127.0.0.1:" + AppInfo.result + "/test.txt",
+            success: function (res) {
+                //更改路径之后接口返回的加密串末尾多了2个空格,导致无法解密,手动去掉
+                if (res) {
+                    var words = res.split(",");
+                    var myWords = mydecrypt(words[0], words[1].trim());
+                    resolve(myWords);
+                } else {
+                    responseText = JSON.stringify(res);
+                    reject(4006);
+                }
+            },
+            error: function (err) {
+                console.log("生成秘钥失败:", err)
+                responseText = JSON.stringify(err);
+                reject(4006);
+            },
+        });
+    });
+}
+
+/**
+ * handleLogin
+ * @desc 用户单点登录
+ * 生产地址:https://id.sgcc.com.cn:10443/igwmobile/proxy/getUserByIgwCode
+ * UAT地址:https://igw.isgcc.net:18443/proxy/getUserByIgwCode
+ * @param {String} code - 第二部注册的code
+ * @param {String} envType - 环境类型, prod 生产,uat 测试
+ * @returns {Promise<string>} 用户信息加密串
+ * @since 2023年09月27日 16:42:56
+ */
+function handleLogin(code, envType) {
+    if (['production', 'uat'].indexOf(envType) === -1) return;
+    // 执行登录
+    const URI_MAPPER = {
+        production: 'https://id.sgcc.com.cn:10443/igwmobile/proxy/getUserByIgwCode',
+        uat: 'https://igw.isgcc.net:18443/proxy/getUserByIgwCode'
+    };
+    // 获取地址
+    const url = URI_MAPPER[envType];
+
+    return new Promise((resolve, reject) => {
+        const data = {
+            CODE: code,
+            appId: AppInfo.agentid
+        };
+        $.ajax({
+            type: 'POST',
+            contentType: 'application/json;charset=UTF-8', //必须有
+            data: JSON.stringify(data),
+            dataType: 'json',
+            url: url,
+            success: function (res) {
+                const { code, message = '', data } = res;
+                if (code === '100001') {
+                    // console.log('#IGW: handle-login ok : ', data);
+                    resolve(data);
+                } else {
+                    console.log('#IGW: handle-login error : ', message);
+                    reject(3001);
+                }
+            },
+            error: function (err) {
+                reject(3001);
+            }
+        });
+    });
+}
+
+
+
+//通过安全交互平台认证之后调后端接口获取用户信息
+function getUser() {
+    if (!AppInfo.result) {
+        alert("请先获取交互平台信息");
+        return;
+    }
+    var url = "http://127.0.0.1:" + AppInfo.result + "/igw-isc/isc/ipw";
+    return new Promise((resolve, reject) => {
+        var params = {
+            serviceTicket: "",//ticket 新版不传
+            nameCode: nameCode
+        };
+        $.ajax({
+            type: "post",
+            url: url,
+            data: JSON.stringify(params),
+            contentType: "application/json",
+            dataType: "json",
+            success: function (response) {
+                console.log("getUser:", response)
+                //token
+                sessionStorage.setItem(
+                    "IPW_UC_TOKEN",
+                    response.data.ipwToken.resultValue.value
+                );
+
+                // ! need delete
+                //isc用户信息
+                setStorageEncryptData("IPW_ISC_ACCOUNTINFO_SECRET", response.data.iscInfo);
+                sessionStorage.setItem(
+                    "IPW_ISC_ACCOUNTINFO",
+                    JSON.stringify(response.data.iscInfo)
+                );
+
+                // TyEvent4007.end();
+                // TyEvenGetUserOther.end();
+                resolve({
+                    userId: response.data.iscInfo.userId,
+                    account: response.data.iscInfo.account,
+                });
+            },
+            error: function (response) {
+                console.log("===============getUser response", response)
+                let tempCode;
+                if (response.responseJSON && response.responseJSON.code) {
+                    if (response.responseJSON.code === -1) {
+                        tempCode = 1001;
+                        response.responseText = "serviceTicket参数不能为空"
+                    } else {
+                        //3002 应该是response.responseJSON.code赋予的 
+                        tempCode = response.responseJSON.code;
+                    }
+
+                    // TyEvenGetUserOther.fail();
+                } else {
+                    // TyEvent4007.fail();
+                    tempCode = 4007;
+                    //4007的响应体 特殊处理
+                    responseText = JSON.stringify(response);
+                    reject(tempCode);
+                }
+                responseText = response.responseText
+                    ? response.responseText
+                    : response.status
+                        ? response.status
+                        : "";
+                reject(tempCode);
+            },
+        });
+    });
+}
+
+// 统一登录入口
+async function onLogin(env) {
+    //igw相关参数赋值
+    AppInfo = {
+        agentid: env.VUE_APP_AGENTID,
+        corpid: env.VUE_APP_CORPID,
+        isc_appid: env.VUE_APP_ISCAPPID,
+        isc_secret: env.VUE_APP_ISCSECRET,
+        ip: env.VUE_APP_IP,
+        iscpPort: env.VUE_APP_ISCPPORT,
+        iscpIP: env.VUE_APP_TSCPIP,
+        user: env.VUE_APP_USER,
+        baseUrlIp: env.VUE_APP_BASEURLIP,
+        baseUrlPort: env.VUE_APP_BASEURLPORT,
+        appId: env.VUE_APP_APPID,
+        url_wxcode: env.VUE_APP_URL_WXCODE,
+        url_ticket: env.VUE_APP_URL_TICKET,
+        url_accesstoken: env.VUE_APP_URL_ACCESSTOKEN,
+        url_userinfo: env.VUE_APP_URL_USERINFO,
+        result: "",
+        url_serve_user: env.VUE_APP_SERVICE_USER
+    };
+
+    return new Promise(async (resolve, reject) => {
+        try {
+            // 1. 注册程序,获取设备信息等
+            await handleReady();
+            // 2. 获取code
+            wx_code = await getAuthCode("code");
+            if (wx_code) {
+                // 3 .建立安全链接
+                await getIscPortBefore();
+                AppInfo.result = await getIscPort();
+                //获取密钥信息
+                const decryptedMq = await getIsolationdmc();
+                sessionStorage.setItem("YDZY_APP_ISOLATIONDMC", decryptedMq);
+
+                //登录 获取加密信息 
+                // userInfo = await getUser();
+                // 加密的用户信息
+                const encryptedUserInfo = await handleLogin(wx_code, env.NODE_ENV);
+                resolve(encryptedUserInfo);
+            } else {
+                //获取wxcode
+                getWxCode();
+            }
+
+        } catch (error) {
+            errorCode = error;
+            reject(errorCode);
+        }
+    });
+}

+ 703 - 0
100548/plugins/entry-igwConfigs.js

@@ -0,0 +1,703 @@
+import { getStorageDecryptData, setStorageEncryptData } from "@/utils/request";
+var wx_code = "",
+  ticket = "", //票据
+  accessToken = "",
+  userInfo = {}, //用户信息
+  AppInfo = {}, //应用参数
+  deviceInfo = {}, //设备信息
+  errorCode = null, //错误码
+  responseText = "", //错误提示
+  rootDirLocation = ""; //本地文件路劲
+async function onLogin(env) {
+
+  //igw相关参数赋值
+  AppInfo = {
+    agentid: env.VUE_APP_AGENTID,
+    corpid: env.VUE_APP_CORPID,
+    isc_appid: env.VUE_APP_ISCAPPID,
+    isc_secret: env.VUE_APP_ISCSECRET,
+    ip: env.VUE_APP_IP,
+    iscpPort: env.VUE_APP_ISCPPORT,
+    iscpIP: env.VUE_APP_TSCPIP,
+    user: env.VUE_APP_USER,
+    baseUrlIp: env.VUE_APP_BASEURLIP,
+    baseUrlPort: env.VUE_APP_BASEURLPORT,
+    appId: env.VUE_APP_APPID,
+    url_wxcode: env.VUE_APP_URL_WXCODE,
+    url_ticket: env.VUE_APP_URL_TICKET,
+    url_accesstoken: env.VUE_APP_URL_ACCESSTOKEN,
+    url_userinfo: env.VUE_APP_URL_USERINFO,
+    result: "",
+  };
+  return new Promise(async (resolve, reject) => {
+    try {
+      //获取设备信息
+      await getDeviceInfo();
+      wx_code = await getParam("code");
+      if (wx_code) {
+        //获取票据
+        ticket = await getTicket();
+        //获取安全交互平台的端口
+        AppInfo.result = await get_ext_ISCP();
+        sessionStorage.setItem("IPW_ISCP_PORT", AppInfo.result);
+        if (env.NODE_ENV == "production") {
+          //生产环境
+          //获取密钥信息
+          var myWords = await getIsolationdmc();
+          sessionStorage.setItem("YDZY_APP_ISOLATIONDMC", myWords);
+          //获取isc用户信息
+          userInfo = await getUser();
+        } else {
+          //uat环境
+          accessToken = await getAccessToken();
+          userInfo = await getUserinfo();
+        }
+        resolve(userInfo);
+      } else {
+        //获取wxcode
+        getWxCode();
+      }
+    } catch (error) {
+      errorCode = error;
+      reject(errorCode);
+    }
+  });
+}
+
+
+async function getParam(variable) {
+  try {
+    // isAndroid()
+    let code = await getAuthCode();
+    console.log("使用单点登录获取code成功", code)
+    return code;
+  } catch (error) {
+    console.log("单点登录失败,使用URL参数获取", error)
+  }
+  let query = window.location.search.substring(1);
+  let vars = query.split("&");
+  console.log("单点登录获取code失败,使用微信跳转换取code", vars)
+  for (let i = 0; i < vars.length; i++) {
+    var pair = vars[i].split("=");
+    if (pair[0] == variable) {
+      return pair[1];
+    }
+  }
+  return "";
+}
+
+/**
+ * 
+ *  获取i国网的code(授权码) 替换之前getWxCode()需要 重定向页面获取wx_code
+ * 
+ */
+function getAuthCode() {
+  return new Promise((resolve, reject) => {
+    wx.ready(function () {
+      wx.invoke(
+        "getAuthCode",
+        {
+          response_type: 'code', //固定值
+          scope: 'snsapi_base' //固定值
+        },
+        function (res) {
+          console.log("wx_code获取 res:", JSON.stringify(res))
+          if (res.err_msg === 'getAuthCode:ok') {
+            wx_code = res.code;
+            resolve(res.code)
+          } else {
+            reject(res)
+          }
+
+        }
+      );
+    });
+
+  });
+}
+
+
+// 获取密钥信息
+function getIsolationdmc() {
+  // const TyEvent4006 = window.TINGYUN.createAutoEvent({
+  //   key: 'getIsolationdmc-4006'
+  // })
+
+  return new Promise((resolve, reject) => {
+    $.ajax({
+      type: "GET",
+      url: "http://127.0.0.1:" + AppInfo.result + "/test.txt",
+      success: function (res) {
+        //更改路径之后接口返回的加密串末尾多了2个空格,导致无法解密,手动去掉
+        if (res) {
+          var words = res.split(",");
+          var myWords = mydecrypt(words[0], words[1].trim());
+          // TyEvent4006.end();
+          resolve(myWords);
+        } else {
+          responseText = JSON.stringify(res);
+          // TyEvent4006.fail();
+          reject(4006);
+        }
+      },
+      error: function (err) {
+        console.log("生成秘钥失败:", err)
+        responseText = JSON.stringify(err);
+        // TyEvent4006.fail();
+        reject(4006);
+      },
+    });
+  });
+}
+
+function isAndroid() {
+  console.log("是安卓:", navigator.userAgent.indexOf("Android") > -1)
+  return navigator.userAgent.indexOf("Android") > -1;
+}
+function getWxCode() {
+  console.log("code:" + wx_code);
+  let sURL = AppInfo.url_wxcode;
+  sURL += "appid=" + AppInfo.corpid;
+  sURL +=
+    "&redirect_uri=" + encodeURIComponent("zipapp://local.host/index.html");
+  sURL += "&response_type=code";
+  sURL += "&scope=SCOPE";
+  sURL += "&state=STATE";
+  sURL += "&agentid=" + AppInfo.agentid;
+  sURL += "#wechat_redirect";
+  location.href = sURL;
+}
+
+async function getTicket() {
+  // const TyEvent4001 = window.TINGYUN.createAutoEvent({
+  //   key: 'getTicket-4001'
+  // })
+
+  return new Promise((resolve, reject) => {
+    var _data = {
+      appId: AppInfo.agentid,
+      CODE: wx_code,
+    };
+    console.log("获取一次性票据:", _data);
+    $.ajax({
+      type: "post",
+      data: JSON.stringify(_data),
+      contentType: "application/json;charset=utf-8",
+      url: AppInfo.url_ticket,
+      dataType: "json",
+      async: true,
+      cache: false,
+      success: function (res) {
+        if (res.data && res.data.ticket) {
+          console.log("获取票据成功:", res);
+          // TyEvent4001.end();
+          resolve(res.data.ticket);
+        } else {
+          //_data参数异常时,上报的res字符串信息
+          // TyEvent4001.fail();
+          console.log("获取一次性票据失败", res);
+          responseText = JSON.stringify(res);
+          reject(4001);
+        }
+      },
+      error: function (err) {
+        console.log("获取一次性票据err", err);
+        // TyEvent4001.fail();
+        //err对象里 无其他信息
+        responseText = '获取一次性票据error';
+        reject(4001);
+      },
+    });
+  });
+}
+
+/** ------------------------分割线 上面步骤为登录,下面步骤为获取用户。根据实际情况选择是否只执行上两步,还是全部流程------------------------**/
+
+// 第三步: 获取接口凭证 accessToken
+// accessToken 2个小时内有效,失效前5分钟能获取到新的两个小时有效期token, 为了减少开销 建议保存到本地
+//
+// 参数说明:(无特殊说明参数可复用)
+// appId 是应用创建生成的 isc appid
+// clientSecret 是应用创建生成的 isc secret
+// 请求头 X-Clientid 是应用创建生成的 isc appid
+// 请求头 X-Acloud-Data-Sign 是对请求参数的 sm3 加密串
+function getAccessToken() {
+  return new Promise((resolve) => {
+    var params = {
+      appId: AppInfo.isc_appid,
+      clientSecret: AppInfo.isc_secret,
+    };
+    params = JSON.stringify(params);
+    var DataSign = Sm3Utils.encryptFromText(params);
+    $.ajax({
+      url: AppInfo.url_accesstoken,
+      headers: {
+        "Content-Type": "application/json;charset=utf8",
+        Accept: "*/*",
+        "X-Clientid": AppInfo.isc_appid,
+        "X-Acloud-Data-Sign": DataSign,
+      },
+      type: "POST",
+      data: params,
+      success: function (res) {
+        if (res.code === "100001") {
+          console.log("accessToken" + res);
+          resolve(res.data.accessToken);
+        }
+      },
+      error: function (err) {
+        console.log(err);
+      },
+    });
+  });
+}
+
+// 第四步:获取用户信息
+// 参数说明:(无特殊说明参数可复用)
+// appId 是应用创建生成的 isc appid
+// service 是应用创建时编辑的应用主页
+// ticket 是第三步返回数据中的 accessToken
+// 请求头 X-Acloud-Data-Sign 是对请求参数的 sm3 加密串
+// 请求头 X-ISC-AccessToken 中的 AccessToken 是第三步返回数据中的 accessToken
+// 注意: 'X-ISC-AccessToken': 'Client ' + AccessToken 的 Client后必须用空格 与 AccessToken隔离
+function getUserinfo() {
+  return new Promise((resolve) => {
+    var params = {
+      appId: AppInfo.isc_appid,
+      service: `zipapp://appid.${AppInfo.agentid}/index.html`,
+      ticket: ticket,
+    };
+    params = JSON.stringify(params);
+    var DataSign = Sm3Utils.encryptFromText(params);
+    $.ajax({
+      url: AppInfo.url_userinfo,
+      headers: {
+        "Content-Type": "application/json;charset=utf8",
+        "X-ISC-AccessToken": "Client " + accessToken,
+        Accept: "*/*",
+        "X-Clientid": AppInfo.isc_appid,
+        "X-Acloud-Data-Sign": DataSign,
+      },
+      type: "POST",
+      data: params,
+      success: function (res) {
+        if (res.code === "100001") {
+          console.log("userinfo" + res);
+          // ! need delete
+          sessionStorage.setItem(
+            "IPW_ISC_ACCOUNTINFO",
+            JSON.stringify(res.data)
+          );
+
+          setStorageEncryptData("IPW_ISC_ACCOUNTINFO_SECRET", res.data);
+          resolve({
+            userId: res.data.userId,
+            account: res.data.account,
+          });
+        }
+      },
+    });
+  });
+}
+
+/** get_ext_ISCP 获取安全交互平台返回信息 */
+function get_ext_ISCP() {
+  console.log("ext_ISCP_Init: iscpIP ---:" + AppInfo.iscpIP);
+  // const TyEvent4003 = window.TINGYUN.createAutoEvent({
+  //   key: 'get-ext-ISCP-4003'
+  // })
+  // const TyEvent4004 = window.TINGYUN.createAutoEvent({
+  //   key: 'ext-ISCP-GetLocalPort-4004'
+  // })
+  // const TyEvent4005 = window.TINGYUN.createAutoEvent({
+  //   key: 'ext-ISCP-GetLocalPort-4005'
+  // })
+
+  return new Promise((resolve, reject) => {
+    // wx.ready(function () {
+    // console.log('准备:wx.config: ready');
+    // wx.invoke(
+    //   'agentConfig',
+    //   {
+    //     agentid: AppInfo.agentid, // 必填,企业应用的agentid
+    //     corpid: AppInfo.corpid, // 必填,企业微信的corpid
+    //     timestamp: new Date().valueOf() / 1000, // 必填,生成签名的时间戳,int类型, 如
+    //     nonceStr: '', // 必填,生成签名的随机串
+    //     signature: '' // 必填,签名,见附录5
+    //   },
+    // function (res) {
+    //   console.log('agentConfig:', res);
+    //   if (res.err_msg != 'agentConfig:ok') {
+    //     reject(4002)
+    //   }
+    console.log("ext_ISCP_Init 初始化参数iscpIP:", AppInfo.iscpIP);
+    wx.invoke(
+      "ext_ISCP_Init",
+      {
+        // 初始化交互安全平台
+        data: {
+          iscpIP: AppInfo.iscpIP,
+        },
+      },
+      function (res) {
+        console.log("ext_ISCP_Init 初始化返回:", res);
+        if (res.err_msg === "ext_ISCP_Init:ok") {
+          // TyEvent4003.end();
+          var para = {
+            ip: AppInfo.ip, //安全交互平台互联网ip,从对接方获取
+            port: AppInfo.iscpPort, //安全交互平台互联网port,从对接方获取
+            user: AppInfo.user, //当前登录用户id,可写死
+            appid: AppInfo.appId, //需要向安全交互平台申请
+            iscpIP: AppInfo.iscpIP, //链路唯一标识,自己生成(建议赋值为AgentID)
+          };
+          console.log("ext_ISCP_ConnectService 建立链接参数: ", para);
+          wx.invoke(
+            "ext_ISCP_ConnectService",
+            {
+              // 建立安全交互平台链接
+              data: para,
+            },
+            function (res) {
+              console.log("ext_ISCP_ConnectService 建立链接返回:", res);
+              if (res.err_msg === "ext_ISCP_ConnectService:ok") {
+                let _data = {
+                  ip: AppInfo.baseUrlIp,
+                  port: AppInfo.baseUrlPort,
+                  iscpIP: AppInfo.iscpIP,
+                  appid: AppInfo.appId,
+                };
+                // TyEvent4004.end();
+                console.log("ext_ISCP_GetLocalPort 转换端口参数:", _data);
+                wx.invoke(
+                  "ext_ISCP_GetLocalPort",
+                  {
+                    // 转换端口
+                    data: _data,
+                  },
+                  function (res) {
+                    console.log("ext_ISCP_GetLocalPort 转换端口返回:", res);
+                    if (res.err_msg === "ext_ISCP_GetLocalPort:ok") {
+                      AppInfo.result = res.result;
+
+                      // TyEvent4005.end();
+                      resolve(res.result);
+                      console.log("**getZipAppDirectory");
+                      wx.invoke(
+                        "getZipAppDirectory",
+                        {
+                          type: "APP_ROOT_DIR",
+                        },
+                        function (res) {
+                          console.log("getZipAppDirectory end", res);
+                          if (res.err_msg === "getZipAppDirectory:ok") {
+                            rootDirLocation = res.directory;
+                            sessionStorage.setItem(
+                              "ROOT_DIR_LOCATION",
+                              res.directory
+                            );
+                          } else {
+                            console.log("getZipAppDirectory end 获取本地路径失败:", res)
+                          }
+                        }
+                      );
+                    } else {
+                      // TyEvent4005.fail();
+                      responseText = JSON.stringify(res);
+                      // responseText = `err_msg:${res.err_msg} - result:${res.result} - exception:${res.exception}`
+                      reject(4005);
+                    }
+                  }
+                );
+              } else {
+                // TyEvent4004.fail();
+                responseText = JSON.stringify(res);
+                // responseText = `err_msg:${res.err_msg} - result:${res.result} - UUID:${res.UUID}`
+                reject(4004);
+              }
+            }
+          );
+        } else {
+          // TyEvent4003.fail();
+          responseText = JSON.stringify(res);
+          reject(4003);
+        }
+      }
+    );
+    // }
+    // );
+    // window.uexOnload && window.uexOnload(0);
+    // });
+
+    // wx.config({
+    //   beta: true, // 调用wx.invoke形式的接口值时,该值必须为true。
+    //   debug: false, // 开启调试模式,调用的所有api的返回值会在客户端alert出来,若要查看传入的参数,可以在pc端打开,参数信息会通过log打出,仅在pc端时才会打印。
+    //   appId: AppInfo.corpid, // 必填,政务微信的cropID
+    //   timestamp: '1608692903', // 必填,生成签名的时间戳
+    //   nonceStr: 'XKIvykvwOuAeIbl', // 必填,生成签名的随机串
+    //   signature: 'ad0c077e6b5fbfe0c9e5394703d8262a3bc21fc3', // 必填,签名,见附录1
+    //   jsApiList: [
+    //     'multiWindows_open',
+    //     'multiWindows_close',
+    //     'multiWindows_subscribe',
+    //     'multiWindows_publish',
+    //     'multiWindows_finish',
+    //     'chooseImage',
+    //     'scanQRCode',
+    //     'hideOptionMenu',
+    //     'shareWechatMessage',
+    //     'shareAppMessage',
+    //     'startAutoLBS',
+    //     'stopAutoLBS',
+    //     'onLocationChange',
+    //     'onMenuShareAppMessage',
+    //     'onMenuShareWechat',
+    //     'previewFile',
+    //     'openChatWithMsg',
+    //     'ext_Database_Open',
+    //     'ext_Database_Exec',
+    //     'ext_Database_Query',
+    //     'ext_Database_Close',
+    //     'ext_ISCP_Init',
+    //     'ext_ISCP_ConnectService',
+    //     'ext_ISCP_GetLocalPort',
+    //     'ext_ISCP_Close',
+    //     'ext_ISCP_Status',
+    //     'ext_screenControl_direction',
+    //     'getLocation',
+    //     "getZipAppDirectory",
+    //     "multiWindows_open",
+    //     "ext_DeviceInfo_GetInfo",
+    //     "ext_DeviceInfo_version"
+    //   ] // 必填,需要使用的JS接口列表,所有JS接口列表见附录2
+    // });
+  });
+}
+
+//通过安全交互平台认证之后调后端接口获取用户信息
+// function getUser() {
+//   if (!AppInfo.result) {
+//     alert('请先获取交互平台信息');
+//     return;
+//   }
+//   var url = 'http://127.0.0.1:' + AppInfo.result + '/yjapp/service/indexToDefect';
+
+//   return new Promise((resolve) => {
+//     var params = {
+//       index: 5,
+//       formData: JSON.stringify({
+//         serviceTicket: ticket
+//       }),
+//       requestURL: '/',
+//       requestMethod: 'GET'
+//     };
+//     $.ajax({
+//       type: 'post',
+//       url: url,
+//       data: params,
+//       success: function (response) {
+//         console.log('Got USER', response.data.userId);
+//         console.log('Got USER', response.data.account);
+//         resolve({
+//           userId: response.data.userId,
+//           account: response.data.account
+//         });
+//       },
+//       error: function (response) {
+//         fail();
+//         console.log('fail:' + response);
+//         console.error(response);
+//       }
+//     });
+//   });
+// }
+
+//通过安全交互平台认证之后调后端接口获取用户信息
+function getUser() {
+  if (!AppInfo.result) {
+    alert("请先获取交互平台信息");
+    return;
+  }
+  // const TyEvent4007 = window.TINGYUN.createAutoEvent({
+  //   key: 'getUser-4007'
+  // })
+  // const TyEvenGetUserOther = window.TINGYUN.createAutoEvent({
+  //   key: 'getUser-other'
+  // })
+
+  var url = "http://127.0.0.1:" + AppInfo.result + "/igw-isc/isc/ipw";
+  return new Promise((resolve, reject) => {
+    var params = {
+      serviceTicket: ticket,
+    };
+    $.ajax({
+      type: "post",
+      url: url,
+      data: JSON.stringify(params),
+      contentType: "application/json",
+      dataType: "json",
+      success: function (response) {
+        //token
+        sessionStorage.setItem(
+          "IPW_UC_TOKEN",
+          response.data.ipwToken.resultValue.value
+        );
+        // ! need delete
+        //isc用户信息
+        sessionStorage.setItem(
+          "IPW_ISC_ACCOUNTINFO",
+          JSON.stringify(response.data.iscInfo)
+        );
+
+        setStorageEncryptData("IPW_ISC_ACCOUNTINFO_SECRET", response.data.iscInfo);
+        // TyEvent4007.end();
+        // TyEvenGetUserOther.end();
+        resolve({
+          userId: response.data.iscInfo.userId,
+          account: response.data.iscInfo.account,
+        });
+      },
+      error: function (response) {
+        console.log("===============getUser response", response)
+        let tempCode;
+        if (response.responseJSON && response.responseJSON.code) {
+          if (response.responseJSON.code === -1) {
+            tempCode = 1001;
+            response.responseText = "serviceTicket参数不能为空"
+          } else {
+            //3002 应该是response.responseJSON.code赋予的 
+            tempCode = response.responseJSON.code;
+          }
+
+          // TyEvenGetUserOther.fail();
+        } else {
+          // TyEvent4007.fail();
+          tempCode = 4007;
+          //4007的响应体 特殊处理
+          responseText = JSON.stringify(response);
+          reject(tempCode);
+        }
+        responseText = response.responseText
+          ? response.responseText
+          : response.status
+            ? response.status
+            : "";
+        reject(tempCode);
+      },
+    });
+  });
+}
+
+//获取设备信息接口
+// 参数
+// 属性	           类型	     说明
+// err_msg	      String	  方法是否成功依据
+// deviceUUID	    String	  设备IMEI(获得不到则返回UUID)
+// deviceOS	      String	  操作系统
+// deviceManufacturers	String	厂商信息
+// deviceType	    String	  设备机型
+// devicePlatform	String	  平台类型
+// isPhone	      String	  设备种类
+// macAddress	    String	  获取mac地址
+// lang	          String	  获取系统语言
+function getDeviceInfo() {
+  // const TyEvent4002 = window.TINGYUN.createAutoEvent({
+  //   key: 'getDevice-4002'
+  // })
+  return new Promise((resolve, reject) => {
+    wx.ready(function () {
+      console.log("准备:wx.config: ready");
+      wx.invoke(
+        "agentConfig",
+        {
+          agentid: AppInfo.agentid, // 必填,企业应用的agentid
+          corpid: AppInfo.corpid, // 必填,企业微信的corpid
+          timestamp: new Date().valueOf() / 1000, // 必填,生成签名的时间戳,int类型, 如
+          nonceStr: "", // 必填,生成签名的随机串
+          signature: "", // 必填,签名,见附录5
+        },
+        function (res) {
+          console.log("agentConfig:", res);
+          if (res.err_msg != "agentConfig:ok") {
+            // TyEvent4002.fail();
+            responseText = res.err_msg || "";
+            reject(4002);
+          }
+          // TyEvent4002.end();
+
+          // const TyEventGetDeviceInfo = window.TINGYUN.createAutoEvent({
+          //   key: 'Wx-TyEventGetDeviceInfo'
+          // })
+          wx.invoke("ext_DeviceInfo_GetInfo", { data: {} }, function (res) {
+            console.log("获取设备信息--" + JSON.stringify(res));
+            console.log("获取设备信息result--" + res.result);
+            if (res.err_msg === "ext_DeviceInfo_GetInfo:ok") {
+              //成功处理
+              deviceInfo = { ...res };
+              // //探针接口方式设置设备ID
+              // window.TINGYUN && window.TINGYUN.setDid(deviceInfo.deviceUUID || 'xxx');
+              // //探针接口方式设置用户ID
+              // window.TINGYUN && window.TINGYUN.setUid(deviceInfo.macAddress || 'xxx.xxx');
+              // TyEventGetDeviceInfo.end();
+              console.log("deviceInfo--" + JSON.stringify(deviceInfo));
+              resolve();
+            }
+            if (res.err_msg === "ext_DeviceInfo_GetInfo:fail") {
+              // TyEventGetDeviceInfo.fail();
+              //失败处理
+              resolve();
+            }
+            if (res.err_msg === "ext_DeviceInfo_GetInfo:cancel") {
+              // TyEventGetDeviceInfo.fail();
+              //取消处理
+              resolve();
+            }
+          });
+        }
+      );
+      window.uexOnload && window.uexOnload(0);
+    });
+    wx.config({
+      beta: true, // 调用wx.invoke形式的接口值时,该值必须为true。
+      debug: false, // 开启调试模式,调用的所有api的返回值会在客户端alert出来,若要查看传入的参数,可以在pc端打开,参数信息会通过log打出,仅在pc端时才会打印。
+      appId: AppInfo.corpid, // 必填,政务微信的cropID
+      timestamp: "1608692903", // 必填,生成签名的时间戳
+      nonceStr: "XKIvykvwOuAeIbl", // 必填,生成签名的随机串
+      signature: "ad0c077e6b5fbfe0c9e5394703d8262a3bc21fc3", // 必填,签名,见附录1
+      jsApiList: [
+        "multiWindows_open",
+        "multiWindows_close",
+        "multiWindows_subscribe",
+        "multiWindows_publish",
+        "multiWindows_finish",
+        "chooseImage",
+        "scanQRCode",
+        "hideOptionMenu",
+        "shareWechatMessage",
+        "shareAppMessage",
+        "startAutoLBS",
+        "stopAutoLBS",
+        "onLocationChange",
+        "onMenuShareAppMessage",
+        "onMenuShareWechat",
+        "previewFile",
+        "openChatWithMsg",
+        "ext_Database_Open",
+        "ext_Database_Exec",
+        "ext_Database_Query",
+        "ext_Database_Close",
+        "ext_ISCP_Init",
+        "ext_ISCP_ConnectService",
+        "ext_ISCP_GetLocalPort",
+        "ext_ISCP_Close",
+        "ext_ISCP_Status",
+        "ext_screenControl_direction",
+        "getLocation",
+        "getZipAppDirectory",
+        "multiWindows_open",
+        "ext_DeviceInfo_GetInfo",
+        "ext_DeviceInfo_version",
+        "getAuthCode",
+      ], // 必填,需要使用的JS接口列表,所有JS接口列表见附录2
+    });
+  });
+}

تفاوت فایلی نمایش داده نمی شود زیرا این فایل بسیار بزرگ است
+ 1 - 0
100548/plugins/entry-jquery-2.2.4.min.js


+ 35 - 0
100548/plugins/entry-jweixin-1.0.0.js

@@ -0,0 +1,35 @@
+!function(a,b){"function"!=typeof define||!define.amd&&!define.cmd||window.requirejs?b(a,!0):define("js/wwopen/jsapi/jweixin-1.0.0",[],function(){return b(a)})}(this,function(a,b){function c(b,c,d){a.WeixinJSBridge?(E.debug&&alert("invoke method:"+b),WeixinJSBridge.invoke(b,e(c),function(a){h(b,a,d)})):k(b,d)}function d(b,c,d){a.WeixinJSBridge?WeixinJSBridge.on(b,function(a){d&&d.trigger&&d.trigger(a),h(b,a,c)}):d?k(b,d):k(b,c)}function e(a){return a=a||{},a.appId=E.appId,a.verifyAppId=E.appId,a.verifySignType="sha1",
+a.verifyTimestamp=E.timestamp+"",a.verifyNonceStr=E.nonceStr,a.verifySignature=E.signature,a}function f(a){return{timeStamp:a.timestamp+"",nonceStr:a.nonceStr,"package":a["package"],paySign:a.paySign,signType:a.signType||"SHA1"}}function g(a){return a.postalCode=a.addressPostalCode,delete a.addressPostalCode,a.provinceName=a.proviceFirstStageName,delete a.proviceFirstStageName,a.cityName=a.addressCitySecondStageName,delete a.addressCitySecondStageName,a.countryName=a.addressCountiesThirdStageName,
+delete a.addressCountiesThirdStageName,a.detailInfo=a.addressDetailInfo,delete a.addressDetailInfo,a}function h(a,b,c){"openEnterpriseChat"==a&&(b.errCode=b.err_code),delete b.err_code,delete b.err_desc,delete b.err_detail;var d=b.errMsg;d||(d=b.err_msg,delete b.err_msg,d=i(a,d),b.errMsg=d),c=c||{},c._complete&&(c._complete(b),delete c._complete),d=b.errMsg||"",E.debug&&!c.isInnerInvoke&&alert(JSON.stringify(b));var e=d.indexOf(":"),f=d.substring(e+1);switch(f){case"ok":c.success&&c.success(b);break;
+case"cancel":c.cancel&&c.cancel(b);break;default:c.fail&&c.fail(b)}c.complete&&c.complete(b)}function i(a,b){var c=a,d=s[c];d&&(c=d);var e="ok";if(b){var f=b.indexOf(":");e=b.substring(f+1),"confirm"==e&&(e="ok"),"failed"==e&&(e="fail"),-1!=e.indexOf("failed_")&&(e=e.substring(7)),-1!=e.indexOf("fail_")&&(e=e.substring(5)),e=e.replace(/_/g," "),e=e.toLowerCase(),("access denied"==e||"no permission to execute"==e)&&(e="permission denied"),"config"==c&&"function not exist"==e&&(e="ok"),""==e&&(e="fail");
+}return b=c+":"+e}function j(a){if(a){for(var b=0,c=a.length;c>b;++b){var d=a[b],e=r[d];e&&(a[b]=e)}return a}}function k(a,b){if(!(!E.debug||b&&b.isInnerInvoke)){var c=s[a];c&&(a=c),b&&b._complete&&delete b._complete,console.log('"'+a+'",',b||"")}}function l(a){if(!x&&!E.debug){new Image;D.appId=E.appId,D.initTime=C.initEndTime-C.initStartTime,D.preVerifyTime=C.preVerifyEndTime-C.preVerifyStartTime}}function m(){return(new Date).getTime()}function n(b){y&&(a.WeixinJSBridge?b():t.addEventListener&&t.addEventListener("WeixinJSBridgeReady",b,!1));
+}function o(){H.invoke||(H.invoke=function(b,c,d){a.WeixinJSBridge&&(E.debug&&alert("invoke method:"+b),WeixinJSBridge.invoke(b,e(c),d))},H.on=function(b,c){a.WeixinJSBridge&&(E.debug&&alert("invoke method:"+b),WeixinJSBridge.on(b,c))})}function p(b){if("undefined"==typeof b)return b;for(var c="",d=new Uint8Array(b),e=d.byteLength,f=0;e>f;f++)c+=String.fromCharCode(d[f]);return a.btoa(c)}function q(b){if("undefined"==typeof b)return b;for(var c=a.atob(b),d=c.length,e=new Uint8Array(d),f=0;d>f;f++)e[f]=c.charCodeAt(f);
+return e.buffer}if(!a.jWeixin){var r={config:"preVerifyJSAPI",onMenuShareTimeline:"menu:share:timeline",onMenuShareAppMessage:"menu:share:appmessage",onMenuShareWechat:"menu:share:wechat",onMenuShareQQ:"menu:share:qq",onMenuShareWeibo:"menu:share:weiboApp",onMenuShareQZone:"menu:share:QZone",previewImage:"imagePreview",getLocation:"geoLocation",openProductSpecificView:"openProductViewWithPid",addCard:"batchAddCard",openCard:"batchViewCard",chooseWXPay:"getBrandWCPayRequest",openEnterpriseRedPacket:"getRecevieBizHongBaoRequest",
+startSearchBeacons:"startMonitoringBeacons",stopSearchBeacons:"stopMonitoringBeacons",onSearchBeacons:"onBeaconsInRange",consumeAndShareCard:"consumedShareCard",openAddress:"editAddress",getUserOpenID:"getUserOpenID",getBrandWCPayRequest:"getBrandWCPayRequest",notifyNativeEvent:"notifyNativeEvent"},s=function(){var a={};for(var b in r)a[r[b]]=b;return a}(),t=a.document,u=t.title,v=navigator.userAgent.toLowerCase(),w=navigator.platform.toLowerCase(),x=(!(!w.match("mac")&&!w.match("win")),-1!=v.indexOf("wxdebugger")),y=-1!=v.indexOf("wxwork"),z=-1!=v.indexOf("android"),A=-1!=v.indexOf("iphone")||-1!=v.indexOf("ipad"),B=function(){
+var a=v.match(/wxwork\/(\d+\.\d+\.\d+)/)||v.match(/wxwork\/(\d+\.\d+)/);return a?a[1]:""}(),C={initStartTime:m(),initEndTime:0,preVerifyStartTime:0,preVerifyEndTime:0},D={version:"1.0.0",appId:"",initTime:0,preVerifyTime:0,networkType:"",isPreVerifyOk:1,systemType:A?1:z?2:-1,clientVersion:B,url:encodeURIComponent(location.href)},E={},F={_completes:[]},G={state:0,data:{}};n(function(){C.initEndTime=m()});var H={config:function(a){E=a,k("config",a);var b=E.check===!1?!1:!0;n(function(){if(b)c(r.config,{
+verifyJsApiList:j(E.jsApiList)},function(){F._complete=function(a){C.preVerifyEndTime=m(),G.state=1,G.data=a},F.success=function(a){D.isPreVerifyOk=0},F.fail=function(a){F._fail?F._fail(a):G.state=-1};var a=F._completes;return a.push(function(){l()}),F.complete=function(b){for(var c=0,d=a.length;d>c;++c)a[c]();F._completes=[]},F}()),C.preVerifyStartTime=m();else{G.state=1;for(var a=F._completes,d=0,e=a.length;e>d;++d)a[d]();F._completes=[]}}),E.beta&&o()},ready:function(a){0!=G.state?a():(F._completes.push(a),
+!y&&E.debug&&a())},error:function(a){-1==G.state?a(G.data):F._fail=a},checkJsApi:function(a){var b=function(a){var b=a.checkResult;for(var c in b){var d=s[c];d&&(b[d]=b[c],delete b[c])}return a};c("checkJsApi",{jsApiList:j(a.jsApiList)},function(){return a._complete=function(a){if(z){var c=a.checkResult;c&&(a.checkResult=JSON.parse(c))}a=b(a)},a}())},onMenuShareTimeline:function(a){d(r.onMenuShareTimeline,{complete:function(){c("shareTimeline",{title:a.title||u,desc:a.title||u,img_url:a.imgUrl||"",
+link:a.link||location.href,type:a.type||"link",data_url:a.dataUrl||""},a)}},a)},onMenuShareAppMessage:function(a){d(r.onMenuShareAppMessage,{complete:function(){c("sendAppMessage",{title:a.title||u,desc:a.desc||"",link:a.link||location.href,img_url:a.imgUrl||"",type:a.type||"link",data_url:a.dataUrl||""},a)}},a)},onMenuShareWechat:function(a){d(r.onMenuShareWechat,{complete:function(){c("shareWechat",{title:a.title||u,desc:a.desc||"",link:a.link||location.href,img_url:a.imgUrl||"",type:a.type||"link",
+data_url:a.dataUrl||""},a)}},a)},onMenuShareQQ:function(a){d(r.onMenuShareQQ,{complete:function(){c("shareQQ",{title:a.title||u,desc:a.desc||"",img_url:a.imgUrl||"",link:a.link||location.href},a)}},a)},onMenuShareWeibo:function(a){d(r.onMenuShareWeibo,{complete:function(){c("shareWeiboApp",{title:a.title||u,desc:a.desc||"",img_url:a.imgUrl||"",link:a.link||location.href},a)}},a)},onMenuShareQZone:function(a){d(r.onMenuShareQZone,{complete:function(){c("shareQZone",{title:a.title||u,desc:a.desc||"",
+img_url:a.imgUrl||"",link:a.link||location.href},a)}},a)},startRecord:function(a){a=a||{},c("startRecord",{duration:a.duration,sampleRate:a.sampleRate,numberOfChannels:a.numberOfChannels,encodeBitRate:a.encodeBitRate,format:a.format,frameSize:a.frameSize,audioSource:a.audioSource},a)},stopRecord:function(a){c("stopRecord",{},a)},onVoiceRecordEnd:function(a){d("onVoiceRecordEnd",a)},playVoice:function(a){c("playVoice",{localId:a.localId},a)},pauseVoice:function(a){c("pauseVoice",{localId:a.localId
+},a)},stopVoice:function(a){c("stopVoice",{localId:a.localId},a)},onVoicePlayEnd:function(a){d("onVoicePlayEnd",a)},uploadVoice:function(a){c("uploadVoice",{localId:a.localId,isShowProgressTips:0==a.isShowProgressTips?0:1},a)},downloadVoice:function(a){c("downloadVoice",{serverId:a.serverId,isShowProgressTips:0==a.isShowProgressTips?0:1},a)},translateVoice:function(a){c("translateVoice",{localId:a.localId,isShowProgressTips:0==a.isShowProgressTips?0:1},a)},chooseImage:function(a){c("chooseImage",{
+scene:"1|2",count:a.count||9,sizeType:a.sizeType||["original","compressed"],sourceType:a.sourceType||["album","camera"],quality:a.quality||.8},function(){return a._complete=function(a){if(z){var b=a.localIds;b&&(a.localIds=JSON.parse(b))}},a}())},previewImage:function(a){c(r.previewImage,{current:a.current,urls1:a.urls1,urls:a.urls,hidePreviewMenuList:a.hidePreviewMenuList},a)},uploadImage:function(a){c("uploadImage",{localId:a.localId,isShowProgressTips:0==a.isShowProgressTips?0:1},a)},downloadImage:function(a){
+c("downloadImage",{serverId:a.serverId,isShowProgressTips:0==a.isShowProgressTips?0:1},a)},getLocalImgData:function(a){c("getLocalImgData",{localId:a.localId,success:a.success},a)},previewFile:function(a){c("previewFile",{url:a.url,name:a.name,size:a.size,hidePreviewMenuList:a.hidePreviewMenuList},a)},getNetworkType:function(a){var b=function(a){var b=a.errMsg;a.errMsg="getNetworkType:ok";var c=a.subtype;if(delete a.subtype,c)a.networkType=c;else{var d=b.indexOf(":"),e=b.substring(d+1);switch(e){
+case"wifi":case"edge":case"wwan":a.networkType=e;break;default:a.errMsg="getNetworkType:fail"}}return a};c("getNetworkType",{},function(){return a._complete=function(a){a=b(a)},a}())},openLocation:function(a){c("openLocation",{latitude:a.latitude,longitude:a.longitude,name:a.name||"",address:a.address||"",scale:a.scale||28,infoUrl:a.infoUrl||""},a)},getLocation:function(a){a=a||{},c(r.getLocation,{type:a.type||"wgs84"},function(){return a._complete=function(a){delete a.type},a}())},hideOptionMenu:function(a){
+c("hideOptionMenu",{},a)},showOptionMenu:function(a){c("showOptionMenu",{},a)},closeWindow:function(a){a=a||{},c("closeWindow",{},a)},hideMenuItems:function(a){c("hideMenuItems",{menuList:a.menuList},a)},showMenuItems:function(a){c("showMenuItems",{menuList:a.menuList},a)},hideAllNonBaseMenuItem:function(a){c("hideAllNonBaseMenuItem",{},a)},showAllNonBaseMenuItem:function(a){c("showAllNonBaseMenuItem",{},a)},scanQRCode:function(a){a=a||{},c("scanQRCode",{needResult:a.needResult||0,scanType:a.scanType||["qrCode","barCode"]
+},function(){return a._complete=function(a){if(A){var b=a.resultStr;if(b){var c=JSON.parse(b);a.resultStr=c&&c.scan_code&&c.scan_code.scan_result}}},a}())},openAddress:function(a){c(r.openAddress,{},function(){return a._complete=function(a){a=g(a)},a}())},openProductSpecificView:function(a){c(r.openProductSpecificView,{pid:a.productId,view_type:a.viewType||0,ext_info:a.extInfo},a)},addCard:function(a){for(var b=a.cardList,d=[],e=0,f=b.length;f>e;++e){var g=b[e],h={card_id:g.cardId,card_ext:g.cardExt
+};d.push(h)}c(r.addCard,{card_list:d},function(){return a._complete=function(a){var b=a.card_list;if(b){b=JSON.parse(b);for(var c=0,d=b.length;d>c;++c){var e=b[c];e.cardId=e.card_id,e.cardExt=e.card_ext,e.isSuccess=e.is_succ?!0:!1,delete e.card_id,delete e.card_ext,delete e.is_succ}a.cardList=b,delete a.card_list}},a}())},chooseCard:function(a){c("chooseCard",{app_id:E.appId,location_id:a.shopId||"",sign_type:a.signType||"SHA1",card_id:a.cardId||"",card_type:a.cardType||"",card_sign:a.cardSign,time_stamp:a.timestamp+"",
+nonce_str:a.nonceStr},function(){return a._complete=function(a){a.cardList=a.choose_card_info,delete a.choose_card_info},a}())},openCard:function(a){for(var b=a.cardList,d=[],e=0,f=b.length;f>e;++e){var g=b[e],h={card_id:g.cardId,code:g.code};d.push(h)}c(r.openCard,{card_list:d},a)},consumeAndShareCard:function(a){c(r.consumeAndShareCard,{consumedCardId:a.cardId,consumedCode:a.code},a)},chooseWXPay:function(a){c(r.chooseWXPay,f(a),a)},openEnterpriseRedPacket:function(a){c(r.openEnterpriseRedPacket,f(a),a);
+},startSearchBeacons:function(a){c(r.startSearchBeacons,{ticket:a.ticket},a)},stopSearchBeacons:function(a){c(r.stopSearchBeacons,{},a)},onSearchBeacons:function(a){d(r.onSearchBeacons,a)},openEnterpriseChat:function(a){c("openEnterpriseChat",{useridlist:a.userIds,chatname:a.groupName,userIds:a.userIds,groupName:a.groupName},a)},getUserOpenID:function(a){c("fetchWXOpenIdRequest",{},a)},getBrandWCPayRequest:function(a){c("getBrandWCPayRequest",{appId:a.appId,partnerId:a.partnerId,openId:a.openId,timeStamp:a.timeStamp,
+nonceStr:a.nonceStr,"package":a["package"],signType:a.signType,paySign:a.paySign},a)},onHistoryBack:function(a){d("onHistoryBack",{complete:function(){if("function"==typeof a)try{var b=a();if(b===!1||0===b)return!1}catch(d){}return c("historyBack"),!1}})},notifyNativeEvent:function(a){c("notifyNativeEvent",{event:a.event,resultCode:a.resultCode,data:a.data},a)},openBluetoothAdapter:function(a){c("openBluetoothAdapter",{},a)},closeBluetoothAdapter:function(a){c("closeBluetoothAdapter",{},a)},getBluetoothAdapterState:function(a){
+c("getBluetoothAdapterState",{},a)},onBluetoothAdapterStateChange:function(a){d("onBluetoothAdapterStateChange",{complete:function(b){"function"==typeof a&&a(b)}})},startBluetoothDevicesDiscovery:function(a){c("startBluetoothDevicesDiscovery",{services:a.services||[],allowDuplicatesKey:a.allowDuplicatesKey||!1,interval:a.interval||0},a)},stopBluetoothDevicesDiscovery:function(a){c("stopBluetoothDevicesDiscovery",{},a)},getBluetoothDevices:function(a){c("getBluetoothDevices",{},{success:function(b){
+if(b&&b.devices)for(var c=0;c<b.devices.length;c++)b.devices[c].advertisData=q(b.devices[c].advertisData),b.devices[c].serviceData=q(b.devices[c].serviceData);"function"==typeof a.success&&a.success(b)},fail:a.fail,complete:a.complete})},onBluetoothDeviceFound:function(a){d("onBluetoothDeviceFound",{complete:function(b){if(b&&b.devices)for(var c=0;c<b.devices.length;c++)b.devices[c].advertisData=q(b.devices[c].advertisData);"function"==typeof a&&a(b?b.devices:b)}})},getConnectedBluetoothDevices:function(a){
+c("getConnectedBluetoothDevices",{services:a.services},a)},createBLEConnection:function(a){c("createBLEConnection",{deviceId:a.deviceId},a)},closeBLEConnection:function(a){c("closeBLEConnection",{deviceId:a.deviceId},a)},onBLEConnectionStateChange:function(a){d("onBLEConnectionStateChange",{complete:function(b){"function"==typeof a&&a(b)}})},getBLEDeviceServices:function(a){c("getBLEDeviceServices",{deviceId:a.deviceId},a)},readBLECharacteristicValue:function(a){c("readBLECharacteristicValue",{deviceId:a.deviceId,
+serviceId:a.serviceId,characteristicId:a.characteristicId},a)},getBLEDeviceCharacteristics:function(a){c("getBLEDeviceCharacteristics",{deviceId:a.deviceId,serviceId:a.serviceId},a)},writeBLECharacteristicValue:function(a){"object"==typeof a&&a.value&&(a.value=p(a.value)),c("writeBLECharacteristicValue",{deviceId:a.deviceId,serviceId:a.serviceId,characteristicId:a.characteristicId,value:a.value},a)},notifyBLECharacteristicValueChange:function(a){c("notifyBLECharacteristicValueChange",{deviceId:a.deviceId,
+serviceId:a.serviceId,characteristicId:a.characteristicId,state:a.state},a)},onBLECharacteristicValueChange:function(a){d("onBLECharacteristicValueChange",{complete:function(b){b&&b.value&&(b.value=q(b.value)),"function"==typeof a&&a(b)}})},startBeaconDiscovery:function(a){c("startBeaconDiscovery",{uuids:a.uuids},a)},stopBeaconDiscovery:function(a){c("stopBeaconDiscovery",{},a)},getBeacons:function(a){c("getBeacons",{},a)},onBeaconUpdate:function(a){d("onBeaconUpdate",{complete:function(b){"function"==typeof a&&a(b);
+}})},onBeaconServiceChange:function(a){d("onBeaconServiceChange",{complete:function(b){"function"==typeof a&&a(b)}})},startWifi:function(a){c("startWifi",{},a)},stopWifi:function(a){c("stopWifi",{},a)},connectWifi:function(a){var b={SSID:a.SSID,BSSID:a.BSSID};a.hasOwnProperty("password")&&(b.password=a.password),c("connectWifi",b,a)},getWifiList:function(a){c("getWifiList",{},a)},onGetWifiList:function(a){d("onGetWifiList",{complete:function(b){"function"==typeof a&&a(b)}})},onWifiConnected:function(a){
+d("onWifiConnected",{complete:function(b){"function"==typeof a&&a(b)}})},getConnectedWifi:function(a){c("getConnectedWifi",{},a)},setClipboardData:function(a){c("setClipboardData",{data:a.data},a)},getClipboardData:function(a){c("getClipboardData",{},a)},onNetworkStatusChange:function(a){d("onNetworkStatusChange",{complete:function(b){"function"==typeof a&&a(b)}})},onLocationChange:function(a){d("auto:location:report",{complete:function(b){"function"==typeof a&&a(b)}})},onUserCaptureScreen:function(a){
+d("onUserCaptureScreen",{complete:function(b){"function"==typeof a&&a(b)}})},startRecordVoiceBuffer:function(a){c("startRecordVoiceBuffer",{maxDuration:a.maxDuration},a)},stopRecordVoiceBuffer:function(a){c("stopRecordVoiceBuffer",{},a)},onRecordBufferReceived:function(a){d("onRecordBufferReceived",{complete:function(b){"function"==typeof a&&a(b)}})}};return b&&(a.wx=a.jWeixin=H),H}}),function(a){function b(a,b){}a.encodeURIComponent;try{a.wwperf={config:function(c){function d(){try{a.WeixinJSBridge&&"complete"===g.readyState&&a.setTimeout(e,0);
+}catch(d){return b(d,c)}}function e(){try{if(i)return;i=!0;var d=-1;f.navigation&&null!=f.navigation.redirectCount&&(d=f.navigation.redirectCount);var e=-1;if("function"==typeof f.getEntries){var g=f.getEntries();e=0;for(var j=g.length-1;j>=0;j--)"resource"==g[j].entryType&&(e+=1)}a.WeixinJSBridge.invoke("innerSaveWebPerformance",{perf_data:JSON.stringify({env:c,url:a.location.href,redirect_count:d,resource_count:e,dns_time:Math.max(0,h.domainLookupEnd-h.domainLookupStart),connect_time:Math.max(0,h.connectEnd-h.connectStart),
+request_time:Math.max(0,h.responseEnd-h.requestStart),loading_time:Math.max(0,h.domLoading-h.navigationStart),interactive_time:Math.max(0,h.domInteractive-h.navigationStart),complete_time:Math.max(0,h.domComplete-h.navigationStart),log_time:Math.floor(+new Date/1e3)})},function(){})}catch(k){return b(k,c)}}var f=a.performance,g=a.document,h=f.timing,i=!1;try{var j=a.navigator.userAgent.toLowerCase();if(!j.match("wxwork"))return;a.WeixinJSBridge?d():g.addEventListener("WeixinJSBridgeReady",d,!1),"complete"===g.readyState?d():a.addEventListener("load",d,!1);
+}catch(k){return b(k,c)}}}}catch(c){return b(c)}}(this);

+ 329 - 0
100548/plugins/entry-pmsjjm.js

@@ -0,0 +1,329 @@
+function K(a) {
+  switch (a) {
+    case 0:
+      return '0';
+    case 1:
+      return '1';
+    case 2:
+      return '2';
+    case 3:
+      return '3';
+    case 4:
+      return '4';
+    case 5:
+      return '5';
+    case 6:
+      return '6';
+    case 7:
+      return '7';
+    case 8:
+      return '8';
+    case 9:
+      return '9';
+    case 10:
+      return 'a';
+    case 11:
+      return 'b';
+    case 12:
+      return 'c';
+    case 13:
+      return 'd';
+    case 14:
+      return 'e';
+    case 15:
+      return 'f';
+  }
+}
+function t(a) {
+  if (isNaN(a)) return a.toString(16);
+  else {
+    for (var b = ''; a >= 16;) (b = K(a % 16) + b), (a = parseInt(a / 16));
+    return (b = K(a % 16) + b);
+  }
+}
+function L(a) {
+  var b,
+    c = '';
+  for (b = 0; b < a.length; b++) a.charAt(b) != ' ' && (c += a.charAt(b));
+  return c;
+}
+function k(a, b) {
+  for (var c = 0; a > 0;) (a & 1) != 0 && (c ^= b), (a >>>= 1), (b <<= 1);
+  for (var d = 65536, f = 72448; d >= 256;) (c & d) != 0 && (c ^= f), (d >>= 1), (f >>= 1);
+  return c;
+}
+function M(a) {
+  var b;
+  for (b = 0; b < 16; b++) a[b] = I[a[b]];
+  return a;
+}
+function N(a) {
+  var b = Array(4),
+    c,
+    d = a.length / 4,
+    f = d + 6,
+    i = Array(4 * (f + 1));
+  for (c = 0; c < a.length; c++) i[c] = a[c];
+  for (c = d; c < 4 * (f + 1);) {
+    for (a = 0; a < 4; a++) b[a] = i[(c - 1) * 4 + a];
+    if (c % d == 0) {
+      var b = [b[1], b[2], b[3], b[0]],
+        a = (b = M(b)),
+        j = a[0],
+        h = c / d,
+        l = 2,
+        e = 1;
+      for (h--; h > 0;) (h & 1) != 0 && (e = k(e, l)), (l = k(l, l)), (h >>= 1);
+      a[0] = j ^ e;
+    } else d > 6 && c % d == 4 && (b = M(b));
+    for (a = 0; a < 4; a++) i[c * 4 + a] = i[(c - d) * 4 + a] ^ b[a];
+    c++;
+  }
+  return i;
+}
+function u(a, b) {
+  var c;
+  for (c = 0; c < 16; c++) a[c] = b[a[c]];
+  return a;
+}
+function O(a) {
+  var b, c, d, f;
+  b = a[v];
+  c = a[w];
+  d = a[x];
+  f = a[y];
+  a[v] = c;
+  a[w] = d;
+  a[x] = f;
+  a[y] = b;
+  b = a[z];
+  c = a[A];
+  d = a[B];
+  f = a[C];
+  a[z] = d;
+  a[A] = f;
+  a[B] = b;
+  a[C] = c;
+  b = a[D];
+  c = a[E];
+  d = a[F];
+  f = a[G];
+  a[D] = f;
+  a[E] = b;
+  a[F] = c;
+  a[G] = d;
+  return a;
+}
+function P(a) {
+  var b, c, d, f;
+  b = a[v];
+  c = a[w];
+  d = a[x];
+  f = a[y];
+  a[v] = f;
+  a[w] = b;
+  a[x] = c;
+  a[y] = d;
+  b = a[z];
+  c = a[A];
+  d = a[B];
+  f = a[C];
+  a[z] = d;
+  a[A] = f;
+  a[B] = b;
+  a[C] = c;
+  b = a[D];
+  c = a[E];
+  d = a[F];
+  f = a[G];
+  a[D] = c;
+  a[E] = d;
+  a[F] = f;
+  a[G] = b;
+  return a;
+}
+function q(a, b, c) {
+  var d;
+  for (d = 0; d < 4; d++)
+    (a[0 + d] ^= b[c + d * 4]),
+      (a[4 + d] ^= b[c + d * 4 + 1]),
+      (a[8 + d] ^= b[c + d * 4 + 2]),
+      (a[12 + d] ^= b[c + d * 4 + 3]);
+  return a;
+}
+function H(a) {
+  var b,
+    c,
+    d = Array(16);
+  for (b = 0; b < 4; b++) for (c = 0; c < 4; c++) d[b * 4 + c] = a[c * 4 + b];
+  return d;
+}
+function J(a) {
+  for (var b = Array(a.length / 2), c = 0; c < a.length / 2; c++) {
+    var d = b,
+      f = c,
+      i;
+    a: {
+      i = a.substr(c * 2, 2);
+      var j = i.charCodeAt(0);
+      if (j >= 48 && j <= 57) j -= 48;
+      else if (j >= 65 && j <= 70) j -= 55;
+      else if (j >= 97 && j <= 102) j -= 87;
+      else {
+        window.alert(i.charAt(1) + ' is not a valid hex digit');
+        i = -1;
+        break a;
+      }
+      var h = i.charCodeAt(1);
+      if (h >= 48 && h <= 57) h -= 48;
+      else if (h >= 65 && h <= 70) h -= 55;
+      else if (h >= 97 && h <= 102) h -= 87;
+      else {
+        window.alert(i.charAt(2) + ' is not a valid hex digit');
+        i = -1;
+        break a;
+      }
+      i = j * 16 + h;
+    }
+    d[f] = i;
+    if (b[c] < 0) {
+      b[0] = -1;
+      break;
+    }
+  }
+  return b;
+}
+var I = [
+  99, 124, 119, 123, 242, 107, 111, 197, 48, 1, 103, 43, 254, 215, 171, 118, 202, 130, 201, 125, 250, 89, 71, 240,
+  173, 212, 162, 175, 156, 164, 114, 192, 183, 253, 147, 38, 54, 63, 247, 204, 52, 165, 229, 241, 113, 216, 49, 21, 4,
+  199, 35, 195, 24, 150, 5, 154, 7, 18, 128, 226, 235, 39, 178, 117, 9, 131, 44, 26, 27, 110, 90, 160, 82, 59, 214,
+  179, 41, 227, 47, 132, 83, 209, 0, 237, 32, 252, 177, 91, 106, 203, 190, 57, 74, 76, 88, 207, 208, 239, 170, 251,
+  67, 77, 51, 133, 69, 249, 2, 127, 80, 60, 159, 168, 81, 163, 64, 143, 146, 157, 56, 245, 188, 182, 218, 33, 16, 255,
+  243, 210, 205, 12, 19, 236, 95, 151, 68, 23, 196, 167, 126, 61, 100, 93, 25, 115, 96, 129, 79, 220, 34, 42, 144,
+  136, 70, 238, 184, 20, 222, 94, 11, 219, 224, 50, 58, 10, 73, 6, 36, 92, 194, 211, 172, 98, 145, 149, 228, 121, 231,
+  200, 55, 109, 141, 213, 78, 169, 108, 86, 244, 234, 101, 122, 174, 8, 186, 120, 37, 46, 28, 166, 180, 198, 232, 221,
+  116, 31, 75, 189, 139, 138, 112, 62, 181, 102, 72, 3, 246, 14, 97, 53, 87, 185, 134, 193, 29, 158, 225, 248, 152,
+  17, 105, 217, 142, 148, 155, 30, 135, 233, 206, 85, 40, 223, 140, 161, 137, 13, 191, 230, 66, 104, 65, 153, 45, 15,
+  176, 84, 187, 22
+],
+  Q = [
+    82, 9, 106, 213, 48, 54, 165, 56, 191, 64, 163, 158, 129, 243, 215, 251, 124, 227, 57, 130, 155, 47, 255, 135, 52,
+    142, 67, 68, 196, 222, 233, 203, 84, 123, 148, 50, 166, 194, 35, 61, 238, 76, 149, 11, 66, 250, 195, 78, 8, 46, 161,
+    102, 40, 217, 36, 178, 118, 91, 162, 73, 109, 139, 209, 37, 114, 248, 246, 100, 134, 104, 152, 22, 212, 164, 92,
+    204, 93, 101, 182, 146, 108, 112, 72, 80, 253, 237, 185, 218, 94, 21, 70, 87, 167, 141, 157, 132, 144, 216, 171, 0,
+    140, 188, 211, 10, 247, 228, 88, 5, 184, 179, 69, 6, 208, 44, 30, 143, 202, 63, 15, 2, 193, 175, 189, 3, 1, 19, 138,
+    107, 58, 145, 17, 65, 79, 103, 220, 234, 151, 242, 207, 206, 240, 180, 230, 115, 150, 172, 116, 34, 231, 173, 53,
+    133, 226, 249, 55, 232, 28, 117, 223, 110, 71, 241, 26, 113, 29, 41, 197, 137, 111, 183, 98, 14, 170, 24, 190, 27,
+    252, 86, 62, 75, 198, 210, 121, 32, 154, 219, 192, 254, 120, 205, 90, 244, 31, 221, 168, 51, 136, 7, 199, 49, 177,
+    18, 16, 89, 39, 128, 236, 95, 96, 81, 127, 169, 25, 181, 74, 13, 45, 229, 122, 159, 147, 201, 156, 239, 160, 224,
+    59, 77, 174, 42, 245, 176, 200, 235, 187, 60, 131, 83, 153, 97, 23, 43, 4, 126, 186, 119, 214, 38, 225, 105, 20, 99,
+    85, 33, 12, 125
+  ],
+  v = 4,
+  w = 5,
+  x = 6,
+  y = 7,
+  z = 8,
+  A = 9,
+  B = 10,
+  C = 11,
+  D = 12,
+  E = 13,
+  F = 14,
+  G = 15,
+  p = Array(16);
+this.encrypt = function (a, b) {
+  var c = J(a),
+    d;
+  d = Array(16);
+  b.length > 16 && (d = Array(b.length));
+  var f;
+  if (b.length >= 16) for (f = 0; f < b.length; f++) d[f] = b.charCodeAt(f);
+  else {
+    for (f = 0; f < b.length; f++) d[f] = b.charCodeAt(f);
+    for (f = b.length; f < 16; f++) d[f] = 0;
+  }
+  var i = '';
+  f = d.length / 16;
+  for (var j = 0; j < f; j++) {
+    var h;
+    var l = c,
+      e = d.slice(j * 16, (j + 1) * 16);
+    h = Array(44);
+    var g = Array(16),
+      m = void 0;
+    if (e[0] < 0) h = void 0;
+    else if (l[0] < 0) h = void 0;
+    else {
+      h = N(l);
+      l = l.length / 4 + 6;
+      g = H(e);
+      g = q(g, h, 0);
+      for (m = 1; m < l; m++) {
+        for (var g = u(g, I), e = (g = O(g)), n = (g = void 0), o = void 0, r = void 0, s = void 0, g = 0; g < 4; g++)
+          (n = e[0 + g]),
+            (o = e[4 + g]),
+            (r = e[8 + g]),
+            (s = e[12 + g]),
+            (e[0 + g] = k(2, n) ^ k(3, o) ^ r ^ s),
+            (e[4 + g] = n ^ k(2, o) ^ k(3, r) ^ s),
+            (e[8 + g] = n ^ o ^ k(2, r) ^ k(3, s)),
+            (e[12 + g] = k(3, n) ^ o ^ r ^ k(2, s));
+        g = e;
+        g = q(g, h, m * 16);
+      }
+      u(g, I);
+      O(g);
+      q(g, h, l * 16);
+      p = H(g);
+      h = t((p[0] >>> 4) & 15) + t(p[0] & 15);
+      for (m = 1; m < 16; m++) h += t((p[m] >>> 4) & 15) + t(p[m] & 15);
+    }
+    i += h;
+  }
+  return L(i);
+};
+this.mydecrypt = function (a, b) {
+  for (var c = J(a), b = L(b), d = '', f = b.length / 32, i = 0; i < f; i++) {
+    var j;
+    var h = c,
+      l = b.slice(i * 32, (i + 1) * 32);
+    j = Array(44);
+    var e = Array(16),
+      g = void 0,
+      l = J(l);
+    if (l[0] < 0) j = void 0;
+    else if (h[0] < 0) j = void 0;
+    else {
+      j = N(h);
+      g = h.length / 4 + 6;
+      e = H(l);
+      e = q(e, j, g * 16);
+      for (g -= 1; g >= 1; g--) {
+        for (
+          var e = P(e), e = u(e, Q), l = (e = q(e, j, g * 16)), m = (h = e = void 0), n = void 0, o = void 0, e = 0;
+          e < 4;
+          e++
+        )
+          (h = l[0 + e]),
+            (m = l[4 + e]),
+            (n = l[8 + e]),
+            (o = l[12 + e]),
+            (l[0 + e] = k(14, h) ^ k(11, m) ^ k(13, n) ^ k(9, o)),
+            (l[4 + e] = k(9, h) ^ k(14, m) ^ k(11, n) ^ k(13, o)),
+            (l[8 + e] = k(13, h) ^ k(9, m) ^ k(14, n) ^ k(11, o)),
+            (l[12 + e] = k(11, h) ^ k(13, m) ^ k(9, n) ^ k(14, o));
+        e = l;
+      }
+      P(e);
+      u(e, Q);
+      q(e, j, 0);
+      p = H(e);
+      j = '';
+      for (g = 0; g < 16; g++) j += String.fromCharCode(p[g]);
+    }
+    d += j;
+  }
+  for (i = d.length - 1; i >= 0; i--) if (d.charCodeAt(i) > 31 && d.charCodeAt(i) < 128) break;
+  return d.substring(0, i + 1);
+};

تفاوت فایلی نمایش داده نمی شود زیرا این فایل بسیار بزرگ است
+ 9 - 0
100548/plugins/entry-vconsole.min.js


تفاوت فایلی نمایش داده نمی شود زیرا این فایل بسیار بزرگ است
+ 0 - 0
100548/static/css/app.b3e5e72c.css


+ 1 - 0
100548/static/css/chunk-028847e0.3cd00150.css

@@ -0,0 +1 @@
+.iframe_content[data-v-2902a1be]{flex:1;height:calc(100vh - 1.36rem)}.iframe_content #dashboard[data-v-2902a1be]{width:100%;height:100%;border:0;padding:0;margin:0;overflow-y:auto}

+ 1 - 0
100548/static/css/chunk-0996a78a.d9afb40f.css

@@ -0,0 +1 @@
+.green[data-v-6318b586]{color:#0eb295!important}.yellow[data-v-6318b586]{color:#f29e00!important}.orange[data-v-6318b586]{color:#f26500!important}.red[data-v-6318b586]{color:red!important}.item-header[data-v-11f2664f],.item-header[data-v-905cba58]{padding-top:.213333rem;padding-bottom:.346667rem;color:#333;font-size:.426667rem;display:flex;border-bottom:.026667rem solid #ededed}.scanCode[data-v-59ddbe00]{position:absolute;left:0;top:1.226667rem;right:0;bottom:0;overflow:hidden;display:flex;flex-direction:column}.scanCode>.container[data-v-59ddbe00]{padding:0 .266667rem .533333rem .266667rem;flex:1;background:#f5f6f7;overflow-y:auto}.scanCode>.container .model .title[data-v-59ddbe00]{margin-top:.266667rem;display:flex}.scanCode>.container .model .title>p[data-v-59ddbe00]{flex:1;font-size:.373333rem;font-weight:500;color:#333}.scanCode>.container .model .title .icon[data-v-59ddbe00]{transform:rotate(-180deg);transition:transform .1s}.scanCode>.container .model .title .icon.open[data-v-59ddbe00]{transform:rotate(-270deg)}.scanCode .model .model-content .mode-item{margin:.266667rem 0;padding:.4rem .4rem .133333rem .4rem;border-radius:.133333rem;background-color:#fff}.scanCode .model .model-content .mode-item>div{display:flex;margin-bottom:.266667rem}.scanCode .model .model-content .mode-item>div .label{font-size:.373333rem;font-weight:400;color:#999;margin-right:.266667rem}.scanCode .model .model-content .mode-item>div .value{font-size:.373333rem;font-weight:400;color:#333;flex:1;word-break:break-all}.scanCode .model .model-content .mode-item>div .status{padding:.053333rem .213333rem;font-size:.293333rem;font-weight:400;color:#f26500;background:rgba(242,101,0,.04);border-radius:.053333rem}

تفاوت فایلی نمایش داده نمی شود زیرا این فایل بسیار بزرگ است
+ 0 - 0
100548/static/css/chunk-3e34baa3.8283e4db.css


تفاوت فایلی نمایش داده نمی شود زیرا این فایل بسیار بزرگ است
+ 0 - 0
100548/static/css/chunk-4b2ce393.26a5052e.css


تفاوت فایلی نمایش داده نمی شود زیرا این فایل بسیار بزرگ است
+ 0 - 0
100548/static/css/chunk-b0b6f034.c980c81b.css


تفاوت فایلی نمایش داده نمی شود زیرا این فایل بسیار بزرگ است
+ 0 - 0
100548/static/css/chunk-vendors.3e037fd8.css


BIN
100548/static/img/app_loading.7150b9d8.png


BIN
100548/static/img/avatar.482e11fd.png


BIN
100548/static/img/default.7e182502.png


BIN
100548/static/img/gd-ytyh.e63c803a.png


BIN
100548/static/img/header_bg.b337427a.png


BIN
100548/static/img/header_bg.f502214e.png


BIN
100548/static/img/icon_btn_top.e1865b7e.png


BIN
100548/static/img/icon_czpxsbl.6e664249.png


BIN
100548/static/img/icon_ddydzy.efcf6b00.png


BIN
100548/static/img/icon_dhep.5fbc5283.png


BIN
100548/static/img/icon_dhyp.82b83dc9.png


BIN
100548/static/img/icon_dljyh.1a050275.png


BIN
100548/static/img/icon_dygzp.04691802.png


BIN
100548/static/img/icon_dzczp.dc1d9a5b.png


BIN
100548/static/img/icon_fqgkgd.c2838e98.png


BIN
100548/static/img/icon_fxxsyczl.b2fcdcbf.png


BIN
100548/static/img/icon_fxyj.f500cb78.png


BIN
100548/static/img/icon_gdlzznh.a5399252.png


BIN
100548/static/img/icon_gdqdxjyw.0fd40799.png


BIN
100548/static/img/icon_gdqdzdqx.2a9dfb2c.png


BIN
100548/static/img/icon_gzqxd.e350b5ef.png


BIN
100548/static/img/icon_gzqxgd.3fe9f5cd.png


BIN
100548/static/img/icon_gzxxznfx.a397f719.png


BIN
100548/static/img/icon_jcsjzl.436e4578.png


BIN
100548/static/img/icon_jtfsh.cd0a0980.png


BIN
100548/static/img/icon_jyhyw.1722c461.png


BIN
100548/static/img/icon_kkxgk.7194dbad.png


BIN
100548/static/img/icon_nr_rcdg.11245766.png


BIN
100548/static/img/icon_pbyczl.6196dfba.png


BIN
100548/static/img/icon_pdep.1f0d24da.png


BIN
100548/static/img/icon_pdyp.bb0c8649.png


BIN
100548/static/img/icon_pwfl.d41cb737.png


BIN
100548/static/img/icon_qwfsh.c4e28b98.png


BIN
100548/static/img/icon_qxpxslz.8efb658b.png


BIN
100548/static/img/icon_qxqgcztgk.66019981.png


BIN
100548/static/img/icon_sbztsscx.9d8d0ee4.png


BIN
100548/static/img/icon_shyjgd.b2d8ec20.png


BIN
100548/static/img/icon_szhyj.18a09547.png


BIN
100548/static/img/icon_tgydzdyy.816e2150.png


BIN
100548/static/img/icon_third_dy_yqgd.84c0a6c1.png


BIN
100548/static/img/icon_tqzdqx.490267c9.png


BIN
100548/static/img/icon_wtpt.7e182502.png


BIN
100548/static/img/icon_xckcjl.be8fe3ef.png


BIN
100548/static/img/icon_xlyczl.a90cf641.png


BIN
100548/static/img/icon_xlzdjx.6364133c.png


BIN
100548/static/img/icon_xlzdqx.b35630b2.png


BIN
100548/static/img/icon_xsjlgd.b12bba9f.png


BIN
100548/static/img/icon_ydzdbs.1d5baed0.png


BIN
100548/static/img/icon_ydzdgcys.ada9996f.png


BIN
100548/static/img/icon_yhgl.0e40f493.png


BIN
100548/static/img/icon_ykgd.02490357.png


BIN
100548/static/img/icon_ykqlcgk.6e0f55d9.png


BIN
100548/static/img/icon_zbkb.8305d155.png


برخی فایل ها در این مقایسه diff نمایش داده نمی شوند زیرا تعداد فایل ها بسیار زیاد است