From 0496b70ec588ca83d7994c3d46526e4dc1c94d1d Mon Sep 17 00:00:00 2001 From: tanghc Date: Wed, 21 Aug 2019 20:16:46 +0800 Subject: [PATCH] 2.0 --- README.md | 5 +- pom.xml | 1 - sop-admin/pom.xml | 1 - sop-admin/readme.md | 1 - sop-admin/sop-admin-front/README.md | 23 - sop-admin/sop-admin-front/assets/css/font.css | 16 - .../sop-admin-front/assets/css/xadmin.css | 680 ------------------ .../sop-admin-front/assets/fonts/iconfont.eot | Bin 49600 -> 0 bytes .../sop-admin-front/assets/fonts/iconfont.svg | 477 ------------ .../sop-admin-front/assets/fonts/iconfont.ttf | Bin 49432 -> 0 bytes .../assets/fonts/iconfont.woff | Bin 30200 -> 0 bytes .../sop-admin-front/assets/images/aiwrap.png | Bin 3032 -> 0 bytes .../sop-admin-front/assets/images/bg.png | Bin 28211 -> 0 bytes .../sop-admin-front/assets/js/ApiUtil.js | 85 --- sop-admin/sop-admin-front/assets/js/cookie.js | 38 - sop-admin/sop-admin-front/assets/js/index.js | 37 - sop-admin/sop-admin-front/assets/js/lib.js | 99 --- .../sop-admin-front/assets/js/routerole.js | 22 - sop-admin/sop-admin-front/assets/js/xadmin.js | 414 ----------- sop-admin/sop-admin-front/assets/js/xcity.js | 511 ------------- .../assets/lib/easyopen/index.html | 136 ---- .../assets/lib/easyopen/sdk.js | 293 -------- .../assets/lib/jquery/3.2.1/jquery.min.js | 4 - .../assets/lib/layui/css/layui.css | 2 - .../assets/lib/layui/css/layui.mobile.css | 2 - .../assets/lib/layui/css/modules/code.css | 2 - .../css/modules/laydate/default/laydate.css | 2 - .../css/modules/layer/default/icon-ext.png | Bin 5911 -> 0 bytes .../layui/css/modules/layer/default/icon.png | Bin 11493 -> 0 bytes .../layui/css/modules/layer/default/layer.css | 2 - .../css/modules/layer/default/loading-0.gif | Bin 5793 -> 0 bytes .../css/modules/layer/default/loading-1.gif | Bin 701 -> 0 bytes .../css/modules/layer/default/loading-2.gif | Bin 1787 -> 0 bytes .../assets/lib/layui/font/iconfont.eot | Bin 40844 -> 0 bytes .../assets/lib/layui/font/iconfont.svg | 473 ------------ .../assets/lib/layui/font/iconfont.ttf | Bin 40668 -> 0 bytes .../assets/lib/layui/font/iconfont.woff | Bin 26744 -> 0 bytes .../assets/lib/layui/images/face/0.gif | Bin 2689 -> 0 bytes .../assets/lib/layui/images/face/1.gif | Bin 5514 -> 0 bytes .../assets/lib/layui/images/face/10.gif | Bin 2797 -> 0 bytes .../assets/lib/layui/images/face/11.gif | Bin 4121 -> 0 bytes .../assets/lib/layui/images/face/12.gif | Bin 3361 -> 0 bytes .../assets/lib/layui/images/face/13.gif | Bin 7425 -> 0 bytes .../assets/lib/layui/images/face/14.gif | Bin 2375 -> 0 bytes .../assets/lib/layui/images/face/15.gif | Bin 1793 -> 0 bytes .../assets/lib/layui/images/face/16.gif | Bin 6721 -> 0 bytes .../assets/lib/layui/images/face/17.gif | Bin 4439 -> 0 bytes .../assets/lib/layui/images/face/18.gif | Bin 3017 -> 0 bytes .../assets/lib/layui/images/face/19.gif | Bin 3040 -> 0 bytes .../assets/lib/layui/images/face/2.gif | Bin 3222 -> 0 bytes .../assets/lib/layui/images/face/20.gif | Bin 5144 -> 0 bytes .../assets/lib/layui/images/face/21.gif | Bin 5191 -> 0 bytes .../assets/lib/layui/images/face/22.gif | Bin 9823 -> 0 bytes .../assets/lib/layui/images/face/23.gif | Bin 3792 -> 0 bytes .../assets/lib/layui/images/face/24.gif | Bin 8096 -> 0 bytes .../assets/lib/layui/images/face/25.gif | Bin 3127 -> 0 bytes .../assets/lib/layui/images/face/26.gif | Bin 3291 -> 0 bytes .../assets/lib/layui/images/face/27.gif | Bin 4377 -> 0 bytes .../assets/lib/layui/images/face/28.gif | Bin 2793 -> 0 bytes .../assets/lib/layui/images/face/29.gif | Bin 4854 -> 0 bytes .../assets/lib/layui/images/face/3.gif | Bin 4017 -> 0 bytes .../assets/lib/layui/images/face/30.gif | Bin 2555 -> 0 bytes .../assets/lib/layui/images/face/31.gif | Bin 2002 -> 0 bytes .../assets/lib/layui/images/face/32.gif | Bin 3481 -> 0 bytes .../assets/lib/layui/images/face/33.gif | Bin 2454 -> 0 bytes .../assets/lib/layui/images/face/34.gif | Bin 3700 -> 0 bytes .../assets/lib/layui/images/face/35.gif | Bin 1800 -> 0 bytes .../assets/lib/layui/images/face/36.gif | Bin 2331 -> 0 bytes .../assets/lib/layui/images/face/37.gif | Bin 1513 -> 0 bytes .../assets/lib/layui/images/face/38.gif | Bin 3615 -> 0 bytes .../assets/lib/layui/images/face/39.gif | Bin 6495 -> 0 bytes .../assets/lib/layui/images/face/4.gif | Bin 5689 -> 0 bytes .../assets/lib/layui/images/face/40.gif | Bin 3154 -> 0 bytes .../assets/lib/layui/images/face/41.gif | Bin 3644 -> 0 bytes .../assets/lib/layui/images/face/42.gif | Bin 5305 -> 0 bytes .../assets/lib/layui/images/face/43.gif | Bin 2674 -> 0 bytes .../assets/lib/layui/images/face/44.gif | Bin 4126 -> 0 bytes .../assets/lib/layui/images/face/45.gif | Bin 3417 -> 0 bytes .../assets/lib/layui/images/face/46.gif | Bin 3007 -> 0 bytes .../assets/lib/layui/images/face/47.gif | Bin 2333 -> 0 bytes .../assets/lib/layui/images/face/48.gif | Bin 2689 -> 0 bytes .../assets/lib/layui/images/face/49.gif | Bin 2315 -> 0 bytes .../assets/lib/layui/images/face/5.gif | Bin 4567 -> 0 bytes .../assets/lib/layui/images/face/50.gif | Bin 5866 -> 0 bytes .../assets/lib/layui/images/face/51.gif | Bin 2785 -> 0 bytes .../assets/lib/layui/images/face/52.gif | Bin 777 -> 0 bytes .../assets/lib/layui/images/face/53.gif | Bin 2127 -> 0 bytes .../assets/lib/layui/images/face/54.gif | Bin 2196 -> 0 bytes .../assets/lib/layui/images/face/55.gif | Bin 1971 -> 0 bytes .../assets/lib/layui/images/face/56.gif | Bin 2034 -> 0 bytes .../assets/lib/layui/images/face/57.gif | Bin 2705 -> 0 bytes .../assets/lib/layui/images/face/58.gif | Bin 2258 -> 0 bytes .../assets/lib/layui/images/face/59.gif | Bin 10311 -> 0 bytes .../assets/lib/layui/images/face/6.gif | Bin 2213 -> 0 bytes .../assets/lib/layui/images/face/60.gif | Bin 3245 -> 0 bytes .../assets/lib/layui/images/face/61.gif | Bin 2495 -> 0 bytes .../assets/lib/layui/images/face/62.gif | Bin 2017 -> 0 bytes .../assets/lib/layui/images/face/63.gif | Bin 5871 -> 0 bytes .../assets/lib/layui/images/face/64.gif | Bin 6448 -> 0 bytes .../assets/lib/layui/images/face/65.gif | Bin 3576 -> 0 bytes .../assets/lib/layui/images/face/66.gif | Bin 3029 -> 0 bytes .../assets/lib/layui/images/face/67.gif | Bin 2701 -> 0 bytes .../assets/lib/layui/images/face/68.gif | Bin 1424 -> 0 bytes .../assets/lib/layui/images/face/69.gif | Bin 2431 -> 0 bytes .../assets/lib/layui/images/face/7.gif | Bin 3398 -> 0 bytes .../assets/lib/layui/images/face/70.gif | Bin 4590 -> 0 bytes .../assets/lib/layui/images/face/71.gif | Bin 5304 -> 0 bytes .../assets/lib/layui/images/face/8.gif | Bin 4050 -> 0 bytes .../assets/lib/layui/images/face/9.gif | Bin 4221 -> 0 bytes .../assets/lib/layui/lay/modules/carousel.js | 2 - .../assets/lib/layui/lay/modules/code.js | 2 - .../lib/layui/lay/modules/colorpicker.js | 2 - .../assets/lib/layui/lay/modules/element.js | 2 - .../assets/lib/layui/lay/modules/flow.js | 2 - .../assets/lib/layui/lay/modules/form.js | 2 - .../assets/lib/layui/lay/modules/jquery.js | 5 - .../assets/lib/layui/lay/modules/laydate.js | 2 - .../assets/lib/layui/lay/modules/layedit.js | 2 - .../assets/lib/layui/lay/modules/layer.js | 2 - .../assets/lib/layui/lay/modules/laypage.js | 2 - .../assets/lib/layui/lay/modules/laytpl.js | 2 - .../assets/lib/layui/lay/modules/mobile.js | 2 - .../assets/lib/layui/lay/modules/rate.js | 2 - .../assets/lib/layui/lay/modules/slider.js | 2 - .../assets/lib/layui/lay/modules/table.js | 2 - .../assets/lib/layui/lay/modules/tree.js | 2 - .../assets/lib/layui/lay/modules/upload.js | 2 - .../assets/lib/layui/lay/modules/util.js | 2 - .../assets/lib/layui/layui.all.js | 5 - .../sop-admin-front/assets/lib/layui/layui.js | 2 - .../assets/lib/layuiext/Form.js | 159 ---- .../module/treetable-lay/treetable.css | 18 - .../module/treetable-lay/treetable.js | 216 ------ sop-admin/sop-admin-front/config/config.js | 10 - sop-admin/sop-admin-front/index.html | 12 - .../pages/dashboard/dashboard.html | 126 ---- .../pages/dashboard/dashboard.js | 38 - .../sop-admin-front/pages/dashboard/todo.html | 10 - .../pages/dashboard/welcome.html | 34 - .../sop-admin-front/pages/isv/isvAdd.html | 96 --- sop-admin/sop-admin-front/pages/isv/isvAdd.js | 39 - .../sop-admin-front/pages/isv/isvList.html | 51 -- .../sop-admin-front/pages/isv/isvList.js | 144 ---- .../sop-admin-front/pages/isv/isvUpdate.html | 97 --- .../sop-admin-front/pages/isv/isvUpdate.js | 62 -- .../sop-admin-front/pages/login/login.html | 57 -- .../pages/service/limitManager.html | 107 --- .../pages/service/limitManager.js | 212 ------ .../pages/service/routeManager.html | 150 ---- .../pages/service/routeManager.js | 215 ------ .../pages/service/serviceList.html | 44 -- .../pages/service/serviceList.js | 106 --- sop-admin/sop-admin-front/pom.xml | 27 - sop-registry/.gitignore | 25 - sop-registry/pom.xml | 64 -- .../sop/registry/SopRegistryApplication.java | 16 - .../main/resources/application-dev.properties | 6 - .../src/main/resources/application.properties | 1 - .../registry/SopRegistryApplicationTests.java | 17 - 159 files changed, 3 insertions(+), 5530 deletions(-) delete mode 100644 sop-admin/sop-admin-front/README.md delete mode 100644 sop-admin/sop-admin-front/assets/css/font.css delete mode 100644 sop-admin/sop-admin-front/assets/css/xadmin.css delete mode 100644 sop-admin/sop-admin-front/assets/fonts/iconfont.eot delete mode 100644 sop-admin/sop-admin-front/assets/fonts/iconfont.svg delete mode 100644 sop-admin/sop-admin-front/assets/fonts/iconfont.ttf delete mode 100644 sop-admin/sop-admin-front/assets/fonts/iconfont.woff delete mode 100644 sop-admin/sop-admin-front/assets/images/aiwrap.png delete mode 100644 sop-admin/sop-admin-front/assets/images/bg.png delete mode 100644 sop-admin/sop-admin-front/assets/js/ApiUtil.js delete mode 100644 sop-admin/sop-admin-front/assets/js/cookie.js delete mode 100644 sop-admin/sop-admin-front/assets/js/index.js delete mode 100644 sop-admin/sop-admin-front/assets/js/lib.js delete mode 100644 sop-admin/sop-admin-front/assets/js/routerole.js delete mode 100644 sop-admin/sop-admin-front/assets/js/xadmin.js delete mode 100644 sop-admin/sop-admin-front/assets/js/xcity.js delete mode 100644 sop-admin/sop-admin-front/assets/lib/easyopen/index.html delete mode 100644 sop-admin/sop-admin-front/assets/lib/easyopen/sdk.js delete mode 100644 sop-admin/sop-admin-front/assets/lib/jquery/3.2.1/jquery.min.js delete mode 100644 sop-admin/sop-admin-front/assets/lib/layui/css/layui.css delete mode 100644 sop-admin/sop-admin-front/assets/lib/layui/css/layui.mobile.css delete mode 100644 sop-admin/sop-admin-front/assets/lib/layui/css/modules/code.css delete mode 100644 sop-admin/sop-admin-front/assets/lib/layui/css/modules/laydate/default/laydate.css delete mode 100644 sop-admin/sop-admin-front/assets/lib/layui/css/modules/layer/default/icon-ext.png delete mode 100644 sop-admin/sop-admin-front/assets/lib/layui/css/modules/layer/default/icon.png delete mode 100644 sop-admin/sop-admin-front/assets/lib/layui/css/modules/layer/default/layer.css delete mode 100644 sop-admin/sop-admin-front/assets/lib/layui/css/modules/layer/default/loading-0.gif delete mode 100644 sop-admin/sop-admin-front/assets/lib/layui/css/modules/layer/default/loading-1.gif delete mode 100644 sop-admin/sop-admin-front/assets/lib/layui/css/modules/layer/default/loading-2.gif delete mode 100644 sop-admin/sop-admin-front/assets/lib/layui/font/iconfont.eot delete mode 100644 sop-admin/sop-admin-front/assets/lib/layui/font/iconfont.svg delete mode 100644 sop-admin/sop-admin-front/assets/lib/layui/font/iconfont.ttf delete mode 100644 sop-admin/sop-admin-front/assets/lib/layui/font/iconfont.woff delete mode 100644 sop-admin/sop-admin-front/assets/lib/layui/images/face/0.gif delete mode 100644 sop-admin/sop-admin-front/assets/lib/layui/images/face/1.gif delete mode 100644 sop-admin/sop-admin-front/assets/lib/layui/images/face/10.gif delete mode 100644 sop-admin/sop-admin-front/assets/lib/layui/images/face/11.gif delete mode 100644 sop-admin/sop-admin-front/assets/lib/layui/images/face/12.gif delete mode 100644 sop-admin/sop-admin-front/assets/lib/layui/images/face/13.gif delete mode 100644 sop-admin/sop-admin-front/assets/lib/layui/images/face/14.gif delete mode 100644 sop-admin/sop-admin-front/assets/lib/layui/images/face/15.gif delete mode 100644 sop-admin/sop-admin-front/assets/lib/layui/images/face/16.gif delete mode 100644 sop-admin/sop-admin-front/assets/lib/layui/images/face/17.gif delete mode 100644 sop-admin/sop-admin-front/assets/lib/layui/images/face/18.gif delete mode 100644 sop-admin/sop-admin-front/assets/lib/layui/images/face/19.gif delete mode 100644 sop-admin/sop-admin-front/assets/lib/layui/images/face/2.gif delete mode 100644 sop-admin/sop-admin-front/assets/lib/layui/images/face/20.gif delete mode 100644 sop-admin/sop-admin-front/assets/lib/layui/images/face/21.gif delete mode 100644 sop-admin/sop-admin-front/assets/lib/layui/images/face/22.gif delete mode 100644 sop-admin/sop-admin-front/assets/lib/layui/images/face/23.gif delete mode 100644 sop-admin/sop-admin-front/assets/lib/layui/images/face/24.gif delete mode 100644 sop-admin/sop-admin-front/assets/lib/layui/images/face/25.gif delete mode 100644 sop-admin/sop-admin-front/assets/lib/layui/images/face/26.gif delete mode 100644 sop-admin/sop-admin-front/assets/lib/layui/images/face/27.gif delete mode 100644 sop-admin/sop-admin-front/assets/lib/layui/images/face/28.gif delete mode 100644 sop-admin/sop-admin-front/assets/lib/layui/images/face/29.gif delete mode 100644 sop-admin/sop-admin-front/assets/lib/layui/images/face/3.gif delete mode 100644 sop-admin/sop-admin-front/assets/lib/layui/images/face/30.gif delete mode 100644 sop-admin/sop-admin-front/assets/lib/layui/images/face/31.gif delete mode 100644 sop-admin/sop-admin-front/assets/lib/layui/images/face/32.gif delete mode 100644 sop-admin/sop-admin-front/assets/lib/layui/images/face/33.gif delete mode 100644 sop-admin/sop-admin-front/assets/lib/layui/images/face/34.gif delete mode 100644 sop-admin/sop-admin-front/assets/lib/layui/images/face/35.gif delete mode 100644 sop-admin/sop-admin-front/assets/lib/layui/images/face/36.gif delete mode 100644 sop-admin/sop-admin-front/assets/lib/layui/images/face/37.gif delete mode 100644 sop-admin/sop-admin-front/assets/lib/layui/images/face/38.gif delete mode 100644 sop-admin/sop-admin-front/assets/lib/layui/images/face/39.gif delete mode 100644 sop-admin/sop-admin-front/assets/lib/layui/images/face/4.gif delete mode 100644 sop-admin/sop-admin-front/assets/lib/layui/images/face/40.gif delete mode 100644 sop-admin/sop-admin-front/assets/lib/layui/images/face/41.gif delete mode 100644 sop-admin/sop-admin-front/assets/lib/layui/images/face/42.gif delete mode 100644 sop-admin/sop-admin-front/assets/lib/layui/images/face/43.gif delete mode 100644 sop-admin/sop-admin-front/assets/lib/layui/images/face/44.gif delete mode 100644 sop-admin/sop-admin-front/assets/lib/layui/images/face/45.gif delete mode 100644 sop-admin/sop-admin-front/assets/lib/layui/images/face/46.gif delete mode 100644 sop-admin/sop-admin-front/assets/lib/layui/images/face/47.gif delete mode 100644 sop-admin/sop-admin-front/assets/lib/layui/images/face/48.gif delete mode 100644 sop-admin/sop-admin-front/assets/lib/layui/images/face/49.gif delete mode 100644 sop-admin/sop-admin-front/assets/lib/layui/images/face/5.gif delete mode 100644 sop-admin/sop-admin-front/assets/lib/layui/images/face/50.gif delete mode 100644 sop-admin/sop-admin-front/assets/lib/layui/images/face/51.gif delete mode 100644 sop-admin/sop-admin-front/assets/lib/layui/images/face/52.gif delete mode 100644 sop-admin/sop-admin-front/assets/lib/layui/images/face/53.gif delete mode 100644 sop-admin/sop-admin-front/assets/lib/layui/images/face/54.gif delete mode 100644 sop-admin/sop-admin-front/assets/lib/layui/images/face/55.gif delete mode 100644 sop-admin/sop-admin-front/assets/lib/layui/images/face/56.gif delete mode 100644 sop-admin/sop-admin-front/assets/lib/layui/images/face/57.gif delete mode 100644 sop-admin/sop-admin-front/assets/lib/layui/images/face/58.gif delete mode 100644 sop-admin/sop-admin-front/assets/lib/layui/images/face/59.gif delete mode 100644 sop-admin/sop-admin-front/assets/lib/layui/images/face/6.gif delete mode 100644 sop-admin/sop-admin-front/assets/lib/layui/images/face/60.gif delete mode 100644 sop-admin/sop-admin-front/assets/lib/layui/images/face/61.gif delete mode 100644 sop-admin/sop-admin-front/assets/lib/layui/images/face/62.gif delete mode 100644 sop-admin/sop-admin-front/assets/lib/layui/images/face/63.gif delete mode 100644 sop-admin/sop-admin-front/assets/lib/layui/images/face/64.gif delete mode 100644 sop-admin/sop-admin-front/assets/lib/layui/images/face/65.gif delete mode 100644 sop-admin/sop-admin-front/assets/lib/layui/images/face/66.gif delete mode 100644 sop-admin/sop-admin-front/assets/lib/layui/images/face/67.gif delete mode 100644 sop-admin/sop-admin-front/assets/lib/layui/images/face/68.gif delete mode 100644 sop-admin/sop-admin-front/assets/lib/layui/images/face/69.gif delete mode 100644 sop-admin/sop-admin-front/assets/lib/layui/images/face/7.gif delete mode 100644 sop-admin/sop-admin-front/assets/lib/layui/images/face/70.gif delete mode 100644 sop-admin/sop-admin-front/assets/lib/layui/images/face/71.gif delete mode 100644 sop-admin/sop-admin-front/assets/lib/layui/images/face/8.gif delete mode 100644 sop-admin/sop-admin-front/assets/lib/layui/images/face/9.gif delete mode 100644 sop-admin/sop-admin-front/assets/lib/layui/lay/modules/carousel.js delete mode 100644 sop-admin/sop-admin-front/assets/lib/layui/lay/modules/code.js delete mode 100644 sop-admin/sop-admin-front/assets/lib/layui/lay/modules/colorpicker.js delete mode 100644 sop-admin/sop-admin-front/assets/lib/layui/lay/modules/element.js delete mode 100644 sop-admin/sop-admin-front/assets/lib/layui/lay/modules/flow.js delete mode 100644 sop-admin/sop-admin-front/assets/lib/layui/lay/modules/form.js delete mode 100644 sop-admin/sop-admin-front/assets/lib/layui/lay/modules/jquery.js delete mode 100644 sop-admin/sop-admin-front/assets/lib/layui/lay/modules/laydate.js delete mode 100644 sop-admin/sop-admin-front/assets/lib/layui/lay/modules/layedit.js delete mode 100644 sop-admin/sop-admin-front/assets/lib/layui/lay/modules/layer.js delete mode 100644 sop-admin/sop-admin-front/assets/lib/layui/lay/modules/laypage.js delete mode 100644 sop-admin/sop-admin-front/assets/lib/layui/lay/modules/laytpl.js delete mode 100644 sop-admin/sop-admin-front/assets/lib/layui/lay/modules/mobile.js delete mode 100644 sop-admin/sop-admin-front/assets/lib/layui/lay/modules/rate.js delete mode 100644 sop-admin/sop-admin-front/assets/lib/layui/lay/modules/slider.js delete mode 100644 sop-admin/sop-admin-front/assets/lib/layui/lay/modules/table.js delete mode 100644 sop-admin/sop-admin-front/assets/lib/layui/lay/modules/tree.js delete mode 100644 sop-admin/sop-admin-front/assets/lib/layui/lay/modules/upload.js delete mode 100644 sop-admin/sop-admin-front/assets/lib/layui/lay/modules/util.js delete mode 100644 sop-admin/sop-admin-front/assets/lib/layui/layui.all.js delete mode 100644 sop-admin/sop-admin-front/assets/lib/layui/layui.js delete mode 100644 sop-admin/sop-admin-front/assets/lib/layuiext/Form.js delete mode 100644 sop-admin/sop-admin-front/assets/lib/layuiext/module/treetable-lay/treetable.css delete mode 100644 sop-admin/sop-admin-front/assets/lib/layuiext/module/treetable-lay/treetable.js delete mode 100644 sop-admin/sop-admin-front/config/config.js delete mode 100644 sop-admin/sop-admin-front/index.html delete mode 100644 sop-admin/sop-admin-front/pages/dashboard/dashboard.html delete mode 100644 sop-admin/sop-admin-front/pages/dashboard/dashboard.js delete mode 100644 sop-admin/sop-admin-front/pages/dashboard/todo.html delete mode 100644 sop-admin/sop-admin-front/pages/dashboard/welcome.html delete mode 100644 sop-admin/sop-admin-front/pages/isv/isvAdd.html delete mode 100644 sop-admin/sop-admin-front/pages/isv/isvAdd.js delete mode 100644 sop-admin/sop-admin-front/pages/isv/isvList.html delete mode 100644 sop-admin/sop-admin-front/pages/isv/isvList.js delete mode 100644 sop-admin/sop-admin-front/pages/isv/isvUpdate.html delete mode 100644 sop-admin/sop-admin-front/pages/isv/isvUpdate.js delete mode 100644 sop-admin/sop-admin-front/pages/login/login.html delete mode 100644 sop-admin/sop-admin-front/pages/service/limitManager.html delete mode 100644 sop-admin/sop-admin-front/pages/service/limitManager.js delete mode 100644 sop-admin/sop-admin-front/pages/service/routeManager.html delete mode 100644 sop-admin/sop-admin-front/pages/service/routeManager.js delete mode 100644 sop-admin/sop-admin-front/pages/service/serviceList.html delete mode 100644 sop-admin/sop-admin-front/pages/service/serviceList.js delete mode 100644 sop-admin/sop-admin-front/pom.xml delete mode 100644 sop-registry/.gitignore delete mode 100644 sop-registry/pom.xml delete mode 100644 sop-registry/src/main/java/com/gitee/sop/registry/SopRegistryApplication.java delete mode 100644 sop-registry/src/main/resources/application-dev.properties delete mode 100644 sop-registry/src/main/resources/application.properties delete mode 100644 sop-registry/src/test/java/com/gitee/sop/registry/SopRegistryApplicationTests.java diff --git a/README.md b/README.md index 4e1d24fc..9bcc0a0f 100644 --- a/README.md +++ b/README.md @@ -24,7 +24,8 @@ SOP封装了开放平台大部分功能包括:签名验证、统一异常处 ## 架构图 -![架构图](https://images.gitee.com/uploads/images/2019/0610/183127_408bc054_332975.png "sop.png") +![架构图](https://images.gitee.com/uploads/images/2019/0821/201531_0f605f7c_332975.png "sop2.png") + ## 已完成列表 - 签名验证 @@ -66,7 +67,6 @@ SOP封装了开放平台大部分功能包括:签名验证、统一异常处 - doc:开发文档 - sop-admin:后台管理 -- sop-registry:注册中心,eureka实现 - sop-gateway:网关,统一访问入口,Spring Cloud Zuul实现,可切换成Spring Cloud Gateway - sop-common:公共模块,封装常用功能,包含签名校验、错误处理、限流等功能 - sop-example:微服务示例,含springboot,springmvc示例 @@ -79,6 +79,7 @@ SOP封装了开放平台大部分功能包括:签名验证、统一异常处 - master:发版分支 - spring-cloud-gateway:Spring Cloud Gateway作为网关 - develop:日常开发分支 +- 1.x:老的1.x版本代码 ## 相关文档 diff --git a/pom.xml b/pom.xml index 5c3c18ab..8d8f33ef 100644 --- a/pom.xml +++ b/pom.xml @@ -15,7 +15,6 @@ sop-common sop-example sop-admin - sop-registry sop-gateway sop-test sop-sdk diff --git a/sop-admin/pom.xml b/sop-admin/pom.xml index 1bde1bd9..bf55daf0 100644 --- a/sop-admin/pom.xml +++ b/sop-admin/pom.xml @@ -9,7 +9,6 @@ pom - sop-admin-front sop-admin-server \ No newline at end of file diff --git a/sop-admin/readme.md b/sop-admin/readme.md index ac3691f3..8d9d274e 100644 --- a/sop-admin/readme.md +++ b/sop-admin/readme.md @@ -1,5 +1,4 @@ # 后台admin -- sop-admin-front: admin前端layui实现(停止维护,改用sop-admin-vue) - sop-admin-server: admin服务端 - sop-admin-vue: admin前端vue实现 diff --git a/sop-admin/sop-admin-front/README.md b/sop-admin/sop-admin-front/README.md deleted file mode 100644 index 708b3bf6..00000000 --- a/sop-admin/sop-admin-front/README.md +++ /dev/null @@ -1,23 +0,0 @@ -# admin前端页面(停止维护,改用sop-admin-vue) - -做到前后端分离。 - -当然也可以不分离,直接把前端页面放入到server中。这样做的好处是启动服务器即可访问页面。 - -步骤如下: - -- cd到sop-admin-front目录,执行命令`mvn clean install` -- sop-admin-server工程添加maven依赖 - -``` - - com.gitee.sop - sop-admin-front - 1.0.0-SNAPSHOT - -``` - -启动服务端,访问:http://localhost:8082 - -原理就是springboot访问webjars资源,建议在开发的时候前后端分离,开发完成后再打包成webjars。 - diff --git a/sop-admin/sop-admin-front/assets/css/font.css b/sop-admin/sop-admin-front/assets/css/font.css deleted file mode 100644 index b83e5b4b..00000000 --- a/sop-admin/sop-admin-front/assets/css/font.css +++ /dev/null @@ -1,16 +0,0 @@ -@font-face { - font-family: 'iconfont'; - src: url('../fonts/iconfont.eot'); - src: url('../fonts/iconfont.eot?#iefix') format('embedded-opentype'), - url('../fonts/iconfont.woff') format('woff'), - url('../fonts/iconfont.ttf') format('truetype'), - url('../fonts/iconfont.svg#iconfont') format('svg'); -} -.iconfont{ - font-family:"iconfont" !important; - font-size:16px;font-style:normal; - -webkit-font-smoothing: antialiased; - -webkit-text-stroke-width: 0.2px; - -moz-osx-font-smoothing: grayscale; -} - diff --git a/sop-admin/sop-admin-front/assets/css/xadmin.css b/sop-admin/sop-admin-front/assets/css/xadmin.css deleted file mode 100644 index 6d81c56a..00000000 --- a/sop-admin/sop-admin-front/assets/css/xadmin.css +++ /dev/null @@ -1,680 +0,0 @@ -@charset "utf-8"; -@import url(../lib/layui/css/layui.css); -*{ - margin: 0px; - padding: 0px; - font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; -} -a{ - text-decoration: none; -} -html{ - width: 100%; - height: 100%; - overflow-x:hidden; - overflow-y:auto; -} -body{ - width: 100%; - min-height: 100%; -} -.login-bg{ - /*background: #eeeeee url() 0 0 no-repeat;*/ - background:url(../images/bg.png) no-repeat center; - background-size: cover; - overflow: hidden; -} -.login{ - margin: 120px auto 0 auto; - min-height: 420px; - max-width: 420px; - padding: 40px; - background-color: #ffffff; - margin-left: auto; - margin-right: auto; - border-radius: 4px; - /* overflow-x: hidden; */ - box-sizing: border-box; -} -.login a.logo{ - display: block; - height: 58px; - width: 167px; - margin: 0 auto 30px auto; - background-size: 167px 42px; -} -.login .message { - margin: 10px 0 0 -58px; - padding: 18px 10px 18px 60px; - background: #189F92; - position: relative; - color: #fff; - font-size: 16px; -} -.login #darkbannerwrap { - background: url(../images/aiwrap.png); - width: 18px; - height: 10px; - margin: 0 0 20px -58px; - position: relative; -} - -.login input[type=text], -.login input[type=file], -.login input[type=password], -.login input[type=email], select { - border: 1px solid #DCDEE0; - vertical-align: middle; - border-radius: 3px; - height: 50px; - padding: 0px 16px; - font-size: 14px; - color: #555555; - outline:none; - width:100%; - box-sizing: border-box; -} -.login input[type=text]:focus, -.login input[type=file]:focus, -.login input[type=password]:focus, -.login input[type=email]:focus, select:focus { - border: 1px solid #27A9E3; -} -.login input[type=submit], -.login input[type=button]{ - display: inline-block; - vertical-align: middle; - padding: 12px 24px; - margin: 0px; - font-size: 18px; - line-height: 24px; - text-align: center; - white-space: nowrap; - vertical-align: middle; - cursor: pointer; - color: #ffffff; - background-color: #189F92; - border-radius: 3px; - border: none; - -webkit-appearance: none; - outline:none; - width:100%; -} -.login hr { - background: #fff 0 0 no-repeat; -} -.login hr.hr15 { - height: 15px; - border: none; - margin: 0px; - padding: 0px; - width: 100%; -} -.login hr.hr20 { - height: 20px; - border: none; - margin: 0px; - padding: 0px; - width: 100%; -} -.x-body{ - padding: 10px; -} -.x-nav{ - padding: 0 20px; - position: relative; - z-index: 99; - border-bottom: 1px solid #e5e5e5; - line-height: 39px; - height: 37px; - overflow: hidden; -} -xblock{ - display: block; - margin-bottom: 10px; - padding: 5px; - line-height: 22px; - /* border-left: 5px solid #009688; */ - border-radius: 0 2px 2px 0; - background-color: #f2f2f2; -} -.x-right{ - float: right; -} -.x-so{ - /*text-align: center;*/ - /*background: #f2f2f2 url() 0 0 no-repeat;*/ - margin-bottom: 20px; -} -.x-so input.layui-input{ - width: 150px; -} -.x-so .layui-form-label{ - display: inline-block; -} -.x-so input.layui-input,.x-so input.layui-btn{ - display: inline-block; -} -.x-red{ - color: red; -} -.x-green{ - color: green; -} -.x-yellow{ - color: #ffae19; -} -.x-a{ - color: #1AA093; -} -.x-a:hover{ - color: #127F74; -} -.x-sort{ - height: 30px; -} -.x-show{ - cursor: pointer; -} -.layui-form-switch{ - margin-top: 0px; -} -.layui-input:focus, .layui-textarea:focus { - border-color: #189f92!important; -} - -.page{ - margin-top: 20px; - text-align: center; - -} -.page a{ - display: inline-block; - background: #fff 0 0 no-repeat; - color: #888; - padding: 10px; - min-width: 15px; - border: 1px solid #E2E2E2; - -} -.page span{ - display: inline-block; - padding: 10px; - min-width: 15px; - border: 1px solid #E2E2E2; -} -.page span.current{ - display: inline-block; - background: #009688 0 0 no-repeat; - color: #fff; - padding: 10px; - min-width: 15px; - border: 1px solid #009688; -} -.page .pagination li{ - display: inline-block; - margin-right: 5px; - text-align: center; -} -.page .pagination li.active span{ - background: #009688 0 0 no-repeat; - color: #fff; - border: 1px solid #009688; - -} - -/*登录样式*/ -/*头部*/ -.container{ - width: 100%; - height: 45px; - background-color: #222; - border-bottom: 1px solid rgba(255, 255, 255, 0.2); -} -.container .logo a{ - float: left; - color: #fff; - font-size: 18px; - padding-left: 20px; - line-height: 45px; - width: 200px; -} -.container .right{ - background-color:rgba(0,0,0,0); - float: right; - -} -.container .left_open{ - height: 45px; - float: left; -} -.container .left_open i{ - display: block; - background: rgba(255,255,255,0.1) 0 0 no-repeat; - color: #fff; - width: 32px; - height: 32px; - line-height: 32px; - border-radius: 3px; - text-align: center; - margin-top: 7px; - cursor: pointer; -} -.container .left_open i:hover{ - background: rgba(255,255,255,0.3) 0 0 no-repeat; -} - -.container .left{ - background-color:rgba(0,0,0,0); - float: left; - -} -.container .layui-nav-item{ - line-height: 45px; -} -.container .layui-nav-more{ - top: 20px; -} -.container .layui-nav-child{ - top: 50px; -} -.container .layui-nav-child i{ - margin-right: 10px; -} -.layui-nav .layui-nav-item a{ - color: #fff; - cursor: pointer; -} -.layui-nav .layui-nav-child a{ - color: #333; - cursor: pointer; -} -.left-nav{ - position: absolute; - top: 46px; - bottom: 42px; - left: 0; - z-index: 2; - /*padding-top: 1px;*/ - background-color: #EEEEEE; - width: 220px; - max-width: 220px; - overflow: auto; - overflow-x:hidden; - border-right: 1px solid #e5e5e5; - - /*width: 0px;*/ -} -.left-nav #nav li{ - border-bottom: 1px solid #e5e5e5; -} -.left-nav #nav li:hover > a{ - /*color: blue;*/ -} -.left-nav #nav .current{ - background-color: rgba(0, 0, 0, 0.3); -} -.left-nav #nav li a{ - font-size: 14px; - padding: 10px 15px 10px 20px; - display: block; - cursor: pointer; -} -.left-nav #nav li a cite{ - font-size: 14px; -} - -.left-nav #nav li .sub-menu{ - display: block; -} -.left-nav #nav li .opened{ - display: block; -} -.left-nav #nav li .opened:hover{ - /*background: #fff url() 0 0 no-repeat;*/ -} -.left-nav #nav li .opened .current{ - -} -.left-nav #nav li .sub-menu li:hover{ - /*color: blue;*/ - /*background: #fff url() 0 0 no-repeat;*/ -} -.left-nav #nav li .sub-menu li a{ - padding: 12px 15px 12px 30px; - font-size: 14px; - cursor: pointer; -} -.left-nav #nav li .sub-menu li .sub-menu li a{ - padding-left: 45px; -} -.left-nav #nav li .sub-menu li a:hover{ - color: #148cf1; -} -.left-nav #nav li .sub-menu li a i{ - font-size: 12px; - margin-left: 8px; -} -.left-nav #nav li a i{ - /*padding-right: 10px;*/ - line-height: 14px; -} -.left-nav #nav li .nav_right{ - float: right; - font-size: 16px; -} -.left-nav #nav li.active { - background: #ddd; -} -.left-nav #nav li.active a { - color: #148cf1; -} - -.x-slide_left { - width: 17px; - height: 61px; - position: absolute; - top: 200px; - left: 221px; - cursor: pointer; - z-index: 3; -} -.page-content{ - position: absolute; - top: 46px; - right: 0; - bottom: 42px; - left: 221px; - overflow: hidden; - z-index: 1; -} -.page-content-bg{ - position: absolute; - top: 46px; - right: 0; - bottom: 42px; - left: 221px; - background: rgba(0,0,0,0.5); url() 0 0 no-repeat; - overflow: hidden; - z-index: 100; - display: none; -} - -.page-content .tab{ - height: 100%; - width: 100%; - background: #EFEEF0 0 0 no-repeat; - margin: 0px; -} -.page-content .layui-tab-title{ - /*padding-top: 5px;*/ - height: 35px; - background: #EFEEF0 0 0 no-repeat; - position: relative; - z-index: 100; -} -.page-content .layui-tab-title li.home i{ - padding-right: 5px; -} -.page-content .layui-tab-title li.home .layui-tab-close{ - display: none; -} -.page-content .layui-tab-title li{ - line-height: 35px; -} -.page-content .layui-tab-title .layui-this:after{ - height: 36px; -} -.page-content .layui-tab-title li .layui-tab-close{ - border-radius: 50%; -} -.page-content .layui-tab-title .layui-this{ - background: #fff 0 0 no-repeat; -} -.page-content .layui-tab-bar{ - height:34px; - line-height: 35px; -} -.page-content .layui-tab-content{ - position: absolute; - top: 36px; - bottom: 0px; - width: 100%; - background: #fff 0 0 no-repeat; - padding: 0px; - overflow: hidden; -} -.page-content .layui-tab-content .layui-tab-item{ - width: 100%; - height: 100%; - -} -.page-content .layui-tab-content .layui-tab-item iframe{ - width: 100%; - height: 100%; - -} -.x-admin-carousel,.layui-carousel,.x-admin-carousel>[carousel-item]>* { - background-color:#fff -} - -.x-admin-backlog .x-admin-backlog-body { - display:block; - padding:10px 15px; - background-color:#f8f8f8; - color:#999; - border-radius:2px; - transition:all .3s; - -webkit-transition:all .3s -} -.x-admin-backlog-body h3 { - padding-bottom:10px; - font-size:12px -} -.x-admin-backlog-body p cite { - font-style:normal; - font-size:30px; - font-weight:300; - color:#009688 -} -.x-admin-backlog-body:hover { - background-color:#CFCFCF; - color:#888 -} - -.welcome-footer{padding: 30px 0; line-height: 30px; text-align: center; background-color: #eee; color: #666; font-weight: 300;} -body .layui-layout-admin .footer-demo{height: auto; padding: 15px 0; line-height: 26px;} -.welcome-footer a{padding: 0 5px;} - -table th, table td { - word-break: break-all; -} - -.footer{ - position: fixed; - bottom: 0px; - width: 100%; - background-color: #222; - border-top: 1px solid rgba(255, 255, 255, 0.2); - line-height: 41px; - color: #fff; - /*padding-left: 10px;*/ -} -.footer .copyright{ - margin-left: 10px; -} - -/*404页面样式*/ -.fly-panel { - margin-bottom: 15px; - border-radius: 2px; - background-color: #fff; - box-shadow: 0 1px 2px 0 rgba(0,0,0,.05); -} -.fly-none { - min-height: 600px; - text-align: center; - padding-top: 50px; - color: #999; -} -.fly-none .layui-icon { - line-height: 300px; - font-size: 300px; - color: #393D49; -} -.fly-none p { - margin-top: 50px; - padding: 0 15px; - font-size: 20px; - color: #999; - font-weight: 300; -} -#tab_right{ - display: none; - width: 80px; - position: absolute; - top: 35px; - left: 0px; -} -#tab_right dl{ - top: 0px; -} -#tab_show{ - position: absolute; - top: 36px; - bottom: 0px; - width: 100%; - background:rgb(255, 255, 255); - padding: 0px; - overflow: hidden; - display: none; -} - - -@media screen and (max-width: 768px){ - .fast-add{ - display: none; - } - .layui-nav .to-index{ - display: none; - } - .container .logo a{ - width: 140px; - } - .container .left_open { - /*float: right;*/ - } - .left-nav{ - left: -221px; - } - .page-content{ - left: 0px; - } - .page-content .layui-tab-content .layui-tab-item{ - -webkit-overflow-scrolling: touch; - overflow-y: scroll; - } - .x-so input.layui-input{ - width: 100%; - margin: 10px; - } -} - - -/*精细版样式*/ - -.x-admin-sm{ - font-size: 12px; -} -.x-admin-sm body{ - font-size: 12px; -} -/*登录页面样式*/ -.x-admin-sm .login input[type=submit],.x-admin-sm .login input[type=button]{ - font-size: 14px; -} -.x-admin-sm .login input[type=text], -.x-admin-sm .login input[type=file], -.x-admin-sm .login input[type=password], -.x-admin-sm .login input[type=email], .x-admin-sm select { - font-size: 12px; -} -.x-admin-sm .login .message{ - font-size: 14px; -} - -.x-admin-sm .layui-table td, .x-admin-sm .layui-table th{ - font-size: 12px; -} -.x-admin-sm .layui-elem-field legend{ - font-size: 18px; -} - -.x-admin-sm .x-admin-backlog-body p cite{ - font-size: 24px; -} -.x-admin-sm .left-nav #nav li a cite{ - font-size: 12px; -} -.x-admin-sm .iconfont{ - font-size: 14px; -} -.x-admin-sm .layui-tab-title li{ - font-size: 12px; -} -.x-admin-sm .layui-icon{ - font-size: 14px; -} -.x-admin-sm .layui-nav *{ - font-size: 12px; -} -.x-admin-sm .layui-breadcrumb>*{ - font-size: 12px; -} -.x-admin-sm .layui-btn,.x-admin-sm .layui-btn-xs,.x-admin-sm .layui-btn-sm{ - font-size: 12px; -} - -.x-admin-sm .layui-laydate{ - font-size: 12px; -} -.x-admin-sm .layui-btn{ - height: 30px; - line-height: 30px; - padding: 0 10px; -} - -.layui-table-cell .layui-btn { - height: 27px; - line-height: 28px; -} - -.x-admin-sm .layui-btn-lg{ - height: 38px; - line-height: 38px; - padding: 0 18px; - font-size: 14px; -} -.x-admin-sm .layui-layer-title,.x-admin-sm .layui-layer-dialog .layui-layer-content{ - font-size: 12px; -} -.x-admin-sm .layui-input,.x-admin-sm .layui-select,.x-admin-sm .layui-textarea{ - height: 30px; -} - -.x-admin-sm .layui-form-pane .layui-form-label{ - height: 30px; - line-height: 14px; -} -.x-admin-sm .layui-form-checkbox span{ - font-size: 12px; -} -.x-admin-sm .fly-none .layui-icon { - line-height: 300px; - font-size: 300px; - color: #393D49; -} - -.x-win {display: none;padding: 20px;} - -.layui-this{font-weight: bold;} \ No newline at end of file diff --git a/sop-admin/sop-admin-front/assets/fonts/iconfont.eot b/sop-admin/sop-admin-front/assets/fonts/iconfont.eot deleted file mode 100644 index df5334af5f88dbaafc510fc0b94ecd79baab2ee6..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 49600 zcmd3P2Y?&J+4jzCSC>}ON>_BJ(@DDGYq~q>+|Iq?f^BSr4aOZ4V~1kEn05hUdIu9~ z0-?nu0RkbU0SOQYHQ}Qql!W$42c$qCfsdT_{^#A*xqwN+|9yWsX-2!VyR*A9@4WSy zxrcr(2r(okaDo1~AdB_}N-klvHRnKQe@|`~V^>$+_wOkk*$N0p3TuR~3Y&%XcD@A% ze8NIuop6M3yl|ATN;noJQDF&6juno>*>rBb&?U4Boj9_;>rqTMbqfQ6D0I$Pw0QDe z);)hhVIN8-&tKG$TWZWc4Ev{Gf61CntB%gTaD71#q*1u2>4>9FTEFJ5yZ(W?w+q5; zA8lB-YHgry*{^Z#>qz+xDA1?M7i0UUNR1mdZP~i~=HXjW-}7jZgOB>^npMWxrCoyH zKL};*n^tW-n%ymYitQNAuiw0C)4KkHtWyQy{;fEF)6ri&Zp-XX*F7r;KOPhWrH!6l z92g!D4wcUtes%bL`CR*LaOv*9opuS%^S`g?hx^Cj&0!55xBeN$sB-SbSJITtiJa!fu4l?tF$kQNfgKOK^49GVlOC?)C}g>mXxl~KC2 z_|4*-#h(@*Dn43#toW&lR69zEpgr`1|4;#dnH-EdIIpNzp3tl3Y?to|3Or zTgsH0N-d?fQfDbw%9kdUrj}-uW|!ua=9dsddS*}>R0czX^@FX0;|He< z)A-z4+*!P-cz5x^&)w~1-0k(^TgCTqw-1V+;%*Y|rsHl#sbR0X^_C`-rr>U~aJPB5 z+Ymq|hLwghnAPWQ45HBs2>xLMtet z4dSQ+0;x;L3Ee`E&@1GHg3u?77RCr;g>k}op z4iM%DbA@@reBnT00Yu*-;UHl#1m05NVBrv9nXp_qR5(mnAsjBOgg9Icak&=4a6JU% z28hG22piFUn;;awDjY2wV++YG5S=FoCkk7IlZ0);$-*hZslsW(>1gGz31Y(NMJRsHNf`Z@rO>rNEC|qI|*Y_ zDE`Pv7@b1#$49{q4n)h?LzTMCy~4;KI0^C0HOGtlfVmvB6LAY;0i+VB`1->T720_;1ojf6(@mb2*uw! z3EV>{zV0OO5ux~olfY4g;#*DvZxM=bI|*DyDE_CDz;A?N(MjMuLb2o|@F1Z$=p=9> zq4SvOVWH%6 z5;(F@GMoh7ER@1d0+$v_5hsCP3#F)&z`2Ez=_K%Qp%ilxxVccm*q{WyE|jXA1P(8h zs+|O0FO+JW1g`V- ziB5tn5=x*CN{~uIX^N8|pM=s>CqYsPCGeT)Q&CX}dO zks#ZI67?$*q?}NqK0_kjTw3BJNIs!NeS-uUD3qvgkRT0(67>fX=TH|%;8#41UH)IcNYH99lezEz_Ef=)T8+C8ns^?q_;hdT#0s_3r2$%rDG;)W`d-7`=V;n`3Ssn;1K9>}6x`9~T}s zd)$lTPw98{_w+w8Vd8}1#O;%+CheTOeM;lhrm2@q8#S#sJv04+8QW(bG^>8reY1VD z4?UpjfV<`#IJa|N=e%>~hv(mZ;AIP<3l3dy@4_VuuUj~{X!W8`(PA>p>NmuniZRI4 zCh+^I#DAF5${KvUmL;=2?Yxyml5)fh`^0Q2n^aQ`?c#W5HYnj}F5iQXiS{x)mYs0ra*y`i1x z35DXJ&;^uZsM%u9?>{Pdr;S=MZmwb!gQ&J)3LOrq0;F z05huVeYZ^rRt51rr7CKK;%dOF#j3oi#xOhaZFkJ@)MnnotCAKoJRk|;0Q3_RGPoTw zXBzPn*4^9AvOcCJn3?To1^h$`sdmP)5ftJO%IFw=dQ(1@HhZ0uaIoN980qe31~yX> zoR%x}vv#H`s3F^{cB3S$DhZY^VP3-Gc{HTQs zHgObvh(jCBcrUc>*ym8(~EX<0`6SVNI1gq_|uSXiG*7%74j!NxB$Q!X}IM zvrHE6U10Xxv!lWh)~g0ROtqdQt0%8APf%sI89BrHKw-Y1!u+yNW^pCxbJTdE#Vf^6 z#e<+{WuTMvk^H94NE-P}Hc1p`CUdG-NH%1$VmpY=#QhvX%=YAS(Xi5xN$)P{2MJQi zd#+r9w|-4eHIzSc`+RQh3CbtO$|YY+{moaWjb7Z>w|MlGHLW%Hf<&={qAOWV zOKojS&7(Dqj6Ia>V1Cd;z*-avdH6<`u7+GgPqdC6y=3(0)(Fn4t&QxnM@<9{3bVb; z@2JpR2Xq@q6N83M7PJ(OcH7$+aCp6Lqo4I;oNbfY=OpcO?Cq4@1l?%go{Y0??r`~h zu2u9_tM;=c-bY8ud;2kad%WEm1D=qFF=W|FuYiU8YJG3Wf{DbdAH&XDtseyRSkNT@|6nm`JfDi4^UoSt$;B2 z0Oj@=y$)k^3H0Jl=!eswCoLm=0Ryc!s3sFE5-cQD;x`kRnhauyC4(Rlj6XCe4MArZ z_tT)=O%Zzv_ac)$g(GL4nQW^T*C4a%O1k6;yWa4#583R#p)=V5g>&70zk4koJF0Cg zV`JM!jlGW5wj~m6wd`Bibqd?YUY8h^z?a?3#*Lgf?)u7!8(CWeAE-uN9;m)fi5QY{ zmCUaleE=)3AAJC4{-~d^W$oh_8`s`Od7Fv)6N%`*Rb+dGD*P>Lw;i-N1`hz72=Ei+ z@(x$>u@uT+_@gWg-c5X|pQWk!hyvxkHgZuDEgSV=T+@dJmP#KVjq-j52Zi;AmtVI2 zAj>TI@*y`()wnmT^U=M%DT6H z$;Ku1;kY6xh9NW69jcms$n>g^TV=9gpft_~US>&olRE%9k0 zprJ*SU%_ufXIGUkthW37RqA@$vL0nV)9*KZ>;|V~qu-6odRbfY>110EzZ0dLP8oW? zTIK&iRh4H{t5y6_kI&~RKSc%X70Rvj{LD%Q8KIPWFC za+56oh+Xw<*MMZ5>b^J$cl$-b+M{dv)#Xd`GZ-t=IaW=awbt_`aa?R&sr+Ixj}H`9 zH(E^ViCyVu!;dyEgceDBX80lSgjU$o(Dda(<&p4|5o+}Dpht%bR32K67C_Jt!Lpgo z_*m2wpN#Ls5shX#;|1K6>8ygv4GFc>FTf&He`92eWF5&5T93uhlh`lT;lPNiCOUZ`LK~T zgP!tH(@218XGL&E(H?Pff;mdl1P0NTZlH%WqDlv&$E{=0{D^#0G6f^w&J#wz%W2`^81KjJ{ zu6UxK+QaA5o_^Oj9*nrT<&S!lDcl_iij&>rdxo4=xjyM@*23VdzqRvu{=g=;NA$ao zTI%w$fJ+<&@o#;sYntI=T5pdvReW4iZBnj`&Znqq8Tfg<{F=o1gvfE|7GrFzjBH0KjGMiZINvkXnRv&_{5LVw|+{6755A$f~ zL$5u42gHY<&w1g=X|tsTEM^Q)Ggwe7RFaL@)LbA*A>s|7pb^FN84?pNGYx%?8EnR=EXfCUbf5G2dR+361<;k*&w4Xvlr(u9qFo#*3;kKScKtwoTAN2_Dt$Y@epGn9vd}o zZ0;NQJ zM;wixfd_fg(ffNNVe1Jp2NZTT)P9%%r1mpE%mJ7HbVr+}iO)}j9O@>&A5+crZVm6V z0?8ibG6ay_6wv%ChQNq2$6iT&IjvKlNnRsj<9;hAK)!4~u#U;o+)?@V_f20LX z{V-_z(Ej@_WU{u@bxPW8DmD?D>ku zZ^UBh7~E$bjLWa%9X3Lf^}q+6fK}ZIOJ+QLg^S@2g9i%Yw2(A|DmYUzDAJCt+Ey4< z5KTxb?#KyXTgKiOr1zp#gQ!#me}m#-t7kNPq3AiB&EaWmM=WOD5sSrXBWAto_F=Q7 zj*TN0Wgm&L9VqB>PQ#8RIBaGWu^eJOt48<_7szfH>ZDv86SH>3Vr)sQD{fuN&M9xF zedcqqG?lypPRY*URm|(QUfFY6KZ>0*_gslb0`YroljIr7t(Pf(WOv5ycSaTQJ<AWONQ+eVKW z?A|jFdL8T0d8hQ=aw?I2Fm!S3wixqGiNpFL?#~W7c}zG;gK72UvZKHCtuX@G- zPJV1;9p?&Ul#kVkqz%=vY$ji@nM*$t-{rE)6?ri1Qbop<{wdPCci;7{EWdk~re%D| zHkS)_c`Bic?u7T+rzPp>Yp;Dq8e32~=d$h&({D8;F%6?_Nve$CqOeNwLCw8tKC_<*$P<`+IqB(XCnna zQwnCG7w2S9hMG*;C}dNpMyV9gMpljBPEqHKEN!S}H!8~8m*6sN?CCz(fe=TwtE+#mb9*w0vZnx*m#QD--T$3O2i;e*D1)AJ37uWnC&pW};!rGT7Qv zrXIp2?hXe;=@ZXD-Pz(o2@iLv5!xw9ihPiGPTe_fuh*N1J!m%4i)>4rBQB67NxIAk zUnzsz%ooqDJJaLwdQ!26Vs#!jizQ2qG0pFDdC$FZK_sfFrhM(!WmA&P$U!%s?gbOj z&2*_QreknpUqxWNI+z3P4GY z+I(cdrjP#tTOT6Fb`OlOP#Sq~u{lORyljd8&ux9{uePyY=YeIf>Z0!VM@%!~_hVCq z{qL!($PK%_f)sW9{K%C5O;5@GMlk=+5rOdUctSou-r1M%bAUI1KMY?Yz6Rbvc25Gn z(oyhTOs7a1TwYKfAn$C!QBf%vi4MaV;_yd<7l6;&c6@Kej!%=beveVmowcoiJw}0T zBV>CkMge~=(WF|(1+7vd%gh*`lml?(S~fYC51xL+>4C$hCl8x$eO<1kEZ^SGs~BU0gp!l;PQO1p+QMX1qLbg}9)p*4h=YHmNL|;P1pb%(9uA z#Mn34%C5<*d{5xCBTma5mYj~S^@@BwI2`Q`3u>%-i-!rZkXQGTQ9wTyGdMTcMp>I$ z*Ezm3$%32*nc39W*M7PTCBlU^yj1)EZRm!U)?mj1rX$9>5wW^6(T=uuxlb!nBa&2x zxUw}37R~ju4sbsV5OFV~!4}RHSMA06YH8;Z0K&vV{B@Vcm%TYTwA2SV(091&G0kz6%}GcJ=f9NW|7#ot^?b0v$cD+ zxt?yu33WB$h!^5h47mNxhbuf_sGC&EH>*Z~D|W6zk7=&A+TzIBf51ew+Iprl_FnHa zHguL|__V*06F{^6r1=bNGssbXf#!B=iz%~Sca*gooS&sNOUK?w4|8M3l&D{m#X#82 zM1viu8$Pa`jq12|D`c^u@1UGSpX~!45Z^=J_<^kGfF(B{5oW|D4T_~uNCuG=GG0aO z!tq-mbpoxarfr`a=orVdh|zrZIQtjZvsSb}UFbOPY_2#`HwAXOZC&f~C&=t?sehur zwRHub(fdR%{8{!7=NC~Sj?f8*jTAbkSew51I&q2m^WBw_!pQd2`zyEK=N9MThOgJR zGWg40uWzwl%unZhdj56i)(8BvgI315h8`I;ST8u&yzbOsy)bfZOZ^+9qQ23)yJmRh z>~Z4AnUTIY0B8aNL!V4hVd@c^p1+{Q|JCumEtP$|FMGu}>~pe?wrdZly|*g^?efQ| z-I1YzR-j=XcixVEPW$3R;&b%I))LCuuK)e*f8IO)yaTuwK_y?rf2wUKpyzjQSbru$ zpyE^a+JI~$1zQ~cVEFgqu$V#|lVVEnbwJAmpH4>e4pRbqRI=b;u*XL{2YcI&7#p@9 zjGWtiNz0ZN>-=o*Tv46Zn>7?8B+KDgtZV4MI;&#r_^OFjtW60AWyLxek23N!coP2R z#EIowr>+*+!YOsS><;VonFhvk&3svNv(%*2FGs(@3&6)0k~g(RT>AL?sipKRA%BSHsqV_FS@8m@<+hR26`;_So?6d86Mzk^RX?N&*;^)x5na31I9ZLst5gH=`c z3@Mxi++i-iacw+)#P{-csCV2i@$61qZzF%te)dW{q~cB3%ljZM)}d>cmr%|oRzijw zonPxAD&@N<-`&p}p}7PJdzIcR$V3t`98KfBVZ@^$a$OW@!q*9oqM7i;QAJX5bgzan z0+C341kSC>?_`A~fA>3)aF8#$7!3Q75YQ=%a|LH8;s(&`?|3%M}-~0z%~K z9T4L14ek>*%jZxiD(#(cPT1EXZ1(7kv&LwKN7N@?W{`@&Hj{*YTZ0X+J*?VdnBqdu zKnB;sSJ)0z2#`oYTLfl}Xr7$u2*aa?%x;7a5#58<8CLs&3dyomLxyB?w`>zUV%iR+ z+u<~HA4)Ui8yqQ35UI1q>RbH7v1ZPjW5fPisvF0fXOi`g@7VO$danh#>ae5yEZoPNe@V+1*|2+|_5wx`Zf2qW@d z>LWD2-3Wl>7i>FH&>0{}ySC47+vikJ1@<}n*&e7LwQor58aGA8_=gnXD&OX#prnu8 zgAf@-$p(mnUuet9Tj_)g>e`gG}w4g#amZ zqMPWB57VLhc5hi%u*!3O_V-%4=Cg&gf1MLs-8;AaRSyAsvV`!UIs_>VM}o50eiAsz zsRWcy@CMsuPC}NBnux zLlv8ET@Z;{(J>}_PlZd`de~-8;}IHDtw?57+DgID+yYjoT)q2R)YHitdZ-49Z%|DC zbn#u-4j$OXS@>AT5~>s(wa+utJ2)Ju5+for0tGnF5lCilL&kZrR2mMo-VX9YI&U3@ z0I&75yuxM&l%LeD|pQ>=HNa|9TBnB{PT**Vr4&&Kg}aZxj0 ziUk>yH++ptk6)E)&=PfL-6ioYhbk^_*!W4f4vtYbAj5J+FWU%d-2jYSKVhB?n<~gl zowTuW*+*+Vv4>xMm1v*d?@I9%@l4D?h(fweBwV&Z zpaF`-XH*$-t)Qk;a#rr9=nCkbMuLq3!N{=R(7=XMv>WAU0x*-4$hbGHXFB%}g(Q3dkx1S3FivBfW3hTHvww*`2xpM2mIDCGciRI&$ps zZ67JhM|!pPlA^q%RqL&-zx{3N-?jfu%l?u){>~Bf{DVJwjy-Lv({J z+C#urQejEZ=&_w5wo02Nm5zqeK0~g;CcdB;#^3(V79Vvzu+zo`ob_$phToMRxa|Af z5Xmnel{k8w@*hQ|Hs~ERtnkbYu`*05P~OvbuI`IHq5nc?_D#c-{n$5uEMx;f74_? zMcLgymCc=L`$Q&812n9Uy!(9l?mMII9HaY8Z)fGXpDCV3kHx}xz}=6q`(&b3+eQ-O z;)#eCjkdA5cD!&mBF6^5RYIfLU^_MWpB1S4j#o(?&1b_w2EP)0`{7e|MPCxR& zm~|Psn3%^Vn^*X>ZnguiqS-9gTCb{Yql|zq$z77i7i>&uF|W+|*Wu~020iLxRfOwk zvB6@Y#kK;<1}sDuo9hs3L=Dzzj7BGBxQ%&YW9ksE@wOWgFZk3akjw!inARD@A!3Ao zU$I)#H)~-J*EYNK)s7O1_a|THnUGT>@zi?6LpA{`58p!?e1|v=K)1*eul8?j$}C=?aHzaHlt_(PbOft7}4fY?f2gq%(OO#Lrr0S%I%>j6}$2jcx3Q> ze8d1hHNG~E@6MglZu<7 zXvR}LnfXlc7H_KX~|CQW#{J1D`mF z5dCSmg>5ner4{lSf`bF03!~0Vg80;YRLvu{2g0Kx3gHdYcH2@6i)SL4Ji=JSQm~&T zMaqs`+5KQM8U(k{(IXl%`Forwcdtl7n4}WAoz!b|b41(<{J1-;xuZ2W_~PAX4@MId=1x-aId75%fOy1rsNL%$*^YmPPL za81;$8E!h8ut$1~-$TTWcm4)v+>0P$!$#ZHYZoSq2e^P)}ztUYn}Y7p-sL za#6QMnqJgm{k=>|g_5=5o<1W0ZH;?eisT9yeLdmYWGE%E-u@W;qTFj}XUn`{{UW_8 zRT~d>_JsT%7vN9sqgTb_tH@rfAbzpMle=(#JjbqG-QYmex_8+!?r!l#%nm01b_y5- z%$+cjc6b2r>E4R;wgI#l9=7k<=HQMQTJdYkw&hUqu}u~eiKf`lo5)N!`^8>lR^N0< z4TU5pzh|Ku3UGOmV)#YHx{Y^J! zFFI1=9z%2T)Aq!Yi3dC(?h;qR7Ikp@d1!TOXvT>F@oZ}v!BjA;;6d?b4BO163j&Id zuYmHCL?dYmen5o*%YfcOtkLEKWTGOF=s;n?6fk0lV^pXW5mus1l*7s*Hw|fhb_|p_ zLxG$&M6_42bPeyTPP0*PiahS}u)|udRlHb}W|4ALO*$Hd%F2h3Sr?uejp7@V2qLE3_ z=%nbTO-U|Cl8JyXUd!6+Jk45AQ?$CSP_~aXHu!^e$%GbkNt!9j(PUlF-_XeVvZ1a- zxH;sn@deVMCQn^EtBv~tiDZo}tIig02d_RHv!yWqNhWcV%A{y~M|yjlW*pI-!>SL` z3MbT7*ah|Dc+98(Z{|Rsp&QWL;SrupECAJX!%ODi1ybZ0sz3)YZG&`u*~$Cg7FczT-P@Oa9uK z=_a4srRl1uYhJT?@--0s(59Z>rW)Edl{_Td8ctRbtv{}73ghIT;4b}nw_2YbwP02% zan<7zZdP5FUbr~pb!nRWSZK50q{oJJw=cW=kk(A&cixiax4x5YS-7-4>vQYI^DZ|8 zBPtSYgXvn_#SX_HXWKNmD3Aa3ukCp6qvD5R0y=pDR!u)>-;7d|(Odxg^?@KYVYE>* zlm2B8vM)*YOg3p&Fr@bB75DkF7j-xLx;GH;S{uSI>aYxS&rA5xUee8ww)h)T&@Wz3 zhlkeGd_#1{BACN-sD1j)l=JtV)PnJV_M{eyX;$`kS}>;nR!7EmlppX#f!B)%Sej4v zgjJ8H+=f%B2%rcoUxM*`yZ8?1#EY4>Y51>4!z)Ph>#q=Q5N?M=>DpTxjC6q%P=G-S zf)Mv(q1llGTjK1o+6)3UHfG^Ag!9mjZnraN0u-lk>Oz>v9`SUdLu=;l14$sVoSlkN z3fhB&`kZOV-OILczGc~R%9n4xOcXEMy!ld5yma#~GP&HG?(R%58f}P1gKRtY=jL+R zplK#eGw@O}C0l=e;z{eTK+5}`JoMJdh@%<$*ee&^_kk>baNm6&NOiReA?I0rim#hn zI5^rKn9x+1&En>eWyaa8Les=Rd-UMGIqO-fj@?t6&5q4x6L7W%T`sMcFB&s;5$B7> zj#WLVPKuBw?WbJlY<=g=`zK%{;5)Tb#qptCE+2kKoRP&UE+57x z*#uil*iY&BLEO{ldX;h*gDrKh##`zJsaB6;3?tMs&8-f~FepF#=%bHpKgX}cKZ$P4 z^`_X#JfI6#QxqthRLD_f8iaO+U;;ZOpB0=qP{a)2%Ap+_j=JS1!`v*SMb&^3#!N%) zo`B|Yu7bc5RkT+!k`x^_;-~?p7*{>k3$mgCeR~uCu?SREzzZtAS%q82TCP>`pNR5J zkxz`LY{&B(t9)#h^=fpLb?J@D_j#3OP2s-?e;kcizj>ZLA!E`H0q?%cFIW||%B<<= z+58gHJj+MZ%Zm*5L8J!oE9>KkWvV`(tic#zS5e%>+Mop7>>Za2xJ{S!p(a9QdhN}I z&W5)pT7$X;OrFC2RL5d2PuhCgk`>XVxdZUh4Tj%;tD%!gpNzm7i6yTiiyIst}wjlWrse><+jfQsKn^F?ojKCTO4W?`fXA3lJX2_`*F`}jn zpe8j1bbzc{j#*Y_+zM8hK-ms^( ztJdoaH>BEXqhg*P)++iun|6leG-GKwv~!ckC$@^vc1{e)TN&Fb2ii#0t2*Wwenib- zE`n>jF0ZS*+}S#;#%iL&tfYHH#4m?n+?FwSYz!8^oWBd8|v(h53%B*p_X+w+Gs0gAYch(;7hI0d}XT z@J6FC8X%r}pe1$ZpjU;}w3rf8F!#F+eDEtm(q$wSHIO+K0<{*pbKnEe6iBfJj|AHU zoe2dW$VGu0w;OCC1ltW!2@}WApo+=Q))W0%BUM)wtQp@Ft}_}E^WGR(PtY^NFJUrLposmqBTG-}}W+r9Z7LIazvYE7LCcME! zIw4DS`P%xL09rp^8xB2bS&Uovv9R?=JI!WgN#f#nU!2gxL!Nr;xUV%Jil_K7RRtQM z;!C*^e?$w5dk9H_OqOTnAYJyd_;g*Cof>d&%*G6BXW4pCZvm6vC7dXwjqX0B=xPqaVUOPpzo#MfhCRr697itD>5nuoJeoLdattan`6$B5ayLm zT&F8~NdILx{45J2eEY{|F{(9h*pt~Xjl@X*@}#TV|C9fcr2qPf5pwx3_sO!>oz3~# z>(-GsecghMoNrvPfL!(qZ16N8nwL#cfv!@V9O`-Bl0JL^0&^n8jQyqW!7Xm8-?jeR z-BKu|%0qwP@&`Y>@2_yzcmis?nn2NJL~G{KZ*RQmCHPga&vN39_0DbA?+`n2$K7{l z*^9_7v9oLE*gmj1FgXYnMe*1H@d0rYv}XgTs5a>TRkp4KWOTbtZwiKPT7qmZq%fEP z9RR%s1bDI)u5xwd5#N@5F+~f`D^vU5D&K1 zscc67?YHq3>n`g(*_=D};HxJcIB~qMJ+QX z2dY|~ZoTy*D+V#@_}9M=-DD!H^$y??4<*eGY?&rUVkESa)jgI}w%sN>D5yIJBEi5& zlbapV73V`&?`Pd06IhW6`FarvWFp<1_M-7=r$-u$Qg41QF=5>$dNs@Pg*+}%3cca%!!c=i3_7Enqw@_<2=T^B4gATW zMHFflze_oL4N3Hcm@DXm)z(sPmF;4Y09@P`bg__+ipnoId%zmlycB<+j?Tr{;fvAT`(Yh&@2{I6^Me}`dTsv zBswB8{1;0PG6fXhp*N};7;C8FC0pH#cTQkzLZ?{QF=-ux%k)ofOa^pY z%h-1SZNa=u!^`BJ)^ReX9R}P|x~dV5vc^=aDoMJxrKz!XP9n&R_%isCdB81C!7aRz zK3`C-N`_t4^V>RS@JZ!Q=}ug!O4V1Dcg0f(1w(RA?BGi}$8k>6#b}J#7~y8@KvM+4 zQ5@gVplvGx^BjpfZ8wuG4bV;!XxsXkQ=7^TFtW8n@7HDx)}>L@{6)Ow)NV1*Jyq1Y zQr1&el^r(!0Pi@~7@fr$6Qje{qpI7w*e+ksdQx58P!te`#yX0_rvsvJCaq5cXaz#c z24(&5KiNG_iX(?JynZ_2b$CHawBB&)<-5)b!z17(k#F-8Z z1RA{Gr?|&G?!JH|_O!-ljf%xH0Q_3-7#)zZ;Genn%<54t6{GIph2jqpEr0Vbm}x8O zfAJ0YeQ6jYw|N=@fdip7GN~b1H!*I;`m5`u8g9MQu%aOj7)X6>>$0l4uWpioE4xPn zWb6Clf~Aeko4TqyF%o63(POZvUkrLPv3Pn>wxOMF%Yvgl_o*Sxdggno1eD760R44% z)a~MLvDSnKnpYa$?1R8jski%K8B-s3LmRediDFpTaE_4!W&>Ii!x4=PCJWfOeE=f} z!v;guZd1FLXo|feOa|kz$M+lW5*K(Ep1G$-ijLORAH$>zDnC}3_iK+?A1idG{J{@? z@PQk$J%RT^Eo>@lW8uzk!dxb+08XIMZ*v`mBdUGSp;o53KTq`rVjc3gQu z!JM@hp&Nkjd32|`AABJ53%2Qs8qjuJ%N6V6$8blqg$MJN2S8_EgKY7`Ba^i)$^(G9 z-3m0z^}>xHMO$p+jS=EBq6J0VYaguvOVc^_?`#`NHi}g`fPI1gmAqHB=ME;jJ=%J+ zXj@`GKr}?c3cNFj(^P`8LAnckTq9mTEH9FlgXy5$#$?uhxg9CB^DA_he%oIA`j_0k z&8558cDGMET>;;ILiei2s{|$SvCR>3_vaHWk*)q71rptF&2)RLnI6E3+`s!-y~i(K zV&fp!xY$|NOluqargaM2&dy|K9}Is^SUv>t*RaJzS>noGCGwZtwnSOvc^ESfxwVrN zq676L&2*V8BfuG@zG;{;P&wcBuxtFuPVx`dR(+xyxN(^8nU>^p1eK=GcbSr z+H2N~_t7HLg{!_oU7YxDz190U*g9-(!x4TsQ)XMmI7+iaU( zjwGg0)9ZAy%{-~|>`sPH9z)AM$?jzK>b0glqrjM@}J_2E+d+V?wM92yk*phYptN&f2~RM9t~|I_qG)FeVFi zOzkcFkB^xsJFDrR4vO)621L^nI&;gMJ)-H4xK;fLU-Xt+!Z+Ud&Dbrs{GS*r(?IC) ze>xP{y}QRjdF@Gx`}c?tu9l?Lh{*iTt!!m-e$73HC6_N)@Z6do9Y!)lv}r&9-}GRe z8m!0Wtb;^0AzbhxCMJ_JV*=~!fMO+A5o9~IGcQ1>YEitFfDn9b33Hi;%BTMy{wM~&mgo!)us7*P^+ zT@C83hc#|(Ypdvc1E+e>;OkCPBw!$nXlh-8Y)@r8M!7N!1EDy=4a3sr$BB}T+&(FX%RT) z$$0q6o5 zZFJ2xhRu_ya#tW048{VZk+5YI=@dFR@>_n|Il;-X;PGC^uz4g^;-QLnZ_pU?qKzLy z8&BM)jb}nzqjiSQz)FKy|Bq3lRaVoo8>+IcQu%&xuPTLdoN~vtUD@vb0$}Y}W+eAo z6bI|#K_CX9qnI$9;H!igg~5!QVImh6RdO7Vd?iUK2QO>qcD5Hr_FoiUIE)GUpReG; z(9o`$kp&Hg9>bh&aWpa(FawMqIQ06+Vg}Ay27LKvL9qLPU#}xL?A~X54l~Q|-)j+s z5-ox71A7GocL2V3segg>7kdE&Hl{UHSpmUbwfCR&*(RVyXk}+w!};F-8-2Gob=Xm& z3PnI)-$Moa^gR1lz5RcxZ>>FDzK1&YY_WZ5g8frc_-}VT`;QUIsL;%AYS~RC|B5;Y zFH{~rRT5#tR%5+}MP$hWXi3Nma4&$=h=)ajPV^pukBp570N7^&adKL&!3k;e49nX% z3^32S5msrh{4s&&(++3|r(8d0jMMPH!LtDeM1XI^{;}pd{vJIwQq=Ge7~ja zefW)~ZxHL>Y~4-lh|S+jQsWz(4=H<&vH5h&x_ji<*Hj*V<5c;P;?a`u^tQ<;H7r-FBG5$A|oupaRed!0+D3{XR|L2?8+5mK-$lvPBD zt;3T(Vg_*@$EkLl1^X50LeLDH3;Y)Jes~n%8G+Uh|B(ZNfvOS-i{0^-ww|U5HO-Bq zCP3Hlw=c-Ibdv3qty^<2Q~EZKX==&z%o_#U35#yzSM;~#$h7M08oO$;$GWDmYhITu z_O7X_XPNkcxwh7-(Wz1CdIQ=`Q+rLq=fYIt8C-Yg=Jb)rWXkG^aO!jttL)@j)$ya7 zzn1ih*13{9Flog^m!J9FvyYu`c%^A{%2cMi3oB+O+i&2W=#rN3ku@qSAJ^EfYmA+s z=|EtTMLNI90`O1A<2nmA;R}y4anvnv5B&@g?+Ru)bzd3 z3L{Q*KSTu@3W6Ggppdsw!&#f|;r)cgWPcja3$Ty@RU+_PfslW4|l=_{MH@b<1gdVV>@>~Ch_Y}UDyhTHP)t#Vo^)1P5C!ZOCq;r^4L{f z&0&9SwY>ybCKEK9+78Z-+t5~TV%0O6M!=Q>Va5_wRm*Z!%dNXs#o4!6%fuFZS&r@) z^*xk$>GEA~NYWd-&i_rOGkO0>SNu{Ge|g2%eo}2+QkhQ$$g8tEuEthS?0TYZATb53^Z^=UN8p|%V5ydB^m&5 zd)fzV{8zpL;XLSp(_ta0=4aUO0$AR%tl&24AXb3u>BCE2GjL}8Pi zKQ5$PfJb{=K%jdglRL3Gm)paGhTafwS-WLLW2733qZna{tKM+!oZPyZ@sLa8k*s~Q z$AR1Q`Zc(rW=e`Ah6DakO|=nnW1hZ(nThv%B|YFD)sv{k8ji9xsg~>m(H$|dYA6o| zYuNp=HyNr)SeDg*hvpI%eHg{6W5JM1vR8QYHG~pLgdJ<#K|>T(iT$3&KjVp-P|_<~ zGi!o$CyyC%qh5>$_Mq%Z1gaA~qx_&$uQih%10I5qQC$=A2f`wrlHIRx&F_tv>=~;8 zQFhS?x&bDwPSqKWJ}fk$x+J#|#GJuVSbIX^Av~siSI{!%><;e`YcMaxjrdv;s0~8e zA8yYYI~`i=mGH8C&*m=htZ{PFf~jQsIsCZLQ$ANF61g~~Ir974CldQkV73AREC~+t z5S$38e1PnL3?m;UX{Onf&8VO*gGV7y{Mj>UlFR4IY-+45G{x`hs;*BRwHn#RTw{7# ztvPdgjhX7F(v55Ol+Kz~6K!nB)Q^#V-19$)Z~zV?p3zK-@j)A5k#=c)T_TrE#jB^zLdsZ=hLR%(RKKD5oZ>1!p|E83m-Mu%*es;RhOR^+ z`IR-4<(QJ2G-=(WN!`;{aK7R^%BEQxGE=MLvyf8BT%xYtKK01lFZWw|9sf2(5X(y` z@CQ1fbtzuJJhUuk-ViQsIxzn$u@?Sj2T_?euo6!Y7?PA|TY9ZFY6o*s0W8bft5Edr z8(MX25yaEJpqPn;iYwPy)xsFdL<9j$T5AYkDc}ucpy9>8N$e{j>zFyQ6K{Bup7(b1 zqS#4u<7{>8$dKfX`pO@5Or%(f6UCvGUQ?+m*3vlvftAh<%4w1p3ahPyhpRWZ5yEzz z%2Y`Yhosluk9pqiu8y`uermd+<+oP&RBa`Wf5*i?VWVvPTZ-RmX+;o?A}kA=qZm0gt#XX;8FgvE2L^J>uP3**86SM zZyREy7_b?so?s3?$skP6KG^kXY;x*4}v9GIt{R`J!M|dtmOSo|$ZJIz5+7 z&u^OBctqpA1%dWBZ&elR4zJ%hPK^eb*u@aC^fN48w2W##q-t{2A*ZD}*fN)U-=a3Q z%kkS|A|F}G zc>LwNmolcw<8ZV%OBrLaA0C;zjygc77+W{vGZl(|X1M(O%D3vX@Gx^^7N-lDE;73u0Fa`W_6--DF5>Hg`F**t$TBG)h5&XhERT z_FX?4We)j{K!^!yEbz3fUT}zrkdQlRdRPKD8#q_k>JvD>_?V+F5S!9m!EzW1Z|xMn zd&bwk1BBA~FIfMH)~$YF=?zn8#)m%c;&~4ZV@+YKKOm=)G8X@m(^=X2Pj@!i_rA9T~ zZ$1lv>G-i#3KtcBHtT9Q(S3E2= zHe|m#E*$cy0p)FAU`{%8`8LkCEzfsgMfQ-MZka*q(u^60bGN7&L1{H`@!|N)>t~&{ z@{YG8>8(3f?wEPQjCeTMfMFAxarN~64NWj?Vcs@v7(e}*>2U+Crb01mI_wnAPdV(c zQvgJ?7mg0|m9u89;(XQ2x?0RH(x6n4FXR^S&*CcJ%;`VS!GAJ>h5Z`u@5jo zw7ZL!@(WC?H5jUr5cJ|Mw;O&TSp zVwsw7LF84U*Hh@}Pv#M>@VLB$nU;7EK40c88)tf)%gER^gsPDBFM>6NZN#l zj7$_q0NF$bDr*2!0ZF2%i4B1AXxf&&To-T`1=5FXZbR@T9Gu{|N{BegFvbPMXK0yW zYEuMzQoMwBhd#>2uQ}B4jDlQhnH5ukIQ%81Xy{;Wj zBR>*d*Z~@v(A7RiWI=7>y!Hbyiz?`LyU;_jg#SgrC38W(d@(ia=FQ6h#RFGwj&sqS zsg1P9gMnmII1p}+R^eaW;O5~Q$MqyQ%cWa$bzMhEmH=!i_Uwjcb0GRi2PDX12T6+iMSO?v1U-nML-}jLiq`7;{4k`j>4sk@@qXL48 zXfDi@Ay_Xpi?cT#kogq!DY#YpSQkOfiTQ{hx~&sjwc-D?-ZX%>#ln@no!jSmu->LD zopR@d%%A>*K>8f(hnxjt!7y5no#$a!V`097^l)Hjll9{7bdOZ1scMBk%?$AP0Ug(U z)Cuc&i}kiuI?o#jdLIFl6kW5pGS-|mdYhcJ1OA2nW)CM@hKi)Wpm#gF(7*826VRhK zPwWYPU<^Gj?9tJtX(IkZNBl~Wkgf8glTXgOFc%N<@x0kDv3hG<>@dtp z4C+%COE{@`y zJw%PPS|*|K3E(6;Z;RcGKtM7~V!(ulD49)A27ooOA!Vuz1R?2O5R7|XZDhSB0Fls# z`ePNClQk70LOvh=&1j`JqMVO8keay7`t1oXBb==2)_-ZwMiLQx2lig`3H>QP3yc(@ znno%sr&Wx>l`ipo36RilBI+E_SoiVPOG`uz3;P_&8BiZo7haRb8!)!diD%I4I+<(? zAWbRS3SmmodThdng6I*b6a%i6T!{8Wjv%9uJvcss`tVLhu$DQOv_~vU_UIcY4~(1X za?Kn!FnJ?Eu{O>)Z{o!MiRaB&EWLNPcGn*zYoi)aA6E$k#_n)c$(A($bmb%L0jyhE z+bD{SwRM1_*4uy9!QX#ZlHUD3Yq7Q|%H#NVI_i(u)h>_Mx&?QmcOW@8fd7ebyiJSK z@KPkSux0>37FFA4K*7F)`Me7i0_iN&u$fh~z)I3hdJ?chzRhH%QpL zp?d+>+~V#if9+tm7BrF{orW7UKO@Pv(hWy2NHurz6T+-8pnKvMa$I^UriZT;-zB< z$5l(3`@x4ed>{$iWx4j%A0p7%q5RixWQ5Dg&*hf^$JfX`MK{*o=}E*sFNfWXV$w8C zQiC$^I9j0TAaoUuq6B(_I;#WBqeXVNQSC0goEuhjPs{t-6qrQWJd_?Bu0V(&Nx4bQ zms{9?Ya)$U_YV>yb%d)DRW*2szNWk&E66YCYhf9e=|Q~3KP#3v$FbIdW)|n$&S+uv z*fw)K!~QtK+^6AXEv#ta%CM z42uFBg^P_A0H~>es=mCc4gv+^zy5U&@LG$lSk<%7B5l9w>nw&0_Ag-t3Y3-xivJiZ z&;PL)7FdhnjB#-V|1B$JIAOKtfM8K@xa(fQ_8RW({EM{mbIpKKmeHm(UD{z*r{WbA zpflS7ifok3K?~-tY_vL%E-ji+6vkF&2L`x7G}_Guk(En8?EAqPPQyY)~A_W~%N< z0B+i>fG7rDj;^6ef?NZwN5Did3S6g*AW}8L#1bL@(RfEdhI#wGaxQTlH1JA-=mDU|;3 zDc#RmGPvnh;38$VY|XIU-1g{lguKI#I{IRvN0Zm?aSyi`;1tnj1EK4W)3+#mA2?| zvjg$d&B3bO?ViqTcXhoanr#Lp6ziByc-povuPO^*wu?$rIOsG>%nnQTFW-B@Apn-#aj zIbsbBom~-GKt#7m@s-P=N_X7rsC9eX!U~6HS8LNmyerq~Y2RJtgM-UvR&2b@AKKpL zX`kM=E$ClSRpD_lzNrm>4j#B>3`SQ_Y;G^_DfPFwtDqc}E5;ZCo@JBUY^iEgM4!oz zI3>cX*dOd zPFb^Ff@>vljz$7wZ%)Q8uDGKw=^gm&z!oNa{Cpk1)BG96I~VpD=Jy&=YRYi%GGq=2 zFXz9kACdw>Arg=cE!+zpXB*Z96kC8Ui{{X)JGFk6HV-S`fwm{ z@^#iUel?YN)V5&b@4f>Jr{}@jkKw6_VPjB{=!|D1!!isscrblKx)kjpM}YGR$vy~Y zG`Lz?BVG-?iae>s(ItgqK6sXJmqlxW-h{`L+(?@3K)az9=m>33KuQZQKz%ZlRd+OV z!-I}kXZK*O%f0i3*4m0rd$m6{SQax?^TH}Nv%jg)U+V8|vVjSkU4qpji?Y+(Gf-J! zRs6w}`tfebq%^Lm@>NRw>_Rpm zu;Ih#-xwL_tqoIXw6UxyZUYy!8Z7SnN4>t5;f;+BqgfPh+!0xqY^w9f<-;r2tnY)} z(@6}1*4JbFBy<2mtX_s{(5RzI`mhcIN%EE+C{|#RwB$z6Mc{>qwt#~H0$PkOa8C*- z)ADj$y1a}j-qFRk@|*MD4O4-&I^Z0Wj|(8t`7gj4&(#sX%KsMHJljkk1}i+cX;O)FlXXaQ(YTrI{Sw>Oa+Dd;O@rgLV8SZg#m@&vAC#9jrrW;&*~^sSLu|=N~V= z=Luk;4p9wynpWslOd)N)`_RSQ%!*BnKbbvnl4qM%KKTISzaxALOY9Zf&byoE?>=wa z7188x=Wl$S?nU^7FC#au3Gt#a#Md_hnWr6hg)24^Zo%AxWv7CsTrq3kl}Kv&4ly|l zXIw;1xO{xLpZOyEYhM$LV*ZzQxqNV|i9IEm%FRd$U>{LzPFcP4wm+HRf;RF$-m89m zTh*GUjNiSc`zDrHJ9y|zoQ=6eNisFfUg*gGUP3JsvX0&-d2EV$6Z<&K$fE1*pZ%=$ z(I$0o8GEAX6aTC~_e-Eb99B>f9MS^3I5(c##Ka(!yl@cMiI7plBJ1G!H@>h-z4gRR zu08ob?)^8OeN+8`YI%bB)nBp~@8?RGL47N(ZepK~GoX>@zmMd8)~WtJo>vX*ZK9Dj zmoTm_g8y?lGH-WkIS9npG~*@wFt8^t)=dhNv=J$cJOs>8W`3-SSU;Be9}i8T%TxJ9rbqkHEZ0mKP&M z3jRa%+TWIG?e0n}?G2Wd1^QkZiY*O?!Fa>9^{lRz?U_$}?(+HnE$!Z!LdwI|mb%iG zvUeb$EvvQF^;f;~t+r-+bKBALKvtCa)W`FwwA_SIMn1}an367xrjBH!BjG_E&4lmI z==u-Q?a@14IeFrxbX(hj(+K##C6)T6+VCqV^^j+g$KRux#@Fv-zu?aX$1P#W7A=zy z207BQQKzX;d#?0fV6}(YG~i$jzE2yRNYI;p7$Bnxzi^wy;jr*yl`hZ22EUU`NE+Y! zB!3_B%S(_=ug~f#aSc%4NYy5C&)7wcC@z3y_9tZm10qc z{h&7Y#v`1#soDn#17Kt3`}4mBG&GygG`6YsK$vlz*wnJFcpjyn;4f_S5F3Ivu*aT45 zm;0om^v4~+zDrFoH9Ji6`p1>}2k4{Oa4^pa!?vMhJ^BDIPinI!L-1gISba1)X+dI( zLIW5hBn6jt<~4bB$jCaQ;4iFfTrt~g>YM6KWd(kp1pDZ&?cKD{pxYV^UPy*vXVBzbHI1Bg(8 zbR+=`99$R%0|OPKK5sF95JCglJlIvgfd9O>K0hdOW8x%LL7^S)Ftr{dzvIO^^V&umgljSxQx#SZ#TGswZ4(H*YZ0` zu~qNW=(fA}Om5)@Y|tItcDe(7^Q2x5BLC%QO5xVng-s=0U5UbZ>UG%sj6}Vm8AUz- zjX)F+uo;O*ji}-r({uN9S`J`^7zZ`~#(-cSOwChe9h!jH*Q6dfrp2#lLDtY6wD4^o z&;*|SOLS!I^aAReMdJM#CApsc*Kyo+`zNpE`D-V)9pJbF+qTVe-0Zd+R@-WAHzGt- zzHv1{{``G3T=*$}-TwX8@%pw+yDQJnZo@BpX0_FNBO=n2;{!lg1BaqHcPFfR!{AM4 zYVrnN6t5crViJiRk;3Tlgf$JFhX_L2dEttLBdnQ2G)iK$C3wjvll`PHHiOW*-nYxG zHy<9_ei+tJ;qyFlq6PI$nwILDuv~HM3%uz_;q0e=s{WSxoZCoS^*29%5Rsnh_1!}N zY$Fc#Zpkg5Fz@Efbik~!v^*VPC$|!u#a3BH86ey-M#Yz63@}K7dIxgb7tgL*_`mNl z1m3GYfs;3|W$nZeg6cE98xdah-VTj3kPEubcQyXx2O3=!FvOdH9lQ>liXw2K)X*G+ z*r2f{z5EnGCc>^2OQLcSgxi?MM<1uo-PVp%2VyJtgUVX3^2VBq+>6)B*UW(`$G=T$GGreVCK z9FqG=)QP$S_zb*^5RF*DW)5+)kgM#{qKOHgl9o-4^N1aY)6(%ME$8Jwu-AcHr1&E#3%<^N7kmYt97%aawu!%$#McF@qK?BWX;-+>yk0tF84cy5FMF7$kT#F9&xV(^ z@m*=M2S{s|6l=NNYH*s&uy6tPCMW~|muZ*6LZt%;bw)GF(KuXH5 zMvq6UTY?Q75r&O)NAxZ9G8lmv*nkOoO&fT?*;>W~=CH2n!Mf3>`G2ZvbdygE_VNmX z|0D-X7*@QZL5RkFnC5}DT$6)EUwt*JD1XXgr6nU3yf5r2teE<`*}3*v7GDv^-vM?f zcWB56KscjOunEg|aO&5~%V8?>7-DfAYc9VL6dKtEYHO7+Z9*UM(A)i}iuX!{G| zy+7C1n>Vnu<2tOoSm;9y4a?*4*8_nK;1YJ9g2=3%W?O?B>bEEb)<27~>^-O(rD|nM z*{?fSv;0jRt6@UM62H#GbJpo=! zz@hZZG3{6Jb;M~<7PNkcBxerIA_D_JhQ;NyJ1eabx81XQRm;>`YeVV!9s(jVCI)=9 z=2fZs?u{-RqRq=3Hiy$*4-=DM?5ebwusAGM~OeETk^E$;$Sgd3n1@=?Msu)mOi|cCgta@uC3+QG3^=>o08c*i0=p(H-tf ztU9yD=c$Cp8!kjnDQ&Opj@C_e0c6$_>f*ky581n92|*Ba5X*fwz0h=g%2D zzP=*icY8f92Xb?kR;}9LHwC?ktw)=aWq>CR+iE*6Kl8%#jgs9VDy8vNkzRnq8oaXX zw=6xeWA({|;<9i`-@oWFQlwWMgLMOS78#tVf880b_XDb%>hZ@2N7no1^g1|0|AYWJ zlT+zEzVYAHx8dED;VPEJswzRiBSmZS2P%GpJO$3?lzw0N=7Ruo1Jc{+b#M}>f8Um;@qU-G*Tek6!!(TK}NubtbSGa{F90UUPz546m)KSpCRys;s5zNA*6`> zi!@vj&*DMCkOtdE27gkl^zDB>h-Ztuo>2Y0sCweD(dNsj+rBvBWb&BiuZGpy8ru-UEh=e%p;bEPXV zL-Du5w1{CfT}hLus+Ct#Tp_wgyCf)DKA5P!e=7Dp%lDEUp#S^-Zfh&H>h zUp4@y6wLp__wgn}Ht!V5PtQ98p5kqKeD6>&{9aWDoTJ#tl6%Eqk3+9vrt7|ghd+X`oY^i=Li$`-AE zIHpJ5xPklyX)-}8A$M4PDG+6X&0Q|w9!9&OpthUe4I8k-AhT$oTXKcst?`fxI7zNR zwY#CN(&-GK`}-RrNMy9WO9`TOAR&5Bu|CxCQqO|=r$=z`SpsC!6O~7 zF0JrFbwrU#ZI(4b&rsHdNnI9|G<$aK4T%lM(T3k}nA1 z0q|_)0hf^(mCz-!De4N?0v;2d(Pr@(q9&;y@~yqBnx4^k`ztJj2=-SI=Jl$WY?WLV zIo@0>&`zQD2Zs?wOHl(IKq}Yx)y1f%cnobb@JK%leif$5@)XsCB@CewAK3j=?(Dtp z2O#I^-7jnXPf-@9_df-fp#Pir59Q- zS$VNytZ|jv18$Sa9k5%x#;8&57kC7*Mzy}=bgYe|TK`ZD!2rA`4J93j(^^e+VWC|^ zkAk8k7t@`h+7V2d#UofL$U@ZCDHjuQ-@B%GgxBJEvHofp^%RXt2;wDLz^^1%HFH?N z^|=R~009slLZ?Sl6G{1ohVJeiU97tS=}(=Js{Az#U0pl63%e2cJ!o%xcUnKKzI58@ zi~G0i2}W#XtgB&U@&;a1fB&^-)IW&*JsiT^QJ*QXq}T=geHWyH5qpr~mj*8C=0q;3 z-FZjX-S}Dj-E;abE7gC<#ZEtcPhmfQsH`f2#L2SShHl0kpZxTHVoCY^*UtIqGMKdl z#kS(3yY%s=e(C&=^QscceCmcKngVs6!MKtqRK=iV$NED=erU%%WY&$cVPm7 zh&nxcAlm5k)bt+Bc2^`kI2dWjFw%YSk@vm@J-8jqJS`g@iFsbA?_@#1#|8Erz6)h1 z-gw~!^^LFkDk_>PDtvXFotry5r?A&pQQ@skCeP~Z{IyrxqjP5^lhcJO0}TQE;TSuH z?@KIM9}C!hfhzv4!~gmg3ZK65A9TZ}ia4V?Zti@S(JdP*8W`R4tRy^(r|mybxIEC< z))=7gV3ZXEMN0nAuX&GUO`+3x)?|>M6T4@ z-u-okN^{lD#N_pSG_3ZjOA&5={bXWCl?IA^B0kk~>;b;9mc7niuZ!~!@P}DEhG++~ zDHLUN;m(NK%f4K_vkf;uC*DE{*eB{5_y>;lP1dQU?DhEM(qmBK^fmB{kmcjZg{#79 zUcw62c|5L1jA?!Vcp@2Q9+pFT&AEIqZy?uJZ4uQz%EyNxK#=6O>BPp&aJ8n&w=696D(2ImTW6yOB))O_Aryz zj}k1XW=1|j($~2^0;_HWntGN{yRjsPG~E%ZH%J&N+IgiA*-Z#V6pL$!B5`!(oFpO| zN4~aX$7z`k39bADjKv)h2h{#vd>hry5*-L)b0i?2#PF_g@xXP@Iuc0Sqp^$P6a2@7 zXVpF55aS8lHZFdH-Te*GU=R`D@KtrmUEU_@L$7H zM(>F1%hen=vaYJf|I4kxFk8`jllQWKd--yAfN@LG%Ldm=R+G4%dy*j_ z&9bsVJ-1<{h1xvyGM-@+8yd^m<>ieE*V)M_jpgdOWawa*H>_0e?_H0`0iN|VHuRue zRfE-Hv925D{GLYj-}c+u!#s+utM|;!A)6;&ir*Uvy40Vhm#-I1HgWwR$gb1Ag!>Kr zLzKn5gDUKGAb`I}T?%M`Y@|`0#<@;K4XwXG#a7VrgXk{e4D44Bt)fJ0agn^fjs$Cn zir-=neM^isFs-d_rZ)Gh$Ws3s+dwdGMcdV@Tej|PpRw*)PK1TSg)MEwR)AAtG=K35 zcQEK)!Ti?+9w_qi3LhBzJH$(y)62k!r*G~Z8Ye>GIid7cpaV`+Nd`Oov2Vbo;WHl(kI^H)ri*n zArlQI_vhS389`3c(iOrlKBeP9+oP6n9LZ4*W278*jtcY1X9VGylc-vh#jl~s z%ShitN;{YT&hRB1cggSwZAUguaNNYEjkMjuqbQZx{RNLvVFuaU^O5Zj{ZbTv`Ow3^ z6d+fjHktv5`+)8jp1tiO&kDk`A6b7zyIBzhc+@=fB}8bNkpc-E1BI<${DI+18n}s# z#h<}iPqyaoKrSP@oFCTtHK62HWI64HZ(|zs{tz(JFDbdI_)s=6+W-L(C%24;hhq zCxk5KO=S{dMFdv;(zM00#U_mn^Olw$fe_if((6!%EQIbHFW(0Zi&obI#mwVN7G_SpFcgtA-l zlgGGi%htVYGQBjoY}*%Dqzexdxdp&c<>~jxnDhu*_>j}5-MWMPvAO!8=lbm_{ z#qfc3n{)p?uxZn|n+66B3}(ar>`~K!?eWOE+7nN08aVOP_KZngwP_%}{ea07&JJ$P zzKM$mSO;Uslq>e1u9LPRdtj|59q2evHv(Vuo{~q#p``qTfdJF^-Mf)XkaLiSV+Dw ztatog_$DZvbVb|3H?ZNJ)*`2tl-EshbNOqz`||bNck(OmB||K2n6}k6fB44^o^q%6 z?irTbdk(g+p!*<@{PYk0tlIKCW+NiG@?h%=^YDGp1J{-FXP>`p^2AeEh8F)Gpf#!J z51`MNmWE;Pt*~G=D8bD3d^8fz^(z%d{~lDgB((-o*#_a4tNa&hQeMYkopZ@ z7Eh>}J}??61r@{vI%}vJK*D8%NeV@E;ri<5FnnNR;eWAKJ@LY`kN2%*Q{UWjakC%+ zUZj3*-N9e%^6lDT=j@l(ZE>5;tFK$(yz}HU|K`4Q^8ji?@pgj^8rQ;0j)7>;$&EET zD`z%v-p{))zw6?AU1wicRmzre6?9Ye=5Idtcz-ax5(tZu(zC-~)41;TZGGo0@$Rd? zN)&v|J$aR?K00ts=&W)p5}IHdgFT|>i2B9pfnoNeSjx8Hf?DaS;*u|HyM4J< zC~wKN8=im>?CmG8tqMt^!zEVNi0T`AnEG?8&uT{P30TqekOx+7vRS$RBi}B25Wt14 z{gme2_!88I|C9hvCb{gK)YL|I1&G%>PxK#br-H0X&&31a&T4{HYQYXag}k~?u4H-G2+tN_)e|vyPbo9D->mozHb4zjl}e%kdD47&qzo-T+%wT|wJaLVDB|*v$f0`PgAQbd*b(#Y zG}(iq*y6X?EcR&UdS?y06QTZA<3A~)AJ_tfpx!Vj@{pPAg8DOdUX40jLuv-(UC1E! zKnAfv$L)f4i{MljLQ2S{L%v-tRu>v6n44bH0G;dttx0l#>CacxAkd4RB=wVaLJMgk zt;vH77_v<0)!?r}IPN1fwDKEF)^^rd$vpzwY-1?D0lvQHkTAUydDF}SgdzUib9SC{ z9+xN_OBDB?M`R8D*dqn3`Pb-fp+aCq^+ zr{5$qFl~qqWD|V~V|y7|GWdCki2P>CaVAOiv}*UTX%bCz|G(z(WQjzAZAc{461)te zitsLYL|3#aKw&}TxzwN!k*d4!8vVn=a<7%*?ehmHUWB`$v^nYmO#<+dQs59h%W*u* zB%%?*&;d)}Sn##M1QhYffDiW}N;82V6`EQJcm=VO1V9Ui^#lklE(9JxZ=Ds)-$xBR zvtc)~ADjzooUCt`dxul-1}pn2`A~1S*E!;8x>9nrHaE1id!-BZaO$J{yXseX_EV=@ zFgxJp&OcXC$+fdi%k@-(d`OmREF!4C;t2{}?xDEyPTGy)cFvFpAEA zm2sqG5>LK3Y)I1SV?3T21B-&d$(1ih$(T$QaRd+9~8+1{S(ZmaN@lYgy}~f9c@waBpt!ny-9CPwW4(x)$qn3&tPJ zfXH)r4m7Mm`~|$sJSrQWCMxRVFy;eADXkWi;sKf`JjZmw z`B*!vV4w2d%U-GJbRvwg?@teN8!NlwK4$pX!bg!cLEe|&Ka`D$=XDHhxDj2ma|3g8uzmzQ$v} zz@NpdFfPa*F$B$U(H>D95{U(9_6Q*qg)5dOPDhxmI{#C9gzGc|gl5}cG)}O-gv_eA zEv$+(3ffbDoPSXLG4=$xWlLE7*Ml`k5IFmcCx=(eU$*)qu8Vg$@n8RDj@#Vdw}lgd zZgcg8`}b2Zi~YN<|I=eFx7X@Jzw0mpW{aawgoq3Y)hZZ>2!@>qkd+;Z1X7lCw5)O&WM&NWznmfF?LIk z$M9paMr!|2>a*Tv;8LDKo5M&dFSL0auP(F&v>OU-%F1Xjv?UzxFSL!A5337ps#cT* zw`KxG+0?^YueTZU2Oci8IgHaM3vC|9pDVNlw0~4+i?A>My3m$Nkh@iA8%u_mtI#%; z)UXNT%4|9{mmUob9|=v2WM;-PGjqmbV{>|ZekzqM?iN3X(%IZZW+v3y)KWaOIz5xl z7VncgINmllHx?SpW~M^}xM6x~DifN`X7;B?=9>1+&CM=pZl)ii<4q%(X~4Lx#A~Nv z1fRopv?PSUfg{*XfaPZp;yR{n=WyNok8H;E<0bPbhnm72-hcM}`$M=oTav?dbk`8f z?@dT3dH+?ban+1=<@=u}2UyK}NfQI;s|D8njTbPLuf+PV!0>&f;Pai|> zI1~$@XE6tJG8c0LUeb$I+mDFb0E!ou!AMAE-VoOED&TomvnZ=Ub*@^}pr~hY*1#Ge zmoy^@sue(jC`<=?L?<*ccxc!XWQs3^S(i+f%h+3Al4L>!sQ zPtBSpFiEo0 zsX0smVJe-=8K*PZ^gIqujSAG{XD3Fa1KE+xXj;yu$Fk|%K0Z5kK+2_4*^zxp4!<#i z8OP_+b7F3KVk#}?=0`?wBPlnZJ(xbC%wFJ4?QM~F@dS*10HKyj~QX~85J(bak zoc0Ylm(CuX7)gt>*$I4qICEIW4AmZEIGviGJ7UzH6O%tRCG5*gr%n2PW@cg}Cyq~y z&E=%2iSd2-$jxT5b2(uyb0jC=n;Ch3`cQf*d&Gtp8BI5)a(J)Q%t%@q&Snnf(jtg) zVA@36`P9tZ#M}`XPo6rIIwIg$tCAZ@&Cnal=$hG7HZ6@!OwFaUAnT004-`P(+3={N z^CNR(;9c_|ust_FJ3BRz&K3_?a}%I!DqFZtn3|ZG1=xD+`BZ0c4)l3|7G;?TXDw7)Jr&F^$zATJq zGNVFna$?p}WT>-KsUvOL#l$G_(z7}_aybm3k$DWsBVukJs3Q_V(x&Ou3|=Uc9ZhE~ z*)%cQ^r*Hc&f$bAZx|aTr4>oi)%%!i6()j>T4E;c>;0%v2_8(YD27hD8dPFqex* z`OO1oneeZ;ZvkT%pO{HaX=6#5%8X-RO^g^RB&q>5m(phvoooWRUN7Lq09-viQ9{xYJ CY%vA^ diff --git a/sop-admin/sop-admin-front/assets/fonts/iconfont.svg b/sop-admin/sop-admin-front/assets/fonts/iconfont.svg deleted file mode 100644 index f6f082eb..00000000 --- a/sop-admin/sop-admin-front/assets/fonts/iconfont.svg +++ /dev/null @@ -1,477 +0,0 @@ - - - - - -Created by iconfont - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/sop-admin/sop-admin-front/assets/fonts/iconfont.ttf b/sop-admin/sop-admin-front/assets/fonts/iconfont.ttf deleted file mode 100644 index ccf533ec5e6b778fe8ffe17753dbafde5ad3ab90..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 49432 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 Wq_gOFI@Jmyj-<^eJwU6rJp6x-RUf?o diff --git a/sop-admin/sop-admin-front/assets/fonts/iconfont.woff b/sop-admin/sop-admin-front/assets/fonts/iconfont.woff deleted file mode 100644 index d06756cabafdf52e80d4b9e3119ba1ee45a2ebe7..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 30200 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
|q2hSViV%dX`aB1@ z^7Dwylbb3@N#hj9PwZaSI6H?iA<>3zb&k_1J|wPeO{2x!8YO*Fsv`JQtFq#cZ>$SG z4z}|#N7`(gW~5!W&WYr-DLm&TjHGnp?95ZbWbD?Xer$yaDs&km7c+6<1|XnPgiPWQMjOH&;rwD9P5ElGfyQX0#P~REs9!;JCClkNu8n#{F_( zO=z^}4zDd|oOH9G!+RExY*~_B;wxq+=?S4xEet1QT~2Q7XnU@(`7CJ|5v@&H?-{iB zypaPf`B7~rEWX9^T8Qzz=#*+Q z&&pt5EN#=pUQB6SncY^oE>O)W23lVlITeBlPPCdhku5r5EA|z0at1s1Zyr@P#JLC} znX7Ba=o`-b$kCx!rI}dXvf-j%n75S52tC)*K--dqrR3@{p;;<|%aTl0PB!7b57l}QerI!0roIsw we(S@aujq^ml`?>~HkoL8$@lkF>C^s7A(t(dw&MOqSvw2B*2>C%`%d}-0Li%S{{R30 diff --git a/sop-admin/sop-admin-front/assets/images/aiwrap.png b/sop-admin/sop-admin-front/assets/images/aiwrap.png deleted file mode 100644 index 36fd481b048959bb4d6fbbbc932384e0a4b424e9..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3032 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ρFwWt@M8jm) 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 q&bo%=7kYzbZ4C|@B0){for(var a=0;a=0;){d=n.shift();a=a[d.type].apply(null,d.args)}return a},noConflict:function(){o.$LAB=K;return m},sandbox:function(){return J()}};return m}o.$LAB=J();(function(a,c,b){if(document.readyState==null&&document[a]){document.readyState="loading";document[a](c,b=function(){document.removeEventListener(c,b,false);document.readyState="complete"},false)}})("addEventListener","DOMContentLoaded")})(this); - - -var lib = (function () { - // 始终需要加载的js - var alwaysLoadJs = [ - '../../config/config.js' - ,'../../assets/lib/jquery/3.2.1/jquery.min.js' - ,'../../assets/lib/layui/layui.js' - ,'../../assets/lib/easyopen/sdk.js' - ,'../../assets/lib/layuiext/Form.js' - ,'../../assets/js/ApiUtil.js' - ] - - var jsArr = []; - var layuiConfig, layuiExtend; - - /** - * 加载js - * @param jsArr js路径数组,存放js路径 - * @param require layui依赖模块 - * @param loadSuccess 加载成功后触发 - */ - function loadJs(jsArr, loadSuccess) { - // 接着加载自定义的js - jsArr = addVersion(jsArr); - - $LAB - .script(alwaysLoadJs) // 先加载全局js - .wait() // 执行加载 - .script(jsArr) // 接着加载自定义的js - // 全部加载成后执行 - .wait(function () { - loadSuccess && loadSuccess(); - }); - } - - /** - * 给js添加版本号,防止缓存 - * @param jsArr js路径数组 - */ - function addVersion(jsArr) { - if (typeof jsArr === 'string') { - jsArr = [jsArr]; - } - var v = new Date().getTime(); - for (var i = 0; i < jsArr.length; i++) { - jsArr[i] = jsArr[i] + '?v=' + (v++); - } - return jsArr; - } - - return { - /** - * 加载js模块 - * @param jsPath js相对路径,针对于使用页面。可以是字符串,也可以是数组 - * @returns {lib} - */ - importJs: function (jsPath) { - if (jsPath) { - if (typeof jsPath === 'string') { - jsPath = [jsPath]; - } - jsArr = jsArr.concat(jsPath); - } - return this; - } - , config: function (cfg) { - layuiConfig = cfg; - return this; - } - , extend: function (ext) { - layuiExtend = ext; - return this; - } - /** - * layui初始化,同layui.use() - * @param require - * @param layuiInitFun - */ - , use: function (require, layuiInitFun) { - loadJs(jsArr, function () { - if (layuiConfig) { - layui.config(layuiConfig); - } - if (layuiExtend) { - layui.extend(layuiExtend); - } - layui.use(require, layuiInitFun); - }); - } - } -})(); diff --git a/sop-admin/sop-admin-front/assets/js/routerole.js b/sop-admin/sop-admin-front/assets/js/routerole.js deleted file mode 100644 index 82970a7e..00000000 --- a/sop-admin/sop-admin-front/assets/js/routerole.js +++ /dev/null @@ -1,22 +0,0 @@ -var RouteRole = { - loadAllRole: function (form, contentId, callback) { - ApiUtil.post('role.listall', {}, function (resp) { - var roles = resp.data; - var html = [] - for (var i = 0; i < roles.length; i++) { - if (i > 0 && i % 5 === 0) { - html.push('
'); - } - var role = roles[i]; - html.push(''); - } - $('#' + contentId).html(html.join('')); - - // 如果你的HTML是动态生成的,自动渲染就会失效 - // 因此你需要在相应的地方,执行下述方法来手动渲染,跟这类似的还有 element.init(); - form.render(); - - callback && callback(); - }); - } -} \ No newline at end of file diff --git a/sop-admin/sop-admin-front/assets/js/xadmin.js b/sop-admin/sop-admin-front/assets/js/xadmin.js deleted file mode 100644 index 7dc7f600..00000000 --- a/sop-admin/sop-admin-front/assets/js/xadmin.js +++ /dev/null @@ -1,414 +0,0 @@ -// Array.prototype.remove = function(val) { -// var index = this.indexOf(val); -// if (index > -1) { -// return this.splice(index, 1); -// } - -// }; - -$(function () { - - //加载弹出层 - layui.use(['form','element'], - function() { - layer = layui.layer; - element = layui.element; - - //tab 右键事件 - $(".layui-tab-title").on('contextmenu', 'li', function(event) { - var tab_left = $(this).position().left; - var left = $(this).position().top; - this_index = $(this).attr('lay-id'); - $('#tab_right').css({'left':tab_left+50}).show(); - $('#tab_show').show(); - return false; - }); - - $('.page-content,#tab_show,.container,.left-nav').click(function(event) { - $('#tab_right').hide(); - $('#tab_show').hide(); - }); - - $('#tab_right').on('click', 'dd', function(event) { - - if(getCookie('tab_list')){ - var tab_list = getCookie('tab_list').split(','); - }else{ - var tab_list = []; - } - - var type = $(this).attr('data-type'); - - if(type=='this'){ - - tab.tabDelete(this_index); - - var index = -1; - - for (var i in tab_list) { - if(tab_list[i]==(this_index-1)){ - index = i; - } - } - if (index > -1) { - tab_list.splice(index, 1); - } - - setCookie('tab_list',tab_list); - } - if(type=='all'){ - - for (var i in tab_list) { - tab.tabDelete(Number(tab_list[i])+1); - } - - setCookie('tab_list',[]); - } - - if(type=='other'){ - - for (var i in tab_list) { - if(tab_list[i]!=(this_index-1)){ - tab.tabDelete(Number(tab_list[i])+1); - } - } - - setCookie('tab_list',[this_index-1]); - } - // alert(this_index); - $('#tab_right').hide(); - }); - - // tab 双击事件 - $(".layui-tab-title").on('dblclick', 'li', function(event) { - var id = $(this).attr('lay-id'); - tab.tabDelete(id); - - if(getCookie('tab_list')){ - tab_list = getCookie('tab_list').split(','); - }else{ - tab_list = []; - } - - - var index = -1; - - for (var i in tab_list) { - if(tab_list[i]==(id-1)){ - index = i; - } - } - - - if (index > -1) { - tab_list.splice(index, 1); - } - - setCookie('tab_list',tab_list); - return false; - }); - - // tab 删除事件 - element.on('tabDelete(xbs_tab)', function(data){ - var id = $(this).parent().attr('lay-id')-1; - - if(getCookie('tab_list')){ - tab_list = getCookie('tab_list').split(','); - }else{ - tab_list = []; - } - - - var index = -1; - - for (var i in tab_list) { - if(tab_list[i]==id){ - index = i; - } - } - - - if (index > -1) { - tab_list.splice(index, 1); - } - - setCookie('tab_list',tab_list); - - }); - - if(getCookie('tab_list')){ - tab_list = getCookie('tab_list').split(','); - - for (var i in tab_list) { - $('.left-nav #nav li').eq(tab_list[i]).click(); - } - } - }); - - //触发事件 - var tab = { - tabAdd: function(title,url,id){ - //新增一个Tab项 - element.tabAdd('xbs_tab', { - title: title - ,content: '' - ,id: id - }) - } - ,tabDelete: function(othis){ - //删除指定Tab项 - element.tabDelete('xbs_tab', othis); //删除:“商品管理” - - - // othis.addClass('layui-btn-disabled'); - } - ,tabChange: function(id){ - //切换到指定Tab项 - element.tabChange('xbs_tab', id); //切换到:用户管理 - } - }; - - - tableCheck = { - init:function () { - $(".x-admin .layui-form-checkbox").click(function(event) { - if($(this).hasClass('layui-form-checked')){ - $(this).removeClass('layui-form-checked'); - if($(this).hasClass('header')){ - $(".x-admin .layui-form-checkbox").removeClass('layui-form-checked'); - } - }else{ - $(this).addClass('layui-form-checked'); - if($(this).hasClass('header')){ - $(".x-admin .layui-form-checkbox").addClass('layui-form-checked'); - } - } - - }); - }, - getData:function () { - var obj = $(".x-admin .layui-form-checked").not('.header'); - var arr=[]; - obj.each(function(index, el) { - arr.push(obj.eq(index).attr('data-id')); - }); - return arr; - } - } - - // 开启表格多选 - tableCheck.init(); - - - $('.container .left_open i').click(function(event) { - if($('.left-nav').css('left')=='0px'){ - $('.left-nav').animate({left: '-221px'}, 100); - $('.page-content').animate({left: '0px'}, 100); - $('.page-content-bg').hide(); - }else{ - $('.left-nav').animate({left: '0px'}, 100); - $('.page-content').animate({left: '221px'}, 100); - if($(window).width()<768){ - $('.page-content-bg').show(); - } - } - - }); - - $('.page-content-bg').click(function(event) { - $('.left-nav').animate({left: '-221px'}, 100); - $('.page-content').animate({left: '0px'}, 100); - $(this).hide(); - }); - - - - $('.layui-tab-close').click(function(event) { - $('.layui-tab-title li').eq(0).find('i').remove(); - }); - - $("tbody.x-cate tr[fid!='0']").hide(); - // 栏目多级显示效果 - $('.x-show').click(function () { - if($(this).attr('status')=='true'){ - $(this).html(''); - $(this).attr('status','false'); - cateId = $(this).parents('tr').attr('cate-id'); - $("tbody tr[fid="+cateId+"]").show(); - }else{ - cateIds = []; - $(this).html(''); - $(this).attr('status','true'); - cateId = $(this).parents('tr').attr('cate-id'); - getCateId(cateId); - for (var i in cateIds) { - $("tbody tr[cate-id="+cateIds[i]+"]").hide().find('.x-show').html('').attr('status','true'); - } - } - }) - - //左侧菜单效果 - - $('.left-nav #nav').on('click', 'li', function(event) { - - var index = $('.left-nav #nav li').index($(this)); - - if($(this).children('.sub-menu').length){ - if($(this).hasClass('open')){ - - if($(this).parent().hasClass('sub-menu')){ - deleteCookie('left_menu_son'); - }else{ - deleteCookie('left_menu_father'); - } - - $(this).removeClass('open'); - $(this).find('.nav_right').html(''); - $(this).children('.sub-menu').stop().slideUp(); - // $(this).siblings().children('.sub-menu').slideUp(); - }else{ - - - if($(this).parent().hasClass('sub-menu')){ - setCookie('left_menu_son',index); - }else{ - setCookie('left_menu_father',index); - } - - $(this).addClass('open'); - $(this).children('a').find('.nav_right').html(''); - $(this).children('.sub-menu').stop().slideDown(); - // $(this).siblings().children('.sub-menu').stop().slideUp(); - // $(this).siblings().find('.nav_right').html(''); - // $(this).siblings().removeClass('open'); - } - }else{ - - var url = $(this).children('a').attr('_href'); - var title = $(this).find('cite').html(); - // var index = $('.left-nav #nav li').index($(this)); - - var is_refresh = $(this).attr('date-refresh')?true:false; - - for (var i = 0; i <$('.x-iframe').length; i++) { - if($('.x-iframe').eq(i).attr('tab-id')==index+1){ - tab.tabChange(index+1); - event.stopPropagation(); - - if(is_refresh) - $('.x-iframe').eq(i).attr("src",$('.x-iframe').eq(i).attr('src')); - - return; - } - }; - - if(getCookie('tab_list')){ - tab_list = getCookie('tab_list').split(','); - }else{ - tab_list = []; - } - - var is_exist = false; - - for (var i in tab_list) { - if(tab_list[i]==index) - is_exist = true; - } - - if(!is_exist){ - tab_list.push(index); - } - - setCookie('tab_list',tab_list); - - tab.tabAdd(title,url,index+1); - tab.tabChange(index+1); - } - - event.stopPropagation(); - - }) - - // 左侧菜单记忆功能 - /*if(getCookie('left_menu_father')!=null){ - $('.left-nav #nav li').eq(getCookie('left_menu_father')).click(); - } - - if(getCookie('left_menu_son')!=null){ - $('.left-nav #nav li').eq(getCookie('left_menu_son')).click(); - }*/ - - - - -}) - -var cateIds = []; -function getCateId(cateId) { - - $("tbody tr[fid="+cateId+"]").each(function(index, el) { - id = $(el).attr('cate-id'); - cateIds.push(id); - getCateId(id); - }); -} - -/*弹出层*/ -/* - 参数解释: - title 标题 - url 请求的url - id 需要操作的数据id - w 弹出层宽度(缺省调默认值) - h 弹出层高度(缺省调默认值) -*/ -function x_admin_show(title,url,w,h){ - if (title == null || title == '') { - title=false; - }; - if (url == null || url == '') { - url="404.html"; - }; - if (w == null || w == '') { - w=($(window).width()*0.9); - }; - if (h == null || h == '') { - h=($(window).height() - 50); - }; - layer.open({ - type: 2, - area: [w+'px', h +'px'], - fix: false, //不固定 - maxmin: true, - shadeClose: true, - shade:0.4, - title: title, - content: url, - success: function(){ - //窗口加载成功刷新frame - // location.replace(location.href); - }, - cancel:function(){ - //关闭窗口之后刷新frame - // location.replace(location.href); - }, - end:function(){ - //窗口销毁之后刷新frame - // location.replace(location.href); - } - }); -} - -/*关闭弹出框口*/ -function x_admin_close(){ - var index = parent.layer.getFrameIndex(window.name); - parent.layer.close(index); -} - -function x_admin_father_reload(){ - - parent.location.reload(); -} - - - diff --git a/sop-admin/sop-admin-front/assets/js/xcity.js b/sop-admin/sop-admin-front/assets/js/xcity.js deleted file mode 100644 index e1fb2cf3..00000000 --- a/sop-admin/sop-admin-front/assets/js/xcity.js +++ /dev/null @@ -1,511 +0,0 @@ -$.fn.xcity = function(pName,cName,aName){ - - var p = $(this).find('select[lay-filter=province]'); - - var c = $(this).find('select[lay-filter=city]'); - - var a = $(this).find('select[lay-filter=area]'); - - var cityList = []; - - var areaList = []; - - showP(provinceList); - - showC(cityList); - - showA(areaList); - - function showP(provinceList) { - p.html(''); - - is_pName = false; - - for (var i in provinceList) { - - if(pName==provinceList[i].name){ - is_pName = true; - cityList = provinceList[i].cityList; - p.append("") - }else{ - p.append("") - } - } - if(!is_pName){ - cityList = provinceList[0].cityList; - } - - } - - function showC(cityList) { - - c.html(''); - - is_cName = false; - - for (var i in cityList) { - if(cName==cityList[i].name){ - is_cName = true; - areaList = cityList[i].areaList; - c.append("") - }else{ - c.append("") - } - } - - if(!is_cName){ - areaList = cityList[0].areaList; - } - } - - function showA(areaList) { - a.html(''); - - for (var i in areaList) { - - if(aName==areaList[i]){ - a.append("") - }else{ - a.append("") - } - } - } - - form.render('select'); - - form.on('select(province)', function(data){ - pName = data.value; - showP(provinceList); - showC(cityList); - showA(areaList); - form.render('select'); - }); - - form.on('select(city)', function(data){ - cName = data.value; - showC(cityList); - showA(areaList); - form.render('select'); - }); - - - -} -var provinceList = [ -{name:'北京', cityList:[ -{name:'市辖区', areaList:['东城区','西城区','崇文区','宣武区','朝阳区','丰台区','石景山区','海淀区','门头沟区','房山区','通州区','顺义区','昌平区','大兴区','怀柔区','平谷区']}, -{name:'县', areaList:['密云县','延庆县']} -]}, -{name:'上海', cityList:[ -{name:'市辖区', areaList:['黄浦区','卢湾区','徐汇区','长宁区','静安区','普陀区','闸北区','虹口区','杨浦区','闵行区','宝山区','嘉定区','浦东新区','金山区','松江区','青浦区','南汇区','奉贤区']}, -{name:'县', areaList:['崇明县']} -]}, -{name:'天津', cityList:[ -{name:'市辖区', areaList:['和平区','河东区','河西区','南开区','河北区','红桥区','塘沽区','汉沽区','大港区','东丽区','西青区','津南区','北辰区','武清区','宝坻区']}, -{name:'县', areaList:['宁河县','静海县','蓟 县']} -]}, -{name:'重庆', cityList:[ -{name:'市辖区', areaList:['万州区','涪陵区','渝中区','大渡口区','江北区','沙坪坝区','九龙坡区','南岸区','北碚区','万盛区','双桥区','渝北区','巴南区','黔江区','长寿区']}, -{name:'县', areaList:['綦江县','潼南县','铜梁县','大足县','荣昌县','璧山县','梁平县','城口县','丰都县','垫江县','武隆县','忠 县','开 县','云阳县','奉节县','巫山县','巫溪县','石柱土家族自治县','秀山土家族苗族自治县','酉阳土家族苗族自治县','彭水苗族土家族自治县']}, -{name:'市', areaList:['江津市','合川市','永川市','南川市']} -]}, -{name:'四川', cityList:[ -{name:'成都市', areaList:['市辖区','锦江区','青羊区','金牛区','武侯区','成华区','龙泉驿区','青白江区','新都区','温江县','金堂县','双流县','郫 县','大邑县','蒲江县','新津县','都江堰市','彭州市','邛崃市','崇州市']}, -{name:'自贡市', areaList:['市辖区','自流井区','贡井区','大安区','沿滩区','荣 县','富顺县']}, -{name:'攀枝花市', areaList:['市辖区','东 区','西 区','仁和区','米易县','盐边县']}, -{name:'泸州市', areaList:['市辖区','江阳区','纳溪区','龙马潭区','泸 县','合江县','叙永县','古蔺县']}, -{name:'德阳市', areaList:['市辖区','旌阳区','中江县','罗江县','广汉市','什邡市','绵竹市']}, -{name:'绵阳市', areaList:['市辖区','涪城区','游仙区','三台县','盐亭县','安 县','梓潼县','北川羌族自治县','平武县','江油市']}, -{name:'广元市', areaList:['市辖区','市中区','元坝区','朝天区','旺苍县','青川县','剑阁县','苍溪县']}, -{name:'遂宁市', areaList:['市辖区','船山区','安居区','蓬溪县','射洪县','大英县']}, -{name:'内江市', areaList:['市辖区','市中区','东兴区','威远县','资中县','隆昌县']}, -{name:'乐山市', areaList:['市辖区','市中区','沙湾区','五通桥区','金口河区','犍为县','井研县','夹江县','沐川县','峨边彝族自治县','马边彝族自治县','峨眉山市']}, -{name:'南充市', areaList:['市辖区','顺庆区','高坪区','嘉陵区','南部县','营山县','蓬安县','仪陇县','西充县','阆中市']}, -{name:'眉山市', areaList:['市辖区','东坡区','仁寿县','彭山县','洪雅县','丹棱县','青神县']}, -{name:'宜宾市', areaList:['市辖区','翠屏区','宜宾县','南溪县','江安县','长宁县','高 县','珙 县','筠连县','兴文县','屏山县']}, -{name:'广安市', areaList:['市辖区','广安区','岳池县','武胜县','邻水县','华莹市']}, -{name:'达州市', areaList:['市辖区','通川区','达 县','宣汉县','开江县','大竹县','渠 县','万源市']}, -{name:'雅安市', areaList:['市辖区','雨城区','名山县','荥经县','汉源县','石棉县','天全县','芦山县','宝兴县']}, -{name:'巴中市', areaList:['市辖区','巴州区','通江县','南江县','平昌县']}, -{name:'资阳市', areaList:['市辖区','雁江区','安岳县','乐至县','简阳市']}, -{name:'阿坝藏族羌族自治州', areaList:['汶川县','理 县','茂 县','松潘县','九寨沟县','金川县','小金县','黑水县','马尔康县','壤塘县','阿坝县','若尔盖县','红原县']}, -{name:'甘孜藏族自治州', areaList:['康定县','泸定县','丹巴县','九龙县','雅江县','道孚县','炉霍县','甘孜县','新龙县','德格县','白玉县','石渠县','色达县','理塘县','巴塘县','乡城县','稻城县','得荣县']}, -{name:'凉山彝族自治州', areaList:['西昌市','木里藏族自治县','盐源县','德昌县','会理县','会东县','宁南县','普格县','布拖县','金阳县','昭觉县','喜德县','冕宁县','越西县','甘洛县','美姑县','雷波县']} -]}, -{name:'贵州', cityList:[ -{name:'贵阳市', areaList:['市辖区','南明区','云岩区','花溪区','乌当区','白云区','小河区','开阳县','息烽县','修文县','清镇市']}, -{name:'六盘水市', areaList:['钟山区','六枝特区','水城县','盘 县']}, -{name:'遵义市', areaList:['市辖区','红花岗区','汇川区','遵义县','桐梓县','绥阳县','正安县','道真仡佬族苗族自治县','务川仡佬族苗族自治县','凤冈县','湄潭县','余庆县','习水县','赤水市','仁怀市']}, -{name:'安顺市', areaList:['市辖区','西秀区','平坝县','普定县','镇宁布依族苗族自治县','关岭布依族苗族自治县','紫云苗族布依族自治县']}, -{name:'铜仁地区', areaList:['铜仁市','江口县','玉屏侗族自治县','石阡县','思南县','印江土家族苗族自治县','德江县','沿河土家族自治县','松桃苗族自治县','万山特区']}, -{name:'黔西南布依族苗族自治州', areaList:['兴义市','兴仁县','普安县','晴隆县','贞丰县','望谟县','册亨县','安龙县']}, -{name:'毕节地区', areaList:['毕节市','大方县','黔西县','金沙县','织金县','纳雍县','威宁彝族回族苗族自治县','赫章县']}, -{name:'黔东南苗族侗族自治州', areaList:['凯里市','黄平县','施秉县','三穗县','镇远县','岑巩县','天柱县','锦屏县','剑河县','台江县','黎平县','榕江县','从江县','雷山县','麻江县','丹寨县']}, -{name:'黔南布依族苗族自治州', areaList:['都匀市','福泉市','荔波县','贵定县','瓮安县','独山县','平塘县','罗甸县','长顺县','龙里县','惠水县','三都水族自治县']} -]}, -{name:'云南', cityList:[ -{name:'昆明市', areaList:['市辖区','五华区','盘龙区','官渡区','西山区','东川区','呈贡县','晋宁县','富民县','宜良县','石林彝族自治县','嵩明县','禄劝彝族苗族自治县','寻甸回族彝族自治县','安宁市']}, -{name:'曲靖市', areaList:['市辖区','麒麟区','马龙县','陆良县','师宗县','罗平县','富源县','会泽县','沾益县','宣威市']}, -{name:'玉溪市', areaList:['市辖区','红塔区','江川县','澄江县','通海县','华宁县','易门县','峨山彝族自治县','新平彝族傣族自治县','元江哈尼族彝族傣族自治县']}, -{name:'保山市', areaList:['市辖区','隆阳区','施甸县','腾冲县','龙陵县','昌宁县']}, -{name:'昭通市', areaList:['市辖区','昭阳区','鲁甸县','巧家县','盐津县','大关县','永善县','绥江县','镇雄县','彝良县','威信县','水富县']}, -{name:'丽江市', areaList:['市辖区','古城区','玉龙纳西族自治县','永胜县','华坪县','宁蒗彝族自治县']}, -{name:'思茅市', areaList:['市辖区','翠云区','普洱哈尼族彝族自治县','墨江哈尼族自治县','景东彝族自治县','景谷傣族彝族自治县','镇沅彝族哈尼族拉祜族自治县','江城哈尼族彝族自治县','孟连傣族拉祜族佤族自治县','澜沧拉祜族自治县','西盟佤族自治县']}, -{name:'临沧市', areaList:['市辖区','临翔区','凤庆县','云 县','永德县','镇康县','双江拉祜族佤族布朗族傣族自治县','耿马傣族佤族自治县','沧源佤族自治县']}, -{name:'楚雄彝族自治州', areaList:['楚雄市','双柏县','牟定县','南华县','姚安县','大姚县','永仁县','元谋县','武定县','禄丰县']}, -{name:'红河哈尼族彝族自治州', areaList:['个旧市','开远市','蒙自县','屏边苗族自治县','建水县','石屏县','弥勒县','泸西县','元阳县','红河县','金平苗族瑶族傣族自治县','绿春县','河口瑶族自治县']}, -{name:'文山壮族苗族自治州', areaList:['文山县','砚山县','西畴县','麻栗坡县','马关县','丘北县','广南县','富宁县']}, -{name:'西双版纳傣族自治州', areaList:['景洪市','勐海县','勐腊县']}, -{name:'大理白族自治州', areaList:['大理市','漾濞彝族自治县','祥云县','宾川县','弥渡县','南涧彝族自治县','巍山彝族回族自治县','永平县','云龙县','洱源县','剑川县','鹤庆县']}, -{name:'德宏傣族景颇族自治州', areaList:['瑞丽市','潞西市','梁河县','盈江县','陇川县']}, -{name:'怒江傈僳族自治州', areaList:['泸水县','福贡县','贡山独龙族怒族自治县','兰坪白族普米族自治县']}, -{name:'迪庆藏族自治州', areaList:['香格里拉县','德钦县','维西傈僳族自治县']} -]}, -{name:'西藏', cityList:[ -{name:'拉萨市', areaList:['市辖区','城关区','林周县','当雄县','尼木县','曲水县','堆龙德庆县','达孜县','墨竹工卡县']}, -{name:'昌都地区', areaList:['昌都县','江达县','贡觉县','类乌齐县','丁青县','察雅县','八宿县','左贡县','芒康县','洛隆县','边坝县']}, -{name:'山南地区', areaList:['乃东县','扎囊县','贡嘎县','桑日县','琼结县','曲松县','措美县','洛扎县','加查县','隆子县','错那县','浪卡子县']}, -{name:'日喀则地区', areaList:['日喀则市','南木林县','江孜县','定日县','萨迦县','拉孜县','昂仁县','谢通门县','白朗县','仁布县','康马县','定结县','仲巴县','亚东县','吉隆县','聂拉木县','萨嘎县','岗巴县']}, -{name:'那曲地区', areaList:['那曲县','嘉黎县','比如县','聂荣县','安多县','申扎县','索 县','班戈县','巴青县','尼玛县']}, -{name:'阿里地区', areaList:['普兰县','札达县','噶尔县','日土县','革吉县','改则县','措勤县']}, -{name:'林芝地区', areaList:['林芝县','工布江达县','米林县','墨脱县','波密县','察隅县','朗 县']} -]}, -{name:'河南', cityList:[ -{name:'郑州市', areaList:['市辖区','中原区','二七区','管城回族区','金水区','上街区','邙山区','中牟县','巩义市','荥阳市','新密市','新郑市','登封市']}, -{name:'开封市', areaList:['市辖区','龙亭区','顺河回族区','鼓楼区','南关区','郊 区','杞 县','通许县','尉氏县','开封县','兰考县']}, -{name:'洛阳市', areaList:['市辖区','老城区','西工区','廛河回族区','涧西区','吉利区','洛龙区','孟津县','新安县','栾川县','嵩 县','汝阳县','宜阳县','洛宁县','伊川县','偃师市']}, -{name:'平顶山市', areaList:['市辖区','新华区','卫东区','石龙区','湛河区','宝丰县','叶 县','鲁山县','郏 县','舞钢市','汝州市']}, -{name:'安阳市', areaList:['市辖区','文峰区','北关区','殷都区','龙安区','安阳县','汤阴县','滑 县','内黄县','林州市']}, -{name:'鹤壁市', areaList:['市辖区','鹤山区','山城区','淇滨区','浚 县','淇 县']}, -{name:'新乡市', areaList:['市辖区','红旗区','卫滨区','凤泉区','牧野区','新乡县','获嘉县','原阳县','延津县','封丘县','长垣县','卫辉市','辉县市']}, -{name:'焦作市', areaList:['市辖区','解放区','中站区','马村区','山阳区','修武县','博爱县','武陟县','温 县','济源市','沁阳市','孟州市']}, -{name:'濮阳市', areaList:['市辖区','华龙区','清丰县','南乐县','范 县','台前县','濮阳县']}, -{name:'许昌市', areaList:['市辖区','魏都区','许昌县','鄢陵县','襄城县','禹州市','长葛市']}, -{name:'漯河市', areaList:['市辖区','源汇区','郾城区','召陵区','舞阳县','临颍县']}, -{name:'三门峡市', areaList:['市辖区','湖滨区','渑池县','陕 县','卢氏县','义马市','灵宝市']}, -{name:'南阳市', areaList:['市辖区','宛城区','卧龙区','南召县','方城县','西峡县','镇平县','内乡县','淅川县','社旗县','唐河县','新野县','桐柏县','邓州市']}, -{name:'商丘市', areaList:['市辖区','梁园区','睢阳区','民权县','睢 县','宁陵县','柘城县','虞城县','夏邑县','永城市']}, -{name:'信阳市', areaList:['市辖区','师河区','平桥区','罗山县','光山县','新 县','商城县','固始县','潢川县','淮滨县','息 县']}, -{name:'周口市', areaList:['市辖区','川汇区','扶沟县','西华县','商水县','沈丘县','郸城县','淮阳县','太康县','鹿邑县','项城市']}, -{name:'驻马店市', areaList:['市辖区','驿城区','西平县','上蔡县','平舆县','正阳县','确山县','泌阳县','汝南县','遂平县','新蔡县']} -]}, -{name:'湖北', cityList:[ -{name:'武汉市', areaList:['市辖区','江岸区','江汉区','乔口区','汉阳区','武昌区','青山区','洪山区','东西湖区','汉南区','蔡甸区','江夏区','黄陂区','新洲区']}, -{name:'黄石市', areaList:['市辖区','黄石港区','西塞山区','下陆区','铁山区','阳新县','大冶市']}, -{name:'十堰市', areaList:['市辖区','茅箭区','张湾区','郧 县','郧西县','竹山县','竹溪县','房 县','丹江口市']}, -{name:'宜昌市', areaList:['市辖区','西陵区','伍家岗区','点军区','猇亭区','夷陵区','远安县','兴山县','秭归县','长阳土家族自治县','五峰土家族自治县','宜都市','当阳市','枝江市']}, -{name:'襄樊市', areaList:['市辖区','襄城区','樊城区','襄阳区','南漳县','谷城县','保康县','老河口市','枣阳市','宜城市']}, -{name:'鄂州市', areaList:['市辖区','梁子湖区','华容区','鄂城区']}, -{name:'荆门市', areaList:['市辖区','东宝区','掇刀区','京山县','沙洋县','钟祥市']}, -{name:'孝感市', areaList:['市辖区','孝南区','孝昌县','大悟县','云梦县','应城市','安陆市','汉川市']}, -{name:'荆州市', areaList:['市辖区','沙市区','荆州区','公安县','监利县','江陵县','石首市','洪湖市','松滋市']}, -{name:'黄冈市', areaList:['市辖区','黄州区','团风县','红安县','罗田县','英山县','浠水县','蕲春县','黄梅县','麻城市','武穴市']}, -{name:'咸宁市', areaList:['市辖区','咸安区','嘉鱼县','通城县','崇阳县','通山县','赤壁市']}, -{name:'随州市', areaList:['市辖区','曾都区','广水市']}, -{name:'恩施土家族苗族自治州', areaList:['恩施市','利川市','建始县','巴东县','宣恩县','咸丰县','来凤县','鹤峰县']}, -{name:'省直辖行政单位', areaList:['仙桃市','潜江市','天门市','神农架林区']} -]}, -{name:'湖南', cityList:[ -{name:'长沙市', areaList:['市辖区','芙蓉区','天心区','岳麓区','开福区','雨花区','长沙县','望城县','宁乡县','浏阳市']}, -{name:'株洲市', areaList:['市辖区','荷塘区','芦淞区','石峰区','天元区','株洲县','攸 县','茶陵县','炎陵县','醴陵市']}, -{name:'湘潭市', areaList:['市辖区','雨湖区','岳塘区','湘潭县','湘乡市','韶山市']}, -{name:'衡阳市', areaList:['市辖区','珠晖区','雁峰区','石鼓区','蒸湘区','南岳区','衡阳县','衡南县','衡山县','衡东县','祁东县','耒阳市','常宁市']}, -{name:'邵阳市', areaList:['市辖区','双清区','大祥区','北塔区','邵东县','新邵县','邵阳县','隆回县','洞口县','绥宁县','新宁县','城步苗族自治县','武冈市']}, -{name:'岳阳市', areaList:['市辖区','岳阳楼区','云溪区','君山区','岳阳县','华容县','湘阴县','平江县','汨罗市','临湘市']}, -{name:'常德市', areaList:['市辖区','武陵区','鼎城区','安乡县','汉寿县','澧 县','临澧县','桃源县','石门县','津市市']}, -{name:'张家界市', areaList:['市辖区','永定区','武陵源区','慈利县','桑植县']}, -{name:'益阳市', areaList:['市辖区','资阳区','赫山区','南 县','桃江县','安化县','沅江市']}, -{name:'郴州市', areaList:['市辖区','北湖区','苏仙区','桂阳县','宜章县','永兴县','嘉禾县','临武县','汝城县','桂东县','安仁县','资兴市']}, -{name:'永州市', areaList:['市辖区','芝山区','冷水滩区','祁阳县','东安县','双牌县','道 县','江永县','宁远县','蓝山县','新田县','江华瑶族自治县']}, -{name:'怀化市', areaList:['市辖区','鹤城区','中方县','沅陵县','辰溪县','溆浦县','会同县','麻阳苗族自治县','新晃侗族自治县','芷江侗族自治县','靖州苗族侗族自治县','通道侗族自治县','洪江市']}, -{name:'娄底市', areaList:['市辖区','娄星区','双峰县','新化县','冷水江市','涟源市']}, -{name:'湘西土家族苗族自治州', areaList:['吉首市','泸溪县','凤凰县','花垣县','保靖县','古丈县','永顺县','龙山县']} -]}, -{name:'广东', cityList:[ -{name:'广州市', areaList:['市辖区','东山区','荔湾区','越秀区','海珠区','天河区','芳村区','白云区','黄埔区','番禺区','花都区','增城市','从化市']}, -{name:'韶关市', areaList:['市辖区','武江区','浈江区','曲江区','始兴县','仁化县','翁源县','乳源瑶族自治县','新丰县','乐昌市','南雄市']}, -{name:'深圳市', areaList:['市辖区','罗湖区','福田区','南山区','宝安区','龙岗区','盐田区']}, -{name:'珠海市', areaList:['市辖区','香洲区','斗门区','金湾区']}, -{name:'汕头市', areaList:['市辖区','龙湖区','金平区','濠江区','潮阳区','潮南区','澄海区','南澳县']}, -{name:'佛山市', areaList:['市辖区','禅城区','南海区','顺德区','三水区','高明区']}, -{name:'江门市', areaList:['市辖区','蓬江区','江海区','新会区','台山市','开平市','鹤山市','恩平市']}, -{name:'湛江市', areaList:['市辖区','赤坎区','霞山区','坡头区','麻章区','遂溪县','徐闻县','廉江市','雷州市','吴川市']}, -{name:'茂名市', areaList:['市辖区','茂南区','茂港区','电白县','高州市','化州市','信宜市']}, -{name:'肇庆市', areaList:['市辖区','端州区','鼎湖区','广宁县','怀集县','封开县','德庆县','高要市','四会市']}, -{name:'惠州市', areaList:['市辖区','惠城区','惠阳区','博罗县','惠东县','龙门县']}, -{name:'梅州市', areaList:['市辖区','梅江区','梅 县','大埔县','丰顺县','五华县','平远县','蕉岭县','兴宁市']}, -{name:'汕尾市', areaList:['市辖区','城 区','海丰县','陆河县','陆丰市']}, -{name:'河源市', areaList:['市辖区','源城区','紫金县','龙川县','连平县','和平县','东源县']}, -{name:'阳江市', areaList:['市辖区','江城区','阳西县','阳东县','阳春市']}, -{name:'清远市', areaList:['市辖区','清城区','佛冈县','阳山县','连山壮族瑶族自治县','连南瑶族自治县','清新县','英德市','连州市']}, -{name:'东莞市', areaList:['东莞市']}, -{name:'中山市', areaList:['中山市']}, -{name:'潮州市', areaList:['市辖区','湘桥区','潮安县','饶平县']}, -{name:'揭阳市', areaList:['市辖区','榕城区','揭东县','揭西县','惠来县','普宁市']}, -{name:'云浮市', areaList:['市辖区','云城区','新兴县','郁南县','云安县','罗定市']} -]}, -{name:'广西', cityList:[ -{name:'南宁市', areaList:['市辖区','兴宁区','青秀区','江南区','西乡塘区','良庆区','邕宁区','武鸣县','隆安县','马山县','上林县','宾阳县','横 县']}, -{name:'柳州市', areaList:['市辖区','城中区','鱼峰区','柳南区','柳北区','柳江县','柳城县','鹿寨县','融安县','融水苗族自治县','三江侗族自治县']}, -{name:'桂林市', areaList:['市辖区','秀峰区','叠彩区','象山区','七星区','雁山区','阳朔县','临桂县','灵川县','全州县','兴安县','永福县','灌阳县','龙胜各族自治县','资源县','平乐县','荔蒲县','恭城瑶族自治县']}, -{name:'梧州市', areaList:['市辖区','万秀区','蝶山区','长洲区','苍梧县','藤 县','蒙山县','岑溪市']}, -{name:'北海市', areaList:['市辖区','海城区','银海区','铁山港区','合浦县']}, -{name:'防城港市', areaList:['市辖区','港口区','防城区','上思县','东兴市']}, -{name:'钦州市', areaList:['市辖区','钦南区','钦北区','灵山县','浦北县']}, -{name:'贵港市', areaList:['市辖区','港北区','港南区','覃塘区','平南县','桂平市']}, -{name:'玉林市', areaList:['市辖区','玉州区','容 县','陆川县','博白县','兴业县','北流市']}, -{name:'百色市', areaList:['市辖区','右江区','田阳县','田东县','平果县','德保县','靖西县','那坡县','凌云县','乐业县','田林县','西林县','隆林各族自治县']}, -{name:'贺州市', areaList:['市辖区','八步区','昭平县','钟山县','富川瑶族自治县']}, -{name:'河池市', areaList:['市辖区','金城江区','南丹县','天峨县','凤山县','东兰县','罗城仫佬族自治县','环江毛南族自治县','巴马瑶族自治县','都安瑶族自治县','大化瑶族自治县','宜州市']}, -{name:'来宾市', areaList:['市辖区','兴宾区','忻城县','象州县','武宣县','金秀瑶族自治县','合山市']}, -{name:'崇左市', areaList:['市辖区','江洲区','扶绥县','宁明县','龙州县','大新县','天等县','凭祥市']} -]}, -{name:'陕西', cityList:[ -{name:'西安市', areaList:['市辖区','新城区','碑林区','莲湖区','灞桥区','未央区','雁塔区','阎良区','临潼区','长安区','蓝田县','周至县','户 县','高陵县']}, -{name:'铜川市', areaList:['市辖区','王益区','印台区','耀州区','宜君县']}, -{name:'宝鸡市', areaList:['市辖区','渭滨区','金台区','陈仓区','凤翔县','岐山县','扶风县','眉 县','陇 县','千阳县','麟游县','凤 县','太白县']}, -{name:'咸阳市', areaList:['市辖区','秦都区','杨凌区','渭城区','三原县','泾阳县','乾 县','礼泉县','永寿县','彬 县','长武县','旬邑县','淳化县','武功县','兴平市']}, -{name:'渭南市', areaList:['市辖区','临渭区','华 县','潼关县','大荔县','合阳县','澄城县','蒲城县','白水县','富平县','韩城市','华阴市']}, -{name:'延安市', areaList:['市辖区','宝塔区','延长县','延川县','子长县','安塞县','志丹县','吴旗县','甘泉县','富 县','洛川县','宜川县','黄龙县','黄陵县']}, -{name:'汉中市', areaList:['市辖区','汉台区','南郑县','城固县','洋 县','西乡县','勉 县','宁强县','略阳县','镇巴县','留坝县','佛坪县']}, -{name:'榆林市', areaList:['市辖区','榆阳区','神木县','府谷县','横山县','靖边县','定边县','绥德县','米脂县','佳 县','吴堡县','清涧县','子洲县']}, -{name:'安康市', areaList:['市辖区','汉滨区','汉阴县','石泉县','宁陕县','紫阳县','岚皋县','平利县','镇坪县','旬阳县','白河县']}, -{name:'商洛市', areaList:['市辖区','商州区','洛南县','丹凤县','商南县','山阳县','镇安县','柞水县']} -]}, -{name:'甘肃', cityList:[ -{name:'兰州市', areaList:['市辖区','城关区','七里河区','西固区','安宁区','红古区','永登县','皋兰县','榆中县']}, -{name:'嘉峪关市', areaList:['市辖区']}, -{name:'金昌市', areaList:['市辖区','金川区','永昌县']}, -{name:'白银市', areaList:['市辖区','白银区','平川区','靖远县','会宁县','景泰县']}, -{name:'天水市', areaList:['市辖区','秦城区','北道区','清水县','秦安县','甘谷县','武山县','张家川回族自治县']}, -{name:'武威市', areaList:['市辖区','凉州区','民勤县','古浪县','天祝藏族自治县']}, -{name:'张掖市', areaList:['市辖区','甘州区','肃南裕固族自治县','民乐县','临泽县','高台县','山丹县']}, -{name:'平凉市', areaList:['市辖区','崆峒区','泾川县','灵台县','崇信县','华亭县','庄浪县','静宁县']}, -{name:'酒泉市', areaList:['市辖区','肃州区','金塔县','安西县','肃北蒙古族自治县','阿克塞哈萨克族自治县','玉门市','敦煌市']}, -{name:'庆阳市', areaList:['市辖区','西峰区','庆城县','环 县','华池县','合水县','正宁县','宁 县','镇原县']}, -{name:'定西市', areaList:['市辖区','安定区','通渭县','陇西县','渭源县','临洮县','漳 县','岷 县']}, -{name:'陇南市', areaList:['市辖区','武都区','成 县','文 县','宕昌县','康 县','西和县','礼 县','徽 县','两当县']}, -{name:'临夏回族自治州', areaList:['临夏市','临夏县','康乐县','永靖县','广河县','和政县','东乡族自治县','积石山保安族东乡族撒拉族自治县']}, -{name:'甘南藏族自治州', areaList:['合作市','临潭县','卓尼县','舟曲县','迭部县','玛曲县','碌曲县','夏河县']} -]}, -{name:'青海', cityList:[ -{name:'西宁市', areaList:['市辖区','城东区','城中区','城西区','城北区','大通回族土族自治县','湟中县','湟源县']}, -{name:'海东地区', areaList:['平安县','民和回族土族自治县','乐都县','互助土族自治县','化隆回族自治县','循化撒拉族自治县']}, -{name:'海北藏族自治州', areaList:['门源回族自治县','祁连县','海晏县','刚察县']}, -{name:'黄南藏族自治州', areaList:['同仁县','尖扎县','泽库县','河南蒙古族自治县']}, -{name:'海南藏族自治州', areaList:['共和县','同德县','贵德县','兴海县','贵南县']}, -{name:'果洛藏族自治州', areaList:['玛沁县','班玛县','甘德县','达日县','久治县','玛多县']}, -{name:'玉树藏族自治州', areaList:['玉树县','杂多县','称多县','治多县','囊谦县','曲麻莱县']}, -{name:'海西蒙古族藏族自治州', areaList:['格尔木市','德令哈市','乌兰县','都兰县','天峻县']} -]}, -{name:'宁夏', cityList:[ -{name:'银川市', areaList:['市辖区','兴庆区','西夏区','金凤区','永宁县','贺兰县','灵武市']}, -{name:'石嘴山市', areaList:['市辖区','大武口区','惠农区','平罗县']}, -{name:'吴忠市', areaList:['市辖区','利通区','盐池县','同心县','青铜峡市']}, -{name:'固原市', areaList:['市辖区','原州区','西吉县','隆德县','泾源县','彭阳县','海原县']}, -{name:'中卫市', areaList:['市辖区','沙坡头区','中宁县']} -]}, -{name:'新疆', cityList:[ -{name:'乌鲁木齐市', areaList:['市辖区','天山区','沙依巴克区','新市区','水磨沟区','头屯河区','达坂城区','东山区','乌鲁木齐县']}, -{name:'克拉玛依市', areaList:['市辖区','独山子区','克拉玛依区','白碱滩区','乌尔禾区']}, -{name:'吐鲁番地区', areaList:['吐鲁番市','鄯善县','托克逊县']}, -{name:'哈密地区', areaList:['哈密市','巴里坤哈萨克自治县','伊吾县']}, -{name:'昌吉回族自治州', areaList:['昌吉市','阜康市','米泉市','呼图壁县','玛纳斯县','奇台县','吉木萨尔县','木垒哈萨克自治县']}, -{name:'博尔塔拉蒙古自治州', areaList:['博乐市','精河县','温泉县']}, -{name:'巴音郭楞蒙古自治州', areaList:['库尔勒市','轮台县','尉犁县','若羌县','且末县','焉耆回族自治县','和静县','和硕县','博湖县']}, -{name:'阿克苏地区', areaList:['阿克苏市','温宿县','库车县','沙雅县','新和县','拜城县','乌什县','阿瓦提县','柯坪县']}, -{name:'克孜勒苏柯尔克孜自治州', areaList:['阿图什市','阿克陶县','阿合奇县','乌恰县']}, -{name:'喀什地区', areaList:['喀什市','疏附县','疏勒县','英吉沙县','泽普县','莎车县','叶城县','麦盖提县','岳普湖县','伽师县','巴楚县','塔什库尔干塔吉克自治县']}, -{name:'和田地区', areaList:['和田市','和田县','墨玉县','皮山县','洛浦县','策勒县','于田县','民丰县']}, -{name:'伊犁哈萨克自治州', areaList:['伊宁市','奎屯市','伊宁县','察布查尔锡伯自治县','霍城县','巩留县','新源县','昭苏县','特克斯县','尼勒克县']}, -{name:'塔城地区', areaList:['塔城市','乌苏市','额敏县','沙湾县','托里县','裕民县','和布克赛尔蒙古自治县']}, -{name:'阿勒泰地区', areaList:['阿勒泰市','布尔津县','富蕴县','福海县','哈巴河县','青河县','吉木乃县']}, -{name:'省直辖行政单位', areaList:['石河子市','阿拉尔市','图木舒克市','五家渠市']} -]}, -{name:'河北', cityList:[ -{name:'石家庄市', areaList:['市辖区','长安区','桥东区','桥西区','新华区','井陉矿区','裕华区','井陉县','正定县','栾城县','行唐县','灵寿县','高邑县','深泽县','赞皇县','无极县','平山县','元氏县','赵 县','辛集市','藁城市','晋州市','新乐市','鹿泉市']}, -{name:'唐山市', areaList:['市辖区','路南区','路北区','古冶区','开平区','丰南区','丰润区','滦 县','滦南县','乐亭县','迁西县','玉田县','唐海县','遵化市','迁安市']}, -{name:'秦皇岛市', areaList:['市辖区','海港区','山海关区','北戴河区','青龙满族自治县','昌黎县','抚宁县','卢龙县']}, -{name:'邯郸市', areaList:['市辖区','邯山区','丛台区','复兴区','峰峰矿区','邯郸县','临漳县','成安县','大名县','涉 县','磁 县','肥乡县','永年县','邱 县','鸡泽县','广平县','馆陶县','魏 县','曲周县','武安市']}, -{name:'邢台市', areaList:['市辖区','桥东区','桥西区','邢台县','临城县','内丘县','柏乡县','隆尧县','任 县','南和县','宁晋县','巨鹿县','新河县','广宗县','平乡县','威 县','清河县','临西县','南宫市','沙河市']}, -{name:'保定市', areaList:['市辖区','新市区','北市区','南市区','满城县','清苑县','涞水县','阜平县','徐水县','定兴县','唐 县','高阳县','容城县','涞源县','望都县','安新县','易 县','曲阳县','蠡 县','顺平县','博野县','雄 县','涿州市','定州市','安国市','高碑店市']}, -{name:'张家口市', areaList:['市辖区','桥东区','桥西区','宣化区','下花园区','宣化县','张北县','康保县','沽源县','尚义县','蔚 县','阳原县','怀安县','万全县','怀来县','涿鹿县','赤城县','崇礼县']}, -{name:'承德市', areaList:['市辖区','双桥区','双滦区','鹰手营子矿区','承德县','兴隆县','平泉县','滦平县','隆化县','丰宁满族自治县','宽城满族自治县','围场满族蒙古族自治县']}, -{name:'沧州市', areaList:['市辖区','新华区','运河区','沧 县','青 县','东光县','海兴县','盐山县','肃宁县','南皮县','吴桥县','献 县','孟村回族自治县','泊头市','任丘市','黄骅市','河间市']}, -{name:'廊坊市', areaList:['市辖区','安次区','广阳区','固安县','永清县','香河县','大城县','文安县','大厂回族自治县','霸州市','三河市']}, -{name:'衡水市', areaList:['市辖区','桃城区','枣强县','武邑县','武强县','饶阳县','安平县','故城县','景 县','阜城县','冀州市','深州市']} -]}, -{name:'山西', cityList:[ -{name:'太原市', areaList:['市辖区','小店区','迎泽区','杏花岭区','尖草坪区','万柏林区','晋源区','清徐县','阳曲县','娄烦县','古交市']}, -{name:'大同市', areaList:['市辖区','城 区','矿 区','南郊区','新荣区','阳高县','天镇县','广灵县','灵丘县','浑源县','左云县','大同县']}, -{name:'阳泉市', areaList:['市辖区','城 区','矿 区','郊 区','平定县','盂 县']}, -{name:'长治市', areaList:['市辖区','城 区','郊 区','长治县','襄垣县','屯留县','平顺县','黎城县','壶关县','长子县','武乡县','沁 县','沁源县','潞城市']}, -{name:'晋城市', areaList:['市辖区','城 区','沁水县','阳城县','陵川县','泽州县','高平市']}, -{name:'朔州市', areaList:['市辖区','朔城区','平鲁区','山阴县','应 县','右玉县','怀仁县']}, -{name:'晋中市', areaList:['市辖区','榆次区','榆社县','左权县','和顺县','昔阳县','寿阳县','太谷县','祁 县','平遥县','灵石县','介休市']}, -{name:'运城市', areaList:['市辖区','盐湖区','临猗县','万荣县','闻喜县','稷山县','新绛县','绛 县','垣曲县','夏 县','平陆县','芮城县','永济市','河津市']}, -{name:'忻州市', areaList:['市辖区','忻府区','定襄县','五台县','代 县','繁峙县','宁武县','静乐县','神池县','五寨县','岢岚县','河曲县','保德县','偏关县','原平市']}, -{name:'临汾市', areaList:['市辖区','尧都区','曲沃县','翼城县','襄汾县','洪洞县','古 县','安泽县','浮山县','吉 县','乡宁县','大宁县','隰 县','永和县','蒲 县','汾西县','侯马市','霍州市']}, -{name:'吕梁市', areaList:['市辖区','离石区','文水县','交城县','兴 县','临 县','柳林县','石楼县','岚 县','方山县','中阳县','交口县','孝义市','汾阳市']} -]}, -{name:'内蒙古', cityList:[ -{name:'呼和浩特市', areaList:['市辖区','新城区','回民区','玉泉区','赛罕区','土默特左旗','托克托县','和林格尔县','清水河县','武川县']}, -{name:'包头市', areaList:['市辖区','东河区','昆都仑区','青山区','石拐区','白云矿区','九原区','土默特右旗','固阳县','达尔罕茂明安联合旗']}, -{name:'乌海市', areaList:['市辖区','海勃湾区','海南区','乌达区']}, -{name:'赤峰市', areaList:['市辖区','红山区','元宝山区','松山区','阿鲁科尔沁旗','巴林左旗','巴林右旗','林西县','克什克腾旗','翁牛特旗','喀喇沁旗','宁城县','敖汉旗']}, -{name:'通辽市', areaList:['市辖区','科尔沁区','科尔沁左翼中旗','科尔沁左翼后旗','开鲁县','库伦旗','奈曼旗','扎鲁特旗','霍林郭勒市']}, -{name:'鄂尔多斯市', areaList:['东胜区','达拉特旗','准格尔旗','鄂托克前旗','鄂托克旗','杭锦旗','乌审旗','伊金霍洛旗']}, -{name:'呼伦贝尔市', areaList:['市辖区','海拉尔区','阿荣旗','莫力达瓦达斡尔族自治旗','鄂伦春自治旗','鄂温克族自治旗','陈巴尔虎旗','新巴尔虎左旗','新巴尔虎右旗','满洲里市','牙克石市','扎兰屯市','额尔古纳市','根河市']}, -{name:'巴彦淖尔市', areaList:['市辖区','临河区','五原县','磴口县','乌拉特前旗','乌拉特中旗','乌拉特后旗','杭锦后旗']}, -{name:'乌兰察布市', areaList:['市辖区','集宁区','卓资县','化德县','商都县','兴和县','凉城县','察哈尔右翼前旗','察哈尔右翼中旗','察哈尔右翼后旗','四子王旗','丰镇市']}, -{name:'兴安盟', areaList:['乌兰浩特市','阿尔山市','科尔沁右翼前旗','科尔沁右翼中旗','扎赉特旗','突泉县']}, -{name:'锡林郭勒盟', areaList:['二连浩特市','锡林浩特市','阿巴嘎旗','苏尼特左旗','苏尼特右旗','东乌珠穆沁旗','西乌珠穆沁旗','太仆寺旗','镶黄旗','正镶白旗','正蓝旗','多伦县']}, -{name:'阿拉善盟', areaList:['阿拉善左旗','阿拉善右旗','额济纳旗']} -]}, -{name:'江苏', cityList:[ -{name:'南京市', areaList:['市辖区','玄武区','白下区','秦淮区','建邺区','鼓楼区','下关区','浦口区','栖霞区','雨花台区','江宁区','六合区','溧水县','高淳县']}, -{name:'无锡市', areaList:['市辖区','崇安区','南长区','北塘区','锡山区','惠山区','滨湖区','江阴市','宜兴市']}, -{name:'徐州市', areaList:['市辖区','鼓楼区','云龙区','九里区','贾汪区','泉山区','丰 县','沛 县','铜山县','睢宁县','新沂市','邳州市']}, -{name:'常州市', areaList:['市辖区','天宁区','钟楼区','戚墅堰区','新北区','武进区','溧阳市','金坛市']}, -{name:'苏州市', areaList:['市辖区','沧浪区','平江区','金阊区','虎丘区','吴中区','相城区','常熟市','张家港市','昆山市','吴江市','太仓市']}, -{name:'南通市', areaList:['市辖区','崇川区','港闸区','海安县','如东县','启东市','如皋市','通州市','海门市']}, -{name:'连云港市', areaList:['市辖区','连云区','新浦区','海州区','赣榆县','东海县','灌云县','灌南县']}, -{name:'淮安市', areaList:['市辖区','清河区','楚州区','淮阴区','清浦区','涟水县','洪泽县','盱眙县','金湖县']}, -{name:'盐城市', areaList:['市辖区','亭湖区','盐都区','响水县','滨海县','阜宁县','射阳县','建湖县','东台市','大丰市']}, -{name:'扬州市', areaList:['市辖区','广陵区','邗江区','郊 区','宝应县','仪征市','高邮市','江都市']}, -{name:'镇江市', areaList:['市辖区','京口区','润州区','丹徒区','丹阳市','扬中市','句容市']}, -{name:'泰州市', areaList:['市辖区','海陵区','高港区','兴化市','靖江市','泰兴市','姜堰市']}, -{name:'宿迁市', areaList:['市辖区','宿城区','宿豫区','沭阳县','泗阳县','泗洪县']} -]}, -{name:'浙江', cityList:[ -{name:'杭州市', areaList:['市辖区','上城区','下城区','江干区','拱墅区','西湖区','滨江区','萧山区','余杭区','桐庐县','淳安县','建德市','富阳市','临安市']}, -{name:'宁波市', areaList:['市辖区','海曙区','江东区','江北区','北仑区','镇海区','鄞州区','象山县','宁海县','余姚市','慈溪市','奉化市']}, -{name:'温州市', areaList:['市辖区','鹿城区','龙湾区','瓯海区','洞头县','永嘉县','平阳县','苍南县','文成县','泰顺县','瑞安市','乐清市']}, -{name:'嘉兴市', areaList:['市辖区','秀城区','秀洲区','嘉善县','海盐县','海宁市','平湖市','桐乡市']}, -{name:'湖州市', areaList:['市辖区','吴兴区','南浔区','德清县','长兴县','安吉县']}, -{name:'绍兴市', areaList:['市辖区','越城区','绍兴县','新昌县','诸暨市','上虞市','嵊州市']}, -{name:'金华市', areaList:['市辖区','婺城区','金东区','武义县','浦江县','磐安县','兰溪市','义乌市','东阳市','永康市']}, -{name:'衢州市', areaList:['市辖区','柯城区','衢江区','常山县','开化县','龙游县','江山市']}, -{name:'舟山市', areaList:['市辖区','定海区','普陀区','岱山县','嵊泗县']}, -{name:'台州市', areaList:['市辖区','椒江区','黄岩区','路桥区','玉环县','三门县','天台县','仙居县','温岭市','临海市']}, -{name:'丽水市', areaList:['市辖区','莲都区','青田县','缙云县','遂昌县','松阳县','云和县','庆元县','景宁畲族自治县','龙泉市']} -]}, -{name:'安徽', cityList:[ -{name:'合肥市', areaList:['市辖区','瑶海区','庐阳区','蜀山区','包河区','长丰县','肥东县','肥西县']}, -{name:'芜湖市', areaList:['市辖区','镜湖区','马塘区','新芜区','鸠江区','芜湖县','繁昌县','南陵县']}, -{name:'蚌埠市', areaList:['市辖区','龙子湖区','蚌山区','禹会区','淮上区','怀远县','五河县','固镇县']}, -{name:'淮南市', areaList:['市辖区','大通区','田家庵区','谢家集区','八公山区','潘集区','凤台县']}, -{name:'马鞍山市', areaList:['市辖区','金家庄区','花山区','雨山区','当涂县']}, -{name:'淮北市', areaList:['市辖区','杜集区','相山区','烈山区','濉溪县']}, -{name:'铜陵市', areaList:['市辖区','铜官山区','狮子山区','郊 区','铜陵县']}, -{name:'安庆市', areaList:['市辖区','迎江区','大观区','郊 区','怀宁县','枞阳县','潜山县','太湖县','宿松县','望江县','岳西县','桐城市']}, -{name:'黄山市', areaList:['市辖区','屯溪区','黄山区','徽州区','歙 县','休宁县','黟 县','祁门县']}, -{name:'滁州市', areaList:['市辖区','琅琊区','南谯区','来安县','全椒县','定远县','凤阳县','天长市','明光市']}, -{name:'阜阳市', areaList:['市辖区','颍州区','颍东区','颍泉区','临泉县','太和县','阜南县','颍上县','界首市']}, -{name:'宿州市', areaList:['市辖区','墉桥区','砀山县','萧 县','灵璧县','泗 县']}, -{name:'巢湖市', areaList:['市辖区','居巢区','庐江县','无为县','含山县','和 县']}, -{name:'六安市', areaList:['市辖区','金安区','裕安区','寿 县','霍邱县','舒城县','金寨县','霍山县']}, -{name:'亳州市', areaList:['市辖区','谯城区','涡阳县','蒙城县','利辛县']}, -{name:'池州市', areaList:['市辖区','贵池区','东至县','石台县','青阳县']}, -{name:'宣城市', areaList:['市辖区','宣州区','郎溪县','广德县','泾 县','绩溪县','旌德县','宁国市']} -]}, -{name:'福建', cityList:[ -{name:'福州市', areaList:['市辖区','鼓楼区','台江区','仓山区','马尾区','晋安区','闽侯县','连江县','罗源县','闽清县','永泰县','平潭县','福清市','长乐市']}, -{name:'厦门市', areaList:['市辖区','思明区','海沧区','湖里区','集美区','同安区','翔安区']}, -{name:'莆田市', areaList:['市辖区','城厢区','涵江区','荔城区','秀屿区','仙游县']}, -{name:'三明市', areaList:['市辖区','梅列区','三元区','明溪县','清流县','宁化县','大田县','尤溪县','沙 县','将乐县','泰宁县','建宁县','永安市']}, -{name:'泉州市', areaList:['市辖区','鲤城区','丰泽区','洛江区','泉港区','惠安县','安溪县','永春县','德化县','金门县','石狮市','晋江市','南安市']}, -{name:'漳州市', areaList:['市辖区','芗城区','龙文区','云霄县','漳浦县','诏安县','长泰县','东山县','南靖县','平和县','华安县','龙海市']}, -{name:'南平市', areaList:['市辖区','延平区','顺昌县','浦城县','光泽县','松溪县','政和县','邵武市','武夷山市','建瓯市','建阳市']}, -{name:'龙岩市', areaList:['市辖区','新罗区','长汀县','永定县','上杭县','武平县','连城县','漳平市']}, -{name:'宁德市', areaList:['市辖区','蕉城区','霞浦县','古田县','屏南县','寿宁县','周宁县','柘荣县','福安市','福鼎市']} -]}, -{name:'江西', cityList:[ -{name:'南昌市', areaList:['市辖区','东湖区','西湖区','青云谱区','湾里区','青山湖区','南昌县','新建县','安义县','进贤县']}, -{name:'景德镇市', areaList:['市辖区','昌江区','珠山区','浮梁县','乐平市']}, -{name:'萍乡市', areaList:['市辖区','安源区','湘东区','莲花县','上栗县','芦溪县']}, -{name:'九江市', areaList:['市辖区','庐山区','浔阳区','九江县','武宁县','修水县','永修县','德安县','星子县','都昌县','湖口县','彭泽县','瑞昌市']}, -{name:'新余市', areaList:['市辖区','渝水区','分宜县']}, -{name:'鹰潭市', areaList:['市辖区','月湖区','余江县','贵溪市']}, -{name:'赣州市', areaList:['市辖区','章贡区','赣 县','信丰县','大余县','上犹县','崇义县','安远县','龙南县','定南县','全南县','宁都县','于都县','兴国县','会昌县','寻乌县','石城县','瑞金市','南康市']}, -{name:'吉安市', areaList:['市辖区','吉州区','青原区','吉安县','吉水县','峡江县','新干县','永丰县','泰和县','遂川县','万安县','安福县','永新县','井冈山市']}, -{name:'宜春市', areaList:['市辖区','袁州区','奉新县','万载县','上高县','宜丰县','靖安县','铜鼓县','丰城市','樟树市','高安市']}, -{name:'抚州市', areaList:['市辖区','临川区','南城县','黎川县','南丰县','崇仁县','乐安县','宜黄县','金溪县','资溪县','东乡县','广昌县']}, -{name:'上饶市', areaList:['市辖区','信州区','上饶县','广丰县','玉山县','铅山县','横峰县','弋阳县','余干县','鄱阳县','万年县','婺源县','德兴市']} -]}, -{name:'山东', cityList:[ -{name:'济南市', areaList:['市辖区','历下区','市中区','槐荫区','天桥区','历城区','长清区','平阴县','济阳县','商河县','章丘市']}, -{name:'青岛市', areaList:['市辖区','市南区','市北区','四方区','黄岛区','崂山区','李沧区','城阳区','胶州市','即墨市','平度市','胶南市','莱西市']}, -{name:'淄博市', areaList:['市辖区','淄川区','张店区','博山区','临淄区','周村区','桓台县','高青县','沂源县']}, -{name:'枣庄市', areaList:['市辖区','市中区','薛城区','峄城区','台儿庄区','山亭区','滕州市']}, -{name:'东营市', areaList:['市辖区','东营区','河口区','垦利县','利津县','广饶县']}, -{name:'烟台市', areaList:['市辖区','芝罘区','福山区','牟平区','莱山区','长岛县','龙口市','莱阳市','莱州市','蓬莱市','招远市','栖霞市','海阳市']}, -{name:'潍坊市', areaList:['市辖区','潍城区','寒亭区','坊子区','奎文区','临朐县','昌乐县','青州市','诸城市','寿光市','安丘市','高密市','昌邑市']}, -{name:'济宁市', areaList:['市辖区','市中区','任城区','微山县','鱼台县','金乡县','嘉祥县','汶上县','泗水县','梁山县','曲阜市','兖州市','邹城市']}, -{name:'泰安市', areaList:['市辖区','泰山区','岱岳区','宁阳县','东平县','新泰市','肥城市']}, -{name:'威海市', areaList:['市辖区','环翠区','文登市','荣成市','乳山市']}, -{name:'日照市', areaList:['市辖区','东港区','岚山区','五莲县','莒 县']}, -{name:'莱芜市', areaList:['市辖区','莱城区','钢城区']}, -{name:'临沂市', areaList:['市辖区','兰山区','罗庄区','河东区','沂南县','郯城县','沂水县','苍山县','费 县','平邑县','莒南县','蒙阴县','临沭县']}, -{name:'德州市', areaList:['市辖区','德城区','陵 县','宁津县','庆云县','临邑县','齐河县','平原县','夏津县','武城县','乐陵市','禹城市']}, -{name:'聊城市', areaList:['市辖区','东昌府区','阳谷县','莘 县','茌平县','东阿县','冠 县','高唐县','临清市']}, -{name:'滨州市', areaList:['市辖区','滨城区','惠民县','阳信县','无棣县','沾化县','博兴县','邹平县']}, -{name:'荷泽市', areaList:['市辖区','牡丹区','曹 县','单 县','成武县','巨野县','郓城县','鄄城县','定陶县','东明县']} -]}, -{name:'辽宁', cityList:[ -{name:'沈阳市', areaList:['市辖区','和平区','沈河区','大东区','皇姑区','铁西区','苏家屯区','东陵区','新城子区','于洪区','辽中县','康平县','法库县','新民市']}, -{name:'大连市', areaList:['市辖区','中山区','西岗区','沙河口区','甘井子区','旅顺口区','金州区','长海县','瓦房店市','普兰店市','庄河市']}, -{name:'鞍山市', areaList:['市辖区','铁东区','铁西区','立山区','千山区','台安县','岫岩满族自治县','海城市']}, -{name:'抚顺市', areaList:['市辖区','新抚区','东洲区','望花区','顺城区','抚顺县','新宾满族自治县','清原满族自治县']}, -{name:'本溪市', areaList:['市辖区','平山区','溪湖区','明山区','南芬区','本溪满族自治县','桓仁满族自治县']}, -{name:'丹东市', areaList:['市辖区','元宝区','振兴区','振安区','宽甸满族自治县','东港市','凤城市']}, -{name:'锦州市', areaList:['市辖区','古塔区','凌河区','太和区','黑山县','义 县','凌海市','北宁市']}, -{name:'营口市', areaList:['市辖区','站前区','西市区','鲅鱼圈区','老边区','盖州市','大石桥市']}, -{name:'阜新市', areaList:['市辖区','海州区','新邱区','太平区','清河门区','细河区','阜新蒙古族自治县','彰武县']}, -{name:'辽阳市', areaList:['市辖区','白塔区','文圣区','宏伟区','弓长岭区','太子河区','辽阳县','灯塔市']}, -{name:'盘锦市', areaList:['市辖区','双台子区','兴隆台区','大洼县','盘山县']}, -{name:'铁岭市', areaList:['市辖区','银州区','清河区','铁岭县','西丰县','昌图县','调兵山市','开原市']}, -{name:'朝阳市', areaList:['市辖区','双塔区','龙城区','朝阳县','建平县','喀喇沁左翼蒙古族自治县','北票市','凌源市']}, -{name:'葫芦岛市', areaList:['市辖区','连山区','龙港区','南票区','绥中县','建昌县','兴城市']} -]}, -{name:'吉林', cityList:[ -{name:'长春市', areaList:['市辖区','南关区','宽城区','朝阳区','二道区','绿园区','双阳区','农安县','九台市','榆树市','德惠市']}, -{name:'吉林市', areaList:['市辖区','昌邑区','龙潭区','船营区','丰满区','永吉县','蛟河市','桦甸市','舒兰市','磐石市']}, -{name:'四平市', areaList:['市辖区','铁西区','铁东区','梨树县','伊通满族自治县','公主岭市','双辽市']}, -{name:'辽源市', areaList:['市辖区','龙山区','西安区','东丰县','东辽县']}, -{name:'通化市', areaList:['市辖区','东昌区','二道江区','通化县','辉南县','柳河县','梅河口市','集安市']}, -{name:'白山市', areaList:['市辖区','八道江区','抚松县','靖宇县','长白朝鲜族自治县','江源县','临江市']}, -{name:'松原市', areaList:['市辖区','宁江区','前郭尔罗斯蒙古族自治县','长岭县','乾安县','扶余县']}, -{name:'白城市', areaList:['市辖区','洮北区','镇赉县','通榆县','洮南市','大安市']}, -{name:'延边朝鲜族自治州', areaList:['延吉市','图们市','敦化市','珲春市','龙井市','和龙市','汪清县','安图县']} -]}, -{name:'黑龙江', cityList:[ -{name:'哈尔滨市', areaList:['市辖区','道里区','南岗区','道外区','香坊区','动力区','平房区','松北区','呼兰区','依兰县','方正县','宾 县','巴彦县','木兰县','通河县','延寿县','阿城市','双城市','尚志市','五常市']}, -{name:'齐齐哈尔市', areaList:['市辖区','龙沙区','建华区','铁锋区','昂昂溪区','富拉尔基区','碾子山区','梅里斯达斡尔族区','龙江县','依安县','泰来县','甘南县','富裕县','克山县','克东县','拜泉县','讷河市']}, -{name:'鸡西市', areaList:['市辖区','鸡冠区','恒山区','滴道区','梨树区','城子河区','麻山区','鸡东县','虎林市','密山市']}, -{name:'鹤岗市', areaList:['市辖区','向阳区','工农区','南山区','兴安区','东山区','兴山区','萝北县','绥滨县']}, -{name:'双鸭山市', areaList:['市辖区','尖山区','岭东区','四方台区','宝山区','集贤县','友谊县','宝清县','饶河县']}, -{name:'大庆市', areaList:['市辖区','萨尔图区','龙凤区','让胡路区','红岗区','大同区','肇州县','肇源县','林甸县','杜尔伯特蒙古族自治县']}, -{name:'伊春市', areaList:['市辖区','伊春区','南岔区','友好区','西林区','翠峦区','新青区','美溪区','金山屯区','五营区','乌马河区','汤旺河区','带岭区','乌伊岭区','红星区','上甘岭区','嘉荫县','铁力市']}, -{name:'佳木斯市', areaList:['市辖区','永红区','向阳区','前进区','东风区','郊 区','桦南县','桦川县','汤原县','抚远县','同江市','富锦市']}, -{name:'七台河市', areaList:['市辖区','新兴区','桃山区','茄子河区','勃利县']}, -{name:'牡丹江市', areaList:['市辖区','东安区','阳明区','爱民区','西安区','东宁县','林口县','绥芬河市','海林市','宁安市','穆棱市']}, -{name:'黑河市', areaList:['市辖区','爱辉区','嫩江县','逊克县','孙吴县','北安市','五大连池市']}, -{name:'绥化市', areaList:['市辖区','北林区','望奎县','兰西县','青冈县','庆安县','明水县','绥棱县','安达市','肇东市','海伦市']}, -{name:'大兴安岭地区', areaList:['呼玛县','塔河县','漠河县']} -]}, -{name:'海南', cityList:[ -{name:'海口市', areaList:['市辖区','秀英区','龙华区','琼山区','美兰区']}, -{name:'三亚市', areaList:['市辖区']}, -{name:'省直辖县级行政单位', areaList:['五指山市','琼海市','儋州市','文昌市','万宁市','东方市','定安县','屯昌县','澄迈县','临高县','白沙黎族自治县','昌江黎族自治县','乐东黎族自治县','陵水黎族自治县','保亭黎族苗族自治县','琼中黎族苗族自治县','西沙群岛','南沙群岛','中沙群岛的岛礁及其海域']} -]}, -{name:'台湾', cityList:[ -{name:'台湾', areaList:['台湾']} -]}, -{name:'香港', cityList:[ -{name:'香港', areaList:['香港']} -]}, -{name:'澳门', cityList:[ -{name:'澳门', areaList:['澳门']} -]} -]; diff --git a/sop-admin/sop-admin-front/assets/lib/easyopen/index.html b/sop-admin/sop-admin-front/assets/lib/easyopen/index.html deleted file mode 100644 index e910b9f5..00000000 --- a/sop-admin/sop-admin-front/assets/lib/easyopen/index.html +++ /dev/null @@ -1,136 +0,0 @@ - - - - -sdk - - - - - -

打开F12查看效果

- -
- GET/POST - - -
-
-
- 上传文件demo -
- 头像图片:

- 身份证图片: -
-
- -
- - - -
-//需要发布到服务器上运行,并且server端需要处理跨域
-//在IndexController.java上加@CrossOrigin(origins={"*"})
-
-sdk.config({
-    url : 'http://localhost:8080/api'
-    ,app_key : 'test'
-    ,secret : '123456'
-});
-
-sdk.get({
-    name   : 'goods.get' // 接口名
-    ,data  : {'goods_name':'iphone'} // 请求参数
-    ,callback:function(resp) { // 成功回调
-        console.log(resp)
-    }
-}); // get方式不支持上传
-
-sdk.post({
-    name   : 'goods.get' // 接口名
-    ,data  : {'goods_name':'iphone'} // 请求参数
-    ,callback:function(resp) { // 成功回调
-        console.log(resp)
-    }
-});
-
-
-/* ****************上传文件**************** */
-<form id="frm">
-    上传文件1:<input type="file" name="headImg"/>
-    上传文件2:<input type="file" name="idcardImg"/>
-</form>
-
-function uploadTest() {
-    sdk.get({
-        name   : 'file.upload' // 接口名
-        ,data  : {'goods_name':'iphone'} // 请求参数
-        ,form  : document.getElementById('frm')
-        ,callback:function(resp) { // 成功回调
-            if(resp.code == '0') {
-                alert('上传成功,' + resp.msg);
-            } else {
-                alert('上传失败,' + resp.msg)
-            }
-        }
-    });
-}
-
-
- - - - \ No newline at end of file diff --git a/sop-admin/sop-admin-front/assets/lib/easyopen/sdk.js b/sop-admin/sop-admin-front/assets/lib/easyopen/sdk.js deleted file mode 100644 index f3760be0..00000000 --- a/sop-admin/sop-admin-front/assets/lib/easyopen/sdk.js +++ /dev/null @@ -1,293 +0,0 @@ -// MD5 -var hexcase=0;var b64pad="";var chrsz=8;function hex_md5(s){return binl2hex(core_md5(str2binl(s),s.length*chrsz))}function b64_md5(s){return binl2b64(core_md5(str2binl(s),s.length*chrsz))}function str_md5(s){return binl2str(core_md5(str2binl(s),s.length*chrsz))}function hex_hmac_md5(key,data){return binl2hex(core_hmac_md5(key,data))}function b64_hmac_md5(key,data){return binl2b64(core_hmac_md5(key,data))}function str_hmac_md5(key,data){return binl2str(core_hmac_md5(key,data))}function md5_vm_test(){return hex_md5("abc")=="900150983cd24fb0d6963f7d28e17f72"}function core_md5(x,len){x[len>>5]|=128<<((len)%32);x[(((len+64)>>>9)<<4)+14]=len;var a=1732584193;var b=-271733879;var c=-1732584194;var d=271733878;for(var i=0;i16){bkey=core_md5(bkey,key.length*chrsz)}var ipad=Array(16),opad=Array(16);for(var i=0;i<16;i++){ipad[i]=bkey[i]^909522486;opad[i]=bkey[i]^1549556828}var hash=core_md5(ipad.concat(str2binl(data)),512+data.length*chrsz);return core_md5(opad.concat(hash),512+128)}function safe_add(x,y){var lsw=(x&65535)+(y&65535);var msw=(x>>16)+(y>>16)+(lsw>>16);return(msw<<16)|(lsw&65535)}function bit_rol(num,cnt){return(num<>>(32-cnt))}function str2binl(str){var bin=Array();var mask=(1<>5]|=(str.charCodeAt(i/chrsz)&mask)<<(i%32)}return bin}function binl2str(bin){var str="";var mask=(1<>5]>>>(i%32))&mask)}return str}function binl2hex(binarray){var hex_tab=hexcase?"0123456789ABCDEF":"0123456789abcdef";var str="";for(var i=0;i>2]>>((i%4)*8+4))&15)+hex_tab.charAt((binarray[i>>2]>>((i%4)*8))&15)}return str}function binl2b64(binarray){var tab="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/";var str="";for(var i=0;i>2]>>8*(i%4))&255)<<16)|(((binarray[i+1>>2]>>8*((i+1)%4))&255)<<8)|((binarray[i+2>>2]>>8*((i+2)%4))&255); -for(var j=0;j<4;j++){if(i*8+j*6>binarray.length*32){str+=b64pad}else{str+=tab.charAt((triplet>>6*(3-j))&63)}}}return str}; -/** -//需要发布到服务器上运行,并且server端需要处理跨域 -//在IndexController.java上加@CrossOrigin(origins={"*"}) - -sdk.config({ - url : 'http://localhost:8080/api' - ,app_key : 'test' - ,secret : '123456' - ,jwt : 'xxx' -}); - -sdk.post({ - name : 'goods.get' // 接口名 -// ,version:'1.0' -// ,access_token:'' - ,data : {'goods_name':'iphone'} // 请求参数 - ,callback:function(resp) { // 成功回调 - console.log(resp) - } -}); - -sdk.post({ - name : 'goods.get' // 接口名 - ,data : {'goods_name':'iphone'} // 请求参数 - ,callback:function(resp) { // 成功回调 - console.log(resp) - } -}); - */ -;(function(){ - - var config = { - url : 'http://127.0.0.1:8080/api' - ,app_key : 'test' - ,secret : '123456' - ,default_version : '' - - ,api_name : "name" - ,version_name : "version" - ,app_key_name : "app_key" - ,data_name : "data" - ,timestamp_name : "timestamp" - ,sign_name : "sign" - ,format_name : "format" - ,access_token_name : "access_token" - ,jwt : '' - } - - var DEFAULT_FORMAT = 'json'; - var UPLOAD_FORM_DATA_NAME = 'body_data'; - var CONTENT_TYPE_JSON = 'application/json'; - - var CONTENT_TYPE_KEY = 'Content-Type'; - var POST_TYPE = 'POST'; - var GET_TYPE = 'GET'; - - function copy(source, target) { - if (target && source && typeof source == 'object') { - for (var p in source) { - target[p] = source[p]; - } - } - return target; - } - - function add0(m){return m<10?'0'+m:m } - - function formatDate(time) - { - var y = time.getFullYear(); - var m = time.getMonth()+1; - var d = time.getDate(); - var h = time.getHours(); - var mm = time.getMinutes(); - var s = time.getSeconds(); - return y+'-'+add0(m)+'-'+add0(d)+' '+add0(h)+':'+add0(mm)+':'+add0(s); - } - - /** 构建签名 */ - function buildSign(postData,secret) { - if (typeof postData === 'string') { - throw new Error('postData类型必须json对象'); - } - var paramNames = []; - for(var key in postData) { - paramNames.push(key); - } - - paramNames.sort(); - - var paramNameValue = []; - - for(var i=0,len=paramNames.length;i= 200 && status < 300) || status == 304){ - jsonData = JSON.parse(xhr.responseText); - callback(jsonData, paramStr); - } else { - jsonData = JSON.parse('{"message":"后台请求错误(status:' + status + ')"}'); - console.log(xhr.responseText) - error(jsonData, paramStr); - } - } - }; - if (method == GET_TYPE) { - var queryString = []; - for (var key in params) { - var p = key + '=' + encodeURIComponent(params[key]); - queryString.push(p); - } - url = url + '?' + queryString.join('&'); - } - - xhr.open(method, url, true); - - // 添加header - if(headers) { - for (var key in headers) { - xhr.setRequestHeader(key,headers[key]); - } - } - var postData = null; - if(method == POST_TYPE) { - if(form) { - var formData = new FormData(form); - // 添加json - formData.append(UPLOAD_FORM_DATA_NAME, paramStr); - postData = formData; - } else { - xhr.setRequestHeader(CONTENT_TYPE_KEY, CONTENT_TYPE_JSON); - postData = paramStr; - } - } - // 发送请求 - xhr.send(postData); - } - /** - * 创建XHR对象 - * @private - */ - ,createXhrObject:function() { - var methods = [ - function(){ return new XMLHttpRequest();} - ,function(){ return new ActiveXObject('Msxml2.XMLHTTP');} - ,function(){ return new ActiveXObject('Microsoft.XMLHTTP');} - ]; - - var xhr = null; - for(var i=0,len=methods.length; i=0&&c0&&b-1 in a)}var x=function(a){var b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u="sizzle"+1*new Date,v=a.document,w=0,x=0,y=ha(),z=ha(),A=ha(),B=function(a,b){return a===b&&(l=!0),0},C={}.hasOwnProperty,D=[],E=D.pop,F=D.push,G=D.push,H=D.slice,I=function(a,b){for(var c=0,d=a.length;c+~]|"+K+")"+K+"*"),S=new RegExp("="+K+"*([^\\]'\"]*?)"+K+"*\\]","g"),T=new RegExp(N),U=new RegExp("^"+L+"$"),V={ID:new RegExp("^#("+L+")"),CLASS:new RegExp("^\\.("+L+")"),TAG:new RegExp("^("+L+"|[*])"),ATTR:new RegExp("^"+M),PSEUDO:new RegExp("^"+N),CHILD:new RegExp("^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\("+K+"*(even|odd|(([+-]|)(\\d*)n|)"+K+"*(?:([+-]|)"+K+"*(\\d+)|))"+K+"*\\)|)","i"),bool:new RegExp("^(?:"+J+")$","i"),needsContext:new RegExp("^"+K+"*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\("+K+"*((?:-\\d)?\\d*)"+K+"*\\)|)(?=[^-]|$)","i")},W=/^(?:input|select|textarea|button)$/i,X=/^h\d$/i,Y=/^[^{]+\{\s*\[native \w/,Z=/^(?:#([\w-]+)|(\w+)|\.([\w-]+))$/,$=/[+~]/,_=new RegExp("\\\\([\\da-f]{1,6}"+K+"?|("+K+")|.)","ig"),aa=function(a,b,c){var d="0x"+b-65536;return d!==d||c?b:d<0?String.fromCharCode(d+65536):String.fromCharCode(d>>10|55296,1023&d|56320)},ba=/([\0-\x1f\x7f]|^-?\d)|^-$|[^\0-\x1f\x7f-\uFFFF\w-]/g,ca=function(a,b){return b?"\0"===a?"\ufffd":a.slice(0,-1)+"\\"+a.charCodeAt(a.length-1).toString(16)+" ":"\\"+a},da=function(){m()},ea=ta(function(a){return a.disabled===!0&&("form"in a||"label"in a)},{dir:"parentNode",next:"legend"});try{G.apply(D=H.call(v.childNodes),v.childNodes),D[v.childNodes.length].nodeType}catch(fa){G={apply:D.length?function(a,b){F.apply(a,H.call(b))}:function(a,b){var c=a.length,d=0;while(a[c++]=b[d++]);a.length=c-1}}}function ga(a,b,d,e){var f,h,j,k,l,o,r,s=b&&b.ownerDocument,w=b?b.nodeType:9;if(d=d||[],"string"!=typeof a||!a||1!==w&&9!==w&&11!==w)return d;if(!e&&((b?b.ownerDocument||b:v)!==n&&m(b),b=b||n,p)){if(11!==w&&(l=Z.exec(a)))if(f=l[1]){if(9===w){if(!(j=b.getElementById(f)))return d;if(j.id===f)return d.push(j),d}else if(s&&(j=s.getElementById(f))&&t(b,j)&&j.id===f)return d.push(j),d}else{if(l[2])return G.apply(d,b.getElementsByTagName(a)),d;if((f=l[3])&&c.getElementsByClassName&&b.getElementsByClassName)return G.apply(d,b.getElementsByClassName(f)),d}if(c.qsa&&!A[a+" "]&&(!q||!q.test(a))){if(1!==w)s=b,r=a;else if("object"!==b.nodeName.toLowerCase()){(k=b.getAttribute("id"))?k=k.replace(ba,ca):b.setAttribute("id",k=u),o=g(a),h=o.length;while(h--)o[h]="#"+k+" "+sa(o[h]);r=o.join(","),s=$.test(a)&&qa(b.parentNode)||b}if(r)try{return G.apply(d,s.querySelectorAll(r)),d}catch(x){}finally{k===u&&b.removeAttribute("id")}}}return i(a.replace(P,"$1"),b,d,e)}function ha(){var a=[];function b(c,e){return a.push(c+" ")>d.cacheLength&&delete b[a.shift()],b[c+" "]=e}return b}function ia(a){return a[u]=!0,a}function ja(a){var b=n.createElement("fieldset");try{return!!a(b)}catch(c){return!1}finally{b.parentNode&&b.parentNode.removeChild(b),b=null}}function ka(a,b){var c=a.split("|"),e=c.length;while(e--)d.attrHandle[c[e]]=b}function la(a,b){var c=b&&a,d=c&&1===a.nodeType&&1===b.nodeType&&a.sourceIndex-b.sourceIndex;if(d)return d;if(c)while(c=c.nextSibling)if(c===b)return-1;return a?1:-1}function ma(a){return function(b){var c=b.nodeName.toLowerCase();return"input"===c&&b.type===a}}function na(a){return function(b){var c=b.nodeName.toLowerCase();return("input"===c||"button"===c)&&b.type===a}}function oa(a){return function(b){return"form"in b?b.parentNode&&b.disabled===!1?"label"in b?"label"in b.parentNode?b.parentNode.disabled===a:b.disabled===a:b.isDisabled===a||b.isDisabled!==!a&&ea(b)===a:b.disabled===a:"label"in b&&b.disabled===a}}function pa(a){return ia(function(b){return b=+b,ia(function(c,d){var e,f=a([],c.length,b),g=f.length;while(g--)c[e=f[g]]&&(c[e]=!(d[e]=c[e]))})})}function qa(a){return a&&"undefined"!=typeof a.getElementsByTagName&&a}c=ga.support={},f=ga.isXML=function(a){var b=a&&(a.ownerDocument||a).documentElement;return!!b&&"HTML"!==b.nodeName},m=ga.setDocument=function(a){var b,e,g=a?a.ownerDocument||a:v;return g!==n&&9===g.nodeType&&g.documentElement?(n=g,o=n.documentElement,p=!f(n),v!==n&&(e=n.defaultView)&&e.top!==e&&(e.addEventListener?e.addEventListener("unload",da,!1):e.attachEvent&&e.attachEvent("onunload",da)),c.attributes=ja(function(a){return a.className="i",!a.getAttribute("className")}),c.getElementsByTagName=ja(function(a){return a.appendChild(n.createComment("")),!a.getElementsByTagName("*").length}),c.getElementsByClassName=Y.test(n.getElementsByClassName),c.getById=ja(function(a){return o.appendChild(a).id=u,!n.getElementsByName||!n.getElementsByName(u).length}),c.getById?(d.filter.ID=function(a){var b=a.replace(_,aa);return function(a){return a.getAttribute("id")===b}},d.find.ID=function(a,b){if("undefined"!=typeof b.getElementById&&p){var c=b.getElementById(a);return c?[c]:[]}}):(d.filter.ID=function(a){var b=a.replace(_,aa);return function(a){var c="undefined"!=typeof a.getAttributeNode&&a.getAttributeNode("id");return c&&c.value===b}},d.find.ID=function(a,b){if("undefined"!=typeof b.getElementById&&p){var c,d,e,f=b.getElementById(a);if(f){if(c=f.getAttributeNode("id"),c&&c.value===a)return[f];e=b.getElementsByName(a),d=0;while(f=e[d++])if(c=f.getAttributeNode("id"),c&&c.value===a)return[f]}return[]}}),d.find.TAG=c.getElementsByTagName?function(a,b){return"undefined"!=typeof b.getElementsByTagName?b.getElementsByTagName(a):c.qsa?b.querySelectorAll(a):void 0}:function(a,b){var c,d=[],e=0,f=b.getElementsByTagName(a);if("*"===a){while(c=f[e++])1===c.nodeType&&d.push(c);return d}return f},d.find.CLASS=c.getElementsByClassName&&function(a,b){if("undefined"!=typeof b.getElementsByClassName&&p)return b.getElementsByClassName(a)},r=[],q=[],(c.qsa=Y.test(n.querySelectorAll))&&(ja(function(a){o.appendChild(a).innerHTML="
",a.querySelectorAll("[msallowcapture^='']").length&&q.push("[*^$]="+K+"*(?:''|\"\")"),a.querySelectorAll("[selected]").length||q.push("\\["+K+"*(?:value|"+J+")"),a.querySelectorAll("[id~="+u+"-]").length||q.push("~="),a.querySelectorAll(":checked").length||q.push(":checked"),a.querySelectorAll("a#"+u+"+*").length||q.push(".#.+[+~]")}),ja(function(a){a.innerHTML="";var b=n.createElement("input");b.setAttribute("type","hidden"),a.appendChild(b).setAttribute("name","D"),a.querySelectorAll("[name=d]").length&&q.push("name"+K+"*[*^$|!~]?="),2!==a.querySelectorAll(":enabled").length&&q.push(":enabled",":disabled"),o.appendChild(a).disabled=!0,2!==a.querySelectorAll(":disabled").length&&q.push(":enabled",":disabled"),a.querySelectorAll("*,:x"),q.push(",.*:")})),(c.matchesSelector=Y.test(s=o.matches||o.webkitMatchesSelector||o.mozMatchesSelector||o.oMatchesSelector||o.msMatchesSelector))&&ja(function(a){c.disconnectedMatch=s.call(a,"*"),s.call(a,"[s!='']:x"),r.push("!=",N)}),q=q.length&&new RegExp(q.join("|")),r=r.length&&new RegExp(r.join("|")),b=Y.test(o.compareDocumentPosition),t=b||Y.test(o.contains)?function(a,b){var c=9===a.nodeType?a.documentElement:a,d=b&&b.parentNode;return a===d||!(!d||1!==d.nodeType||!(c.contains?c.contains(d):a.compareDocumentPosition&&16&a.compareDocumentPosition(d)))}:function(a,b){if(b)while(b=b.parentNode)if(b===a)return!0;return!1},B=b?function(a,b){if(a===b)return l=!0,0;var d=!a.compareDocumentPosition-!b.compareDocumentPosition;return d?d:(d=(a.ownerDocument||a)===(b.ownerDocument||b)?a.compareDocumentPosition(b):1,1&d||!c.sortDetached&&b.compareDocumentPosition(a)===d?a===n||a.ownerDocument===v&&t(v,a)?-1:b===n||b.ownerDocument===v&&t(v,b)?1:k?I(k,a)-I(k,b):0:4&d?-1:1)}:function(a,b){if(a===b)return l=!0,0;var c,d=0,e=a.parentNode,f=b.parentNode,g=[a],h=[b];if(!e||!f)return a===n?-1:b===n?1:e?-1:f?1:k?I(k,a)-I(k,b):0;if(e===f)return la(a,b);c=a;while(c=c.parentNode)g.unshift(c);c=b;while(c=c.parentNode)h.unshift(c);while(g[d]===h[d])d++;return d?la(g[d],h[d]):g[d]===v?-1:h[d]===v?1:0},n):n},ga.matches=function(a,b){return ga(a,null,null,b)},ga.matchesSelector=function(a,b){if((a.ownerDocument||a)!==n&&m(a),b=b.replace(S,"='$1']"),c.matchesSelector&&p&&!A[b+" "]&&(!r||!r.test(b))&&(!q||!q.test(b)))try{var d=s.call(a,b);if(d||c.disconnectedMatch||a.document&&11!==a.document.nodeType)return d}catch(e){}return ga(b,n,null,[a]).length>0},ga.contains=function(a,b){return(a.ownerDocument||a)!==n&&m(a),t(a,b)},ga.attr=function(a,b){(a.ownerDocument||a)!==n&&m(a);var e=d.attrHandle[b.toLowerCase()],f=e&&C.call(d.attrHandle,b.toLowerCase())?e(a,b,!p):void 0;return void 0!==f?f:c.attributes||!p?a.getAttribute(b):(f=a.getAttributeNode(b))&&f.specified?f.value:null},ga.escape=function(a){return(a+"").replace(ba,ca)},ga.error=function(a){throw new Error("Syntax error, unrecognized expression: "+a)},ga.uniqueSort=function(a){var b,d=[],e=0,f=0;if(l=!c.detectDuplicates,k=!c.sortStable&&a.slice(0),a.sort(B),l){while(b=a[f++])b===a[f]&&(e=d.push(f));while(e--)a.splice(d[e],1)}return k=null,a},e=ga.getText=function(a){var b,c="",d=0,f=a.nodeType;if(f){if(1===f||9===f||11===f){if("string"==typeof a.textContent)return a.textContent;for(a=a.firstChild;a;a=a.nextSibling)c+=e(a)}else if(3===f||4===f)return a.nodeValue}else while(b=a[d++])c+=e(b);return c},d=ga.selectors={cacheLength:50,createPseudo:ia,match:V,attrHandle:{},find:{},relative:{">":{dir:"parentNode",first:!0}," ":{dir:"parentNode"},"+":{dir:"previousSibling",first:!0},"~":{dir:"previousSibling"}},preFilter:{ATTR:function(a){return a[1]=a[1].replace(_,aa),a[3]=(a[3]||a[4]||a[5]||"").replace(_,aa),"~="===a[2]&&(a[3]=" "+a[3]+" "),a.slice(0,4)},CHILD:function(a){return a[1]=a[1].toLowerCase(),"nth"===a[1].slice(0,3)?(a[3]||ga.error(a[0]),a[4]=+(a[4]?a[5]+(a[6]||1):2*("even"===a[3]||"odd"===a[3])),a[5]=+(a[7]+a[8]||"odd"===a[3])):a[3]&&ga.error(a[0]),a},PSEUDO:function(a){var b,c=!a[6]&&a[2];return V.CHILD.test(a[0])?null:(a[3]?a[2]=a[4]||a[5]||"":c&&T.test(c)&&(b=g(c,!0))&&(b=c.indexOf(")",c.length-b)-c.length)&&(a[0]=a[0].slice(0,b),a[2]=c.slice(0,b)),a.slice(0,3))}},filter:{TAG:function(a){var b=a.replace(_,aa).toLowerCase();return"*"===a?function(){return!0}:function(a){return a.nodeName&&a.nodeName.toLowerCase()===b}},CLASS:function(a){var b=y[a+" "];return b||(b=new RegExp("(^|"+K+")"+a+"("+K+"|$)"))&&y(a,function(a){return b.test("string"==typeof a.className&&a.className||"undefined"!=typeof a.getAttribute&&a.getAttribute("class")||"")})},ATTR:function(a,b,c){return function(d){var e=ga.attr(d,a);return null==e?"!="===b:!b||(e+="","="===b?e===c:"!="===b?e!==c:"^="===b?c&&0===e.indexOf(c):"*="===b?c&&e.indexOf(c)>-1:"$="===b?c&&e.slice(-c.length)===c:"~="===b?(" "+e.replace(O," ")+" ").indexOf(c)>-1:"|="===b&&(e===c||e.slice(0,c.length+1)===c+"-"))}},CHILD:function(a,b,c,d,e){var f="nth"!==a.slice(0,3),g="last"!==a.slice(-4),h="of-type"===b;return 1===d&&0===e?function(a){return!!a.parentNode}:function(b,c,i){var j,k,l,m,n,o,p=f!==g?"nextSibling":"previousSibling",q=b.parentNode,r=h&&b.nodeName.toLowerCase(),s=!i&&!h,t=!1;if(q){if(f){while(p){m=b;while(m=m[p])if(h?m.nodeName.toLowerCase()===r:1===m.nodeType)return!1;o=p="only"===a&&!o&&"nextSibling"}return!0}if(o=[g?q.firstChild:q.lastChild],g&&s){m=q,l=m[u]||(m[u]={}),k=l[m.uniqueID]||(l[m.uniqueID]={}),j=k[a]||[],n=j[0]===w&&j[1],t=n&&j[2],m=n&&q.childNodes[n];while(m=++n&&m&&m[p]||(t=n=0)||o.pop())if(1===m.nodeType&&++t&&m===b){k[a]=[w,n,t];break}}else if(s&&(m=b,l=m[u]||(m[u]={}),k=l[m.uniqueID]||(l[m.uniqueID]={}),j=k[a]||[],n=j[0]===w&&j[1],t=n),t===!1)while(m=++n&&m&&m[p]||(t=n=0)||o.pop())if((h?m.nodeName.toLowerCase()===r:1===m.nodeType)&&++t&&(s&&(l=m[u]||(m[u]={}),k=l[m.uniqueID]||(l[m.uniqueID]={}),k[a]=[w,t]),m===b))break;return t-=e,t===d||t%d===0&&t/d>=0}}},PSEUDO:function(a,b){var c,e=d.pseudos[a]||d.setFilters[a.toLowerCase()]||ga.error("unsupported pseudo: "+a);return e[u]?e(b):e.length>1?(c=[a,a,"",b],d.setFilters.hasOwnProperty(a.toLowerCase())?ia(function(a,c){var d,f=e(a,b),g=f.length;while(g--)d=I(a,f[g]),a[d]=!(c[d]=f[g])}):function(a){return e(a,0,c)}):e}},pseudos:{not:ia(function(a){var b=[],c=[],d=h(a.replace(P,"$1"));return d[u]?ia(function(a,b,c,e){var f,g=d(a,null,e,[]),h=a.length;while(h--)(f=g[h])&&(a[h]=!(b[h]=f))}):function(a,e,f){return b[0]=a,d(b,null,f,c),b[0]=null,!c.pop()}}),has:ia(function(a){return function(b){return ga(a,b).length>0}}),contains:ia(function(a){return a=a.replace(_,aa),function(b){return(b.textContent||b.innerText||e(b)).indexOf(a)>-1}}),lang:ia(function(a){return U.test(a||"")||ga.error("unsupported lang: "+a),a=a.replace(_,aa).toLowerCase(),function(b){var c;do if(c=p?b.lang:b.getAttribute("xml:lang")||b.getAttribute("lang"))return c=c.toLowerCase(),c===a||0===c.indexOf(a+"-");while((b=b.parentNode)&&1===b.nodeType);return!1}}),target:function(b){var c=a.location&&a.location.hash;return c&&c.slice(1)===b.id},root:function(a){return a===o},focus:function(a){return a===n.activeElement&&(!n.hasFocus||n.hasFocus())&&!!(a.type||a.href||~a.tabIndex)},enabled:oa(!1),disabled:oa(!0),checked:function(a){var b=a.nodeName.toLowerCase();return"input"===b&&!!a.checked||"option"===b&&!!a.selected},selected:function(a){return a.parentNode&&a.parentNode.selectedIndex,a.selected===!0},empty:function(a){for(a=a.firstChild;a;a=a.nextSibling)if(a.nodeType<6)return!1;return!0},parent:function(a){return!d.pseudos.empty(a)},header:function(a){return X.test(a.nodeName)},input:function(a){return W.test(a.nodeName)},button:function(a){var b=a.nodeName.toLowerCase();return"input"===b&&"button"===a.type||"button"===b},text:function(a){var b;return"input"===a.nodeName.toLowerCase()&&"text"===a.type&&(null==(b=a.getAttribute("type"))||"text"===b.toLowerCase())},first:pa(function(){return[0]}),last:pa(function(a,b){return[b-1]}),eq:pa(function(a,b,c){return[c<0?c+b:c]}),even:pa(function(a,b){for(var c=0;c=0;)a.push(d);return a}),gt:pa(function(a,b,c){for(var d=c<0?c+b:c;++d1?function(b,c,d){var e=a.length;while(e--)if(!a[e](b,c,d))return!1;return!0}:a[0]}function va(a,b,c){for(var d=0,e=b.length;d-1&&(f[j]=!(g[j]=l))}}else r=wa(r===g?r.splice(o,r.length):r),e?e(null,g,r,i):G.apply(g,r)})}function ya(a){for(var b,c,e,f=a.length,g=d.relative[a[0].type],h=g||d.relative[" "],i=g?1:0,k=ta(function(a){return a===b},h,!0),l=ta(function(a){return I(b,a)>-1},h,!0),m=[function(a,c,d){var e=!g&&(d||c!==j)||((b=c).nodeType?k(a,c,d):l(a,c,d));return b=null,e}];i1&&ua(m),i>1&&sa(a.slice(0,i-1).concat({value:" "===a[i-2].type?"*":""})).replace(P,"$1"),c,i0,e=a.length>0,f=function(f,g,h,i,k){var l,o,q,r=0,s="0",t=f&&[],u=[],v=j,x=f||e&&d.find.TAG("*",k),y=w+=null==v?1:Math.random()||.1,z=x.length;for(k&&(j=g===n||g||k);s!==z&&null!=(l=x[s]);s++){if(e&&l){o=0,g||l.ownerDocument===n||(m(l),h=!p);while(q=a[o++])if(q(l,g||n,h)){i.push(l);break}k&&(w=y)}c&&((l=!q&&l)&&r--,f&&t.push(l))}if(r+=s,c&&s!==r){o=0;while(q=b[o++])q(t,u,g,h);if(f){if(r>0)while(s--)t[s]||u[s]||(u[s]=E.call(i));u=wa(u)}G.apply(i,u),k&&!f&&u.length>0&&r+b.length>1&&ga.uniqueSort(i)}return k&&(w=y,j=v),t};return c?ia(f):f}return h=ga.compile=function(a,b){var c,d=[],e=[],f=A[a+" "];if(!f){b||(b=g(a)),c=b.length;while(c--)f=ya(b[c]),f[u]?d.push(f):e.push(f);f=A(a,za(e,d)),f.selector=a}return f},i=ga.select=function(a,b,c,e){var f,i,j,k,l,m="function"==typeof a&&a,n=!e&&g(a=m.selector||a);if(c=c||[],1===n.length){if(i=n[0]=n[0].slice(0),i.length>2&&"ID"===(j=i[0]).type&&9===b.nodeType&&p&&d.relative[i[1].type]){if(b=(d.find.ID(j.matches[0].replace(_,aa),b)||[])[0],!b)return c;m&&(b=b.parentNode),a=a.slice(i.shift().value.length)}f=V.needsContext.test(a)?0:i.length;while(f--){if(j=i[f],d.relative[k=j.type])break;if((l=d.find[k])&&(e=l(j.matches[0].replace(_,aa),$.test(i[0].type)&&qa(b.parentNode)||b))){if(i.splice(f,1),a=e.length&&sa(i),!a)return G.apply(c,e),c;break}}}return(m||h(a,n))(e,b,!p,c,!b||$.test(a)&&qa(b.parentNode)||b),c},c.sortStable=u.split("").sort(B).join("")===u,c.detectDuplicates=!!l,m(),c.sortDetached=ja(function(a){return 1&a.compareDocumentPosition(n.createElement("fieldset"))}),ja(function(a){return a.innerHTML="","#"===a.firstChild.getAttribute("href")})||ka("type|href|height|width",function(a,b,c){if(!c)return a.getAttribute(b,"type"===b.toLowerCase()?1:2)}),c.attributes&&ja(function(a){return a.innerHTML="",a.firstChild.setAttribute("value",""),""===a.firstChild.getAttribute("value")})||ka("value",function(a,b,c){if(!c&&"input"===a.nodeName.toLowerCase())return a.defaultValue}),ja(function(a){return null==a.getAttribute("disabled")})||ka(J,function(a,b,c){var d;if(!c)return a[b]===!0?b.toLowerCase():(d=a.getAttributeNode(b))&&d.specified?d.value:null}),ga}(a);r.find=x,r.expr=x.selectors,r.expr[":"]=r.expr.pseudos,r.uniqueSort=r.unique=x.uniqueSort,r.text=x.getText,r.isXMLDoc=x.isXML,r.contains=x.contains,r.escapeSelector=x.escape;var y=function(a,b,c){var d=[],e=void 0!==c;while((a=a[b])&&9!==a.nodeType)if(1===a.nodeType){if(e&&r(a).is(c))break;d.push(a)}return d},z=function(a,b){for(var c=[];a;a=a.nextSibling)1===a.nodeType&&a!==b&&c.push(a);return c},A=r.expr.match.needsContext;function B(a,b){return a.nodeName&&a.nodeName.toLowerCase()===b.toLowerCase()}var C=/^<([a-z][^\/\0>:\x20\t\r\n\f]*)[\x20\t\r\n\f]*\/?>(?:<\/\1>|)$/i,D=/^.[^:#\[\.,]*$/;function E(a,b,c){return r.isFunction(b)?r.grep(a,function(a,d){return!!b.call(a,d,a)!==c}):b.nodeType?r.grep(a,function(a){return a===b!==c}):"string"!=typeof b?r.grep(a,function(a){return i.call(b,a)>-1!==c}):D.test(b)?r.filter(b,a,c):(b=r.filter(b,a),r.grep(a,function(a){return i.call(b,a)>-1!==c&&1===a.nodeType}))}r.filter=function(a,b,c){var d=b[0];return c&&(a=":not("+a+")"),1===b.length&&1===d.nodeType?r.find.matchesSelector(d,a)?[d]:[]:r.find.matches(a,r.grep(b,function(a){return 1===a.nodeType}))},r.fn.extend({find:function(a){var b,c,d=this.length,e=this;if("string"!=typeof a)return this.pushStack(r(a).filter(function(){for(b=0;b1?r.uniqueSort(c):c},filter:function(a){return this.pushStack(E(this,a||[],!1))},not:function(a){return this.pushStack(E(this,a||[],!0))},is:function(a){return!!E(this,"string"==typeof a&&A.test(a)?r(a):a||[],!1).length}});var F,G=/^(?:\s*(<[\w\W]+>)[^>]*|#([\w-]+))$/,H=r.fn.init=function(a,b,c){var e,f;if(!a)return this;if(c=c||F,"string"==typeof a){if(e="<"===a[0]&&">"===a[a.length-1]&&a.length>=3?[null,a,null]:G.exec(a),!e||!e[1]&&b)return!b||b.jquery?(b||c).find(a):this.constructor(b).find(a);if(e[1]){if(b=b instanceof r?b[0]:b,r.merge(this,r.parseHTML(e[1],b&&b.nodeType?b.ownerDocument||b:d,!0)),C.test(e[1])&&r.isPlainObject(b))for(e in b)r.isFunction(this[e])?this[e](b[e]):this.attr(e,b[e]);return this}return f=d.getElementById(e[2]),f&&(this[0]=f,this.length=1),this}return a.nodeType?(this[0]=a,this.length=1,this):r.isFunction(a)?void 0!==c.ready?c.ready(a):a(r):r.makeArray(a,this)};H.prototype=r.fn,F=r(d);var I=/^(?:parents|prev(?:Until|All))/,J={children:!0,contents:!0,next:!0,prev:!0};r.fn.extend({has:function(a){var b=r(a,this),c=b.length;return this.filter(function(){for(var a=0;a-1:1===c.nodeType&&r.find.matchesSelector(c,a))){f.push(c);break}return this.pushStack(f.length>1?r.uniqueSort(f):f)},index:function(a){return a?"string"==typeof a?i.call(r(a),this[0]):i.call(this,a.jquery?a[0]:a):this[0]&&this[0].parentNode?this.first().prevAll().length:-1},add:function(a,b){return this.pushStack(r.uniqueSort(r.merge(this.get(),r(a,b))))},addBack:function(a){return this.add(null==a?this.prevObject:this.prevObject.filter(a))}});function K(a,b){while((a=a[b])&&1!==a.nodeType);return a}r.each({parent:function(a){var b=a.parentNode;return b&&11!==b.nodeType?b:null},parents:function(a){return y(a,"parentNode")},parentsUntil:function(a,b,c){return y(a,"parentNode",c)},next:function(a){return K(a,"nextSibling")},prev:function(a){return K(a,"previousSibling")},nextAll:function(a){return y(a,"nextSibling")},prevAll:function(a){return y(a,"previousSibling")},nextUntil:function(a,b,c){return y(a,"nextSibling",c)},prevUntil:function(a,b,c){return y(a,"previousSibling",c)},siblings:function(a){return z((a.parentNode||{}).firstChild,a)},children:function(a){return z(a.firstChild)},contents:function(a){return B(a,"iframe")?a.contentDocument:(B(a,"template")&&(a=a.content||a),r.merge([],a.childNodes))}},function(a,b){r.fn[a]=function(c,d){var e=r.map(this,b,c);return"Until"!==a.slice(-5)&&(d=c),d&&"string"==typeof d&&(e=r.filter(d,e)),this.length>1&&(J[a]||r.uniqueSort(e),I.test(a)&&e.reverse()),this.pushStack(e)}});var L=/[^\x20\t\r\n\f]+/g;function M(a){var b={};return r.each(a.match(L)||[],function(a,c){b[c]=!0}),b}r.Callbacks=function(a){a="string"==typeof a?M(a):r.extend({},a);var b,c,d,e,f=[],g=[],h=-1,i=function(){for(e=e||a.once,d=b=!0;g.length;h=-1){c=g.shift();while(++h-1)f.splice(c,1),c<=h&&h--}),this},has:function(a){return a?r.inArray(a,f)>-1:f.length>0},empty:function(){return f&&(f=[]),this},disable:function(){return e=g=[],f=c="",this},disabled:function(){return!f},lock:function(){return e=g=[],c||b||(f=c=""),this},locked:function(){return!!e},fireWith:function(a,c){return e||(c=c||[],c=[a,c.slice?c.slice():c],g.push(c),b||i()),this},fire:function(){return j.fireWith(this,arguments),this},fired:function(){return!!d}};return j};function N(a){return a}function O(a){throw a}function P(a,b,c,d){var e;try{a&&r.isFunction(e=a.promise)?e.call(a).done(b).fail(c):a&&r.isFunction(e=a.then)?e.call(a,b,c):b.apply(void 0,[a].slice(d))}catch(a){c.apply(void 0,[a])}}r.extend({Deferred:function(b){var c=[["notify","progress",r.Callbacks("memory"),r.Callbacks("memory"),2],["resolve","done",r.Callbacks("once memory"),r.Callbacks("once memory"),0,"resolved"],["reject","fail",r.Callbacks("once memory"),r.Callbacks("once memory"),1,"rejected"]],d="pending",e={state:function(){return d},always:function(){return f.done(arguments).fail(arguments),this},"catch":function(a){return e.then(null,a)},pipe:function(){var a=arguments;return r.Deferred(function(b){r.each(c,function(c,d){var e=r.isFunction(a[d[4]])&&a[d[4]];f[d[1]](function(){var a=e&&e.apply(this,arguments);a&&r.isFunction(a.promise)?a.promise().progress(b.notify).done(b.resolve).fail(b.reject):b[d[0]+"With"](this,e?[a]:arguments)})}),a=null}).promise()},then:function(b,d,e){var f=0;function g(b,c,d,e){return function(){var h=this,i=arguments,j=function(){var a,j;if(!(b=f&&(d!==O&&(h=void 0,i=[a]),c.rejectWith(h,i))}};b?k():(r.Deferred.getStackHook&&(k.stackTrace=r.Deferred.getStackHook()),a.setTimeout(k))}}return r.Deferred(function(a){c[0][3].add(g(0,a,r.isFunction(e)?e:N,a.notifyWith)),c[1][3].add(g(0,a,r.isFunction(b)?b:N)),c[2][3].add(g(0,a,r.isFunction(d)?d:O))}).promise()},promise:function(a){return null!=a?r.extend(a,e):e}},f={};return r.each(c,function(a,b){var g=b[2],h=b[5];e[b[1]]=g.add,h&&g.add(function(){d=h},c[3-a][2].disable,c[0][2].lock),g.add(b[3].fire),f[b[0]]=function(){return f[b[0]+"With"](this===f?void 0:this,arguments),this},f[b[0]+"With"]=g.fireWith}),e.promise(f),b&&b.call(f,f),f},when:function(a){var b=arguments.length,c=b,d=Array(c),e=f.call(arguments),g=r.Deferred(),h=function(a){return function(c){d[a]=this,e[a]=arguments.length>1?f.call(arguments):c,--b||g.resolveWith(d,e)}};if(b<=1&&(P(a,g.done(h(c)).resolve,g.reject,!b),"pending"===g.state()||r.isFunction(e[c]&&e[c].then)))return g.then();while(c--)P(e[c],h(c),g.reject);return g.promise()}});var Q=/^(Eval|Internal|Range|Reference|Syntax|Type|URI)Error$/;r.Deferred.exceptionHook=function(b,c){a.console&&a.console.warn&&b&&Q.test(b.name)&&a.console.warn("jQuery.Deferred exception: "+b.message,b.stack,c)},r.readyException=function(b){a.setTimeout(function(){throw b})};var R=r.Deferred();r.fn.ready=function(a){return R.then(a)["catch"](function(a){r.readyException(a)}),this},r.extend({isReady:!1,readyWait:1,ready:function(a){(a===!0?--r.readyWait:r.isReady)||(r.isReady=!0,a!==!0&&--r.readyWait>0||R.resolveWith(d,[r]))}}),r.ready.then=R.then;function S(){d.removeEventListener("DOMContentLoaded",S), - a.removeEventListener("load",S),r.ready()}"complete"===d.readyState||"loading"!==d.readyState&&!d.documentElement.doScroll?a.setTimeout(r.ready):(d.addEventListener("DOMContentLoaded",S),a.addEventListener("load",S));var T=function(a,b,c,d,e,f,g){var h=0,i=a.length,j=null==c;if("object"===r.type(c)){e=!0;for(h in c)T(a,b,h,c[h],!0,f,g)}else if(void 0!==d&&(e=!0,r.isFunction(d)||(g=!0),j&&(g?(b.call(a,d),b=null):(j=b,b=function(a,b,c){return j.call(r(a),c)})),b))for(;h1,null,!0)},removeData:function(a){return this.each(function(){X.remove(this,a)})}}),r.extend({queue:function(a,b,c){var d;if(a)return b=(b||"fx")+"queue",d=W.get(a,b),c&&(!d||Array.isArray(c)?d=W.access(a,b,r.makeArray(c)):d.push(c)),d||[]},dequeue:function(a,b){b=b||"fx";var c=r.queue(a,b),d=c.length,e=c.shift(),f=r._queueHooks(a,b),g=function(){r.dequeue(a,b)};"inprogress"===e&&(e=c.shift(),d--),e&&("fx"===b&&c.unshift("inprogress"),delete f.stop,e.call(a,g,f)),!d&&f&&f.empty.fire()},_queueHooks:function(a,b){var c=b+"queueHooks";return W.get(a,c)||W.access(a,c,{empty:r.Callbacks("once memory").add(function(){W.remove(a,[b+"queue",c])})})}}),r.fn.extend({queue:function(a,b){var c=2;return"string"!=typeof a&&(b=a,a="fx",c--),arguments.length\x20\t\r\n\f]+)/i,la=/^$|\/(?:java|ecma)script/i,ma={option:[1,""],thead:[1,"","
"],col:[2,"","
"],tr:[2,"","
"],td:[3,"","
"],_default:[0,"",""]};ma.optgroup=ma.option,ma.tbody=ma.tfoot=ma.colgroup=ma.caption=ma.thead,ma.th=ma.td;function na(a,b){var c;return c="undefined"!=typeof a.getElementsByTagName?a.getElementsByTagName(b||"*"):"undefined"!=typeof a.querySelectorAll?a.querySelectorAll(b||"*"):[],void 0===b||b&&B(a,b)?r.merge([a],c):c}function oa(a,b){for(var c=0,d=a.length;c-1)e&&e.push(f);else if(j=r.contains(f.ownerDocument,f),g=na(l.appendChild(f),"script"),j&&oa(g),c){k=0;while(f=g[k++])la.test(f.type||"")&&c.push(f)}return l}!function(){var a=d.createDocumentFragment(),b=a.appendChild(d.createElement("div")),c=d.createElement("input");c.setAttribute("type","radio"),c.setAttribute("checked","checked"),c.setAttribute("name","t"),b.appendChild(c),o.checkClone=b.cloneNode(!0).cloneNode(!0).lastChild.checked,b.innerHTML="",o.noCloneChecked=!!b.cloneNode(!0).lastChild.defaultValue}();var ra=d.documentElement,sa=/^key/,ta=/^(?:mouse|pointer|contextmenu|drag|drop)|click/,ua=/^([^.]*)(?:\.(.+)|)/;function va(){return!0}function wa(){return!1}function xa(){try{return d.activeElement}catch(a){}}function ya(a,b,c,d,e,f){var g,h;if("object"==typeof b){"string"!=typeof c&&(d=d||c,c=void 0);for(h in b)ya(a,h,c,d,b[h],f);return a}if(null==d&&null==e?(e=c,d=c=void 0):null==e&&("string"==typeof c?(e=d,d=void 0):(e=d,d=c,c=void 0)),e===!1)e=wa;else if(!e)return a;return 1===f&&(g=e,e=function(a){return r().off(a),g.apply(this,arguments)},e.guid=g.guid||(g.guid=r.guid++)),a.each(function(){r.event.add(this,b,e,d,c)})}r.event={global:{},add:function(a,b,c,d,e){var f,g,h,i,j,k,l,m,n,o,p,q=W.get(a);if(q){c.handler&&(f=c,c=f.handler,e=f.selector),e&&r.find.matchesSelector(ra,e),c.guid||(c.guid=r.guid++),(i=q.events)||(i=q.events={}),(g=q.handle)||(g=q.handle=function(b){return"undefined"!=typeof r&&r.event.triggered!==b.type?r.event.dispatch.apply(a,arguments):void 0}),b=(b||"").match(L)||[""],j=b.length;while(j--)h=ua.exec(b[j])||[],n=p=h[1],o=(h[2]||"").split(".").sort(),n&&(l=r.event.special[n]||{},n=(e?l.delegateType:l.bindType)||n,l=r.event.special[n]||{},k=r.extend({type:n,origType:p,data:d,handler:c,guid:c.guid,selector:e,needsContext:e&&r.expr.match.needsContext.test(e),namespace:o.join(".")},f),(m=i[n])||(m=i[n]=[],m.delegateCount=0,l.setup&&l.setup.call(a,d,o,g)!==!1||a.addEventListener&&a.addEventListener(n,g)),l.add&&(l.add.call(a,k),k.handler.guid||(k.handler.guid=c.guid)),e?m.splice(m.delegateCount++,0,k):m.push(k),r.event.global[n]=!0)}},remove:function(a,b,c,d,e){var f,g,h,i,j,k,l,m,n,o,p,q=W.hasData(a)&&W.get(a);if(q&&(i=q.events)){b=(b||"").match(L)||[""],j=b.length;while(j--)if(h=ua.exec(b[j])||[],n=p=h[1],o=(h[2]||"").split(".").sort(),n){l=r.event.special[n]||{},n=(d?l.delegateType:l.bindType)||n,m=i[n]||[],h=h[2]&&new RegExp("(^|\\.)"+o.join("\\.(?:.*\\.|)")+"(\\.|$)"),g=f=m.length;while(f--)k=m[f],!e&&p!==k.origType||c&&c.guid!==k.guid||h&&!h.test(k.namespace)||d&&d!==k.selector&&("**"!==d||!k.selector)||(m.splice(f,1),k.selector&&m.delegateCount--,l.remove&&l.remove.call(a,k));g&&!m.length&&(l.teardown&&l.teardown.call(a,o,q.handle)!==!1||r.removeEvent(a,n,q.handle),delete i[n])}else for(n in i)r.event.remove(a,n+b[j],c,d,!0);r.isEmptyObject(i)&&W.remove(a,"handle events")}},dispatch:function(a){var b=r.event.fix(a),c,d,e,f,g,h,i=new Array(arguments.length),j=(W.get(this,"events")||{})[b.type]||[],k=r.event.special[b.type]||{};for(i[0]=b,c=1;c=1))for(;j!==this;j=j.parentNode||this)if(1===j.nodeType&&("click"!==a.type||j.disabled!==!0)){for(f=[],g={},c=0;c-1:r.find(e,this,null,[j]).length),g[e]&&f.push(d);f.length&&h.push({elem:j,handlers:f})}return j=this,i\x20\t\r\n\f]*)[^>]*)\/>/gi,Aa=/\s*$/g;function Ea(a,b){return B(a,"table")&&B(11!==b.nodeType?b:b.firstChild,"tr")?r(">tbody",a)[0]||a:a}function Fa(a){return a.type=(null!==a.getAttribute("type"))+"/"+a.type,a}function Ga(a){var b=Ca.exec(a.type);return b?a.type=b[1]:a.removeAttribute("type"),a}function Ha(a,b){var c,d,e,f,g,h,i,j;if(1===b.nodeType){if(W.hasData(a)&&(f=W.access(a),g=W.set(b,f),j=f.events)){delete g.handle,g.events={};for(e in j)for(c=0,d=j[e].length;c1&&"string"==typeof q&&!o.checkClone&&Ba.test(q))return a.each(function(e){var f=a.eq(e);s&&(b[0]=q.call(this,e,f.html())),Ja(f,b,c,d)});if(m&&(e=qa(b,a[0].ownerDocument,!1,a,d),f=e.firstChild,1===e.childNodes.length&&(e=f),f||d)){for(h=r.map(na(e,"script"),Fa),i=h.length;l")},clone:function(a,b,c){var d,e,f,g,h=a.cloneNode(!0),i=r.contains(a.ownerDocument,a);if(!(o.noCloneChecked||1!==a.nodeType&&11!==a.nodeType||r.isXMLDoc(a)))for(g=na(h),f=na(a),d=0,e=f.length;d0&&oa(g,!i&&na(a,"script")),h},cleanData:function(a){for(var b,c,d,e=r.event.special,f=0;void 0!==(c=a[f]);f++)if(U(c)){if(b=c[W.expando]){if(b.events)for(d in b.events)e[d]?r.event.remove(c,d):r.removeEvent(c,d,b.handle);c[W.expando]=void 0}c[X.expando]&&(c[X.expando]=void 0)}}}),r.fn.extend({detach:function(a){return Ka(this,a,!0)},remove:function(a){return Ka(this,a)},text:function(a){return T(this,function(a){return void 0===a?r.text(this):this.empty().each(function(){1!==this.nodeType&&11!==this.nodeType&&9!==this.nodeType||(this.textContent=a)})},null,a,arguments.length)},append:function(){return Ja(this,arguments,function(a){if(1===this.nodeType||11===this.nodeType||9===this.nodeType){var b=Ea(this,a);b.appendChild(a)}})},prepend:function(){return Ja(this,arguments,function(a){if(1===this.nodeType||11===this.nodeType||9===this.nodeType){var b=Ea(this,a);b.insertBefore(a,b.firstChild)}})},before:function(){return Ja(this,arguments,function(a){this.parentNode&&this.parentNode.insertBefore(a,this)})},after:function(){return Ja(this,arguments,function(a){this.parentNode&&this.parentNode.insertBefore(a,this.nextSibling)})},empty:function(){for(var a,b=0;null!=(a=this[b]);b++)1===a.nodeType&&(r.cleanData(na(a,!1)),a.textContent="");return this},clone:function(a,b){return a=null!=a&&a,b=null==b?a:b,this.map(function(){return r.clone(this,a,b)})},html:function(a){return T(this,function(a){var b=this[0]||{},c=0,d=this.length;if(void 0===a&&1===b.nodeType)return b.innerHTML;if("string"==typeof a&&!Aa.test(a)&&!ma[(ka.exec(a)||["",""])[1].toLowerCase()]){a=r.htmlPrefilter(a);try{for(;c1)}});function _a(a,b,c,d,e){return new _a.prototype.init(a,b,c,d,e)}r.Tween=_a,_a.prototype={constructor:_a,init:function(a,b,c,d,e,f){this.elem=a,this.prop=c,this.easing=e||r.easing._default,this.options=b,this.start=this.now=this.cur(),this.end=d,this.unit=f||(r.cssNumber[c]?"":"px")},cur:function(){var a=_a.propHooks[this.prop];return a&&a.get?a.get(this):_a.propHooks._default.get(this)},run:function(a){var b,c=_a.propHooks[this.prop];return this.options.duration?this.pos=b=r.easing[this.easing](a,this.options.duration*a,0,1,this.options.duration):this.pos=b=a,this.now=(this.end-this.start)*b+this.start,this.options.step&&this.options.step.call(this.elem,this.now,this),c&&c.set?c.set(this):_a.propHooks._default.set(this),this}},_a.prototype.init.prototype=_a.prototype,_a.propHooks={_default:{get:function(a){var b;return 1!==a.elem.nodeType||null!=a.elem[a.prop]&&null==a.elem.style[a.prop]?a.elem[a.prop]:(b=r.css(a.elem,a.prop,""),b&&"auto"!==b?b:0)},set:function(a){r.fx.step[a.prop]?r.fx.step[a.prop](a):1!==a.elem.nodeType||null==a.elem.style[r.cssProps[a.prop]]&&!r.cssHooks[a.prop]?a.elem[a.prop]=a.now:r.style(a.elem,a.prop,a.now+a.unit)}}},_a.propHooks.scrollTop=_a.propHooks.scrollLeft={set:function(a){a.elem.nodeType&&a.elem.parentNode&&(a.elem[a.prop]=a.now)}},r.easing={linear:function(a){return a},swing:function(a){return.5-Math.cos(a*Math.PI)/2},_default:"swing"},r.fx=_a.prototype.init,r.fx.step={};var ab,bb,cb=/^(?:toggle|show|hide)$/,db=/queueHooks$/;function eb(){bb&&(d.hidden===!1&&a.requestAnimationFrame?a.requestAnimationFrame(eb):a.setTimeout(eb,r.fx.interval),r.fx.tick())}function fb(){return a.setTimeout(function(){ab=void 0}),ab=r.now()}function gb(a,b){var c,d=0,e={height:a};for(b=b?1:0;d<4;d+=2-b)c=ca[d],e["margin"+c]=e["padding"+c]=a;return b&&(e.opacity=e.width=a),e}function hb(a,b,c){for(var d,e=(kb.tweeners[b]||[]).concat(kb.tweeners["*"]),f=0,g=e.length;f1)},removeAttr:function(a){return this.each(function(){r.removeAttr(this,a)})}}),r.extend({attr:function(a,b,c){var d,e,f=a.nodeType;if(3!==f&&8!==f&&2!==f)return"undefined"==typeof a.getAttribute?r.prop(a,b,c):(1===f&&r.isXMLDoc(a)||(e=r.attrHooks[b.toLowerCase()]||(r.expr.match.bool.test(b)?lb:void 0)),void 0!==c?null===c?void r.removeAttr(a,b):e&&"set"in e&&void 0!==(d=e.set(a,c,b))?d:(a.setAttribute(b,c+""),c):e&&"get"in e&&null!==(d=e.get(a,b))?d:(d=r.find.attr(a,b), - null==d?void 0:d))},attrHooks:{type:{set:function(a,b){if(!o.radioValue&&"radio"===b&&B(a,"input")){var c=a.value;return a.setAttribute("type",b),c&&(a.value=c),b}}}},removeAttr:function(a,b){var c,d=0,e=b&&b.match(L);if(e&&1===a.nodeType)while(c=e[d++])a.removeAttribute(c)}}),lb={set:function(a,b,c){return b===!1?r.removeAttr(a,c):a.setAttribute(c,c),c}},r.each(r.expr.match.bool.source.match(/\w+/g),function(a,b){var c=mb[b]||r.find.attr;mb[b]=function(a,b,d){var e,f,g=b.toLowerCase();return d||(f=mb[g],mb[g]=e,e=null!=c(a,b,d)?g:null,mb[g]=f),e}});var nb=/^(?:input|select|textarea|button)$/i,ob=/^(?:a|area)$/i;r.fn.extend({prop:function(a,b){return T(this,r.prop,a,b,arguments.length>1)},removeProp:function(a){return this.each(function(){delete this[r.propFix[a]||a]})}}),r.extend({prop:function(a,b,c){var d,e,f=a.nodeType;if(3!==f&&8!==f&&2!==f)return 1===f&&r.isXMLDoc(a)||(b=r.propFix[b]||b,e=r.propHooks[b]),void 0!==c?e&&"set"in e&&void 0!==(d=e.set(a,c,b))?d:a[b]=c:e&&"get"in e&&null!==(d=e.get(a,b))?d:a[b]},propHooks:{tabIndex:{get:function(a){var b=r.find.attr(a,"tabindex");return b?parseInt(b,10):nb.test(a.nodeName)||ob.test(a.nodeName)&&a.href?0:-1}}},propFix:{"for":"htmlFor","class":"className"}}),o.optSelected||(r.propHooks.selected={get:function(a){var b=a.parentNode;return b&&b.parentNode&&b.parentNode.selectedIndex,null},set:function(a){var b=a.parentNode;b&&(b.selectedIndex,b.parentNode&&b.parentNode.selectedIndex)}}),r.each(["tabIndex","readOnly","maxLength","cellSpacing","cellPadding","rowSpan","colSpan","useMap","frameBorder","contentEditable"],function(){r.propFix[this.toLowerCase()]=this});function pb(a){var b=a.match(L)||[];return b.join(" ")}function qb(a){return a.getAttribute&&a.getAttribute("class")||""}r.fn.extend({addClass:function(a){var b,c,d,e,f,g,h,i=0;if(r.isFunction(a))return this.each(function(b){r(this).addClass(a.call(this,b,qb(this)))});if("string"==typeof a&&a){b=a.match(L)||[];while(c=this[i++])if(e=qb(c),d=1===c.nodeType&&" "+pb(e)+" "){g=0;while(f=b[g++])d.indexOf(" "+f+" ")<0&&(d+=f+" ");h=pb(d),e!==h&&c.setAttribute("class",h)}}return this},removeClass:function(a){var b,c,d,e,f,g,h,i=0;if(r.isFunction(a))return this.each(function(b){r(this).removeClass(a.call(this,b,qb(this)))});if(!arguments.length)return this.attr("class","");if("string"==typeof a&&a){b=a.match(L)||[];while(c=this[i++])if(e=qb(c),d=1===c.nodeType&&" "+pb(e)+" "){g=0;while(f=b[g++])while(d.indexOf(" "+f+" ")>-1)d=d.replace(" "+f+" "," ");h=pb(d),e!==h&&c.setAttribute("class",h)}}return this},toggleClass:function(a,b){var c=typeof a;return"boolean"==typeof b&&"string"===c?b?this.addClass(a):this.removeClass(a):r.isFunction(a)?this.each(function(c){r(this).toggleClass(a.call(this,c,qb(this),b),b)}):this.each(function(){var b,d,e,f;if("string"===c){d=0,e=r(this),f=a.match(L)||[];while(b=f[d++])e.hasClass(b)?e.removeClass(b):e.addClass(b)}else void 0!==a&&"boolean"!==c||(b=qb(this),b&&W.set(this,"__className__",b),this.setAttribute&&this.setAttribute("class",b||a===!1?"":W.get(this,"__className__")||""))})},hasClass:function(a){var b,c,d=0;b=" "+a+" ";while(c=this[d++])if(1===c.nodeType&&(" "+pb(qb(c))+" ").indexOf(b)>-1)return!0;return!1}});var rb=/\r/g;r.fn.extend({val:function(a){var b,c,d,e=this[0];{if(arguments.length)return d=r.isFunction(a),this.each(function(c){var e;1===this.nodeType&&(e=d?a.call(this,c,r(this).val()):a,null==e?e="":"number"==typeof e?e+="":Array.isArray(e)&&(e=r.map(e,function(a){return null==a?"":a+""})),b=r.valHooks[this.type]||r.valHooks[this.nodeName.toLowerCase()],b&&"set"in b&&void 0!==b.set(this,e,"value")||(this.value=e))});if(e)return b=r.valHooks[e.type]||r.valHooks[e.nodeName.toLowerCase()],b&&"get"in b&&void 0!==(c=b.get(e,"value"))?c:(c=e.value,"string"==typeof c?c.replace(rb,""):null==c?"":c)}}}),r.extend({valHooks:{option:{get:function(a){var b=r.find.attr(a,"value");return null!=b?b:pb(r.text(a))}},select:{get:function(a){var b,c,d,e=a.options,f=a.selectedIndex,g="select-one"===a.type,h=g?null:[],i=g?f+1:e.length;for(d=f<0?i:g?f:0;d-1)&&(c=!0);return c||(a.selectedIndex=-1),f}}}}),r.each(["radio","checkbox"],function(){r.valHooks[this]={set:function(a,b){if(Array.isArray(b))return a.checked=r.inArray(r(a).val(),b)>-1}},o.checkOn||(r.valHooks[this].get=function(a){return null===a.getAttribute("value")?"on":a.value})});var sb=/^(?:focusinfocus|focusoutblur)$/;r.extend(r.event,{trigger:function(b,c,e,f){var g,h,i,j,k,m,n,o=[e||d],p=l.call(b,"type")?b.type:b,q=l.call(b,"namespace")?b.namespace.split("."):[];if(h=i=e=e||d,3!==e.nodeType&&8!==e.nodeType&&!sb.test(p+r.event.triggered)&&(p.indexOf(".")>-1&&(q=p.split("."),p=q.shift(),q.sort()),k=p.indexOf(":")<0&&"on"+p,b=b[r.expando]?b:new r.Event(p,"object"==typeof b&&b),b.isTrigger=f?2:3,b.namespace=q.join("."),b.rnamespace=b.namespace?new RegExp("(^|\\.)"+q.join("\\.(?:.*\\.|)")+"(\\.|$)"):null,b.result=void 0,b.target||(b.target=e),c=null==c?[b]:r.makeArray(c,[b]),n=r.event.special[p]||{},f||!n.trigger||n.trigger.apply(e,c)!==!1)){if(!f&&!n.noBubble&&!r.isWindow(e)){for(j=n.delegateType||p,sb.test(j+p)||(h=h.parentNode);h;h=h.parentNode)o.push(h),i=h;i===(e.ownerDocument||d)&&o.push(i.defaultView||i.parentWindow||a)}g=0;while((h=o[g++])&&!b.isPropagationStopped())b.type=g>1?j:n.bindType||p,m=(W.get(h,"events")||{})[b.type]&&W.get(h,"handle"),m&&m.apply(h,c),m=k&&h[k],m&&m.apply&&U(h)&&(b.result=m.apply(h,c),b.result===!1&&b.preventDefault());return b.type=p,f||b.isDefaultPrevented()||n._default&&n._default.apply(o.pop(),c)!==!1||!U(e)||k&&r.isFunction(e[p])&&!r.isWindow(e)&&(i=e[k],i&&(e[k]=null),r.event.triggered=p,e[p](),r.event.triggered=void 0,i&&(e[k]=i)),b.result}},simulate:function(a,b,c){var d=r.extend(new r.Event,c,{type:a,isSimulated:!0});r.event.trigger(d,null,b)}}),r.fn.extend({trigger:function(a,b){return this.each(function(){r.event.trigger(a,b,this)})},triggerHandler:function(a,b){var c=this[0];if(c)return r.event.trigger(a,b,c,!0)}}),r.each("blur focus focusin focusout resize scroll click dblclick mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave change select submit keydown keypress keyup contextmenu".split(" "),function(a,b){r.fn[b]=function(a,c){return arguments.length>0?this.on(b,null,a,c):this.trigger(b)}}),r.fn.extend({hover:function(a,b){return this.mouseenter(a).mouseleave(b||a)}}),o.focusin="onfocusin"in a,o.focusin||r.each({focus:"focusin",blur:"focusout"},function(a,b){var c=function(a){r.event.simulate(b,a.target,r.event.fix(a))};r.event.special[b]={setup:function(){var d=this.ownerDocument||this,e=W.access(d,b);e||d.addEventListener(a,c,!0),W.access(d,b,(e||0)+1)},teardown:function(){var d=this.ownerDocument||this,e=W.access(d,b)-1;e?W.access(d,b,e):(d.removeEventListener(a,c,!0),W.remove(d,b))}}});var tb=a.location,ub=r.now(),vb=/\?/;r.parseXML=function(b){var c;if(!b||"string"!=typeof b)return null;try{c=(new a.DOMParser).parseFromString(b,"text/xml")}catch(d){c=void 0}return c&&!c.getElementsByTagName("parsererror").length||r.error("Invalid XML: "+b),c};var wb=/\[\]$/,xb=/\r?\n/g,yb=/^(?:submit|button|image|reset|file)$/i,zb=/^(?:input|select|textarea|keygen)/i;function Ab(a,b,c,d){var e;if(Array.isArray(b))r.each(b,function(b,e){c||wb.test(a)?d(a,e):Ab(a+"["+("object"==typeof e&&null!=e?b:"")+"]",e,c,d)});else if(c||"object"!==r.type(b))d(a,b);else for(e in b)Ab(a+"["+e+"]",b[e],c,d)}r.param=function(a,b){var c,d=[],e=function(a,b){var c=r.isFunction(b)?b():b;d[d.length]=encodeURIComponent(a)+"="+encodeURIComponent(null==c?"":c)};if(Array.isArray(a)||a.jquery&&!r.isPlainObject(a))r.each(a,function(){e(this.name,this.value)});else for(c in a)Ab(c,a[c],b,e);return d.join("&")},r.fn.extend({serialize:function(){return r.param(this.serializeArray())},serializeArray:function(){return this.map(function(){var a=r.prop(this,"elements");return a?r.makeArray(a):this}).filter(function(){var a=this.type;return this.name&&!r(this).is(":disabled")&&zb.test(this.nodeName)&&!yb.test(a)&&(this.checked||!ja.test(a))}).map(function(a,b){var c=r(this).val();return null==c?null:Array.isArray(c)?r.map(c,function(a){return{name:b.name,value:a.replace(xb,"\r\n")}}):{name:b.name,value:c.replace(xb,"\r\n")}}).get()}});var Bb=/%20/g,Cb=/#.*$/,Db=/([?&])_=[^&]*/,Eb=/^(.*?):[ \t]*([^\r\n]*)$/gm,Fb=/^(?:about|app|app-storage|.+-extension|file|res|widget):$/,Gb=/^(?:GET|HEAD)$/,Hb=/^\/\//,Ib={},Jb={},Kb="*/".concat("*"),Lb=d.createElement("a");Lb.href=tb.href;function Mb(a){return function(b,c){"string"!=typeof b&&(c=b,b="*");var d,e=0,f=b.toLowerCase().match(L)||[];if(r.isFunction(c))while(d=f[e++])"+"===d[0]?(d=d.slice(1)||"*",(a[d]=a[d]||[]).unshift(c)):(a[d]=a[d]||[]).push(c)}}function Nb(a,b,c,d){var e={},f=a===Jb;function g(h){var i;return e[h]=!0,r.each(a[h]||[],function(a,h){var j=h(b,c,d);return"string"!=typeof j||f||e[j]?f?!(i=j):void 0:(b.dataTypes.unshift(j),g(j),!1)}),i}return g(b.dataTypes[0])||!e["*"]&&g("*")}function Ob(a,b){var c,d,e=r.ajaxSettings.flatOptions||{};for(c in b)void 0!==b[c]&&((e[c]?a:d||(d={}))[c]=b[c]);return d&&r.extend(!0,a,d),a}function Pb(a,b,c){var d,e,f,g,h=a.contents,i=a.dataTypes;while("*"===i[0])i.shift(),void 0===d&&(d=a.mimeType||b.getResponseHeader("Content-Type"));if(d)for(e in h)if(h[e]&&h[e].test(d)){i.unshift(e);break}if(i[0]in c)f=i[0];else{for(e in c){if(!i[0]||a.converters[e+" "+i[0]]){f=e;break}g||(g=e)}f=f||g}if(f)return f!==i[0]&&i.unshift(f),c[f]}function Qb(a,b,c,d){var e,f,g,h,i,j={},k=a.dataTypes.slice();if(k[1])for(g in a.converters)j[g.toLowerCase()]=a.converters[g];f=k.shift();while(f)if(a.responseFields[f]&&(c[a.responseFields[f]]=b),!i&&d&&a.dataFilter&&(b=a.dataFilter(b,a.dataType)),i=f,f=k.shift())if("*"===f)f=i;else if("*"!==i&&i!==f){if(g=j[i+" "+f]||j["* "+f],!g)for(e in j)if(h=e.split(" "),h[1]===f&&(g=j[i+" "+h[0]]||j["* "+h[0]])){g===!0?g=j[e]:j[e]!==!0&&(f=h[0],k.unshift(h[1]));break}if(g!==!0)if(g&&a["throws"])b=g(b);else try{b=g(b)}catch(l){return{state:"parsererror",error:g?l:"No conversion from "+i+" to "+f}}}return{state:"success",data:b}}r.extend({active:0,lastModified:{},etag:{},ajaxSettings:{url:tb.href,type:"GET",isLocal:Fb.test(tb.protocol),global:!0,processData:!0,async:!0,contentType:"application/x-www-form-urlencoded; charset=UTF-8",accepts:{"*":Kb,text:"text/plain",html:"text/html",xml:"application/xml, text/xml",json:"application/json, text/javascript"},contents:{xml:/\bxml\b/,html:/\bhtml/,json:/\bjson\b/},responseFields:{xml:"responseXML",text:"responseText",json:"responseJSON"},converters:{"* text":String,"text html":!0,"text json":JSON.parse,"text xml":r.parseXML},flatOptions:{url:!0,context:!0}},ajaxSetup:function(a,b){return b?Ob(Ob(a,r.ajaxSettings),b):Ob(r.ajaxSettings,a)},ajaxPrefilter:Mb(Ib),ajaxTransport:Mb(Jb),ajax:function(b,c){"object"==typeof b&&(c=b,b=void 0),c=c||{};var e,f,g,h,i,j,k,l,m,n,o=r.ajaxSetup({},c),p=o.context||o,q=o.context&&(p.nodeType||p.jquery)?r(p):r.event,s=r.Deferred(),t=r.Callbacks("once memory"),u=o.statusCode||{},v={},w={},x="canceled",y={readyState:0,getResponseHeader:function(a){var b;if(k){if(!h){h={};while(b=Eb.exec(g))h[b[1].toLowerCase()]=b[2]}b=h[a.toLowerCase()]}return null==b?null:b},getAllResponseHeaders:function(){return k?g:null},setRequestHeader:function(a,b){return null==k&&(a=w[a.toLowerCase()]=w[a.toLowerCase()]||a,v[a]=b),this},overrideMimeType:function(a){return null==k&&(o.mimeType=a),this},statusCode:function(a){var b;if(a)if(k)y.always(a[y.status]);else for(b in a)u[b]=[u[b],a[b]];return this},abort:function(a){var b=a||x;return e&&e.abort(b),A(0,b),this}};if(s.promise(y),o.url=((b||o.url||tb.href)+"").replace(Hb,tb.protocol+"//"),o.type=c.method||c.type||o.method||o.type,o.dataTypes=(o.dataType||"*").toLowerCase().match(L)||[""],null==o.crossDomain){j=d.createElement("a");try{j.href=o.url,j.href=j.href,o.crossDomain=Lb.protocol+"//"+Lb.host!=j.protocol+"//"+j.host}catch(z){o.crossDomain=!0}}if(o.data&&o.processData&&"string"!=typeof o.data&&(o.data=r.param(o.data,o.traditional)),Nb(Ib,o,c,y),k)return y;l=r.event&&o.global,l&&0===r.active++&&r.event.trigger("ajaxStart"),o.type=o.type.toUpperCase(),o.hasContent=!Gb.test(o.type),f=o.url.replace(Cb,""),o.hasContent?o.data&&o.processData&&0===(o.contentType||"").indexOf("application/x-www-form-urlencoded")&&(o.data=o.data.replace(Bb,"+")):(n=o.url.slice(f.length),o.data&&(f+=(vb.test(f)?"&":"?")+o.data,delete o.data),o.cache===!1&&(f=f.replace(Db,"$1"),n=(vb.test(f)?"&":"?")+"_="+ub++ +n),o.url=f+n),o.ifModified&&(r.lastModified[f]&&y.setRequestHeader("If-Modified-Since",r.lastModified[f]),r.etag[f]&&y.setRequestHeader("If-None-Match",r.etag[f])),(o.data&&o.hasContent&&o.contentType!==!1||c.contentType)&&y.setRequestHeader("Content-Type",o.contentType),y.setRequestHeader("Accept",o.dataTypes[0]&&o.accepts[o.dataTypes[0]]?o.accepts[o.dataTypes[0]]+("*"!==o.dataTypes[0]?", "+Kb+"; q=0.01":""):o.accepts["*"]);for(m in o.headers)y.setRequestHeader(m,o.headers[m]);if(o.beforeSend&&(o.beforeSend.call(p,y,o)===!1||k))return y.abort();if(x="abort",t.add(o.complete),y.done(o.success),y.fail(o.error),e=Nb(Jb,o,c,y)){if(y.readyState=1,l&&q.trigger("ajaxSend",[y,o]),k)return y;o.async&&o.timeout>0&&(i=a.setTimeout(function(){y.abort("timeout")},o.timeout));try{k=!1,e.send(v,A)}catch(z){if(k)throw z;A(-1,z)}}else A(-1,"No Transport");function A(b,c,d,h){var j,m,n,v,w,x=c;k||(k=!0,i&&a.clearTimeout(i),e=void 0,g=h||"",y.readyState=b>0?4:0,j=b>=200&&b<300||304===b,d&&(v=Pb(o,y,d)),v=Qb(o,v,y,j),j?(o.ifModified&&(w=y.getResponseHeader("Last-Modified"),w&&(r.lastModified[f]=w),w=y.getResponseHeader("etag"),w&&(r.etag[f]=w)),204===b||"HEAD"===o.type?x="nocontent":304===b?x="notmodified":(x=v.state,m=v.data,n=v.error,j=!n)):(n=x,!b&&x||(x="error",b<0&&(b=0))),y.status=b,y.statusText=(c||x)+"",j?s.resolveWith(p,[m,x,y]):s.rejectWith(p,[y,x,n]),y.statusCode(u),u=void 0,l&&q.trigger(j?"ajaxSuccess":"ajaxError",[y,o,j?m:n]),t.fireWith(p,[y,x]),l&&(q.trigger("ajaxComplete",[y,o]),--r.active||r.event.trigger("ajaxStop")))}return y},getJSON:function(a,b,c){return r.get(a,b,c,"json")},getScript:function(a,b){return r.get(a,void 0,b,"script")}}),r.each(["get","post"],function(a,b){r[b]=function(a,c,d,e){return r.isFunction(c)&&(e=e||d,d=c,c=void 0),r.ajax(r.extend({url:a,type:b,dataType:e,data:c,success:d},r.isPlainObject(a)&&a))}}),r._evalUrl=function(a){return r.ajax({url:a,type:"GET",dataType:"script",cache:!0,async:!1,global:!1,"throws":!0})},r.fn.extend({wrapAll:function(a){var b;return this[0]&&(r.isFunction(a)&&(a=a.call(this[0])),b=r(a,this[0].ownerDocument).eq(0).clone(!0),this[0].parentNode&&b.insertBefore(this[0]),b.map(function(){var a=this;while(a.firstElementChild)a=a.firstElementChild;return a}).append(this)),this},wrapInner:function(a){return r.isFunction(a)?this.each(function(b){r(this).wrapInner(a.call(this,b))}):this.each(function(){var b=r(this),c=b.contents();c.length?c.wrapAll(a):b.append(a)})},wrap:function(a){var b=r.isFunction(a);return this.each(function(c){r(this).wrapAll(b?a.call(this,c):a)})},unwrap:function(a){return this.parent(a).not("body").each(function(){r(this).replaceWith(this.childNodes)}),this}}),r.expr.pseudos.hidden=function(a){return!r.expr.pseudos.visible(a)},r.expr.pseudos.visible=function(a){return!!(a.offsetWidth||a.offsetHeight||a.getClientRects().length)},r.ajaxSettings.xhr=function(){try{return new a.XMLHttpRequest}catch(b){}};var Rb={0:200,1223:204},Sb=r.ajaxSettings.xhr();o.cors=!!Sb&&"withCredentials"in Sb,o.ajax=Sb=!!Sb,r.ajaxTransport(function(b){var c,d;if(o.cors||Sb&&!b.crossDomain)return{send:function(e,f){var g,h=b.xhr();if(h.open(b.type,b.url,b.async,b.username,b.password),b.xhrFields)for(g in b.xhrFields)h[g]=b.xhrFields[g];b.mimeType&&h.overrideMimeType&&h.overrideMimeType(b.mimeType),b.crossDomain||e["X-Requested-With"]||(e["X-Requested-With"]="XMLHttpRequest");for(g in e)h.setRequestHeader(g,e[g]);c=function(a){return function(){c&&(c=d=h.onload=h.onerror=h.onabort=h.onreadystatechange=null,"abort"===a?h.abort():"error"===a?"number"!=typeof h.status?f(0,"error"):f(h.status,h.statusText):f(Rb[h.status]||h.status,h.statusText,"text"!==(h.responseType||"text")||"string"!=typeof h.responseText?{binary:h.response}:{text:h.responseText},h.getAllResponseHeaders()))}},h.onload=c(),d=h.onerror=c("error"),void 0!==h.onabort?h.onabort=d:h.onreadystatechange=function(){4===h.readyState&&a.setTimeout(function(){c&&d()})},c=c("abort");try{h.send(b.hasContent&&b.data||null)}catch(i){if(c)throw i}},abort:function(){c&&c()}}}),r.ajaxPrefilter(function(a){a.crossDomain&&(a.contents.script=!1)}),r.ajaxSetup({accepts:{script:"text/javascript, application/javascript, application/ecmascript, application/x-ecmascript"},contents:{script:/\b(?:java|ecma)script\b/},converters:{"text script":function(a){return r.globalEval(a),a}}}),r.ajaxPrefilter("script",function(a){void 0===a.cache&&(a.cache=!1),a.crossDomain&&(a.type="GET")}),r.ajaxTransport("script",function(a){if(a.crossDomain){var b,c;return{send:function(e,f){b=r(" - - - - \ No newline at end of file diff --git a/sop-admin/sop-admin-front/pages/dashboard/dashboard.html b/sop-admin/sop-admin-front/pages/dashboard/dashboard.html deleted file mode 100644 index 75a990d8..00000000 --- a/sop-admin/sop-admin-front/pages/dashboard/dashboard.html +++ /dev/null @@ -1,126 +0,0 @@ - - - - - SOP Admin - - - - - - - - - - - -
- -
- -
- - -
- - - - - - - -
- -
-
- - - - - - - - - \ No newline at end of file diff --git a/sop-admin/sop-admin-front/pages/dashboard/dashboard.js b/sop-admin/sop-admin-front/pages/dashboard/dashboard.js deleted file mode 100644 index 642b91af..00000000 --- a/sop-admin/sop-admin-front/pages/dashboard/dashboard.js +++ /dev/null @@ -1,38 +0,0 @@ -lib.use('element', function () { - var $ = layui.jquery; - var $pageFrame = $('#pageFrame'); - var $selectLi = null; - $('.left-nav').on('click', 'li', function (event) { - var $tagLi = $(this); - var $tagA = $tagLi.find('a').eq(0); - var href = $tagA.prop('href'); - if (href) { - $pageFrame.prop('src', href + '?q=' + new Date().getTime()); - if ($selectLi) { - $selectLi.removeClass('active') - } - $selectLi = $tagLi.addClass('active'); - } - return false; - }); - - $('.container .left_open i').click(function(event) { - if($('.left-nav').css('left')=='0px'){ - $('.left-nav').animate({left: '-221px'}, 100); - $('.page-content').animate({left: '0px'}, 100); - $('.page-content-bg').hide(); - }else{ - $('.left-nav').animate({left: '0px'}, 100); - $('.page-content').animate({left: '221px'}, 100); - if($(window).width()<768){ - $('.page-content-bg').show(); - } - } - }); - - ApiUtil.post('admin.userinfo.get', {}, function (resp) { - var userInfo = resp.data; - $('#username').text(userInfo.username); - }); - -}); \ No newline at end of file diff --git a/sop-admin/sop-admin-front/pages/dashboard/todo.html b/sop-admin/sop-admin-front/pages/dashboard/todo.html deleted file mode 100644 index 9481ffbd..00000000 --- a/sop-admin/sop-admin-front/pages/dashboard/todo.html +++ /dev/null @@ -1,10 +0,0 @@ - - - - - todo - - -待实现... - - \ No newline at end of file diff --git a/sop-admin/sop-admin-front/pages/dashboard/welcome.html b/sop-admin/sop-admin-front/pages/dashboard/welcome.html deleted file mode 100644 index 265a258e..00000000 --- a/sop-admin/sop-admin-front/pages/dashboard/welcome.html +++ /dev/null @@ -1,34 +0,0 @@ - - - - - SOP Admin - - - - - - - - -
- - 首页 - - - -
-
-
- 欢迎使用SOP Admin -
-
- - - - - \ No newline at end of file diff --git a/sop-admin/sop-admin-front/pages/isv/isvAdd.html b/sop-admin/sop-admin-front/pages/isv/isvAdd.html deleted file mode 100644 index 12061264..00000000 --- a/sop-admin/sop-admin-front/pages/isv/isvAdd.html +++ /dev/null @@ -1,96 +0,0 @@ - - - - - SOP Admin - - - - - - - - - -
-
- 添加ISV -
-
-
- -
- -
-
-
- -
- -
-
-
- -
- - -
-
- -
- -
- -
-
-
- -
- -
-
-
- -
-
-
-
- -
- - -
-
-
-
- - -
-
-
-
- - - - - \ No newline at end of file diff --git a/sop-admin/sop-admin-front/pages/isv/isvAdd.js b/sop-admin/sop-admin-front/pages/isv/isvAdd.js deleted file mode 100644 index 60bade68..00000000 --- a/sop-admin/sop-admin-front/pages/isv/isvAdd.js +++ /dev/null @@ -1,39 +0,0 @@ -lib.importJs('../../assets/js/routerole.js') - .use(['element', 'table', 'form'], function () { - var table = layui.table; - var layer = layui.layer; - var form = layui.form; - var $ = layui.jquery; - - var addForm = layui.Form('addForm'); - - $('#createFormDataBtn').click(function () { - ApiUtil.post('isv.form.gen', {}, function (resp) { - addForm.setData(resp.data); - }); - return false; - }); - - form.on('radio(signTypeFilter)', function(data){ - if (data.value == 1) { - $('.sign-type-rsa2').show(); - $('.sign-type-md5').hide(); - } else { - $('.sign-type-rsa2').hide(); - $('.sign-type-md5').show(); - } - }); - - form.on('submit(addFormSubmitFilter)', function (data) { - var param = addForm.getData(); - ApiUtil.post('isv.info.add', param, function (resp) { - layer.alert('添加成功', function () { - location.href = 'isvList.html'; - }) - }) - return false; - }); - - RouteRole.loadAllRole(form, 'roleArea'); - -}); \ No newline at end of file diff --git a/sop-admin/sop-admin-front/pages/isv/isvList.html b/sop-admin/sop-admin-front/pages/isv/isvList.html deleted file mode 100644 index 946dd1a8..00000000 --- a/sop-admin/sop-admin-front/pages/isv/isvList.html +++ /dev/null @@ -1,51 +0,0 @@ - - - - - SOP Admin - - - - - - - - -
-
-
- appKey: - - -
-
- - -
- -
- - - - - \ No newline at end of file diff --git a/sop-admin/sop-admin-front/pages/isv/isvList.js b/sop-admin/sop-admin-front/pages/isv/isvList.js deleted file mode 100644 index 605484d5..00000000 --- a/sop-admin/sop-admin-front/pages/isv/isvList.js +++ /dev/null @@ -1,144 +0,0 @@ -lib.use(['element', 'table', 'form'], function () { - var table = layui.table; - var layer = layui.layer; - var form = layui.form; - var isvTable; - - var STATUS_ENUM = { - '1': '已启用' - ,'2': '已禁用' - } - var SIGN_TYPE_ENUM = { - '1': 'RSA2' - ,'2': 'MD5' - } - - // 渲染表格 - var renderTable = function (postData) { - layer.load(2); - isvTable = table.render({ - elem: '#isvTable' - , toolbar: '#toolbar' - , url: ApiUtil.createUrl('isv.info.page') - // 对分页请求的参数:page、limit重新设定名称 - ,request: { - pageName: 'pageIndex' //页码的参数名称,默认:page - ,limitName: 'pageSize' //每页数据量的参数名,默认:limit - } - , page: true - , headers: {access_token: ApiUtil.getAccessToken()} - , where: postData - , cellMinWidth: 80 //全局定义常规单元格的最小宽度,layui 2.2.1 新增 - , cols: [[ - {field: 'id', title: 'id', width: 80} - , {field: 'appKey', title: 'appKey', width: 250} - , {field: 'secret', title: 'secret', width: 80, templet: function (row) { - if (row.signType == 2) { - return ''; - } else { - return ''; - } - }} - , {field: '', title: '公私钥', width: 80, templet: function (row) { - if (row.signType == 1) { - return ''; - } else { - return ''; - } - }} - , {field: 'signType', title: '签名类型', width: 80, templet: function (row) { - return SIGN_TYPE_ENUM[row.signType+''] || 'unknown'; - }} - , {field: 'roleList', title: '角色', templet: function (row) { - var html = []; - var roleList = row.roleList; - for (var i = 0; i < roleList.length; i++) { - html.push(roleList[i].description); - } - return html.join(', '); - }} - , {field: 'status', title: '状态', width: 80, templet: function (row) { - var display = STATUS_ENUM[row.status + '']; - return display ? display : 'unknown'; - }} - , {field: 'gmtCreate', title: '添加时间', width: 160} - , {field: 'gmtModified', title: '修改时间', width: 160} - , { - fixed: 'right', title: '操作', width: 100, templet: function (row) { - return '修改'; - } - } - ]] - ,parseData: function(res){ //将原始数据解析成 table 组件所规定的数据 - return { - "code": res.code, //解析接口状态 - "msg": res.msg, //解析提示文本 - "count": res.data.total, //解析数据长度 - "data": res.data.list //解析数据列表 - }; - } - ,done: function () { - layer.closeAll('loading'); - } - }); - - //监听单元格事件 - table.on('tool(isvTableFilter)', function(obj) { - if (obj.event === 'edit') { - location.href = 'isvUpdate.html?id=' + obj.data.id; - } - }); - - table.on('toolbar(isvTableFilter)', function(obj) { - if (obj.event === 'add') { - location.href = 'isvAdd.html'; - } - }); - }; - - form.on('submit(searchFilter)', function(data){ - var param = data.field; - searchTable(param) - return false; - }); - - /** - * 查询表格 - * @param params - */ - function searchTable(params) { - var postData = { - data: JSON.stringify(params || {}) - }; - if (!isvTable) { - isvTable = renderTable(postData); - } else { - isvTable.reload({ - where: postData - }) - } - } - - searchTable(); - - - window.View = { - secret: function (secret) { - layer.alert(secret); - } - ,pubPriKey: function (pubKey, priKey) { - var content = '
公钥:
' + - '私钥:
'; - layer.open({ - type: 1, - area: ['600px', '400px'], - fix: false, //不固定 - shadeClose: true, - shade:0.4, - title: '公私钥', - content: content - }); - } - } - -}); \ No newline at end of file diff --git a/sop-admin/sop-admin-front/pages/isv/isvUpdate.html b/sop-admin/sop-admin-front/pages/isv/isvUpdate.html deleted file mode 100644 index 976e4079..00000000 --- a/sop-admin/sop-admin-front/pages/isv/isvUpdate.html +++ /dev/null @@ -1,97 +0,0 @@ - - - - - SOP Admin - - - - - - - - - -
-
- 修改ISV -
-
- -
- -
- -
-
-
- -
- -
-
-
- -
- - -
-
- -
- -
- -
-
-
- -
- -
-
-
- -
-
-
-
- -
- - -
-
-
-
- - -
-
-
-
- - - - - \ No newline at end of file diff --git a/sop-admin/sop-admin-front/pages/isv/isvUpdate.js b/sop-admin/sop-admin-front/pages/isv/isvUpdate.js deleted file mode 100644 index 9936b641..00000000 --- a/sop-admin/sop-admin-front/pages/isv/isvUpdate.js +++ /dev/null @@ -1,62 +0,0 @@ -lib.importJs('../../assets/js/routerole.js') - .use(['element', 'table', 'form'], function () { - var table = layui.table; - var layer = layui.layer; - var form = layui.form; - var $ = layui.jquery; - - var updateForm = layui.Form('updateForm'); - - $('#createFormDataBtn').click(function () { - ApiUtil.post('isv.form.gen', {}, function (resp) { - var data = resp.data; - var appKey = updateForm.getData('appKey'); - data.appKey = appKey; - updateForm.setData(data); - - }); - return false; - }); - - form.on('radio(signTypeFilter)', function(data){ - if (data.value == 1) { - $('.sign-type-rsa2').show(); - $('.sign-type-md5').hide(); - } else { - $('.sign-type-rsa2').hide(); - $('.sign-type-md5').show(); - } - }); - - form.on('submit(updateFormSubmitFilter)', function (data) { - var param = updateForm.getData(); - ApiUtil.post('isv.info.update', param, function (resp) { - layer.alert('修改成功', function () { - location.href = 'isvList.html'; - }) - }) - return false; - }); - - RouteRole.loadAllRole(form, 'roleArea', function () { - loadFormData(); - }) - - function loadFormData() { - var id = ApiUtil.getParam('id'); - if (!id) { - alert('id错误'); - return; - } - ApiUtil.post('isv.info.get', {id: id}, function (resp) { - var isvInfo = resp.data; - var roleList = isvInfo.roleList; - var roleCode = []; - for (var i = 0; i < roleList.length; i++) { - roleCode.push(roleList[i].roleCode); - } - isvInfo.roleCode = roleCode; - updateForm.setData(isvInfo); - }); - } -}); \ No newline at end of file diff --git a/sop-admin/sop-admin-front/pages/login/login.html b/sop-admin/sop-admin-front/pages/login/login.html deleted file mode 100644 index 3ad66801..00000000 --- a/sop-admin/sop-admin-front/pages/login/login.html +++ /dev/null @@ -1,57 +0,0 @@ - - - - - SOP-管理登录 - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/sop-admin/sop-admin-front/pages/service/limitManager.html b/sop-admin/sop-admin-front/pages/service/limitManager.html deleted file mode 100644 index 376e7d54..00000000 --- a/sop-admin/sop-admin-front/pages/service/limitManager.html +++ /dev/null @@ -1,107 +0,0 @@ - - - - - SOP Admin - - - - - - - - - -
-
-
-
    -
-
-
-
- 路由名称: - - -
-
- -
-
-
- -
-
- -
- -
- -
-
-
- -
- - -
-
-
- -
- -
-
-
- -
- -
-
-
- -
- -
-
-
- -
- -
-
-
- -
- - -
-
-
-
- - -
-
-
-
- - - - - \ No newline at end of file diff --git a/sop-admin/sop-admin-front/pages/service/limitManager.js b/sop-admin/sop-admin-front/pages/service/limitManager.js deleted file mode 100644 index 5c21a820..00000000 --- a/sop-admin/sop-admin-front/pages/service/limitManager.js +++ /dev/null @@ -1,212 +0,0 @@ -lib.importJs('../../assets/js/routerole.js') - .use(['element', 'table', 'tree', 'form'], function () { - var LIMIT_STATUS = { - '1': '已开启' - ,'0': '已关闭' - } - // 限流策略,1:漏桶策略,2:令牌桶策略 - var LIMIT_TYPE = { - '1': '漏桶策略' - ,'2': '令牌桶策略' - } - var element = layui.element; - var form = layui.form; - var updateForm = layui.Form('updateForm'); - var addForm = layui.Form('addForm'); - var authForm = layui.Form('authForm'); - var table = layui.table; - - var currentServiceId; - var limitTable; - var smTitle; - - - form.on('submit(searchFilter)', function (data) { - var param = data.field; - param.serviceId = currentServiceId; - searchTable(param) - return false; - }); - - // 监听修改提交 - form.on('submit(updateWinSubmitFilter)', function(data) { - var formData = updateForm.getData(); - if (!checkUpdateForm(formData)) { - return false; - } - ApiUtil.post('route.limit.update', formData, function (resp) { - layer.closeAll(); - limitTable.reload(); - }); - return false; - }); - - form.on('radio(limitTypeFilter)', function(data){ - $('.limit-type').hide(); - $('.type' + data.value).show(); - }); - - element.on('tab(serviceTabFilter)', function(data){ - loadLimitTable(this.innerHTML); - }); - - function checkUpdateForm(formData) { - var type = formData.limitType; - if (type == 1) { - if (!/^[1-9]\d*$/.test(formData.execCountPerSecond)) { - layer.alert('每秒可处理请求数必须大于0') - return false; - } - if (!formData.limitCode || formData.limitCode.length == 0) { - layer.alert('错误码不能为空') - return false; - } - if (!formData.limitMsg || formData.limitMsg.length == 0) { - layer.alert('错误信息不能为空') - return false; - } - } else if (type == 2) { - if (!/^[1-9]\d*$/.test(formData.tokenBucketCount)) { - layer.alert('令牌桶容量必须大于0') - return false; - } - } - return true; - } - - - function initServiceTab() { - ApiUtil.post('service.list', {}, function (resp) { - var serviceList = resp.data; - var html = []; - for (var i = 0; i < serviceList.length; i++) { - var serviceInfo = serviceList[i]; - var clazz = i === 0 ? 'class="layui-this"' : ''; - html.push('
  • ' + serviceInfo.serviceId + '
  • '); - } - $('#serviceTab').html(html.join('')); - - if (serviceList.length > 0) { - loadLimitTable(serviceList[0].serviceId); - } - }); - } - - - function loadLimitTable(serviceId) { - currentServiceId = serviceId; - searchTable({ - serviceId: serviceId - }); - smTitle = '[ serviceId:' + currentServiceId + ' ]'; - } - - /** - * 查询表格 - * @param params - */ - function searchTable(params) { - var postData = { - data: JSON.stringify(params) - }; - if (!limitTable) { - limitTable = renderTable(postData); - } else { - limitTable.reload({ - where: postData - }) - } - } - - var tipType = '' - - function renderTable(postData) { - var limitTable = table.render({ - elem: '#limitTable' - , url: ApiUtil.createUrl('route.limit.list') - , where: postData - , headers: {access_token: ApiUtil.getAccessToken()} - , cellMinWidth: 80 //全局定义常规单元格的最小宽度,layui 2.2.1 新增 - , cols: [[ - {field: 'name', title: '接口名', width: 200} - , {field: 'version', title: '版本号', width: 80} - , { - field: 'limitType', title: '限流策略 ' + tipType, width: 100, templet: function (row) { - return LIMIT_TYPE[row.limitType + '']; - } - } - , { - field: 'info', title: '限流信息', width: 500, templet: function (row) { - if (!row.hasRecord) { - return '--' - } - var html = []; - if (row.limitType == 1) { - html.push('每秒可处理请求数:' + row.execCountPerSecond); - html.push('subCode:' + row.limitCode); - html.push('subMsg:' + row.limitMsg); - } else if(row.limitType == 2) { - html.push('令牌桶容量:' + row.tokenBucketCount); - } - return html.join(','); - } - } - , { - field: 'limitStatus', title: '状态', width: 80, templet: function (row) { - return LIMIT_STATUS[row.limitStatus + '']; - } - } - , { - fixed: 'right', title: '操作', width: 100, templet: function (row) { - var html = ['修改']; - return html.join(''); - } - } - ]] - }); - - //监听单元格事件 - table.on('tool(limitTableFilter)', function(obj) { - var data = obj.data; - var event = obj.event; - if(event === 'edit'){ - //表单初始赋值 - data.serviceId = currentServiceId; - - updateForm.setData(data); - $('.limit-type').hide(); - $('.type' + data.limitType).show(); - - layer.open({ - type: 1 - ,title: '修改限流' + smTitle - ,area: ['600px', '460px'] - ,content: $('#updateWin') //这里content是一个DOM,注意:最好该元素要存放在body最外层,否则可能被其它的相对元素所影响 - }); - } - }); - - return limitTable; - } - - initServiceTab(); - - RouteRole.loadAllRole(form, 'roleArea'); - -}); - -function showLimitTypeTip() { - var leakyRemark = '漏桶策略:每秒处理固定数量的请求,超出请求返回错误信息。'; - var tokenRemark = '令牌桶策略:每秒放置固定数量的令牌数,每个请求进来后先去拿令牌,拿到了令牌才能继续,拿不到则等候令牌重新生成了再拿。'; - var content = '
    ' - + leakyRemark - + '
    ' - + tokenRemark - + '
    '; - - layer.open({ - title: '限流策略说明' - ,area: ['600px', 'auto'] - ,content: content - }); -} \ No newline at end of file diff --git a/sop-admin/sop-admin-front/pages/service/routeManager.html b/sop-admin/sop-admin-front/pages/service/routeManager.html deleted file mode 100644 index cf87b4e8..00000000 --- a/sop-admin/sop-admin-front/pages/service/routeManager.html +++ /dev/null @@ -1,150 +0,0 @@ - - - - - SOP Admin - - - - - - - - -
    -
    -
    -
      -
    -
    -
    -
    - 路由名称: - - -
    -
    - -
    - -
    -
    - -
    -
    - -
    - -
    - -
    -
    -
    - -
    - -
    -
    -
    - -
    - -
    -
    -
    - -
    - - -
    -
    -
    -
    - - -
    -
    -
    -
    - -
    -
    - -
    - -
    - -
    -
    -
    - -
    - -
    -
    -
    - -
    - -
    -
    -
    - -
    - - -
    -
    -
    -
    - - -
    -
    -
    -
    - -
    -
    -
    - -
    - -
    -
    -
    - -
    -
    -
    -
    -
    - - -
    -
    -
    -
    - - - - - \ No newline at end of file diff --git a/sop-admin/sop-admin-front/pages/service/routeManager.js b/sop-admin/sop-admin-front/pages/service/routeManager.js deleted file mode 100644 index 6f3037ff..00000000 --- a/sop-admin/sop-admin-front/pages/service/routeManager.js +++ /dev/null @@ -1,215 +0,0 @@ -lib.importJs('../../assets/js/routerole.js') - .use(['element', 'table', 'tree', 'form'], function () { - var ROUTE_STATUS = { - '0': '待审核' - ,'1': '已启用' - ,'2': '已禁用' - } - var element = layui.element; - var form = layui.form; - var updateForm = layui.Form('updateForm'); - var addForm = layui.Form('addForm'); - var authForm = layui.Form('authForm'); - var table = layui.table; - - var currentServiceId; - var routeTable; - var smTitle; - - - form.on('submit(searchFilter)', function (data) { - var param = data.field; - param.serviceId = currentServiceId; - searchTable(param) - return false; - }); - - // 监听修改提交 - form.on('submit(updateWinSubmitFilter)', function(data) { - ApiUtil.post('route.update', data.field, function (resp) { - layer.closeAll(); - routeTable.reload(); - }) - return false; - }); - - // 监听保存提交 - form.on('submit(addWinSubmitFilter)', function(data) { - ApiUtil.post('route.add', data.field, function (resp) { - layer.closeAll(); - routeTable.reload(); - }) - return false; - }); - - form.on('submit(authFormSubmitFilter)', function(data) { - var params = authForm.getData(); - ApiUtil.post('route.role.update', params, function (resp) { - layer.closeAll(); - routeTable.reload(); - }) - return false; - }); - - element.on('tab(serviceTabFilter)', function(data){ - loadRouteTable(this.innerHTML); - }); - - - function initServiceTab() { - ApiUtil.post('service.list', {}, function (resp) { - var serviceList = resp.data; - var html = []; - for (var i = 0; i < serviceList.length; i++) { - var serviceInfo = serviceList[i]; - var clazz = i === 0 ? 'class="layui-this"' : ''; - html.push('
  • ' + serviceInfo.serviceId + '
  • '); - } - $('#serviceTab').html(html.join('')); - - if (serviceList.length > 0) { - loadRouteTable(serviceList[0].serviceId); - } - }); - } - - - function loadRouteTable(serviceId) { - currentServiceId = serviceId; - searchTable({ - serviceId: serviceId - }); - smTitle = '[ serviceId:' + currentServiceId + ' ]'; - } - - /** - * 查询表格 - * @param params - */ - function searchTable(params) { - var postData = { - data: JSON.stringify(params) - }; - if (!routeTable) { - routeTable = renderTable(postData); - } else { - routeTable.reload({ - where: postData - }) - } - } - - function renderTable(postData) { - var routeTable = table.render({ - elem: '#routeTable' - , toolbar: '#toolbar' - , url: ApiUtil.createUrl('route.list') - , where: postData - , headers: {access_token: ApiUtil.getAccessToken()} - , cellMinWidth: 80 //全局定义常规单元格的最小宽度,layui 2.2.1 新增 - , cols: [[ - {field: 'name', title: '接口名', width: 200} - , {field: 'version', title: '版本号', width: 80} - , {field: 'uri', title: 'uri', width: 200} - , {field: 'path', title: 'path'} - , {field: 'roles', title: '访问权限', width: 100, templet: function (row) { - if (!row.permission) { - return '(公开)'; - } - var html = []; - var roles = row.roles; - for (var i = 0; i < roles.length; i++) { - html.push(roles[i].description); - } - return html.length > 0 ? html.join(', ') : '未授权'; - }} - , { - field: 'ignoreValidate', width: 80, title: '忽略验证', templet: function (row) { - return row.ignoreValidate ? '' : ''; - } - } - , { - field: 'mergeResult', title: '合并结果', width: 80, templet: function (row) { - return row.mergeResult ? '合并' : '不合并'; - } - } - , { - field: 'status', title: '状态', width: 80, templet: function (row) { - return ROUTE_STATUS[row.status + '']; - } - } - , { - fixed: 'right', title: '操作', width: 150, templet: function (row) { - var html = ['修改']; - if (row.permission) { - html.push('授权'); - } - return html.join(''); - } - } - ]] - }); - - //监听单元格事件 - table.on('tool(routeTableFilter)', function(obj) { - var data = obj.data; - data.serviceId = currentServiceId; - var event = obj.event; - if(event === 'edit'){ - //表单初始赋值 - updateForm.setData(data); - - layer.open({ - type: 1 - ,title: '修改路由' + smTitle - ,area: ['500px', '350px'] - ,content: $('#updateWin') //这里content是一个DOM,注意:最好该元素要存放在body最外层,否则可能被其它的相对元素所影响 - }); - } else if (event === 'auth') { - var searchData = {id: data.id, serviceId: currentServiceId}; - ApiUtil.post('route.role.get', searchData, function (resp) { - var roleList = resp.data; - var roleCode = []; - for (var i = 0; i < roleList.length; i++) { - roleCode.push(roleList[i].roleCode); - } - authForm.setData({ - routeId: searchData.id - , roleCode: roleCode - }) - layer.open({ - type: 1 - ,title: '路由授权' - ,area: ['500px', '260px'] - ,content: $('#authWin') - }); - }) - } - });// routeTableFilter end - - table.on('toolbar(routeTableFilter)', function(obj) { - if (obj.event === 'add') { - var data = {}; - data.serviceId = currentServiceId; - data.id = ''; - // 新加的路由先设置成禁用 - data.status = 2; - data.ignoreValidate = 0; - data.mergeResult = 1; - addForm.setData(data); - layer.open({ - type: 1 - ,title: '添加路由' + smTitle - ,area: ['500px', '350px'] - ,content: $('#addWin') - }); - } - });// routeTableFilter end - return routeTable; - } - - initServiceTab(); - - RouteRole.loadAllRole(form, 'roleArea'); - -}); \ No newline at end of file diff --git a/sop-admin/sop-admin-front/pages/service/serviceList.html b/sop-admin/sop-admin-front/pages/service/serviceList.html deleted file mode 100644 index 463a449b..00000000 --- a/sop-admin/sop-admin-front/pages/service/serviceList.html +++ /dev/null @@ -1,44 +0,0 @@ - - - - - SOP Admin - - - - - - - - -
    -
    -
    - 服务名称: - - -
    -
    - -
    - -
    - - - - - \ No newline at end of file diff --git a/sop-admin/sop-admin-front/pages/service/serviceList.js b/sop-admin/sop-admin-front/pages/service/serviceList.js deleted file mode 100644 index 492563f4..00000000 --- a/sop-admin/sop-admin-front/pages/service/serviceList.js +++ /dev/null @@ -1,106 +0,0 @@ -lib.config({ - base: '../../assets/lib/layuiext/module/' -}).extend({ - treetable: 'treetable-lay/treetable' -}).use(['element', 'table', 'form', 'treetable'], function () { - var table = layui.table; - var layer = layui.layer; - var form = layui.form; - var treetable = layui.treetable; - - // 渲染表格 - var renderTable = function (postData) { - layer.load(2); - var params = { - data: JSON.stringify(postData || {}) - }; - treetable.render({ - elem: '#treeTable', - treeColIndex: 1, - treeSpid: 0, - treeIdName: 'id', - treePidName: 'parentId', - treeDefaultClose: false, - treeLinkage: false, - url: ApiUtil.createUrl('service.instance.list'), - headers: {access_token: ApiUtil.getAccessToken()}, - where: params, - page: false, - cols: [[ - {type: 'numbers'}, - {field: 'name', title: '服务名称(serviceId)', width: 200}, - {field: 'instanceId', title: 'instanceId', width: 250}, - {field: 'ipAddr', title: 'IP地址', width: 150}, - {field: 'serverPort', title: '端口号', width: 100}, - {field: 'status', title: '服务状态', width: 100, templet: function (row) { - if (row.parentId > 0) { - var html = []; - if (row.status === 'UP') { - return '已上线' - } - if (row.status === 'OUT_OF_SERVICE') { - return '已下线' - } - } - return ''; - }}, - {field: 'updateTime', title: '最后更新时间', width: 150}, - {fixed: 'right', title: '操作', width: 150, templet: function (row) { - if (row.parentId > 0) { - var html = []; - if (row.status === 'UP') { - html.push('下线'); - } - if (row.status === 'OUT_OF_SERVICE') { - html.push('上线'); - } - return html.join(''); - } - return ''; - }} - ]], - done: function () { - layer.closeAll('loading'); - } - }); - - //监听单元格事件 - table.on('tool(treeTableFilter)', function(obj) { - if (obj.event === 'offline') { - var data = obj.data; - layer.confirm('确定要下线【'+data.name+'】吗?', {icon: 3, title:'提示'}, function(index){ - var params = { - serviceId: data.name - , instanceId: data.instanceId - }; - ApiUtil.post('service.instance.offline', params, function (resp) { - layer.alert('修改成功'); - }); - layer.close(index); - }); - } - if (obj.event === 'online') { - var data = obj.data; - layer.confirm('确定要上线【'+data.name+'】吗?', {icon: 3, title:'提示'}, function(index){ - var params = { - serviceId: data.name - , instanceId: data.instanceId - }; - ApiUtil.post('service.instance.online', params, function (resp) { - layer.alert('修改成功'); - }); - layer.close(index); - }); - } - }); - }; - - renderTable(); - - form.on('submit(searchFilter)', function(data){ - var param = data.field; - renderTable(param) - return false; - }); - -}); \ No newline at end of file diff --git a/sop-admin/sop-admin-front/pom.xml b/sop-admin/sop-admin-front/pom.xml deleted file mode 100644 index 8c683712..00000000 --- a/sop-admin/sop-admin-front/pom.xml +++ /dev/null @@ -1,27 +0,0 @@ - - - 4.0.0 - com.gitee.sop - sop-admin-front - 1.0.0-SNAPSHOT - jar - - - UTF-8 - ${project.build.outputDirectory}/META-INF/resources/webjars/${project.artifactId}/${project.version} - - - - - - ${project.basedir} - ${destDir} - - ${project.basedir}/target - - - - - \ No newline at end of file diff --git a/sop-registry/.gitignore b/sop-registry/.gitignore deleted file mode 100644 index c456c4a3..00000000 --- a/sop-registry/.gitignore +++ /dev/null @@ -1,25 +0,0 @@ -/target/ -!.mvn/wrapper/maven-wrapper.jar - -### STS ### -.apt_generated -.classpath -.factorypath -.project -.settings -.springBeans -.sts4-cache - -### IntelliJ IDEA ### -.idea -*.iws -*.iml -*.ipr - -### NetBeans ### -/nbproject/private/ -/nbbuild/ -/dist/ -/nbdist/ -/.nb-gradle/ -/build/ diff --git a/sop-registry/pom.xml b/sop-registry/pom.xml deleted file mode 100644 index 0c55702e..00000000 --- a/sop-registry/pom.xml +++ /dev/null @@ -1,64 +0,0 @@ - - - 4.0.0 - - org.springframework.boot - spring-boot-starter-parent - 2.1.2.RELEASE - - - com.gitee.sop - sop-registry - 1.0.0-SNAPSHOT - sop-registry - sop-registry - - - 1.8 - Greenwich.RELEASE - - - - - org.springframework.cloud - spring-cloud-starter-netflix-eureka-server - - - - org.springframework.boot - spring-boot-starter-test - test - - - - - - - org.springframework.cloud - spring-cloud-dependencies - ${spring-cloud.version} - pom - import - - - - - - - - org.springframework.boot - spring-boot-maven-plugin - - - - - - - spring-milestones - Spring Milestones - https://repo.spring.io/milestone - - - - diff --git a/sop-registry/src/main/java/com/gitee/sop/registry/SopRegistryApplication.java b/sop-registry/src/main/java/com/gitee/sop/registry/SopRegistryApplication.java deleted file mode 100644 index 42662cd4..00000000 --- a/sop-registry/src/main/java/com/gitee/sop/registry/SopRegistryApplication.java +++ /dev/null @@ -1,16 +0,0 @@ -package com.gitee.sop.registry; - -import org.springframework.boot.SpringApplication; -import org.springframework.boot.autoconfigure.SpringBootApplication; -import org.springframework.cloud.netflix.eureka.server.EnableEurekaServer; - -@EnableEurekaServer -@SpringBootApplication -public class SopRegistryApplication { - - public static void main(String[] args) { - SpringApplication.run(SopRegistryApplication.class, args); - } - -} - diff --git a/sop-registry/src/main/resources/application-dev.properties b/sop-registry/src/main/resources/application-dev.properties deleted file mode 100644 index 6fd1a8e5..00000000 --- a/sop-registry/src/main/resources/application-dev.properties +++ /dev/null @@ -1,6 +0,0 @@ -server.port=1111 -spring.application.name=sop-registry - -eureka.client.fetch-registry=false -eureka.client.register-with-eureka=false -eureka.client.serviceUrl.defaultZone=http://localhost:1111/eureka/ diff --git a/sop-registry/src/main/resources/application.properties b/sop-registry/src/main/resources/application.properties deleted file mode 100644 index 257b3064..00000000 --- a/sop-registry/src/main/resources/application.properties +++ /dev/null @@ -1 +0,0 @@ -spring.profiles.active=dev \ No newline at end of file diff --git a/sop-registry/src/test/java/com/gitee/sop/registry/SopRegistryApplicationTests.java b/sop-registry/src/test/java/com/gitee/sop/registry/SopRegistryApplicationTests.java deleted file mode 100644 index da1deda9..00000000 --- a/sop-registry/src/test/java/com/gitee/sop/registry/SopRegistryApplicationTests.java +++ /dev/null @@ -1,17 +0,0 @@ -package com.gitee.sop.registry; - -import org.junit.Test; -import org.junit.runner.RunWith; -import org.springframework.boot.test.context.SpringBootTest; -import org.springframework.test.context.junit4.SpringRunner; - -@RunWith(SpringRunner.class) -@SpringBootTest -public class SopRegistryApplicationTests { - - @Test - public void contextLoads() { - } - -} -