From b15b55e1e93370a4ccea34c6270bf75bca5d7640 Mon Sep 17 00:00:00 2001 From: toogee Date: Wed, 1 Jan 2020 13:17:19 +0800 Subject: [PATCH] =?UTF-8?q?=E7=AC=AC=E4=B8=80=E4=B8=AA=E7=89=88=E6=9C=AC1.?= =?UTF-8?q?0.0=E5=8F=91=E5=B8=83?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .gitignore | 4 + .travis.yml | 42 + README.en.md | 36 - README.md | 34 +- app/.gitignore | 2 + app/.htaccess | 1 + app/BaseController.php | 94 + app/ExceptionHandle.php | 58 + app/Request.php | 8 + app/admin/controller/.gitignore | 2 + app/admin/controller/Admin.php | 188 + app/admin/controller/AuthGroup.php | 107 + app/admin/controller/AuthRule.php | 169 + app/admin/controller/Forum.php | 151 + app/admin/controller/Index.php | 47 + app/admin/controller/Login.php | 57 + app/admin/controller/Menu.php | 11 + app/admin/controller/Set.php | 153 + app/admin/controller/Slider.php | 126 + app/admin/controller/Upgrade.php | 471 ++ app/admin/controller/User.php | 129 + app/admin/controller/Uzip.php | 96 + app/admin/middleware.php | 6 + app/admin/model/.gitignore | 1 + app/admin/model/Admin.php | 50 + app/admin/model/Article.php | 10 + app/admin/model/AuthGroup.php | 35 + app/admin/model/AuthRule.php | 35 + app/admin/model/MailServer.php | 24 + app/admin/model/Slider.php | 17 + app/admin/model/System.php | 24 + app/admin/validate/Admin.php | 60 + app/common.php | 246 + app/common/controller/AdminController.php | 238 + app/common/controller/BaseController.php | 257 + app/common/model/Article.php | 82 + app/common/model/Cate.php | 28 + app/common/model/Collection.php | 25 + app/common/model/Comment.php | 30 + app/common/model/Sign.php | 28 + app/common/model/System.php | 21 + app/common/model/UpgradeAuth.php | 21 + app/common/model/User.php | 128 + app/common/model/UserArea.php | 23 + app/common/model/UserZan.php | 30 + app/common/validate/Article.php | 20 + app/common/validate/User.php | 80 + app/event.php | 17 + app/index/controller/.gitignore | 1 + app/index/controller/Article.php | 272 + app/index/controller/Collection.php | 64 + app/index/controller/Comment.php | 109 + app/index/controller/Error.php | 10 + app/index/controller/FriendLink.php | 13 + app/index/controller/Index.php | 128 + app/index/controller/Jump.php | 27 + app/index/controller/Login.php | 187 + app/index/controller/Message.php | 20 + app/index/controller/Sign.php | 268 + app/index/controller/User.php | 198 + app/index/middleware.php | 7 + app/install/common.php | 153 + app/install/config/database.php | 26 + app/install/controller/index.php | 207 + app/install/data/taoler.sql | 557 ++ app/middleware.php | 10 + app/middleware/Auth.php | 51 + app/middleware/CheckRegister.php | 23 + app/middleware/LogedCheck.php | 16 + app/middleware/LoginCheck.php | 17 + app/provider.php | 9 + build.example.php | 26 + composer.json | 49 + composer.lock | 1176 ++++ config/app.php | 38 + config/cache.php | 30 + config/captcha.php | 40 + config/console.php | 9 + config/cookie.php | 18 + config/database.php | 52 + config/filesystem.php | 37 + config/lang.php | 27 + config/log.php | 46 + config/middleware.php | 11 + config/route.php | 51 + config/session.php | 19 + config/trace.php | 10 + config/view.php | 25 + extend/.gitignore | 2 + public/.htaccess | 8 + public/favicon.ico | Bin 0 -> 1150 bytes public/index.php | 24 + public/robots.txt | 2 + public/router.php | 17 + public/static/admin/config.js | 130 + public/static/admin/json/console/prograss.js | 36 + public/static/admin/json/console/top-card.js | 76 + .../static/admin/json/console/top-search.js | 46 + public/static/admin/json/content/comment.js | 56 + public/static/admin/json/content/list.js | 62 + public/static/admin/json/content/tags.js | 21 + public/static/admin/json/forum/list.js | 62 + public/static/admin/json/forum/replys.js | 69 + public/static/admin/json/layer/photos.js | 39 + public/static/admin/json/layim/getList.js | 96 + public/static/admin/json/layim/getMembers.js | 67 + public/static/admin/json/mall/order.js | 42 + public/static/admin/json/menu.js | 227 + public/static/admin/json/menu1.js | 271 + public/static/admin/json/message/all.js | 46 + public/static/admin/json/message/detail.js | 10 + public/static/admin/json/message/direct.js | 46 + public/static/admin/json/message/new.js | 7 + public/static/admin/json/message/notice.js | 46 + public/static/admin/json/table/demo.js | 96 + public/static/admin/json/table/demo2.js | 61 + public/static/admin/json/table/demo3.js | 96 + public/static/admin/json/table/user.js | 2 + public/static/admin/json/table/user30.js | 2 + public/static/admin/json/upload/demo.js | 7 + public/static/admin/json/user/forget.js | 7 + public/static/admin/json/user/login.js | 7 + public/static/admin/json/user/logout.js | 5 + public/static/admin/json/user/reg.js | 7 + public/static/admin/json/user/resetpass.js | 7 + public/static/admin/json/user/session.js | 9 + public/static/admin/json/user/sms.js | 7 + .../static/admin/json/useradmin/mangadmin.js | 78 + public/static/admin/json/useradmin/role.js | 54 + public/static/admin/json/useradmin/webuser.js | 143 + public/static/admin/json/workorder/demo.js | 78 + public/static/admin/json/璇存槑.txt | 3 + public/static/admin/layui/css/layui.css | 2 + .../static/admin/layui/css/layui.mobile.css | 2 + .../static/admin/layui/css/modules/code.css | 2 + .../css/modules/laydate/default/laydate.css | 2 + .../css/modules/layer/default/icon-ext.png | Bin 0 -> 5911 bytes .../layui/css/modules/layer/default/icon.png | Bin 0 -> 11493 bytes .../layui/css/modules/layer/default/layer.css | 2 + .../css/modules/layer/default/loading-0.gif | Bin 0 -> 5793 bytes .../css/modules/layer/default/loading-1.gif | Bin 0 -> 701 bytes .../css/modules/layer/default/loading-2.gif | Bin 0 -> 1787 bytes .../layui/css/modules/layim/html/chatlog.html | 96 + .../layui/css/modules/layim/html/find.html | 38 + .../layui/css/modules/layim/html/getmsg.json | 87 + .../layui/css/modules/layim/html/msgbox.html | 208 + .../admin/layui/css/modules/layim/layim.css | 2 + .../layui/css/modules/layim/mobile/layim.css | 2 + .../admin/layui/css/modules/layim/skin/1.jpg | Bin 0 -> 18386 bytes .../admin/layui/css/modules/layim/skin/2.jpg | Bin 0 -> 11883 bytes .../admin/layui/css/modules/layim/skin/3.jpg | Bin 0 -> 18610 bytes .../admin/layui/css/modules/layim/skin/4.jpg | Bin 0 -> 39279 bytes .../admin/layui/css/modules/layim/skin/5.jpg | Bin 0 -> 33379 bytes .../layui/css/modules/layim/skin/logo.jpg | Bin 0 -> 3284 bytes .../layui/css/modules/layim/voice/default.mp3 | Bin 0 -> 9341 bytes public/static/admin/layui/font/iconfont.eot | Bin 0 -> 41712 bytes public/static/admin/layui/font/iconfont.svg | 485 ++ public/static/admin/layui/font/iconfont.ttf | Bin 0 -> 41536 bytes public/static/admin/layui/font/iconfont.woff | Bin 0 -> 27256 bytes public/static/admin/layui/font/iconfont.woff2 | Bin 0 -> 23140 bytes public/static/admin/layui/images/face/0.gif | Bin 0 -> 2689 bytes public/static/admin/layui/images/face/1.gif | Bin 0 -> 5514 bytes public/static/admin/layui/images/face/10.gif | Bin 0 -> 2797 bytes public/static/admin/layui/images/face/11.gif | Bin 0 -> 4121 bytes public/static/admin/layui/images/face/12.gif | Bin 0 -> 3361 bytes public/static/admin/layui/images/face/13.gif | Bin 0 -> 7425 bytes public/static/admin/layui/images/face/14.gif | Bin 0 -> 2375 bytes public/static/admin/layui/images/face/15.gif | Bin 0 -> 1793 bytes public/static/admin/layui/images/face/16.gif | Bin 0 -> 6721 bytes public/static/admin/layui/images/face/17.gif | Bin 0 -> 4439 bytes public/static/admin/layui/images/face/18.gif | Bin 0 -> 3017 bytes public/static/admin/layui/images/face/19.gif | Bin 0 -> 3040 bytes public/static/admin/layui/images/face/2.gif | Bin 0 -> 3222 bytes public/static/admin/layui/images/face/20.gif | Bin 0 -> 5144 bytes public/static/admin/layui/images/face/21.gif | Bin 0 -> 5191 bytes public/static/admin/layui/images/face/22.gif | Bin 0 -> 9823 bytes public/static/admin/layui/images/face/23.gif | Bin 0 -> 3792 bytes public/static/admin/layui/images/face/24.gif | Bin 0 -> 8096 bytes public/static/admin/layui/images/face/25.gif | Bin 0 -> 3127 bytes public/static/admin/layui/images/face/26.gif | Bin 0 -> 3291 bytes public/static/admin/layui/images/face/27.gif | Bin 0 -> 4377 bytes public/static/admin/layui/images/face/28.gif | Bin 0 -> 2793 bytes public/static/admin/layui/images/face/29.gif | Bin 0 -> 4854 bytes public/static/admin/layui/images/face/3.gif | Bin 0 -> 4017 bytes public/static/admin/layui/images/face/30.gif | Bin 0 -> 2555 bytes public/static/admin/layui/images/face/31.gif | Bin 0 -> 2002 bytes public/static/admin/layui/images/face/32.gif | Bin 0 -> 3481 bytes public/static/admin/layui/images/face/33.gif | Bin 0 -> 2454 bytes public/static/admin/layui/images/face/34.gif | Bin 0 -> 3700 bytes public/static/admin/layui/images/face/35.gif | Bin 0 -> 1800 bytes public/static/admin/layui/images/face/36.gif | Bin 0 -> 2331 bytes public/static/admin/layui/images/face/37.gif | Bin 0 -> 1513 bytes public/static/admin/layui/images/face/38.gif | Bin 0 -> 3615 bytes public/static/admin/layui/images/face/39.gif | Bin 0 -> 6495 bytes public/static/admin/layui/images/face/4.gif | Bin 0 -> 5689 bytes public/static/admin/layui/images/face/40.gif | Bin 0 -> 3154 bytes public/static/admin/layui/images/face/41.gif | Bin 0 -> 3644 bytes public/static/admin/layui/images/face/42.gif | Bin 0 -> 5305 bytes public/static/admin/layui/images/face/43.gif | Bin 0 -> 2674 bytes public/static/admin/layui/images/face/44.gif | Bin 0 -> 4126 bytes public/static/admin/layui/images/face/45.gif | Bin 0 -> 3417 bytes public/static/admin/layui/images/face/46.gif | Bin 0 -> 3007 bytes public/static/admin/layui/images/face/47.gif | Bin 0 -> 2333 bytes public/static/admin/layui/images/face/48.gif | Bin 0 -> 2689 bytes public/static/admin/layui/images/face/49.gif | Bin 0 -> 2315 bytes public/static/admin/layui/images/face/5.gif | Bin 0 -> 4567 bytes public/static/admin/layui/images/face/50.gif | Bin 0 -> 5866 bytes public/static/admin/layui/images/face/51.gif | Bin 0 -> 2785 bytes public/static/admin/layui/images/face/52.gif | Bin 0 -> 777 bytes public/static/admin/layui/images/face/53.gif | Bin 0 -> 2127 bytes public/static/admin/layui/images/face/54.gif | Bin 0 -> 2196 bytes public/static/admin/layui/images/face/55.gif | Bin 0 -> 1971 bytes public/static/admin/layui/images/face/56.gif | Bin 0 -> 2034 bytes public/static/admin/layui/images/face/57.gif | Bin 0 -> 2705 bytes public/static/admin/layui/images/face/58.gif | Bin 0 -> 2258 bytes public/static/admin/layui/images/face/59.gif | Bin 0 -> 10311 bytes public/static/admin/layui/images/face/6.gif | Bin 0 -> 2213 bytes public/static/admin/layui/images/face/60.gif | Bin 0 -> 3245 bytes public/static/admin/layui/images/face/61.gif | Bin 0 -> 2495 bytes public/static/admin/layui/images/face/62.gif | Bin 0 -> 2017 bytes public/static/admin/layui/images/face/63.gif | Bin 0 -> 5871 bytes public/static/admin/layui/images/face/64.gif | Bin 0 -> 6448 bytes public/static/admin/layui/images/face/65.gif | Bin 0 -> 3576 bytes public/static/admin/layui/images/face/66.gif | Bin 0 -> 3029 bytes public/static/admin/layui/images/face/67.gif | Bin 0 -> 2701 bytes public/static/admin/layui/images/face/68.gif | Bin 0 -> 1424 bytes public/static/admin/layui/images/face/69.gif | Bin 0 -> 2431 bytes public/static/admin/layui/images/face/7.gif | Bin 0 -> 3398 bytes public/static/admin/layui/images/face/70.gif | Bin 0 -> 4590 bytes public/static/admin/layui/images/face/71.gif | Bin 0 -> 5304 bytes public/static/admin/layui/images/face/8.gif | Bin 0 -> 4050 bytes public/static/admin/layui/images/face/9.gif | Bin 0 -> 4221 bytes .../admin/layui/lay/modules/carousel.js | 2 + public/static/admin/layui/lay/modules/code.js | 2 + .../admin/layui/lay/modules/colorpicker.js | 2 + .../static/admin/layui/lay/modules/element.js | 2 + public/static/admin/layui/lay/modules/flow.js | 2 + public/static/admin/layui/lay/modules/form.js | 2 + .../static/admin/layui/lay/modules/jquery.js | 5 + .../static/admin/layui/lay/modules/laydate.js | 2 + .../static/admin/layui/lay/modules/layedit.js | 2 + .../static/admin/layui/lay/modules/layer.js | 2 + .../static/admin/layui/lay/modules/laypage.js | 2 + .../static/admin/layui/lay/modules/laytpl.js | 2 + .../static/admin/layui/lay/modules/mobile.js | 2 + .../layui/lay/modules/mobile/layer-mobile.js | 189 + .../lay/modules/mobile/layim-mobile-open.js | 11 + .../layui/lay/modules/mobile/layim-mobile.js | 1167 ++++ .../layui/lay/modules/mobile/upload-mobile.js | 166 + .../admin/layui/lay/modules/mobile/zepto.js | 1646 ++++++ public/static/admin/layui/lay/modules/rate.js | 2 + .../static/admin/layui/lay/modules/slider.js | 2 + .../static/admin/layui/lay/modules/table.js | 2 + .../admin/layui/lay/modules/transfer.js | 2 + public/static/admin/layui/lay/modules/tree.js | 2 + .../static/admin/layui/lay/modules/upload.js | 2 + public/static/admin/layui/lay/modules/util.js | 2 + public/static/admin/layui/layui.all.js | 5 + public/static/admin/layui/layui.js | 2 + public/static/admin/lib/admin.js | 836 +++ public/static/admin/lib/extend/echarts.js | 39 + .../static/admin/lib/extend/echartsTheme.js | 267 + public/static/admin/lib/index.js | 95 + public/static/admin/lib/view.js | 364 ++ public/static/admin/modules/common.js | 51 + public/static/admin/modules/console.js | 223 + public/static/admin/modules/contlist.js | 244 + public/static/admin/modules/forum.js | 164 + public/static/admin/modules/im.js | 418 ++ public/static/admin/modules/message.js | 132 + public/static/admin/modules/sample.js | 299 ++ public/static/admin/modules/senior.js | 1166 ++++ public/static/admin/modules/set.js | 218 + public/static/admin/modules/user.js | 65 + public/static/admin/modules/useradmin.js | 470 ++ public/static/admin/modules/workorder.js | 76 + public/static/admin/style/admin.css | 526 ++ public/static/admin/style/login.css | 55 + public/static/admin/style/res/bg-none.jpg | Bin 0 -> 832 bytes public/static/admin/style/res/layui-logo.jpg | Bin 0 -> 2871 bytes public/static/admin/style/res/logo-black.png | Bin 0 -> 455 bytes public/static/admin/style/res/logo.png | Bin 0 -> 457 bytes .../admin/style/res/template/character.jpg | Bin 0 -> 6153 bytes .../static/admin/style/res/template/huge.jpg | Bin 0 -> 419343 bytes .../admin/style/res/template/portrait.png | Bin 0 -> 19719 bytes public/static/admin/style/template.css | 186 + public/static/admin/tpl/layim/demo.html | 25 + public/static/admin/tpl/system/about.html | 22 + public/static/admin/tpl/system/get.html | 61 + public/static/admin/tpl/system/more.html | 22 + public/static/admin/tpl/system/theme.html | 43 + public/static/admin/tpl/system/璇存槑.txt | 3 + public/static/admin/tpl/璇存槑.txt | 3 + public/static/res/css/admin.css | 103 + public/static/res/css/font-awesome.min.css | 4 + .../static/res/css/font_24081_qs69ykjbea.css | 157 + .../static/res/css/font_24081_qs69ykjbea.ttf | Bin 0 -> 26036 bytes public/static/res/css/full.css | 53 + public/static/res/css/global.css | 733 +++ public/static/res/css/iconfont.eot | Bin 0 -> 23304 bytes public/static/res/css/iconfont.svg | 473 ++ public/static/res/css/iconfont.ttf | Bin 0 -> 40668 bytes public/static/res/css/iconfont.woff | Bin 0 -> 26744 bytes public/static/res/home/css/global.css | 466 ++ public/static/res/home/images/Thumbs.db | Bin 0 -> 3584 bytes .../static/res/home/images/logo - 鍓湰.png | Bin 0 -> 2635 bytes public/static/res/home/images/logo-1.png | Bin 0 -> 2635 bytes public/static/res/home/images/logo.png | Bin 0 -> 4204 bytes public/static/res/home/images/spring.jpg | Bin 0 -> 39783 bytes public/static/res/home/images/upyun.png | Bin 0 -> 3960 bytes public/static/res/home/js/global.js | 484 ++ public/static/res/images/avatar/0.jpg | Bin 0 -> 4989 bytes public/static/res/images/avatar/00.jpg | Bin 0 -> 3284 bytes public/static/res/images/avatar/1.jpg | Bin 0 -> 5504 bytes public/static/res/images/avatar/10.jpg | Bin 0 -> 6377 bytes public/static/res/images/avatar/11.jpg | Bin 0 -> 5754 bytes public/static/res/images/avatar/2.jpg | Bin 0 -> 4430 bytes public/static/res/images/avatar/3.jpg | Bin 0 -> 4884 bytes public/static/res/images/avatar/4.jpg | Bin 0 -> 6404 bytes public/static/res/images/avatar/5.jpg | Bin 0 -> 5562 bytes public/static/res/images/avatar/6.jpg | Bin 0 -> 7270 bytes public/static/res/images/avatar/7.jpg | Bin 0 -> 8313 bytes public/static/res/images/avatar/8.jpg | Bin 0 -> 8891 bytes public/static/res/images/avatar/9.jpg | Bin 0 -> 6804 bytes public/static/res/images/avatar/default.png | Bin 0 -> 6727 bytes public/static/res/images/case.png | Bin 0 -> 7395 bytes public/static/res/images/fly.jpg | Bin 0 -> 9577 bytes public/static/res/images/logo-.png | Bin 0 -> 2781 bytes public/static/res/images/logo-1.png | Bin 0 -> 3168 bytes public/static/res/images/logo.png | Bin 0 -> 22804 bytes .../static/res/images/other/1437100018023.jpg | Bin 0 -> 13174 bytes public/static/res/images/other/study-a.png | Bin 0 -> 5715 bytes public/static/res/images/weixin-1.jpg | Bin 0 -> 26839 bytes public/static/res/images/weixin.jpg | Bin 0 -> 39917 bytes public/static/res/layui/css/layui.css | 2 + public/static/res/layui/css/layui.mobile.css | 2 + public/static/res/layui/css/modules/code.css | 2 + .../css/modules/laydate/default/laydate.css | 2 + .../css/modules/layer/default/icon-ext.png | Bin 0 -> 5911 bytes .../layui/css/modules/layer/default/icon.png | Bin 0 -> 11493 bytes .../layui/css/modules/layer/default/layer.css | 2 + .../css/modules/layer/default/loading-0.gif | Bin 0 -> 5793 bytes .../css/modules/layer/default/loading-1.gif | Bin 0 -> 701 bytes .../css/modules/layer/default/loading-2.gif | Bin 0 -> 1787 bytes public/static/res/layui/font/iconfont.eot | Bin 0 -> 41712 bytes public/static/res/layui/font/iconfont.svg | 485 ++ public/static/res/layui/font/iconfont.ttf | Bin 0 -> 41536 bytes public/static/res/layui/font/iconfont.woff | Bin 0 -> 27256 bytes public/static/res/layui/font/iconfont.woff2 | Bin 0 -> 23140 bytes public/static/res/layui/images/face/0.gif | Bin 0 -> 2689 bytes public/static/res/layui/images/face/1.gif | Bin 0 -> 5514 bytes public/static/res/layui/images/face/10.gif | Bin 0 -> 2797 bytes public/static/res/layui/images/face/11.gif | Bin 0 -> 4121 bytes public/static/res/layui/images/face/12.gif | Bin 0 -> 3361 bytes public/static/res/layui/images/face/13.gif | Bin 0 -> 7425 bytes public/static/res/layui/images/face/14.gif | Bin 0 -> 2375 bytes public/static/res/layui/images/face/15.gif | Bin 0 -> 1793 bytes public/static/res/layui/images/face/16.gif | Bin 0 -> 6721 bytes public/static/res/layui/images/face/17.gif | Bin 0 -> 4439 bytes public/static/res/layui/images/face/18.gif | Bin 0 -> 3017 bytes public/static/res/layui/images/face/19.gif | Bin 0 -> 3040 bytes public/static/res/layui/images/face/2.gif | Bin 0 -> 3222 bytes public/static/res/layui/images/face/20.gif | Bin 0 -> 5144 bytes public/static/res/layui/images/face/21.gif | Bin 0 -> 5191 bytes public/static/res/layui/images/face/22.gif | Bin 0 -> 9823 bytes public/static/res/layui/images/face/23.gif | Bin 0 -> 3792 bytes public/static/res/layui/images/face/24.gif | Bin 0 -> 8096 bytes public/static/res/layui/images/face/25.gif | Bin 0 -> 3127 bytes public/static/res/layui/images/face/26.gif | Bin 0 -> 3291 bytes public/static/res/layui/images/face/27.gif | Bin 0 -> 4377 bytes public/static/res/layui/images/face/28.gif | Bin 0 -> 2793 bytes public/static/res/layui/images/face/29.gif | Bin 0 -> 4854 bytes public/static/res/layui/images/face/3.gif | Bin 0 -> 4017 bytes public/static/res/layui/images/face/30.gif | Bin 0 -> 2555 bytes public/static/res/layui/images/face/31.gif | Bin 0 -> 2002 bytes public/static/res/layui/images/face/32.gif | Bin 0 -> 3481 bytes public/static/res/layui/images/face/33.gif | Bin 0 -> 2454 bytes public/static/res/layui/images/face/34.gif | Bin 0 -> 3700 bytes public/static/res/layui/images/face/35.gif | Bin 0 -> 1800 bytes public/static/res/layui/images/face/36.gif | Bin 0 -> 2331 bytes public/static/res/layui/images/face/37.gif | Bin 0 -> 1513 bytes public/static/res/layui/images/face/38.gif | Bin 0 -> 3615 bytes public/static/res/layui/images/face/39.gif | Bin 0 -> 6495 bytes public/static/res/layui/images/face/4.gif | Bin 0 -> 5689 bytes public/static/res/layui/images/face/40.gif | Bin 0 -> 3154 bytes public/static/res/layui/images/face/41.gif | Bin 0 -> 3644 bytes public/static/res/layui/images/face/42.gif | Bin 0 -> 5305 bytes public/static/res/layui/images/face/43.gif | Bin 0 -> 2674 bytes public/static/res/layui/images/face/44.gif | Bin 0 -> 4126 bytes public/static/res/layui/images/face/45.gif | Bin 0 -> 3417 bytes public/static/res/layui/images/face/46.gif | Bin 0 -> 3007 bytes public/static/res/layui/images/face/47.gif | Bin 0 -> 2333 bytes public/static/res/layui/images/face/48.gif | Bin 0 -> 2689 bytes public/static/res/layui/images/face/49.gif | Bin 0 -> 2315 bytes public/static/res/layui/images/face/5.gif | Bin 0 -> 4567 bytes public/static/res/layui/images/face/50.gif | Bin 0 -> 5866 bytes public/static/res/layui/images/face/51.gif | Bin 0 -> 2785 bytes public/static/res/layui/images/face/52.gif | Bin 0 -> 777 bytes public/static/res/layui/images/face/53.gif | Bin 0 -> 2127 bytes public/static/res/layui/images/face/54.gif | Bin 0 -> 2196 bytes public/static/res/layui/images/face/55.gif | Bin 0 -> 1971 bytes public/static/res/layui/images/face/56.gif | Bin 0 -> 2034 bytes public/static/res/layui/images/face/57.gif | Bin 0 -> 2705 bytes public/static/res/layui/images/face/58.gif | Bin 0 -> 2258 bytes public/static/res/layui/images/face/59.gif | Bin 0 -> 10311 bytes public/static/res/layui/images/face/6.gif | Bin 0 -> 2213 bytes public/static/res/layui/images/face/60.gif | Bin 0 -> 3245 bytes public/static/res/layui/images/face/61.gif | Bin 0 -> 2495 bytes public/static/res/layui/images/face/62.gif | Bin 0 -> 2017 bytes public/static/res/layui/images/face/63.gif | Bin 0 -> 5871 bytes public/static/res/layui/images/face/64.gif | Bin 0 -> 6448 bytes public/static/res/layui/images/face/65.gif | Bin 0 -> 3576 bytes public/static/res/layui/images/face/66.gif | Bin 0 -> 3029 bytes public/static/res/layui/images/face/67.gif | Bin 0 -> 2701 bytes public/static/res/layui/images/face/68.gif | Bin 0 -> 1424 bytes public/static/res/layui/images/face/69.gif | Bin 0 -> 2431 bytes public/static/res/layui/images/face/7.gif | Bin 0 -> 3398 bytes public/static/res/layui/images/face/70.gif | Bin 0 -> 4590 bytes public/static/res/layui/images/face/71.gif | Bin 0 -> 5304 bytes public/static/res/layui/images/face/8.gif | Bin 0 -> 4050 bytes public/static/res/layui/images/face/9.gif | Bin 0 -> 4221 bytes .../static/res/layui/lay/modules/carousel.js | 2 + public/static/res/layui/lay/modules/code.js | 2 + .../res/layui/lay/modules/colorpicker.js | 2 + .../static/res/layui/lay/modules/element.js | 2 + public/static/res/layui/lay/modules/flow.js | 2 + public/static/res/layui/lay/modules/form.js | 2 + public/static/res/layui/lay/modules/jquery.js | 5 + .../static/res/layui/lay/modules/laydate.js | 2 + .../static/res/layui/lay/modules/layedit.js | 2 + public/static/res/layui/lay/modules/layer.js | 2 + .../static/res/layui/lay/modules/laypage.js | 2 + public/static/res/layui/lay/modules/laytpl.js | 2 + public/static/res/layui/lay/modules/mobile.js | 2 + public/static/res/layui/lay/modules/rate.js | 2 + public/static/res/layui/lay/modules/slider.js | 2 + public/static/res/layui/lay/modules/table.js | 2 + .../static/res/layui/lay/modules/transfer.js | 2 + public/static/res/layui/lay/modules/tree.js | 2 + public/static/res/layui/lay/modules/upload.js | 2 + public/static/res/layui/lay/modules/util.js | 2 + public/static/res/layui/layui.all.js | 5 + public/static/res/layui/layui.js | 2 + public/static/res/mods/admin.js | 33 + public/static/res/mods/case.js | 165 + public/static/res/mods/face.js | 9 + public/static/res/mods/global.js | 163 + public/static/res/mods/hm.js | 67 + public/static/res/mods/html5shiv.min.js | 4 + public/static/res/mods/index.js | 867 +++ public/static/res/mods/jie.js | 260 + public/static/res/mods/jquery.min.js | 2 + public/static/res/mods/user.js | 368 ++ public/storage/.gitignore | 1 + .../0bf9614dede54219e4137f348319de28.jpg | Bin 0 -> 4884 bytes .../1f917160f3937c3e610fa4ebe34d9f91.jpg | Bin 0 -> 8891 bytes .../25f2bd605a5c55b17a93a2d956bf4c69.jpg | Bin 0 -> 6377 bytes .../3a39747f295e45669ff5e23a1c9aacd3.jpg | Bin 0 -> 8891 bytes .../4f296347b13153fd717c9ad56f2629cf.jpg | Bin 0 -> 6804 bytes .../60631fe284a17a3651d97e96676f717c.jpg | Bin 0 -> 5562 bytes .../6f593cc09db401b1b2644542fd71b2d5.jpg | Bin 0 -> 6804 bytes .../71c1ec536d4e1c2f159a2f4236ce54e1.jpg | Bin 0 -> 8891 bytes .../791e97c9ad0779115909747834e5fca1.jpg | Bin 0 -> 8891 bytes .../7f2400039223f757180e2300b62599ee.jpg | Bin 0 -> 8313 bytes .../7f67fdc582fcfa2f00955a177bd3bfe8.jpg | Bin 0 -> 5562 bytes .../9d1dfbe9160b02fa78da681d96b67fec.jpg | Bin 0 -> 6377 bytes .../9e48ddb4fb624a0af28a5eae944a3b3a.jpg | Bin 0 -> 8313 bytes .../9e8e1275f3dd8fb634f1a0407122c3de.jpg | Bin 0 -> 8313 bytes .../9eeb560c500a699cc3ebfb977b5678d8.jpg | Bin 0 -> 6377 bytes .../a3d22b3b634e2df29c420d8e44a7ccda.jpg | Bin 0 -> 8313 bytes .../aac1fcf26d2eb0c319bf0cf3d6ae4efe.jpg | Bin 0 -> 3284 bytes .../addd7fa2a2f039ae417e3c2d7f966e96.jpg | Bin 0 -> 4430 bytes .../d35703a3201343cdd1388c23a57b1b23.jpg | Bin 0 -> 6404 bytes .../d8b285fab7fbe20dee9f59886ca295b4.jpg | Bin 0 -> 4884 bytes .../e7c471d3ce714f7b24236d9f56035820.jpg | Bin 0 -> 5562 bytes .../ee149a36649d95e046a3980d6aa9fd54.jpg | Bin 0 -> 6804 bytes .../f8c246f58e0c55be2a67dff501c67591.jpg | Bin 0 -> 8891 bytes .../024c20903d71c81279fd3596e0d70703.jpg | Bin 0 -> 4884 bytes .../1cc50c26dd808dfd60b42d52e2cd3a4a.jpg | Bin 0 -> 4884 bytes .../23ae68120a40c005e796b1b3fefb9f1b.jpg | Bin 0 -> 4884 bytes .../3d5595caebae363bba6485b6fcd508fa.jpg | Bin 0 -> 3284 bytes .../405762f2f6376bac42192c9b3888c0ae.jpg | Bin 0 -> 4884 bytes .../5c1fc454e9bb570bacc1f99e65a2a1d4.jpg | Bin 0 -> 4884 bytes .../6579e5ce30a7eef65043d5a405e958e1.jpg | Bin 0 -> 4884 bytes .../af3de8f92fc439f0c2b3dc78cb884819.jpg | Bin 0 -> 4884 bytes .../c3e1b97c457fd028136fdc6beb9e9d15.jpg | Bin 0 -> 4884 bytes .../c5e232fb20eb568bfd52a54a021bf234.jpg | Bin 0 -> 4884 bytes .../cbcb0e4422d6407e2c08eaf4266a7021.jpg | Bin 0 -> 4884 bytes .../77c0946e5f63130d2ed9843ad1cc96bb.jpg | Bin 0 -> 87961 bytes .../96515cfc6dc4af2fb389902ece0d40ba.png | Bin 0 -> 89185 bytes .../71e0ae6f8eab27fd6b2e1043b1dbf6a0.png | Bin 0 -> 89185 bytes .../98007d2a5887baff9586f54ca5c1b8b5.png | Bin 0 -> 89185 bytes .../113995c2f98349e28eba61228d3606b9.jpg | Bin 0 -> 6404 bytes .../24705b2711def6075610a7800d45388f.jpg | Bin 0 -> 4884 bytes .../3afe87a891ca674048f3dcb7554f3c3b.jpg | Bin 0 -> 6404 bytes .../a1228c886a32994544c9c7dd67b30432.jpg | Bin 0 -> 4884 bytes .../2162d34bfef8c95c963c9da5eb808f62.jpg | Bin 0 -> 92057 bytes .../26f86dadf178f26341fe3f16e32f0751.jpg | Bin 0 -> 142680 bytes .../3abceed5fb0039e777e99054ce9f4473.jpg | Bin 0 -> 74940 bytes .../3af70bb3bc6eed40ff6bf026b89bf040.jpg | Bin 0 -> 91512 bytes .../7f5d269bdad555d8534043d909839abe.jpg | Bin 0 -> 366152 bytes .../872ee4fdb6e9769ff38b4cd9ec325816.jpg | Bin 0 -> 387422 bytes .../9a60c80246ce1fc2c9d0877c7b3b9405.jpg | Bin 0 -> 354188 bytes .../bb5b559f662b0919df0ab7a938b3328c.jpg | Bin 0 -> 81032 bytes .../c38318c4c8b994d9bf6c97d0ae2b3731.jpg | Bin 0 -> 74940 bytes .../c94f329e8dd1de626ef62c88f2909c3f.png | Bin 0 -> 89185 bytes .../cb7655d02ef747b4d9e7d7940e73f6d8.jpg | Bin 0 -> 81414 bytes .../e8c1ae660e8306a727bcbdc98bf905b2.jpg | Bin 0 -> 92057 bytes .../eee52a488efe55b76a996d8fa33fb680.jpg | Bin 0 -> 92057 bytes .../f3fe96dcc4b49b2c90e64053ee0ddf9a.jpg | Bin 0 -> 92057 bytes .../fb73f03e45cf65853f39782a86ee9dd1.jpg | Bin 0 -> 92057 bytes .../9406cc4b8f3e8271a28ac9db953937f5.jpg | Bin 0 -> 33341 bytes .../21a2a32b90c538c7dd237c30c061eb33.jpg | Bin 0 -> 3284 bytes .../39a98466ec0962cf3ef3f0f33a22aae7.jpg | Bin 0 -> 3284 bytes .../81d04eb7a90d267dc8846aceed18142a.jpg | Bin 0 -> 3284 bytes .../88b8c053ef9fc2720d25b6ca6d8f5b38.png | Bin 0 -> 22804 bytes .../a5671b2c16a37ec8587f31989dab1177.png | Bin 0 -> 22804 bytes .../a8507665cb1705e93ab75ca884604b41.jpg | Bin 0 -> 23267 bytes .../b58623ad176b79128ec97623bfb23c53.jpg | Bin 0 -> 3284 bytes .../cde4ae74973f370ff78ffb8cb2af6776.png | Bin 0 -> 22804 bytes .../d1b642889179d06626dea8e78bb8e96a.png | Bin 0 -> 22804 bytes .../f3c5b260b72796244f67505311585bca.png | Bin 0 -> 22804 bytes .../969cb27c173d4db2692af42e20fe2683.png | Bin 0 -> 22804 bytes .../00607adc1d037231cead4e21269fd4b0.jpg | Bin 0 -> 33341 bytes .../00a19f605a29657d18ac8cea8ab13b33.jpg | Bin 0 -> 33341 bytes .../03c9bc918a4667307b920531a690fc6c.jpg | Bin 0 -> 8998 bytes .../3e71590697709feb5cda3abcacd19342.jpg | Bin 0 -> 33341 bytes .../3f27c49dc8ccfd29d964ac1bffc30fe6.jpg | Bin 0 -> 8998 bytes .../4b8e1313f9cf93dfb81eb0606e6890ab.jpg | Bin 0 -> 8998 bytes .../500be9a576cec7f2e24a6a096ebc6ea1.jpg | Bin 0 -> 8998 bytes .../54d992c2584affc7da8f64040024b3a2.jpg | Bin 0 -> 8998 bytes .../58b9284cf63a422c4c097d1a89b4292d.jpg | Bin 0 -> 8998 bytes .../61112ceeb1bc4c92395320d49ece11b0.jpg | Bin 0 -> 8998 bytes .../70bd419024dc2c81135f6563c63b1876.jpg | Bin 0 -> 8998 bytes .../84cc601c70ba68d767a1a3cbcef5bb80.jpg | Bin 0 -> 102283 bytes .../95630e9856c014a1363637422626a852.jpg | Bin 0 -> 33341 bytes .../d20b3a461ebdcee01f73de6d18dcc860.jpg | Bin 0 -> 8998 bytes .../d9a89c72e89141a751af442c875d5086.jpg | Bin 0 -> 8998 bytes .../de095f298faf9fa8e09a5226f0f61823.jpg | Bin 0 -> 8998 bytes .../deb4dceee40a3e8e83e477f306505211.jpg | Bin 0 -> 8998 bytes .../6e6486b81a5b07be4425b676513b0334.jpg | Bin 0 -> 39917 bytes .../d35a49fda5839d4b27f65076fb57b7f2.jpg | Bin 0 -> 39917 bytes .../e87f15527f32e690538671753010fd00.jpg | Bin 0 -> 39917 bytes public/storage/slider/F1.jpg | Bin 0 -> 102283 bytes public/storage/slider/F2.jpg | Bin 0 -> 241351 bytes route/admin/route.php | 15 + route/app.php | 14 + route/index/route.php | 25 + runtime/.gitignore | 2 + think | 10 + vendor/autoload.php | 7 + vendor/bin/var-dump-server | 14 + vendor/bin/var-dump-server.bat | 4 + vendor/composer/ClassLoader.php | 445 ++ vendor/composer/LICENSE | 21 + vendor/composer/autoload_classmap.php | 9 + vendor/composer/autoload_files.php | 15 + vendor/composer/autoload_namespaces.php | 10 + vendor/composer/autoload_psr4.php | 27 + vendor/composer/autoload_real.php | 70 + vendor/composer/autoload_static.php | 151 + vendor/composer/installed.json | 1194 ++++ .../flysystem-cached-adapter/.editorconfig | 10 + .../flysystem-cached-adapter/.gitignore | 4 + .../league/flysystem-cached-adapter/.php_cs | 7 + .../flysystem-cached-adapter/.scrutinizer.yml | 34 + .../flysystem-cached-adapter/.travis.yml | 29 + .../league/flysystem-cached-adapter/LICENSE | 19 + .../clover/.gitignore | 2 + .../flysystem-cached-adapter/composer.json | 30 + .../flysystem-cached-adapter/phpspec.yml | 6 + .../flysystem-cached-adapter/phpunit.php | 3 + .../flysystem-cached-adapter/phpunit.xml | 29 + .../league/flysystem-cached-adapter/readme.md | 20 + .../spec/CachedAdapterSpec.php | 435 ++ .../src/CacheInterface.php | 101 + .../src/CachedAdapter.php | 324 ++ .../src/Storage/AbstractCache.php | 417 ++ .../src/Storage/Adapter.php | 115 + .../src/Storage/Memcached.php | 59 + .../src/Storage/Memory.php | 22 + .../src/Storage/Noop.php | 171 + .../src/Storage/PhpRedis.php | 62 + .../src/Storage/Predis.php | 75 + .../src/Storage/Psr6Cache.php | 59 + .../src/Storage/Stash.php | 60 + .../tests/AdapterCacheTests.php | 104 + .../tests/InspectionTests.php | 16 + .../tests/MemcachedTests.php | 35 + .../tests/MemoryCacheTests.php | 255 + .../tests/NoopCacheTests.php | 35 + .../tests/PhpRedisTests.php | 45 + .../tests/PredisTests.php | 55 + .../tests/Psr6CacheTest.php | 45 + .../tests/StashTest.php | 43 + vendor/league/flysystem/LICENSE | 19 + vendor/league/flysystem/SECURITY.md | 16 + vendor/league/flysystem/composer.json | 65 + vendor/league/flysystem/deprecations.md | 19 + .../flysystem/src/Adapter/AbstractAdapter.php | 72 + .../src/Adapter/AbstractFtpAdapter.php | 693 +++ .../src/Adapter/CanOverwriteFiles.php | 12 + vendor/league/flysystem/src/Adapter/Ftp.php | 572 ++ vendor/league/flysystem/src/Adapter/Ftpd.php | 45 + vendor/league/flysystem/src/Adapter/Local.php | 532 ++ .../flysystem/src/Adapter/NullAdapter.php | 144 + .../Polyfill/NotSupportingVisibilityTrait.php | 33 + .../Adapter/Polyfill/StreamedCopyTrait.php | 51 + .../Adapter/Polyfill/StreamedReadingTrait.php | 44 + .../src/Adapter/Polyfill/StreamedTrait.php | 9 + .../Adapter/Polyfill/StreamedWritingTrait.php | 60 + .../flysystem/src/Adapter/SynologyFtp.php | 8 + .../league/flysystem/src/AdapterInterface.php | 118 + vendor/league/flysystem/src/Config.php | 107 + .../league/flysystem/src/ConfigAwareTrait.php | 49 + vendor/league/flysystem/src/Directory.php | 31 + vendor/league/flysystem/src/Exception.php | 8 + vendor/league/flysystem/src/File.php | 205 + .../flysystem/src/FileExistsException.php | 37 + .../flysystem/src/FileNotFoundException.php | 37 + vendor/league/flysystem/src/Filesystem.php | 408 ++ .../flysystem/src/FilesystemInterface.php | 284 + .../src/FilesystemNotFoundException.php | 12 + vendor/league/flysystem/src/Handler.php | 137 + vendor/league/flysystem/src/MountManager.php | 648 +++ .../flysystem/src/NotSupportedException.php | 37 + .../flysystem/src/Plugin/AbstractPlugin.php | 24 + .../league/flysystem/src/Plugin/EmptyDir.php | 34 + .../flysystem/src/Plugin/ForcedCopy.php | 44 + .../flysystem/src/Plugin/ForcedRename.php | 44 + .../flysystem/src/Plugin/GetWithMetadata.php | 51 + .../league/flysystem/src/Plugin/ListFiles.php | 35 + .../league/flysystem/src/Plugin/ListPaths.php | 36 + .../league/flysystem/src/Plugin/ListWith.php | 60 + .../flysystem/src/Plugin/PluggableTrait.php | 97 + .../src/Plugin/PluginNotFoundException.php | 10 + .../league/flysystem/src/PluginInterface.php | 20 + vendor/league/flysystem/src/ReadInterface.php | 88 + .../flysystem/src/RootViolationException.php | 10 + vendor/league/flysystem/src/SafeStorage.php | 39 + .../flysystem/src/UnreadableFileException.php | 18 + vendor/league/flysystem/src/Util.php | 353 ++ .../src/Util/ContentListingFormatter.php | 122 + vendor/league/flysystem/src/Util/MimeType.php | 245 + .../flysystem/src/Util/StreamHasher.php | 36 + vendor/opis/closure/CHANGELOG.md | 220 + vendor/opis/closure/LICENSE | 20 + vendor/opis/closure/NOTICE | 9 + vendor/opis/closure/README.md | 98 + vendor/opis/closure/autoload.php | 39 + vendor/opis/closure/composer.json | 40 + vendor/opis/closure/functions.php | 38 + vendor/opis/closure/src/Analyzer.php | 59 + vendor/opis/closure/src/ClosureContext.php | 34 + vendor/opis/closure/src/ClosureScope.php | 25 + vendor/opis/closure/src/ClosureStream.php | 99 + vendor/opis/closure/src/ISecurityProvider.php | 25 + vendor/opis/closure/src/ReflectionClosure.php | 1014 ++++ vendor/opis/closure/src/SecurityException.php | 18 + vendor/opis/closure/src/SecurityProvider.php | 42 + vendor/opis/closure/src/SelfReference.php | 31 + .../opis/closure/src/SerializableClosure.php | 668 +++ vendor/phpmailer/phpmailer/COMMITMENT | 46 + vendor/phpmailer/phpmailer/LICENSE | 502 ++ vendor/phpmailer/phpmailer/README.md | 221 + vendor/phpmailer/phpmailer/SECURITY.md | 28 + vendor/phpmailer/phpmailer/VERSION | 1 + vendor/phpmailer/phpmailer/composer.json | 51 + .../phpmailer/phpmailer/get_oauth_token.php | 144 + .../phpmailer/language/phpmailer.lang-am.php | 26 + .../phpmailer/language/phpmailer.lang-ar.php | 27 + .../phpmailer/language/phpmailer.lang-az.php | 26 + .../phpmailer/language/phpmailer.lang-ba.php | 26 + .../phpmailer/language/phpmailer.lang-be.php | 26 + .../phpmailer/language/phpmailer.lang-bg.php | 26 + .../phpmailer/language/phpmailer.lang-ca.php | 26 + .../phpmailer/language/phpmailer.lang-ch.php | 26 + .../phpmailer/language/phpmailer.lang-cs.php | 25 + .../phpmailer/language/phpmailer.lang-da.php | 26 + .../phpmailer/language/phpmailer.lang-de.php | 25 + .../phpmailer/language/phpmailer.lang-el.php | 25 + .../phpmailer/language/phpmailer.lang-eo.php | 25 + .../phpmailer/language/phpmailer.lang-es.php | 26 + .../phpmailer/language/phpmailer.lang-et.php | 27 + .../phpmailer/language/phpmailer.lang-fa.php | 27 + .../phpmailer/language/phpmailer.lang-fi.php | 27 + .../phpmailer/language/phpmailer.lang-fo.php | 26 + .../phpmailer/language/phpmailer.lang-fr.php | 29 + .../phpmailer/language/phpmailer.lang-gl.php | 26 + .../phpmailer/language/phpmailer.lang-he.php | 26 + .../phpmailer/language/phpmailer.lang-hi.php | 26 + .../phpmailer/language/phpmailer.lang-hr.php | 26 + .../phpmailer/language/phpmailer.lang-hu.php | 26 + .../phpmailer/language/phpmailer.lang-id.php | 27 + .../phpmailer/language/phpmailer.lang-it.php | 27 + .../phpmailer/language/phpmailer.lang-ja.php | 27 + .../phpmailer/language/phpmailer.lang-ka.php | 26 + .../phpmailer/language/phpmailer.lang-ko.php | 26 + .../phpmailer/language/phpmailer.lang-lt.php | 26 + .../phpmailer/language/phpmailer.lang-lv.php | 26 + .../phpmailer/language/phpmailer.lang-mg.php | 25 + .../phpmailer/language/phpmailer.lang-ms.php | 26 + .../phpmailer/language/phpmailer.lang-nb.php | 25 + .../phpmailer/language/phpmailer.lang-nl.php | 28 + .../phpmailer/language/phpmailer.lang-pl.php | 26 + .../phpmailer/language/phpmailer.lang-pt.php | 26 + .../language/phpmailer.lang-pt_br.php | 29 + .../phpmailer/language/phpmailer.lang-ro.php | 26 + .../phpmailer/language/phpmailer.lang-ru.php | 27 + .../phpmailer/language/phpmailer.lang-sk.php | 27 + .../phpmailer/language/phpmailer.lang-sl.php | 27 + .../phpmailer/language/phpmailer.lang-sr.php | 27 + .../phpmailer/language/phpmailer.lang-sv.php | 26 + .../phpmailer/language/phpmailer.lang-tl.php | 27 + .../phpmailer/language/phpmailer.lang-tr.php | 30 + .../phpmailer/language/phpmailer.lang-uk.php | 27 + .../phpmailer/language/phpmailer.lang-vi.php | 26 + .../phpmailer/language/phpmailer.lang-zh.php | 28 + .../language/phpmailer.lang-zh_cn.php | 28 + vendor/phpmailer/phpmailer/src/Exception.php | 39 + vendor/phpmailer/phpmailer/src/OAuth.php | 138 + vendor/phpmailer/phpmailer/src/PHPMailer.php | 4778 +++++++++++++++++ vendor/phpmailer/phpmailer/src/POP3.php | 419 ++ vendor/phpmailer/phpmailer/src/SMTP.php | 1370 +++++ vendor/psr/cache/CHANGELOG.md | 16 + vendor/psr/cache/LICENSE.txt | 19 + vendor/psr/cache/README.md | 9 + vendor/psr/cache/composer.json | 25 + vendor/psr/cache/src/CacheException.php | 10 + vendor/psr/cache/src/CacheItemInterface.php | 105 + .../psr/cache/src/CacheItemPoolInterface.php | 138 + .../cache/src/InvalidArgumentException.php | 13 + vendor/psr/container/.gitignore | 3 + vendor/psr/container/LICENSE | 21 + vendor/psr/container/README.md | 5 + vendor/psr/container/composer.json | 27 + .../src/ContainerExceptionInterface.php | 13 + .../psr/container/src/ContainerInterface.php | 37 + .../src/NotFoundExceptionInterface.php | 13 + vendor/psr/log/.gitignore | 1 + vendor/psr/log/LICENSE | 19 + vendor/psr/log/Psr/Log/AbstractLogger.php | 128 + .../log/Psr/Log/InvalidArgumentException.php | 7 + vendor/psr/log/Psr/Log/LogLevel.php | 18 + .../psr/log/Psr/Log/LoggerAwareInterface.php | 18 + vendor/psr/log/Psr/Log/LoggerAwareTrait.php | 26 + vendor/psr/log/Psr/Log/LoggerInterface.php | 125 + vendor/psr/log/Psr/Log/LoggerTrait.php | 142 + vendor/psr/log/Psr/Log/NullLogger.php | 30 + .../log/Psr/Log/Test/LoggerInterfaceTest.php | 146 + vendor/psr/log/Psr/Log/Test/TestLogger.php | 147 + vendor/psr/log/README.md | 58 + vendor/psr/log/composer.json | 26 + vendor/psr/simple-cache/.editorconfig | 12 + vendor/psr/simple-cache/LICENSE.md | 21 + vendor/psr/simple-cache/README.md | 8 + vendor/psr/simple-cache/composer.json | 25 + .../psr/simple-cache/src/CacheException.php | 10 + .../psr/simple-cache/src/CacheInterface.php | 114 + .../src/InvalidArgumentException.php | 13 + vendor/services.php | 8 + vendor/symfony/polyfill-mbstring/LICENSE | 19 + vendor/symfony/polyfill-mbstring/Mbstring.php | 840 +++ vendor/symfony/polyfill-mbstring/README.md | 13 + .../Resources/unidata/lowerCase.php | 1096 ++++ .../Resources/unidata/titleCaseRegexp.php | 5 + .../Resources/unidata/upperCase.php | 1104 ++++ .../symfony/polyfill-mbstring/bootstrap.php | 62 + .../symfony/polyfill-mbstring/composer.json | 34 + vendor/symfony/polyfill-php72/LICENSE | 19 + vendor/symfony/polyfill-php72/Php72.php | 216 + vendor/symfony/polyfill-php72/README.md | 27 + vendor/symfony/polyfill-php72/bootstrap.php | 36 + vendor/symfony/polyfill-php72/composer.json | 31 + vendor/symfony/var-dumper/CHANGELOG.md | 53 + .../symfony/var-dumper/Caster/AmqpCaster.php | 212 + vendor/symfony/var-dumper/Caster/ArgsStub.php | 80 + vendor/symfony/var-dumper/Caster/Caster.php | 171 + .../symfony/var-dumper/Caster/ClassStub.php | 106 + .../symfony/var-dumper/Caster/ConstStub.php | 36 + .../var-dumper/Caster/CutArrayStub.php | 30 + vendor/symfony/var-dumper/Caster/CutStub.php | 64 + .../symfony/var-dumper/Caster/DOMCaster.php | 304 ++ .../symfony/var-dumper/Caster/DateCaster.php | 124 + .../var-dumper/Caster/DoctrineCaster.php | 62 + vendor/symfony/var-dumper/Caster/DsCaster.php | 70 + .../symfony/var-dumper/Caster/DsPairStub.php | 28 + vendor/symfony/var-dumper/Caster/EnumStub.php | 30 + .../var-dumper/Caster/ExceptionCaster.php | 383 ++ .../symfony/var-dumper/Caster/FrameStub.php | 30 + .../symfony/var-dumper/Caster/GmpCaster.php | 32 + .../symfony/var-dumper/Caster/IntlCaster.php | 172 + vendor/symfony/var-dumper/Caster/LinkStub.php | 108 + .../var-dumper/Caster/MemcachedCaster.php | 81 + .../symfony/var-dumper/Caster/PdoCaster.php | 122 + .../symfony/var-dumper/Caster/PgSqlCaster.php | 156 + .../var-dumper/Caster/ProxyManagerCaster.php | 33 + .../symfony/var-dumper/Caster/RedisCaster.php | 152 + .../var-dumper/Caster/ReflectionCaster.php | 384 ++ .../var-dumper/Caster/ResourceCaster.php | 100 + .../symfony/var-dumper/Caster/SplCaster.php | 228 + .../symfony/var-dumper/Caster/StubCaster.php | 84 + .../var-dumper/Caster/SymfonyCaster.php | 69 + .../symfony/var-dumper/Caster/TraceStub.php | 36 + .../var-dumper/Caster/XmlReaderCaster.php | 79 + .../var-dumper/Caster/XmlResourceCaster.php | 63 + .../var-dumper/Cloner/AbstractCloner.php | 366 ++ .../var-dumper/Cloner/ClonerInterface.php | 27 + vendor/symfony/var-dumper/Cloner/Cursor.php | 43 + vendor/symfony/var-dumper/Cloner/Data.php | 455 ++ .../var-dumper/Cloner/DumperInterface.php | 56 + vendor/symfony/var-dumper/Cloner/Stub.php | 67 + .../symfony/var-dumper/Cloner/VarCloner.php | 302 ++ .../Command/Descriptor/CliDescriptor.php | 88 + .../Descriptor/DumpDescriptorInterface.php | 23 + .../Command/Descriptor/HtmlDescriptor.php | 119 + .../var-dumper/Command/ServerDumpCommand.php | 99 + .../var-dumper/Dumper/AbstractDumper.php | 212 + .../symfony/var-dumper/Dumper/CliDumper.php | 650 +++ .../ContextProvider/CliContextProvider.php | 32 + .../ContextProviderInterface.php | 25 + .../RequestContextProvider.php | 51 + .../ContextProvider/SourceContextProvider.php | 126 + .../var-dumper/Dumper/DataDumperInterface.php | 24 + .../symfony/var-dumper/Dumper/HtmlDumper.php | 1004 ++++ .../var-dumper/Dumper/ServerDumper.php | 53 + .../Exception/ThrowingCasterException.php | 26 + vendor/symfony/var-dumper/LICENSE | 19 + vendor/symfony/var-dumper/README.md | 15 + .../var-dumper/Resources/bin/var-dump-server | 63 + .../Resources/css/htmlDescriptor.css | 130 + .../var-dumper/Resources/functions/dump.php | 43 + .../var-dumper/Resources/js/htmlDescriptor.js | 10 + .../symfony/var-dumper/Server/Connection.php | 95 + .../symfony/var-dumper/Server/DumpServer.php | 107 + .../var-dumper/Test/VarDumperTestTrait.php | 87 + vendor/symfony/var-dumper/VarDumper.php | 60 + vendor/symfony/var-dumper/composer.json | 54 + vendor/topthink/framework/.gitignore | 7 + vendor/topthink/framework/.travis.yml | 34 + vendor/topthink/framework/CONTRIBUTING.md | 119 + vendor/topthink/framework/LICENSE.txt | 32 + vendor/topthink/framework/README.md | 86 + vendor/topthink/framework/composer.json | 55 + vendor/topthink/framework/logo.png | Bin 0 -> 6995 bytes vendor/topthink/framework/phpunit.xml.dist | 25 + vendor/topthink/framework/src/helper.php | 663 +++ vendor/topthink/framework/src/lang/zh-cn.php | 148 + vendor/topthink/framework/src/think/App.php | 610 +++ vendor/topthink/framework/src/think/Cache.php | 197 + .../topthink/framework/src/think/Config.php | 193 + .../topthink/framework/src/think/Console.php | 732 +++ .../framework/src/think/Container.php | 551 ++ .../topthink/framework/src/think/Cookie.php | 230 + vendor/topthink/framework/src/think/Db.php | 114 + vendor/topthink/framework/src/think/Env.php | 181 + vendor/topthink/framework/src/think/Event.php | 301 ++ .../framework/src/think/Exception.php | 60 + .../topthink/framework/src/think/Facade.php | 98 + vendor/topthink/framework/src/think/File.php | 187 + .../framework/src/think/Filesystem.php | 89 + vendor/topthink/framework/src/think/Http.php | 285 + vendor/topthink/framework/src/think/Lang.php | 277 + vendor/topthink/framework/src/think/Log.php | 342 ++ .../topthink/framework/src/think/Manager.php | 176 + .../framework/src/think/Middleware.php | 259 + .../topthink/framework/src/think/Pipeline.php | 106 + .../topthink/framework/src/think/Request.php | 2123 ++++++++ .../topthink/framework/src/think/Response.php | 410 ++ vendor/topthink/framework/src/think/Route.php | 894 +++ .../topthink/framework/src/think/Service.php | 66 + .../topthink/framework/src/think/Session.php | 65 + .../topthink/framework/src/think/Validate.php | 1677 ++++++ vendor/topthink/framework/src/think/View.php | 187 + .../framework/src/think/cache/Driver.php | 347 ++ .../framework/src/think/cache/TagSet.php | 130 + .../framework/src/think/cache/driver/File.php | 304 ++ .../src/think/cache/driver/Memcache.php | 209 + .../src/think/cache/driver/Memcached.php | 221 + .../src/think/cache/driver/Redis.php | 248 + .../src/think/cache/driver/Wincache.php | 175 + .../framework/src/think/console/Command.php | 504 ++ .../framework/src/think/console/Input.php | 465 ++ .../framework/src/think/console/LICENSE | 19 + .../framework/src/think/console/Output.php | 224 + .../framework/src/think/console/Table.php | 300 ++ .../framework/src/think/console/bin/README.md | 1 + .../src/think/console/bin/hiddeninput.exe | Bin 0 -> 9216 bytes .../src/think/console/command/Clear.php | 64 + .../src/think/console/command/Help.php | 69 + .../src/think/console/command/Lists.php | 73 + .../src/think/console/command/Make.php | 99 + .../src/think/console/command/RouteList.php | 129 + .../src/think/console/command/RunServer.php | 57 + .../think/console/command/ServiceDiscover.php | 48 + .../think/console/command/VendorPublish.php | 66 + .../src/think/console/command/Version.php | 33 + .../think/console/command/make/Command.php | 55 + .../think/console/command/make/Controller.php | 56 + .../src/think/console/command/make/Event.php | 35 + .../think/console/command/make/Listener.php | 35 + .../think/console/command/make/Middleware.php | 36 + .../src/think/console/command/make/Model.php | 36 + .../think/console/command/make/Service.php | 36 + .../think/console/command/make/Subscribe.php | 35 + .../think/console/command/make/Validate.php | 39 + .../console/command/make/stubs/command.stub | 26 + .../command/make/stubs/controller.api.stub | 64 + .../command/make/stubs/controller.plain.stub | 9 + .../command/make/stubs/controller.stub | 85 + .../console/command/make/stubs/event.stub | 8 + .../console/command/make/stubs/listener.stub | 17 + .../command/make/stubs/middleware.stub | 19 + .../console/command/make/stubs/model.stub | 14 + .../console/command/make/stubs/service.stub | 29 + .../console/command/make/stubs/subscribe.stub | 8 + .../console/command/make/stubs/validate.stub | 25 + .../think/console/command/optimize/Route.php | 67 + .../think/console/command/optimize/Schema.php | 116 + .../src/think/console/input/Argument.php | 115 + .../src/think/console/input/Definition.php | 375 ++ .../src/think/console/input/Option.php | 190 + .../src/think/console/output/Ask.php | 336 ++ .../src/think/console/output/Descriptor.php | 319 ++ .../src/think/console/output/Formatter.php | 198 + .../src/think/console/output/Question.php | 211 + .../console/output/descriptor/Console.php | 153 + .../think/console/output/driver/Buffer.php | 52 + .../think/console/output/driver/Console.php | 368 ++ .../think/console/output/driver/Nothing.php | 33 + .../think/console/output/formatter/Stack.php | 116 + .../think/console/output/formatter/Style.php | 190 + .../think/console/output/question/Choice.php | 163 + .../console/output/question/Confirmation.php | 57 + .../think/contract/CacheHandlerInterface.php | 88 + .../think/contract/LogHandlerInterface.php | 28 + .../think/contract/ModelRelationInterface.php | 99 + .../contract/SessionHandlerInterface.php | 23 + .../contract/TemplateHandlerInterface.php | 61 + .../framework/src/think/event/AppInit.php | 19 + .../framework/src/think/event/HttpEnd.php | 19 + .../framework/src/think/event/HttpRun.php | 19 + .../framework/src/think/event/LogWrite.php | 31 + .../framework/src/think/event/RouteLoaded.php | 21 + .../exception/ClassNotFoundException.php | 39 + .../src/think/exception/ErrorException.php | 57 + .../src/think/exception/FileException.php | 17 + .../think/exception/FuncNotFoundException.php | 30 + .../framework/src/think/exception/Handle.php | 334 ++ .../src/think/exception/HttpException.php | 42 + .../think/exception/HttpResponseException.php | 37 + .../exception/InvalidArgumentException.php | 22 + .../exception/RouteNotFoundException.php | 26 + .../src/think/exception/ValidateException.php | 37 + .../framework/src/think/facade/App.php | 33 + .../framework/src/think/facade/Cache.php | 33 + .../framework/src/think/facade/Config.php | 33 + .../framework/src/think/facade/Console.php | 33 + .../framework/src/think/facade/Cookie.php | 33 + .../framework/src/think/facade/Env.php | 33 + .../framework/src/think/facade/Event.php | 33 + .../framework/src/think/facade/Filesystem.php | 28 + .../framework/src/think/facade/Lang.php | 33 + .../framework/src/think/facade/Log.php | 33 + .../framework/src/think/facade/Middleware.php | 33 + .../framework/src/think/facade/Request.php | 33 + .../framework/src/think/facade/Route.php | 33 + .../framework/src/think/facade/Session.php | 33 + .../framework/src/think/facade/Validate.php | 39 + .../framework/src/think/facade/View.php | 33 + .../framework/src/think/file/UploadedFile.php | 143 + .../src/think/filesystem/CacheStore.php | 54 + .../framework/src/think/filesystem/Driver.php | 133 + .../src/think/filesystem/driver/Local.php | 41 + .../src/think/initializer/BootService.php | 26 + .../framework/src/think/initializer/Error.php | 117 + .../src/think/initializer/RegisterService.php | 48 + .../framework/src/think/log/Channel.php | 282 + .../framework/src/think/log/ChannelSet.php | 39 + .../framework/src/think/log/driver/File.php | 205 + .../framework/src/think/log/driver/Socket.php | 306 ++ .../src/think/middleware/AllowCrossDomain.php | 66 + .../think/middleware/CheckRequestCache.php | 163 + .../src/think/middleware/FormTokenCheck.php | 45 + .../src/think/middleware/LoadLangPack.php | 61 + .../src/think/middleware/SessionInit.php | 80 + .../framework/src/think/response/File.php | 145 + .../framework/src/think/response/Html.php | 34 + .../framework/src/think/response/Json.php | 62 + .../framework/src/think/response/Jsonp.php | 74 + .../framework/src/think/response/Redirect.php | 98 + .../framework/src/think/response/View.php | 149 + .../framework/src/think/response/Xml.php | 127 + .../framework/src/think/route/Dispatch.php | 265 + .../framework/src/think/route/Domain.php | 183 + .../framework/src/think/route/Resource.php | 251 + .../framework/src/think/route/Rule.php | 925 ++++ .../framework/src/think/route/RuleGroup.php | 541 ++ .../framework/src/think/route/RuleItem.php | 330 ++ .../framework/src/think/route/RuleName.php | 195 + .../framework/src/think/route/Url.php | 512 ++ .../src/think/route/dispatch/Callback.php | 30 + .../src/think/route/dispatch/Controller.php | 180 + .../src/think/route/dispatch/Redirect.php | 27 + .../src/think/route/dispatch/Response.php | 27 + .../src/think/route/dispatch/Url.php | 118 + .../src/think/route/dispatch/View.php | 28 + .../src/think/service/ModelService.php | 47 + .../src/think/service/PaginatorService.php | 52 + .../src/think/service/ValidateService.php | 31 + .../framework/src/think/session/Store.php | 340 ++ .../src/think/session/driver/Cache.php | 50 + .../src/think/session/driver/File.php | 249 + .../src/think/validate/ValidateRule.php | 172 + .../framework/src/think/view/driver/Php.php | 191 + .../framework/src/tpl/think_exception.tpl | 502 ++ vendor/topthink/framework/tests/AppTest.php | 215 + vendor/topthink/framework/tests/CacheTest.php | 149 + .../topthink/framework/tests/ConfigTest.php | 46 + .../framework/tests/ContainerTest.php | 313 ++ vendor/topthink/framework/tests/DbTest.php | 44 + vendor/topthink/framework/tests/EnvTest.php | 82 + vendor/topthink/framework/tests/EventTest.php | 143 + .../framework/tests/FilesystemTest.php | 131 + vendor/topthink/framework/tests/HttpTest.php | 154 + vendor/topthink/framework/tests/LogTest.php | 143 + .../framework/tests/MiddlewareTest.php | 121 + .../topthink/framework/tests/SessionTest.php | 225 + vendor/topthink/framework/tests/ViewTest.php | 127 + vendor/topthink/framework/tests/bootstrap.php | 3 + vendor/topthink/think-captcha/.gitignore | 3 + vendor/topthink/think-captcha/LICENSE | 32 + vendor/topthink/think-captcha/README.md | 57 + .../topthink/think-captcha/assets/bgs/1.jpg | Bin 0 -> 30428 bytes .../topthink/think-captcha/assets/bgs/2.jpg | Bin 0 -> 29677 bytes .../topthink/think-captcha/assets/bgs/3.jpg | Bin 0 -> 32109 bytes .../topthink/think-captcha/assets/bgs/4.jpg | Bin 0 -> 29081 bytes .../topthink/think-captcha/assets/bgs/5.jpg | Bin 0 -> 27940 bytes .../topthink/think-captcha/assets/bgs/6.jpg | Bin 0 -> 31381 bytes .../topthink/think-captcha/assets/bgs/7.jpg | Bin 0 -> 30234 bytes .../topthink/think-captcha/assets/bgs/8.jpg | Bin 0 -> 30188 bytes .../topthink/think-captcha/assets/ttfs/1.ttf | Bin 0 -> 46124 bytes .../topthink/think-captcha/assets/ttfs/2.ttf | Bin 0 -> 30352 bytes .../topthink/think-captcha/assets/ttfs/3.ttf | Bin 0 -> 319636 bytes .../topthink/think-captcha/assets/ttfs/4.ttf | Bin 0 -> 217360 bytes .../topthink/think-captcha/assets/ttfs/5.ttf | Bin 0 -> 162876 bytes .../topthink/think-captcha/assets/ttfs/6.ttf | Bin 0 -> 353824 bytes .../think-captcha/assets/zhttfs/1.ttf | Bin 0 -> 2183628 bytes vendor/topthink/think-captcha/composer.json | 33 + vendor/topthink/think-captcha/src/Captcha.php | 340 ++ .../think-captcha/src/CaptchaController.php | 20 + .../think-captcha/src/CaptchaService.php | 21 + .../think-captcha/src/facade/Captcha.php | 18 + vendor/topthink/think-captcha/src/helper.php | 52 + vendor/topthink/think-helper/.gitignore | 3 + vendor/topthink/think-helper/LICENSE | 201 + vendor/topthink/think-helper/README.md | 33 + vendor/topthink/think-helper/composer.json | 22 + .../topthink/think-helper/src/Collection.php | 651 +++ .../think-helper/src/contract/Arrayable.php | 8 + .../think-helper/src/contract/Jsonable.php | 8 + vendor/topthink/think-helper/src/helper.php | 279 + .../topthink/think-helper/src/helper/Arr.php | 634 +++ .../topthink/think-helper/src/helper/Str.php | 234 + vendor/topthink/think-multi-app/LICENSE | 201 + vendor/topthink/think-multi-app/README.md | 14 + vendor/topthink/think-multi-app/composer.json | 28 + .../topthink/think-multi-app/src/MultiApp.php | 255 + .../topthink/think-multi-app/src/Service.php | 29 + vendor/topthink/think-multi-app/src/Url.php | 224 + vendor/topthink/think-orm/.gitignore | 3 + vendor/topthink/think-orm/LICENSE | 201 + vendor/topthink/think-orm/README.md | 27 + vendor/topthink/think-orm/composer.json | 28 + vendor/topthink/think-orm/src/DbManager.php | 406 ++ vendor/topthink/think-orm/src/Model.php | 1040 ++++ vendor/topthink/think-orm/src/Paginator.php | 497 ++ .../topthink/think-orm/src/db/BaseQuery.php | 1270 +++++ vendor/topthink/think-orm/src/db/Builder.php | 1281 +++++ .../topthink/think-orm/src/db/CacheItem.php | 209 + .../topthink/think-orm/src/db/Connection.php | 275 + .../think-orm/src/db/ConnectionInterface.php | 196 + vendor/topthink/think-orm/src/db/Fetch.php | 493 ++ vendor/topthink/think-orm/src/db/Mongo.php | 741 +++ .../think-orm/src/db/PDOConnection.php | 1698 ++++++ vendor/topthink/think-orm/src/db/Query.php | 495 ++ vendor/topthink/think-orm/src/db/Raw.php | 52 + vendor/topthink/think-orm/src/db/Where.php | 182 + .../think-orm/src/db/builder/Mongo.php | 675 +++ .../think-orm/src/db/builder/Mysql.php | 421 ++ .../think-orm/src/db/builder/Oracle.php | 95 + .../think-orm/src/db/builder/Pgsql.php | 118 + .../think-orm/src/db/builder/Sqlite.php | 97 + .../think-orm/src/db/builder/Sqlsrv.php | 184 + .../src/db/concern/AggregateQuery.php | 107 + .../src/db/concern/JoinAndViewQuery.php | 229 + .../src/db/concern/ModelRelationQuery.php | 516 ++ .../think-orm/src/db/concern/ParamsBind.php | 106 + .../src/db/concern/ResultOperation.php | 248 + .../src/db/concern/TableFieldInfo.php | 99 + .../src/db/concern/TimeFieldQuery.php | 214 + .../think-orm/src/db/concern/Transaction.php | 117 + .../think-orm/src/db/concern/WhereQuery.php | 540 ++ .../think-orm/src/db/connector/Mongo.php | 1066 ++++ .../think-orm/src/db/connector/Mysql.php | 162 + .../think-orm/src/db/connector/Oracle.php | 117 + .../think-orm/src/db/connector/Pgsql.php | 108 + .../think-orm/src/db/connector/Sqlite.php | 96 + .../think-orm/src/db/connector/Sqlsrv.php | 122 + .../think-orm/src/db/connector/pgsql.sql | 117 + .../src/db/exception/BindParamException.php | 35 + .../db/exception/DataNotFoundException.php | 43 + .../src/db/exception/DbException.php | 81 + .../db/exception/InvalidArgumentException.php | 21 + .../src/db/exception/ModelEventException.php | 19 + .../db/exception/ModelNotFoundException.php | 44 + .../src/db/exception/PDOException.php | 41 + vendor/topthink/think-orm/src/facade/Db.php | 86 + .../think-orm/src/model/Collection.php | 250 + vendor/topthink/think-orm/src/model/Pivot.php | 53 + .../topthink/think-orm/src/model/Relation.php | 258 + .../think-orm/src/model/concern/Attribute.php | 651 +++ .../src/model/concern/Conversion.php | 278 + .../src/model/concern/ModelEvent.php | 88 + .../think-orm/src/model/concern/OptimLock.php | 85 + .../src/model/concern/RelationShip.php | 841 +++ .../src/model/concern/SoftDelete.php | 246 + .../think-orm/src/model/concern/TimeStamp.php | 208 + .../src/model/relation/BelongsTo.php | 331 ++ .../src/model/relation/BelongsToMany.php | 698 +++ .../think-orm/src/model/relation/HasMany.php | 367 ++ .../src/model/relation/HasManyThrough.php | 382 ++ .../think-orm/src/model/relation/HasOne.php | 300 ++ .../src/model/relation/HasOneThrough.php | 163 + .../src/model/relation/MorphMany.php | 353 ++ .../think-orm/src/model/relation/MorphOne.php | 280 + .../think-orm/src/model/relation/MorphTo.php | 333 ++ .../src/model/relation/MorphToMany.php | 474 ++ .../think-orm/src/model/relation/OneToOne.php | 332 ++ .../src/paginator/driver/Bootstrap.php | 209 + vendor/topthink/think-template/.gitignore | 1 + vendor/topthink/think-template/LICENSE | 201 + vendor/topthink/think-template/README.md | 70 + vendor/topthink/think-template/composer.json | 20 + .../topthink/think-template/src/Template.php | 1320 +++++ .../think-template/src/template/TagLib.php | 349 ++ .../src/template/driver/File.php | 83 + .../exception/TemplateNotFoundException.php | 33 + .../think-template/src/template/taglib/Cx.php | 715 +++ vendor/topthink/think-trace/.gitignore | 1 + vendor/topthink/think-trace/LICENSE | 201 + vendor/topthink/think-trace/README.md | 15 + vendor/topthink/think-trace/composer.json | 31 + vendor/topthink/think-trace/src/Console.php | 170 + vendor/topthink/think-trace/src/Html.php | 125 + vendor/topthink/think-trace/src/Service.php | 21 + .../topthink/think-trace/src/TraceDebug.php | 109 + vendor/topthink/think-trace/src/config.php | 10 + .../think-trace/src/tpl/page_trace.tpl | 71 + vendor/topthink/think-view/.gitignore | 1 + vendor/topthink/think-view/LICENSE | 201 + vendor/topthink/think-view/README.md | 36 + vendor/topthink/think-view/composer.json | 20 + vendor/topthink/think-view/src/Think.php | 263 + vendor/xiaodi/think-auth/.gitignore | 6 + vendor/xiaodi/think-auth/LICENSE | 201 + vendor/xiaodi/think-auth/README.md | 150 + vendor/xiaodi/think-auth/composer.json | 26 + vendor/xiaodi/think-auth/src/Auth.php | 301 ++ view/admin/.gitignore | 2 + view/admin/admin/adminedit.html | 61 + view/admin/admin/adminform.html | 57 + view/admin/admin/list.html | 226 + view/admin/article/comment.html | 113 + view/admin/article/contform.html | 44 + view/admin/article/list.html | 147 + view/admin/article/listform.html | 82 + view/admin/article/tags.html | 66 + view/admin/article/tagsform.html | 38 + view/admin/authgroup/edit.html | 119 + view/admin/authgroup/role-1.html | 164 + view/admin/authgroup/role.html | 164 + view/admin/authgroup/roleadd.html | 101 + view/admin/authgroup/roleedit-1.html | 154 + view/admin/authgroup/roleedit.html | 129 + view/admin/authrule/add.html | 65 + view/admin/authrule/edit.html | 68 + view/admin/authrule/index.html | 310 ++ view/admin/forum/list.html | 124 + view/admin/forum/listform.html | 61 + view/admin/forum/replys.html | 97 + view/admin/forum/replysform.html | 39 + view/admin/forum/tags.html | 81 + view/admin/forum/tagsform.html | 35 + view/admin/index/home.html | 325 ++ view/admin/index/index.html | 32 + view/admin/login/forget.html | 151 + view/admin/login/login.html | 138 + view/admin/login/reg.html | 120 + view/admin/public/base.html | 19 + view/admin/public/header.html | 72 + view/admin/public/page_tabs.html | 22 + view/admin/public/side_menu.html | 79 + view/admin/set/system/email.html | 66 + view/admin/set/system/website.html | 143 + view/admin/set/user/info.html | 96 + view/admin/set/user/repass.html | 54 + view/admin/slider/add.html | 113 + view/admin/slider/edit.html | 116 + view/admin/slider/index.html | 214 + view/admin/upgrade/index.html | 268 + view/admin/upgrade/keyedit.html | 52 + view/admin/user/list.html | 177 + view/admin/user/useredit.html | 83 + view/admin/user/userform.html | 80 + view/index/.gitignore | 1 + view/index/article/add.html | 173 + view/index/article/cate.html | 114 + view/index/article/detail.html | 300 ++ view/index/article/edit.html | 156 + view/index/index/index.html | 365 ++ view/index/index/search.html | 167 + view/index/login/forget.html | 239 + view/index/login/login.html | 108 + view/index/login/reg.html | 127 + view/index/other/404.html | 138 + view/index/other/notice.html | 38 + view/index/other/tips.html | 138 + view/index/public/404.html | 193 + view/index/public/base.html | 21 + view/index/public/column.html | 27 + view/index/public/filter.html | 15 + view/index/public/flink.html | 9 + view/index/public/footer.html | 8 + view/index/public/header.html | 65 + view/index/public/js.html | 2 + view/index/public/jump.html | 60 + view/index/public/layout.html | 79 + view/index/public/link.html | 3 + view/index/public/sign.html | 14 + view/index/public/user-nav.html | 48 + view/index/public/user.html | 31 + view/index/sign/lists.html | 147 + view/index/user/activate.html | 33 + view/index/user/home.html | 105 + view/index/user/index.html | 179 + view/index/user/message.html | 42 + view/index/user/post.html | 238 + view/index/user/set.html | 196 + view/index/user/upimg.html | 31 + view/index/user/user.html | 70 + view/install/index/agreement.html | 26 + view/install/index/base.html | 40 + view/install/index/complete.html | 15 + view/install/index/create.html | 82 + view/install/index/test.html | 118 + 1256 files changed, 129910 insertions(+), 45 deletions(-) create mode 100644 .gitignore create mode 100644 .travis.yml delete mode 100644 README.en.md create mode 100644 app/.gitignore create mode 100644 app/.htaccess create mode 100644 app/BaseController.php create mode 100644 app/ExceptionHandle.php create mode 100644 app/Request.php create mode 100644 app/admin/controller/.gitignore create mode 100644 app/admin/controller/Admin.php create mode 100644 app/admin/controller/AuthGroup.php create mode 100644 app/admin/controller/AuthRule.php create mode 100644 app/admin/controller/Forum.php create mode 100644 app/admin/controller/Index.php create mode 100644 app/admin/controller/Login.php create mode 100644 app/admin/controller/Menu.php create mode 100644 app/admin/controller/Set.php create mode 100644 app/admin/controller/Slider.php create mode 100644 app/admin/controller/Upgrade.php create mode 100644 app/admin/controller/User.php create mode 100644 app/admin/controller/Uzip.php create mode 100644 app/admin/middleware.php create mode 100644 app/admin/model/.gitignore create mode 100644 app/admin/model/Admin.php create mode 100644 app/admin/model/Article.php create mode 100644 app/admin/model/AuthGroup.php create mode 100644 app/admin/model/AuthRule.php create mode 100644 app/admin/model/MailServer.php create mode 100644 app/admin/model/Slider.php create mode 100644 app/admin/model/System.php create mode 100644 app/admin/validate/Admin.php create mode 100644 app/common.php create mode 100644 app/common/controller/AdminController.php create mode 100644 app/common/controller/BaseController.php create mode 100644 app/common/model/Article.php create mode 100644 app/common/model/Cate.php create mode 100644 app/common/model/Collection.php create mode 100644 app/common/model/Comment.php create mode 100644 app/common/model/Sign.php create mode 100644 app/common/model/System.php create mode 100644 app/common/model/UpgradeAuth.php create mode 100644 app/common/model/User.php create mode 100644 app/common/model/UserArea.php create mode 100644 app/common/model/UserZan.php create mode 100644 app/common/validate/Article.php create mode 100644 app/common/validate/User.php create mode 100644 app/event.php create mode 100644 app/index/controller/.gitignore create mode 100644 app/index/controller/Article.php create mode 100644 app/index/controller/Collection.php create mode 100644 app/index/controller/Comment.php create mode 100644 app/index/controller/Error.php create mode 100644 app/index/controller/FriendLink.php create mode 100644 app/index/controller/Index.php create mode 100644 app/index/controller/Jump.php create mode 100644 app/index/controller/Login.php create mode 100644 app/index/controller/Message.php create mode 100644 app/index/controller/Sign.php create mode 100644 app/index/controller/User.php create mode 100644 app/index/middleware.php create mode 100644 app/install/common.php create mode 100644 app/install/config/database.php create mode 100644 app/install/controller/index.php create mode 100644 app/install/data/taoler.sql create mode 100644 app/middleware.php create mode 100644 app/middleware/Auth.php create mode 100644 app/middleware/CheckRegister.php create mode 100644 app/middleware/LogedCheck.php create mode 100644 app/middleware/LoginCheck.php create mode 100644 app/provider.php create mode 100644 build.example.php create mode 100644 composer.json create mode 100644 composer.lock create mode 100644 config/app.php create mode 100644 config/cache.php create mode 100644 config/captcha.php create mode 100644 config/console.php create mode 100644 config/cookie.php create mode 100644 config/database.php create mode 100644 config/filesystem.php create mode 100644 config/lang.php create mode 100644 config/log.php create mode 100644 config/middleware.php create mode 100644 config/route.php create mode 100644 config/session.php create mode 100644 config/trace.php create mode 100644 config/view.php create mode 100644 extend/.gitignore create mode 100644 public/.htaccess create mode 100644 public/favicon.ico create mode 100644 public/index.php create mode 100644 public/robots.txt create mode 100644 public/router.php create mode 100644 public/static/admin/config.js create mode 100644 public/static/admin/json/console/prograss.js create mode 100644 public/static/admin/json/console/top-card.js create mode 100644 public/static/admin/json/console/top-search.js create mode 100644 public/static/admin/json/content/comment.js create mode 100644 public/static/admin/json/content/list.js create mode 100644 public/static/admin/json/content/tags.js create mode 100644 public/static/admin/json/forum/list.js create mode 100644 public/static/admin/json/forum/replys.js create mode 100644 public/static/admin/json/layer/photos.js create mode 100644 public/static/admin/json/layim/getList.js create mode 100644 public/static/admin/json/layim/getMembers.js create mode 100644 public/static/admin/json/mall/order.js create mode 100644 public/static/admin/json/menu.js create mode 100644 public/static/admin/json/menu1.js create mode 100644 public/static/admin/json/message/all.js create mode 100644 public/static/admin/json/message/detail.js create mode 100644 public/static/admin/json/message/direct.js create mode 100644 public/static/admin/json/message/new.js create mode 100644 public/static/admin/json/message/notice.js create mode 100644 public/static/admin/json/table/demo.js create mode 100644 public/static/admin/json/table/demo2.js create mode 100644 public/static/admin/json/table/demo3.js create mode 100644 public/static/admin/json/table/user.js create mode 100644 public/static/admin/json/table/user30.js create mode 100644 public/static/admin/json/upload/demo.js create mode 100644 public/static/admin/json/user/forget.js create mode 100644 public/static/admin/json/user/login.js create mode 100644 public/static/admin/json/user/logout.js create mode 100644 public/static/admin/json/user/reg.js create mode 100644 public/static/admin/json/user/resetpass.js create mode 100644 public/static/admin/json/user/session.js create mode 100644 public/static/admin/json/user/sms.js create mode 100644 public/static/admin/json/useradmin/mangadmin.js create mode 100644 public/static/admin/json/useradmin/role.js create mode 100644 public/static/admin/json/useradmin/webuser.js create mode 100644 public/static/admin/json/workorder/demo.js create mode 100644 public/static/admin/json/璇存槑.txt create mode 100644 public/static/admin/layui/css/layui.css create mode 100644 public/static/admin/layui/css/layui.mobile.css create mode 100644 public/static/admin/layui/css/modules/code.css create mode 100644 public/static/admin/layui/css/modules/laydate/default/laydate.css create mode 100644 public/static/admin/layui/css/modules/layer/default/icon-ext.png create mode 100644 public/static/admin/layui/css/modules/layer/default/icon.png create mode 100644 public/static/admin/layui/css/modules/layer/default/layer.css create mode 100644 public/static/admin/layui/css/modules/layer/default/loading-0.gif create mode 100644 public/static/admin/layui/css/modules/layer/default/loading-1.gif create mode 100644 public/static/admin/layui/css/modules/layer/default/loading-2.gif create mode 100644 public/static/admin/layui/css/modules/layim/html/chatlog.html create mode 100644 public/static/admin/layui/css/modules/layim/html/find.html create mode 100644 public/static/admin/layui/css/modules/layim/html/getmsg.json create mode 100644 public/static/admin/layui/css/modules/layim/html/msgbox.html create mode 100644 public/static/admin/layui/css/modules/layim/layim.css create mode 100644 public/static/admin/layui/css/modules/layim/mobile/layim.css create mode 100644 public/static/admin/layui/css/modules/layim/skin/1.jpg create mode 100644 public/static/admin/layui/css/modules/layim/skin/2.jpg create mode 100644 public/static/admin/layui/css/modules/layim/skin/3.jpg create mode 100644 public/static/admin/layui/css/modules/layim/skin/4.jpg create mode 100644 public/static/admin/layui/css/modules/layim/skin/5.jpg create mode 100644 public/static/admin/layui/css/modules/layim/skin/logo.jpg create mode 100644 public/static/admin/layui/css/modules/layim/voice/default.mp3 create mode 100644 public/static/admin/layui/font/iconfont.eot create mode 100644 public/static/admin/layui/font/iconfont.svg create mode 100644 public/static/admin/layui/font/iconfont.ttf create mode 100644 public/static/admin/layui/font/iconfont.woff create mode 100644 public/static/admin/layui/font/iconfont.woff2 create mode 100644 public/static/admin/layui/images/face/0.gif create mode 100644 public/static/admin/layui/images/face/1.gif create mode 100644 public/static/admin/layui/images/face/10.gif create mode 100644 public/static/admin/layui/images/face/11.gif create mode 100644 public/static/admin/layui/images/face/12.gif create mode 100644 public/static/admin/layui/images/face/13.gif create mode 100644 public/static/admin/layui/images/face/14.gif create mode 100644 public/static/admin/layui/images/face/15.gif create mode 100644 public/static/admin/layui/images/face/16.gif create mode 100644 public/static/admin/layui/images/face/17.gif create mode 100644 public/static/admin/layui/images/face/18.gif create mode 100644 public/static/admin/layui/images/face/19.gif create mode 100644 public/static/admin/layui/images/face/2.gif create mode 100644 public/static/admin/layui/images/face/20.gif create mode 100644 public/static/admin/layui/images/face/21.gif create mode 100644 public/static/admin/layui/images/face/22.gif create mode 100644 public/static/admin/layui/images/face/23.gif create mode 100644 public/static/admin/layui/images/face/24.gif create mode 100644 public/static/admin/layui/images/face/25.gif create mode 100644 public/static/admin/layui/images/face/26.gif create mode 100644 public/static/admin/layui/images/face/27.gif create mode 100644 public/static/admin/layui/images/face/28.gif create mode 100644 public/static/admin/layui/images/face/29.gif create mode 100644 public/static/admin/layui/images/face/3.gif create mode 100644 public/static/admin/layui/images/face/30.gif create mode 100644 public/static/admin/layui/images/face/31.gif create mode 100644 public/static/admin/layui/images/face/32.gif create mode 100644 public/static/admin/layui/images/face/33.gif create mode 100644 public/static/admin/layui/images/face/34.gif create mode 100644 public/static/admin/layui/images/face/35.gif create mode 100644 public/static/admin/layui/images/face/36.gif create mode 100644 public/static/admin/layui/images/face/37.gif create mode 100644 public/static/admin/layui/images/face/38.gif create mode 100644 public/static/admin/layui/images/face/39.gif create mode 100644 public/static/admin/layui/images/face/4.gif create mode 100644 public/static/admin/layui/images/face/40.gif create mode 100644 public/static/admin/layui/images/face/41.gif create mode 100644 public/static/admin/layui/images/face/42.gif create mode 100644 public/static/admin/layui/images/face/43.gif create mode 100644 public/static/admin/layui/images/face/44.gif create mode 100644 public/static/admin/layui/images/face/45.gif create mode 100644 public/static/admin/layui/images/face/46.gif create mode 100644 public/static/admin/layui/images/face/47.gif create mode 100644 public/static/admin/layui/images/face/48.gif create mode 100644 public/static/admin/layui/images/face/49.gif create mode 100644 public/static/admin/layui/images/face/5.gif create mode 100644 public/static/admin/layui/images/face/50.gif create mode 100644 public/static/admin/layui/images/face/51.gif create mode 100644 public/static/admin/layui/images/face/52.gif create mode 100644 public/static/admin/layui/images/face/53.gif create mode 100644 public/static/admin/layui/images/face/54.gif create mode 100644 public/static/admin/layui/images/face/55.gif create mode 100644 public/static/admin/layui/images/face/56.gif create mode 100644 public/static/admin/layui/images/face/57.gif create mode 100644 public/static/admin/layui/images/face/58.gif create mode 100644 public/static/admin/layui/images/face/59.gif create mode 100644 public/static/admin/layui/images/face/6.gif create mode 100644 public/static/admin/layui/images/face/60.gif create mode 100644 public/static/admin/layui/images/face/61.gif create mode 100644 public/static/admin/layui/images/face/62.gif create mode 100644 public/static/admin/layui/images/face/63.gif create mode 100644 public/static/admin/layui/images/face/64.gif create mode 100644 public/static/admin/layui/images/face/65.gif create mode 100644 public/static/admin/layui/images/face/66.gif create mode 100644 public/static/admin/layui/images/face/67.gif create mode 100644 public/static/admin/layui/images/face/68.gif create mode 100644 public/static/admin/layui/images/face/69.gif create mode 100644 public/static/admin/layui/images/face/7.gif create mode 100644 public/static/admin/layui/images/face/70.gif create mode 100644 public/static/admin/layui/images/face/71.gif create mode 100644 public/static/admin/layui/images/face/8.gif create mode 100644 public/static/admin/layui/images/face/9.gif create mode 100644 public/static/admin/layui/lay/modules/carousel.js create mode 100644 public/static/admin/layui/lay/modules/code.js create mode 100644 public/static/admin/layui/lay/modules/colorpicker.js create mode 100644 public/static/admin/layui/lay/modules/element.js create mode 100644 public/static/admin/layui/lay/modules/flow.js create mode 100644 public/static/admin/layui/lay/modules/form.js create mode 100644 public/static/admin/layui/lay/modules/jquery.js create mode 100644 public/static/admin/layui/lay/modules/laydate.js create mode 100644 public/static/admin/layui/lay/modules/layedit.js create mode 100644 public/static/admin/layui/lay/modules/layer.js create mode 100644 public/static/admin/layui/lay/modules/laypage.js create mode 100644 public/static/admin/layui/lay/modules/laytpl.js create mode 100644 public/static/admin/layui/lay/modules/mobile.js create mode 100644 public/static/admin/layui/lay/modules/mobile/layer-mobile.js create mode 100644 public/static/admin/layui/lay/modules/mobile/layim-mobile-open.js create mode 100644 public/static/admin/layui/lay/modules/mobile/layim-mobile.js create mode 100644 public/static/admin/layui/lay/modules/mobile/upload-mobile.js create mode 100644 public/static/admin/layui/lay/modules/mobile/zepto.js create mode 100644 public/static/admin/layui/lay/modules/rate.js create mode 100644 public/static/admin/layui/lay/modules/slider.js create mode 100644 public/static/admin/layui/lay/modules/table.js create mode 100644 public/static/admin/layui/lay/modules/transfer.js create mode 100644 public/static/admin/layui/lay/modules/tree.js create mode 100644 public/static/admin/layui/lay/modules/upload.js create mode 100644 public/static/admin/layui/lay/modules/util.js create mode 100644 public/static/admin/layui/layui.all.js create mode 100644 public/static/admin/layui/layui.js create mode 100644 public/static/admin/lib/admin.js create mode 100644 public/static/admin/lib/extend/echarts.js create mode 100644 public/static/admin/lib/extend/echartsTheme.js create mode 100644 public/static/admin/lib/index.js create mode 100644 public/static/admin/lib/view.js create mode 100644 public/static/admin/modules/common.js create mode 100644 public/static/admin/modules/console.js create mode 100644 public/static/admin/modules/contlist.js create mode 100644 public/static/admin/modules/forum.js create mode 100644 public/static/admin/modules/im.js create mode 100644 public/static/admin/modules/message.js create mode 100644 public/static/admin/modules/sample.js create mode 100644 public/static/admin/modules/senior.js create mode 100644 public/static/admin/modules/set.js create mode 100644 public/static/admin/modules/user.js create mode 100644 public/static/admin/modules/useradmin.js create mode 100644 public/static/admin/modules/workorder.js create mode 100644 public/static/admin/style/admin.css create mode 100644 public/static/admin/style/login.css create mode 100644 public/static/admin/style/res/bg-none.jpg create mode 100644 public/static/admin/style/res/layui-logo.jpg create mode 100644 public/static/admin/style/res/logo-black.png create mode 100644 public/static/admin/style/res/logo.png create mode 100644 public/static/admin/style/res/template/character.jpg create mode 100644 public/static/admin/style/res/template/huge.jpg create mode 100644 public/static/admin/style/res/template/portrait.png create mode 100644 public/static/admin/style/template.css create mode 100644 public/static/admin/tpl/layim/demo.html create mode 100644 public/static/admin/tpl/system/about.html create mode 100644 public/static/admin/tpl/system/get.html create mode 100644 public/static/admin/tpl/system/more.html create mode 100644 public/static/admin/tpl/system/theme.html create mode 100644 public/static/admin/tpl/system/璇存槑.txt create mode 100644 public/static/admin/tpl/璇存槑.txt create mode 100644 public/static/res/css/admin.css create mode 100644 public/static/res/css/font-awesome.min.css create mode 100644 public/static/res/css/font_24081_qs69ykjbea.css create mode 100644 public/static/res/css/font_24081_qs69ykjbea.ttf create mode 100644 public/static/res/css/full.css create mode 100644 public/static/res/css/global.css create mode 100644 public/static/res/css/iconfont.eot create mode 100644 public/static/res/css/iconfont.svg create mode 100644 public/static/res/css/iconfont.ttf create mode 100644 public/static/res/css/iconfont.woff create mode 100644 public/static/res/home/css/global.css create mode 100644 public/static/res/home/images/Thumbs.db create mode 100644 public/static/res/home/images/logo - 鍓湰.png create mode 100644 public/static/res/home/images/logo-1.png create mode 100644 public/static/res/home/images/logo.png create mode 100644 public/static/res/home/images/spring.jpg create mode 100644 public/static/res/home/images/upyun.png create mode 100644 public/static/res/home/js/global.js create mode 100644 public/static/res/images/avatar/0.jpg create mode 100644 public/static/res/images/avatar/00.jpg create mode 100644 public/static/res/images/avatar/1.jpg create mode 100644 public/static/res/images/avatar/10.jpg create mode 100644 public/static/res/images/avatar/11.jpg create mode 100644 public/static/res/images/avatar/2.jpg create mode 100644 public/static/res/images/avatar/3.jpg create mode 100644 public/static/res/images/avatar/4.jpg create mode 100644 public/static/res/images/avatar/5.jpg create mode 100644 public/static/res/images/avatar/6.jpg create mode 100644 public/static/res/images/avatar/7.jpg create mode 100644 public/static/res/images/avatar/8.jpg create mode 100644 public/static/res/images/avatar/9.jpg create mode 100644 public/static/res/images/avatar/default.png create mode 100644 public/static/res/images/case.png create mode 100644 public/static/res/images/fly.jpg create mode 100644 public/static/res/images/logo-.png create mode 100644 public/static/res/images/logo-1.png create mode 100644 public/static/res/images/logo.png create mode 100644 public/static/res/images/other/1437100018023.jpg create mode 100644 public/static/res/images/other/study-a.png create mode 100644 public/static/res/images/weixin-1.jpg create mode 100644 public/static/res/images/weixin.jpg create mode 100644 public/static/res/layui/css/layui.css create mode 100644 public/static/res/layui/css/layui.mobile.css create mode 100644 public/static/res/layui/css/modules/code.css create mode 100644 public/static/res/layui/css/modules/laydate/default/laydate.css create mode 100644 public/static/res/layui/css/modules/layer/default/icon-ext.png create mode 100644 public/static/res/layui/css/modules/layer/default/icon.png create mode 100644 public/static/res/layui/css/modules/layer/default/layer.css create mode 100644 public/static/res/layui/css/modules/layer/default/loading-0.gif create mode 100644 public/static/res/layui/css/modules/layer/default/loading-1.gif create mode 100644 public/static/res/layui/css/modules/layer/default/loading-2.gif create mode 100644 public/static/res/layui/font/iconfont.eot create mode 100644 public/static/res/layui/font/iconfont.svg create mode 100644 public/static/res/layui/font/iconfont.ttf create mode 100644 public/static/res/layui/font/iconfont.woff create mode 100644 public/static/res/layui/font/iconfont.woff2 create mode 100644 public/static/res/layui/images/face/0.gif create mode 100644 public/static/res/layui/images/face/1.gif create mode 100644 public/static/res/layui/images/face/10.gif create mode 100644 public/static/res/layui/images/face/11.gif create mode 100644 public/static/res/layui/images/face/12.gif create mode 100644 public/static/res/layui/images/face/13.gif create mode 100644 public/static/res/layui/images/face/14.gif create mode 100644 public/static/res/layui/images/face/15.gif create mode 100644 public/static/res/layui/images/face/16.gif create mode 100644 public/static/res/layui/images/face/17.gif create mode 100644 public/static/res/layui/images/face/18.gif create mode 100644 public/static/res/layui/images/face/19.gif create mode 100644 public/static/res/layui/images/face/2.gif create mode 100644 public/static/res/layui/images/face/20.gif create mode 100644 public/static/res/layui/images/face/21.gif create mode 100644 public/static/res/layui/images/face/22.gif create mode 100644 public/static/res/layui/images/face/23.gif create mode 100644 public/static/res/layui/images/face/24.gif create mode 100644 public/static/res/layui/images/face/25.gif create mode 100644 public/static/res/layui/images/face/26.gif create mode 100644 public/static/res/layui/images/face/27.gif create mode 100644 public/static/res/layui/images/face/28.gif create mode 100644 public/static/res/layui/images/face/29.gif create mode 100644 public/static/res/layui/images/face/3.gif create mode 100644 public/static/res/layui/images/face/30.gif create mode 100644 public/static/res/layui/images/face/31.gif create mode 100644 public/static/res/layui/images/face/32.gif create mode 100644 public/static/res/layui/images/face/33.gif create mode 100644 public/static/res/layui/images/face/34.gif create mode 100644 public/static/res/layui/images/face/35.gif create mode 100644 public/static/res/layui/images/face/36.gif create mode 100644 public/static/res/layui/images/face/37.gif create mode 100644 public/static/res/layui/images/face/38.gif create mode 100644 public/static/res/layui/images/face/39.gif create mode 100644 public/static/res/layui/images/face/4.gif create mode 100644 public/static/res/layui/images/face/40.gif create mode 100644 public/static/res/layui/images/face/41.gif create mode 100644 public/static/res/layui/images/face/42.gif create mode 100644 public/static/res/layui/images/face/43.gif create mode 100644 public/static/res/layui/images/face/44.gif create mode 100644 public/static/res/layui/images/face/45.gif create mode 100644 public/static/res/layui/images/face/46.gif create mode 100644 public/static/res/layui/images/face/47.gif create mode 100644 public/static/res/layui/images/face/48.gif create mode 100644 public/static/res/layui/images/face/49.gif create mode 100644 public/static/res/layui/images/face/5.gif create mode 100644 public/static/res/layui/images/face/50.gif create mode 100644 public/static/res/layui/images/face/51.gif create mode 100644 public/static/res/layui/images/face/52.gif create mode 100644 public/static/res/layui/images/face/53.gif create mode 100644 public/static/res/layui/images/face/54.gif create mode 100644 public/static/res/layui/images/face/55.gif create mode 100644 public/static/res/layui/images/face/56.gif create mode 100644 public/static/res/layui/images/face/57.gif create mode 100644 public/static/res/layui/images/face/58.gif create mode 100644 public/static/res/layui/images/face/59.gif create mode 100644 public/static/res/layui/images/face/6.gif create mode 100644 public/static/res/layui/images/face/60.gif create mode 100644 public/static/res/layui/images/face/61.gif create mode 100644 public/static/res/layui/images/face/62.gif create mode 100644 public/static/res/layui/images/face/63.gif create mode 100644 public/static/res/layui/images/face/64.gif create mode 100644 public/static/res/layui/images/face/65.gif create mode 100644 public/static/res/layui/images/face/66.gif create mode 100644 public/static/res/layui/images/face/67.gif create mode 100644 public/static/res/layui/images/face/68.gif create mode 100644 public/static/res/layui/images/face/69.gif create mode 100644 public/static/res/layui/images/face/7.gif create mode 100644 public/static/res/layui/images/face/70.gif create mode 100644 public/static/res/layui/images/face/71.gif create mode 100644 public/static/res/layui/images/face/8.gif create mode 100644 public/static/res/layui/images/face/9.gif create mode 100644 public/static/res/layui/lay/modules/carousel.js create mode 100644 public/static/res/layui/lay/modules/code.js create mode 100644 public/static/res/layui/lay/modules/colorpicker.js create mode 100644 public/static/res/layui/lay/modules/element.js create mode 100644 public/static/res/layui/lay/modules/flow.js create mode 100644 public/static/res/layui/lay/modules/form.js create mode 100644 public/static/res/layui/lay/modules/jquery.js create mode 100644 public/static/res/layui/lay/modules/laydate.js create mode 100644 public/static/res/layui/lay/modules/layedit.js create mode 100644 public/static/res/layui/lay/modules/layer.js create mode 100644 public/static/res/layui/lay/modules/laypage.js create mode 100644 public/static/res/layui/lay/modules/laytpl.js create mode 100644 public/static/res/layui/lay/modules/mobile.js create mode 100644 public/static/res/layui/lay/modules/rate.js create mode 100644 public/static/res/layui/lay/modules/slider.js create mode 100644 public/static/res/layui/lay/modules/table.js create mode 100644 public/static/res/layui/lay/modules/transfer.js create mode 100644 public/static/res/layui/lay/modules/tree.js create mode 100644 public/static/res/layui/lay/modules/upload.js create mode 100644 public/static/res/layui/lay/modules/util.js create mode 100644 public/static/res/layui/layui.all.js create mode 100644 public/static/res/layui/layui.js create mode 100644 public/static/res/mods/admin.js create mode 100644 public/static/res/mods/case.js create mode 100644 public/static/res/mods/face.js create mode 100644 public/static/res/mods/global.js create mode 100644 public/static/res/mods/hm.js create mode 100644 public/static/res/mods/html5shiv.min.js create mode 100644 public/static/res/mods/index.js create mode 100644 public/static/res/mods/jie.js create mode 100644 public/static/res/mods/jquery.min.js create mode 100644 public/static/res/mods/user.js create mode 100644 public/storage/.gitignore create mode 100644 public/storage/article_pic/20191023/0bf9614dede54219e4137f348319de28.jpg create mode 100644 public/storage/article_pic/20191023/1f917160f3937c3e610fa4ebe34d9f91.jpg create mode 100644 public/storage/article_pic/20191023/25f2bd605a5c55b17a93a2d956bf4c69.jpg create mode 100644 public/storage/article_pic/20191023/3a39747f295e45669ff5e23a1c9aacd3.jpg create mode 100644 public/storage/article_pic/20191023/4f296347b13153fd717c9ad56f2629cf.jpg create mode 100644 public/storage/article_pic/20191023/60631fe284a17a3651d97e96676f717c.jpg create mode 100644 public/storage/article_pic/20191023/6f593cc09db401b1b2644542fd71b2d5.jpg create mode 100644 public/storage/article_pic/20191023/71c1ec536d4e1c2f159a2f4236ce54e1.jpg create mode 100644 public/storage/article_pic/20191023/791e97c9ad0779115909747834e5fca1.jpg create mode 100644 public/storage/article_pic/20191023/7f2400039223f757180e2300b62599ee.jpg create mode 100644 public/storage/article_pic/20191023/7f67fdc582fcfa2f00955a177bd3bfe8.jpg create mode 100644 public/storage/article_pic/20191023/9d1dfbe9160b02fa78da681d96b67fec.jpg create mode 100644 public/storage/article_pic/20191023/9e48ddb4fb624a0af28a5eae944a3b3a.jpg create mode 100644 public/storage/article_pic/20191023/9e8e1275f3dd8fb634f1a0407122c3de.jpg create mode 100644 public/storage/article_pic/20191023/9eeb560c500a699cc3ebfb977b5678d8.jpg create mode 100644 public/storage/article_pic/20191023/a3d22b3b634e2df29c420d8e44a7ccda.jpg create mode 100644 public/storage/article_pic/20191023/aac1fcf26d2eb0c319bf0cf3d6ae4efe.jpg create mode 100644 public/storage/article_pic/20191023/addd7fa2a2f039ae417e3c2d7f966e96.jpg create mode 100644 public/storage/article_pic/20191023/d35703a3201343cdd1388c23a57b1b23.jpg create mode 100644 public/storage/article_pic/20191023/d8b285fab7fbe20dee9f59886ca295b4.jpg create mode 100644 public/storage/article_pic/20191023/e7c471d3ce714f7b24236d9f56035820.jpg create mode 100644 public/storage/article_pic/20191023/ee149a36649d95e046a3980d6aa9fd54.jpg create mode 100644 public/storage/article_pic/20191023/f8c246f58e0c55be2a67dff501c67591.jpg create mode 100644 public/storage/article_pic/20191024/024c20903d71c81279fd3596e0d70703.jpg create mode 100644 public/storage/article_pic/20191024/1cc50c26dd808dfd60b42d52e2cd3a4a.jpg create mode 100644 public/storage/article_pic/20191024/23ae68120a40c005e796b1b3fefb9f1b.jpg create mode 100644 public/storage/article_pic/20191024/3d5595caebae363bba6485b6fcd508fa.jpg create mode 100644 public/storage/article_pic/20191024/405762f2f6376bac42192c9b3888c0ae.jpg create mode 100644 public/storage/article_pic/20191024/5c1fc454e9bb570bacc1f99e65a2a1d4.jpg create mode 100644 public/storage/article_pic/20191024/6579e5ce30a7eef65043d5a405e958e1.jpg create mode 100644 public/storage/article_pic/20191024/af3de8f92fc439f0c2b3dc78cb884819.jpg create mode 100644 public/storage/article_pic/20191024/c3e1b97c457fd028136fdc6beb9e9d15.jpg create mode 100644 public/storage/article_pic/20191024/c5e232fb20eb568bfd52a54a021bf234.jpg create mode 100644 public/storage/article_pic/20191024/cbcb0e4422d6407e2c08eaf4266a7021.jpg create mode 100644 public/storage/article_pic/20191025/77c0946e5f63130d2ed9843ad1cc96bb.jpg create mode 100644 public/storage/article_pic/20191025/96515cfc6dc4af2fb389902ece0d40ba.png create mode 100644 public/storage/article_pic/20191114/71e0ae6f8eab27fd6b2e1043b1dbf6a0.png create mode 100644 public/storage/article_pic/20191114/98007d2a5887baff9586f54ca5c1b8b5.png create mode 100644 public/storage/head_pic/20191023/113995c2f98349e28eba61228d3606b9.jpg create mode 100644 public/storage/head_pic/20191023/24705b2711def6075610a7800d45388f.jpg create mode 100644 public/storage/head_pic/20191023/3afe87a891ca674048f3dcb7554f3c3b.jpg create mode 100644 public/storage/head_pic/20191023/a1228c886a32994544c9c7dd67b30432.jpg create mode 100644 public/storage/head_pic/20191216/2162d34bfef8c95c963c9da5eb808f62.jpg create mode 100644 public/storage/head_pic/20191216/26f86dadf178f26341fe3f16e32f0751.jpg create mode 100644 public/storage/head_pic/20191216/3abceed5fb0039e777e99054ce9f4473.jpg create mode 100644 public/storage/head_pic/20191216/3af70bb3bc6eed40ff6bf026b89bf040.jpg create mode 100644 public/storage/head_pic/20191216/7f5d269bdad555d8534043d909839abe.jpg create mode 100644 public/storage/head_pic/20191216/872ee4fdb6e9769ff38b4cd9ec325816.jpg create mode 100644 public/storage/head_pic/20191216/9a60c80246ce1fc2c9d0877c7b3b9405.jpg create mode 100644 public/storage/head_pic/20191216/bb5b559f662b0919df0ab7a938b3328c.jpg create mode 100644 public/storage/head_pic/20191216/c38318c4c8b994d9bf6c97d0ae2b3731.jpg create mode 100644 public/storage/head_pic/20191216/c94f329e8dd1de626ef62c88f2909c3f.png create mode 100644 public/storage/head_pic/20191216/cb7655d02ef747b4d9e7d7940e73f6d8.jpg create mode 100644 public/storage/head_pic/20191216/e8c1ae660e8306a727bcbdc98bf905b2.jpg create mode 100644 public/storage/head_pic/20191216/eee52a488efe55b76a996d8fa33fb680.jpg create mode 100644 public/storage/head_pic/20191216/f3fe96dcc4b49b2c90e64053ee0ddf9a.jpg create mode 100644 public/storage/head_pic/20191216/fb73f03e45cf65853f39782a86ee9dd1.jpg create mode 100644 public/storage/head_pic/20191217/9406cc4b8f3e8271a28ac9db953937f5.jpg create mode 100644 public/storage/logo/20191024/21a2a32b90c538c7dd237c30c061eb33.jpg create mode 100644 public/storage/logo/20191024/39a98466ec0962cf3ef3f0f33a22aae7.jpg create mode 100644 public/storage/logo/20191024/81d04eb7a90d267dc8846aceed18142a.jpg create mode 100644 public/storage/logo/20191024/88b8c053ef9fc2720d25b6ca6d8f5b38.png create mode 100644 public/storage/logo/20191024/a5671b2c16a37ec8587f31989dab1177.png create mode 100644 public/storage/logo/20191024/a8507665cb1705e93ab75ca884604b41.jpg create mode 100644 public/storage/logo/20191024/b58623ad176b79128ec97623bfb23c53.jpg create mode 100644 public/storage/logo/20191024/cde4ae74973f370ff78ffb8cb2af6776.png create mode 100644 public/storage/logo/20191024/d1b642889179d06626dea8e78bb8e96a.png create mode 100644 public/storage/logo/20191024/f3c5b260b72796244f67505311585bca.png create mode 100644 public/storage/logo/20191026/969cb27c173d4db2692af42e20fe2683.png create mode 100644 public/storage/slider/20191126/00607adc1d037231cead4e21269fd4b0.jpg create mode 100644 public/storage/slider/20191126/00a19f605a29657d18ac8cea8ab13b33.jpg create mode 100644 public/storage/slider/20191126/03c9bc918a4667307b920531a690fc6c.jpg create mode 100644 public/storage/slider/20191126/3e71590697709feb5cda3abcacd19342.jpg create mode 100644 public/storage/slider/20191126/3f27c49dc8ccfd29d964ac1bffc30fe6.jpg create mode 100644 public/storage/slider/20191126/4b8e1313f9cf93dfb81eb0606e6890ab.jpg create mode 100644 public/storage/slider/20191126/500be9a576cec7f2e24a6a096ebc6ea1.jpg create mode 100644 public/storage/slider/20191126/54d992c2584affc7da8f64040024b3a2.jpg create mode 100644 public/storage/slider/20191126/58b9284cf63a422c4c097d1a89b4292d.jpg create mode 100644 public/storage/slider/20191126/61112ceeb1bc4c92395320d49ece11b0.jpg create mode 100644 public/storage/slider/20191126/70bd419024dc2c81135f6563c63b1876.jpg create mode 100644 public/storage/slider/20191126/84cc601c70ba68d767a1a3cbcef5bb80.jpg create mode 100644 public/storage/slider/20191126/95630e9856c014a1363637422626a852.jpg create mode 100644 public/storage/slider/20191126/d20b3a461ebdcee01f73de6d18dcc860.jpg create mode 100644 public/storage/slider/20191126/d9a89c72e89141a751af442c875d5086.jpg create mode 100644 public/storage/slider/20191126/de095f298faf9fa8e09a5226f0f61823.jpg create mode 100644 public/storage/slider/20191126/deb4dceee40a3e8e83e477f306505211.jpg create mode 100644 public/storage/slider/20191210/6e6486b81a5b07be4425b676513b0334.jpg create mode 100644 public/storage/slider/20191210/d35a49fda5839d4b27f65076fb57b7f2.jpg create mode 100644 public/storage/slider/20191210/e87f15527f32e690538671753010fd00.jpg create mode 100644 public/storage/slider/F1.jpg create mode 100644 public/storage/slider/F2.jpg create mode 100644 route/admin/route.php create mode 100644 route/app.php create mode 100644 route/index/route.php create mode 100644 runtime/.gitignore create mode 100644 think create mode 100644 vendor/autoload.php create mode 100644 vendor/bin/var-dump-server create mode 100644 vendor/bin/var-dump-server.bat create mode 100644 vendor/composer/ClassLoader.php create mode 100644 vendor/composer/LICENSE create mode 100644 vendor/composer/autoload_classmap.php create mode 100644 vendor/composer/autoload_files.php create mode 100644 vendor/composer/autoload_namespaces.php create mode 100644 vendor/composer/autoload_psr4.php create mode 100644 vendor/composer/autoload_real.php create mode 100644 vendor/composer/autoload_static.php create mode 100644 vendor/composer/installed.json create mode 100644 vendor/league/flysystem-cached-adapter/.editorconfig create mode 100644 vendor/league/flysystem-cached-adapter/.gitignore create mode 100644 vendor/league/flysystem-cached-adapter/.php_cs create mode 100644 vendor/league/flysystem-cached-adapter/.scrutinizer.yml create mode 100644 vendor/league/flysystem-cached-adapter/.travis.yml create mode 100644 vendor/league/flysystem-cached-adapter/LICENSE create mode 100644 vendor/league/flysystem-cached-adapter/clover/.gitignore create mode 100644 vendor/league/flysystem-cached-adapter/composer.json create mode 100644 vendor/league/flysystem-cached-adapter/phpspec.yml create mode 100644 vendor/league/flysystem-cached-adapter/phpunit.php create mode 100644 vendor/league/flysystem-cached-adapter/phpunit.xml create mode 100644 vendor/league/flysystem-cached-adapter/readme.md create mode 100644 vendor/league/flysystem-cached-adapter/spec/CachedAdapterSpec.php create mode 100644 vendor/league/flysystem-cached-adapter/src/CacheInterface.php create mode 100644 vendor/league/flysystem-cached-adapter/src/CachedAdapter.php create mode 100644 vendor/league/flysystem-cached-adapter/src/Storage/AbstractCache.php create mode 100644 vendor/league/flysystem-cached-adapter/src/Storage/Adapter.php create mode 100644 vendor/league/flysystem-cached-adapter/src/Storage/Memcached.php create mode 100644 vendor/league/flysystem-cached-adapter/src/Storage/Memory.php create mode 100644 vendor/league/flysystem-cached-adapter/src/Storage/Noop.php create mode 100644 vendor/league/flysystem-cached-adapter/src/Storage/PhpRedis.php create mode 100644 vendor/league/flysystem-cached-adapter/src/Storage/Predis.php create mode 100644 vendor/league/flysystem-cached-adapter/src/Storage/Psr6Cache.php create mode 100644 vendor/league/flysystem-cached-adapter/src/Storage/Stash.php create mode 100644 vendor/league/flysystem-cached-adapter/tests/AdapterCacheTests.php create mode 100644 vendor/league/flysystem-cached-adapter/tests/InspectionTests.php create mode 100644 vendor/league/flysystem-cached-adapter/tests/MemcachedTests.php create mode 100644 vendor/league/flysystem-cached-adapter/tests/MemoryCacheTests.php create mode 100644 vendor/league/flysystem-cached-adapter/tests/NoopCacheTests.php create mode 100644 vendor/league/flysystem-cached-adapter/tests/PhpRedisTests.php create mode 100644 vendor/league/flysystem-cached-adapter/tests/PredisTests.php create mode 100644 vendor/league/flysystem-cached-adapter/tests/Psr6CacheTest.php create mode 100644 vendor/league/flysystem-cached-adapter/tests/StashTest.php create mode 100644 vendor/league/flysystem/LICENSE create mode 100644 vendor/league/flysystem/SECURITY.md create mode 100644 vendor/league/flysystem/composer.json create mode 100644 vendor/league/flysystem/deprecations.md create mode 100644 vendor/league/flysystem/src/Adapter/AbstractAdapter.php create mode 100644 vendor/league/flysystem/src/Adapter/AbstractFtpAdapter.php create mode 100644 vendor/league/flysystem/src/Adapter/CanOverwriteFiles.php create mode 100644 vendor/league/flysystem/src/Adapter/Ftp.php create mode 100644 vendor/league/flysystem/src/Adapter/Ftpd.php create mode 100644 vendor/league/flysystem/src/Adapter/Local.php create mode 100644 vendor/league/flysystem/src/Adapter/NullAdapter.php create mode 100644 vendor/league/flysystem/src/Adapter/Polyfill/NotSupportingVisibilityTrait.php create mode 100644 vendor/league/flysystem/src/Adapter/Polyfill/StreamedCopyTrait.php create mode 100644 vendor/league/flysystem/src/Adapter/Polyfill/StreamedReadingTrait.php create mode 100644 vendor/league/flysystem/src/Adapter/Polyfill/StreamedTrait.php create mode 100644 vendor/league/flysystem/src/Adapter/Polyfill/StreamedWritingTrait.php create mode 100644 vendor/league/flysystem/src/Adapter/SynologyFtp.php create mode 100644 vendor/league/flysystem/src/AdapterInterface.php create mode 100644 vendor/league/flysystem/src/Config.php create mode 100644 vendor/league/flysystem/src/ConfigAwareTrait.php create mode 100644 vendor/league/flysystem/src/Directory.php create mode 100644 vendor/league/flysystem/src/Exception.php create mode 100644 vendor/league/flysystem/src/File.php create mode 100644 vendor/league/flysystem/src/FileExistsException.php create mode 100644 vendor/league/flysystem/src/FileNotFoundException.php create mode 100644 vendor/league/flysystem/src/Filesystem.php create mode 100644 vendor/league/flysystem/src/FilesystemInterface.php create mode 100644 vendor/league/flysystem/src/FilesystemNotFoundException.php create mode 100644 vendor/league/flysystem/src/Handler.php create mode 100644 vendor/league/flysystem/src/MountManager.php create mode 100644 vendor/league/flysystem/src/NotSupportedException.php create mode 100644 vendor/league/flysystem/src/Plugin/AbstractPlugin.php create mode 100644 vendor/league/flysystem/src/Plugin/EmptyDir.php create mode 100644 vendor/league/flysystem/src/Plugin/ForcedCopy.php create mode 100644 vendor/league/flysystem/src/Plugin/ForcedRename.php create mode 100644 vendor/league/flysystem/src/Plugin/GetWithMetadata.php create mode 100644 vendor/league/flysystem/src/Plugin/ListFiles.php create mode 100644 vendor/league/flysystem/src/Plugin/ListPaths.php create mode 100644 vendor/league/flysystem/src/Plugin/ListWith.php create mode 100644 vendor/league/flysystem/src/Plugin/PluggableTrait.php create mode 100644 vendor/league/flysystem/src/Plugin/PluginNotFoundException.php create mode 100644 vendor/league/flysystem/src/PluginInterface.php create mode 100644 vendor/league/flysystem/src/ReadInterface.php create mode 100644 vendor/league/flysystem/src/RootViolationException.php create mode 100644 vendor/league/flysystem/src/SafeStorage.php create mode 100644 vendor/league/flysystem/src/UnreadableFileException.php create mode 100644 vendor/league/flysystem/src/Util.php create mode 100644 vendor/league/flysystem/src/Util/ContentListingFormatter.php create mode 100644 vendor/league/flysystem/src/Util/MimeType.php create mode 100644 vendor/league/flysystem/src/Util/StreamHasher.php create mode 100644 vendor/opis/closure/CHANGELOG.md create mode 100644 vendor/opis/closure/LICENSE create mode 100644 vendor/opis/closure/NOTICE create mode 100644 vendor/opis/closure/README.md create mode 100644 vendor/opis/closure/autoload.php create mode 100644 vendor/opis/closure/composer.json create mode 100644 vendor/opis/closure/functions.php create mode 100644 vendor/opis/closure/src/Analyzer.php create mode 100644 vendor/opis/closure/src/ClosureContext.php create mode 100644 vendor/opis/closure/src/ClosureScope.php create mode 100644 vendor/opis/closure/src/ClosureStream.php create mode 100644 vendor/opis/closure/src/ISecurityProvider.php create mode 100644 vendor/opis/closure/src/ReflectionClosure.php create mode 100644 vendor/opis/closure/src/SecurityException.php create mode 100644 vendor/opis/closure/src/SecurityProvider.php create mode 100644 vendor/opis/closure/src/SelfReference.php create mode 100644 vendor/opis/closure/src/SerializableClosure.php create mode 100644 vendor/phpmailer/phpmailer/COMMITMENT create mode 100644 vendor/phpmailer/phpmailer/LICENSE create mode 100644 vendor/phpmailer/phpmailer/README.md create mode 100644 vendor/phpmailer/phpmailer/SECURITY.md create mode 100644 vendor/phpmailer/phpmailer/VERSION create mode 100644 vendor/phpmailer/phpmailer/composer.json create mode 100644 vendor/phpmailer/phpmailer/get_oauth_token.php create mode 100644 vendor/phpmailer/phpmailer/language/phpmailer.lang-am.php create mode 100644 vendor/phpmailer/phpmailer/language/phpmailer.lang-ar.php create mode 100644 vendor/phpmailer/phpmailer/language/phpmailer.lang-az.php create mode 100644 vendor/phpmailer/phpmailer/language/phpmailer.lang-ba.php create mode 100644 vendor/phpmailer/phpmailer/language/phpmailer.lang-be.php create mode 100644 vendor/phpmailer/phpmailer/language/phpmailer.lang-bg.php create mode 100644 vendor/phpmailer/phpmailer/language/phpmailer.lang-ca.php create mode 100644 vendor/phpmailer/phpmailer/language/phpmailer.lang-ch.php create mode 100644 vendor/phpmailer/phpmailer/language/phpmailer.lang-cs.php create mode 100644 vendor/phpmailer/phpmailer/language/phpmailer.lang-da.php create mode 100644 vendor/phpmailer/phpmailer/language/phpmailer.lang-de.php create mode 100644 vendor/phpmailer/phpmailer/language/phpmailer.lang-el.php create mode 100644 vendor/phpmailer/phpmailer/language/phpmailer.lang-eo.php create mode 100644 vendor/phpmailer/phpmailer/language/phpmailer.lang-es.php create mode 100644 vendor/phpmailer/phpmailer/language/phpmailer.lang-et.php create mode 100644 vendor/phpmailer/phpmailer/language/phpmailer.lang-fa.php create mode 100644 vendor/phpmailer/phpmailer/language/phpmailer.lang-fi.php create mode 100644 vendor/phpmailer/phpmailer/language/phpmailer.lang-fo.php create mode 100644 vendor/phpmailer/phpmailer/language/phpmailer.lang-fr.php create mode 100644 vendor/phpmailer/phpmailer/language/phpmailer.lang-gl.php create mode 100644 vendor/phpmailer/phpmailer/language/phpmailer.lang-he.php create mode 100644 vendor/phpmailer/phpmailer/language/phpmailer.lang-hi.php create mode 100644 vendor/phpmailer/phpmailer/language/phpmailer.lang-hr.php create mode 100644 vendor/phpmailer/phpmailer/language/phpmailer.lang-hu.php create mode 100644 vendor/phpmailer/phpmailer/language/phpmailer.lang-id.php create mode 100644 vendor/phpmailer/phpmailer/language/phpmailer.lang-it.php create mode 100644 vendor/phpmailer/phpmailer/language/phpmailer.lang-ja.php create mode 100644 vendor/phpmailer/phpmailer/language/phpmailer.lang-ka.php create mode 100644 vendor/phpmailer/phpmailer/language/phpmailer.lang-ko.php create mode 100644 vendor/phpmailer/phpmailer/language/phpmailer.lang-lt.php create mode 100644 vendor/phpmailer/phpmailer/language/phpmailer.lang-lv.php create mode 100644 vendor/phpmailer/phpmailer/language/phpmailer.lang-mg.php create mode 100644 vendor/phpmailer/phpmailer/language/phpmailer.lang-ms.php create mode 100644 vendor/phpmailer/phpmailer/language/phpmailer.lang-nb.php create mode 100644 vendor/phpmailer/phpmailer/language/phpmailer.lang-nl.php create mode 100644 vendor/phpmailer/phpmailer/language/phpmailer.lang-pl.php create mode 100644 vendor/phpmailer/phpmailer/language/phpmailer.lang-pt.php create mode 100644 vendor/phpmailer/phpmailer/language/phpmailer.lang-pt_br.php create mode 100644 vendor/phpmailer/phpmailer/language/phpmailer.lang-ro.php create mode 100644 vendor/phpmailer/phpmailer/language/phpmailer.lang-ru.php create mode 100644 vendor/phpmailer/phpmailer/language/phpmailer.lang-sk.php create mode 100644 vendor/phpmailer/phpmailer/language/phpmailer.lang-sl.php create mode 100644 vendor/phpmailer/phpmailer/language/phpmailer.lang-sr.php create mode 100644 vendor/phpmailer/phpmailer/language/phpmailer.lang-sv.php create mode 100644 vendor/phpmailer/phpmailer/language/phpmailer.lang-tl.php create mode 100644 vendor/phpmailer/phpmailer/language/phpmailer.lang-tr.php create mode 100644 vendor/phpmailer/phpmailer/language/phpmailer.lang-uk.php create mode 100644 vendor/phpmailer/phpmailer/language/phpmailer.lang-vi.php create mode 100644 vendor/phpmailer/phpmailer/language/phpmailer.lang-zh.php create mode 100644 vendor/phpmailer/phpmailer/language/phpmailer.lang-zh_cn.php create mode 100644 vendor/phpmailer/phpmailer/src/Exception.php create mode 100644 vendor/phpmailer/phpmailer/src/OAuth.php create mode 100644 vendor/phpmailer/phpmailer/src/PHPMailer.php create mode 100644 vendor/phpmailer/phpmailer/src/POP3.php create mode 100644 vendor/phpmailer/phpmailer/src/SMTP.php create mode 100644 vendor/psr/cache/CHANGELOG.md create mode 100644 vendor/psr/cache/LICENSE.txt create mode 100644 vendor/psr/cache/README.md create mode 100644 vendor/psr/cache/composer.json create mode 100644 vendor/psr/cache/src/CacheException.php create mode 100644 vendor/psr/cache/src/CacheItemInterface.php create mode 100644 vendor/psr/cache/src/CacheItemPoolInterface.php create mode 100644 vendor/psr/cache/src/InvalidArgumentException.php create mode 100644 vendor/psr/container/.gitignore create mode 100644 vendor/psr/container/LICENSE create mode 100644 vendor/psr/container/README.md create mode 100644 vendor/psr/container/composer.json create mode 100644 vendor/psr/container/src/ContainerExceptionInterface.php create mode 100644 vendor/psr/container/src/ContainerInterface.php create mode 100644 vendor/psr/container/src/NotFoundExceptionInterface.php create mode 100644 vendor/psr/log/.gitignore create mode 100644 vendor/psr/log/LICENSE create mode 100644 vendor/psr/log/Psr/Log/AbstractLogger.php create mode 100644 vendor/psr/log/Psr/Log/InvalidArgumentException.php create mode 100644 vendor/psr/log/Psr/Log/LogLevel.php create mode 100644 vendor/psr/log/Psr/Log/LoggerAwareInterface.php create mode 100644 vendor/psr/log/Psr/Log/LoggerAwareTrait.php create mode 100644 vendor/psr/log/Psr/Log/LoggerInterface.php create mode 100644 vendor/psr/log/Psr/Log/LoggerTrait.php create mode 100644 vendor/psr/log/Psr/Log/NullLogger.php create mode 100644 vendor/psr/log/Psr/Log/Test/LoggerInterfaceTest.php create mode 100644 vendor/psr/log/Psr/Log/Test/TestLogger.php create mode 100644 vendor/psr/log/README.md create mode 100644 vendor/psr/log/composer.json create mode 100644 vendor/psr/simple-cache/.editorconfig create mode 100644 vendor/psr/simple-cache/LICENSE.md create mode 100644 vendor/psr/simple-cache/README.md create mode 100644 vendor/psr/simple-cache/composer.json create mode 100644 vendor/psr/simple-cache/src/CacheException.php create mode 100644 vendor/psr/simple-cache/src/CacheInterface.php create mode 100644 vendor/psr/simple-cache/src/InvalidArgumentException.php create mode 100644 vendor/services.php create mode 100644 vendor/symfony/polyfill-mbstring/LICENSE create mode 100644 vendor/symfony/polyfill-mbstring/Mbstring.php create mode 100644 vendor/symfony/polyfill-mbstring/README.md create mode 100644 vendor/symfony/polyfill-mbstring/Resources/unidata/lowerCase.php create mode 100644 vendor/symfony/polyfill-mbstring/Resources/unidata/titleCaseRegexp.php create mode 100644 vendor/symfony/polyfill-mbstring/Resources/unidata/upperCase.php create mode 100644 vendor/symfony/polyfill-mbstring/bootstrap.php create mode 100644 vendor/symfony/polyfill-mbstring/composer.json create mode 100644 vendor/symfony/polyfill-php72/LICENSE create mode 100644 vendor/symfony/polyfill-php72/Php72.php create mode 100644 vendor/symfony/polyfill-php72/README.md create mode 100644 vendor/symfony/polyfill-php72/bootstrap.php create mode 100644 vendor/symfony/polyfill-php72/composer.json create mode 100644 vendor/symfony/var-dumper/CHANGELOG.md create mode 100644 vendor/symfony/var-dumper/Caster/AmqpCaster.php create mode 100644 vendor/symfony/var-dumper/Caster/ArgsStub.php create mode 100644 vendor/symfony/var-dumper/Caster/Caster.php create mode 100644 vendor/symfony/var-dumper/Caster/ClassStub.php create mode 100644 vendor/symfony/var-dumper/Caster/ConstStub.php create mode 100644 vendor/symfony/var-dumper/Caster/CutArrayStub.php create mode 100644 vendor/symfony/var-dumper/Caster/CutStub.php create mode 100644 vendor/symfony/var-dumper/Caster/DOMCaster.php create mode 100644 vendor/symfony/var-dumper/Caster/DateCaster.php create mode 100644 vendor/symfony/var-dumper/Caster/DoctrineCaster.php create mode 100644 vendor/symfony/var-dumper/Caster/DsCaster.php create mode 100644 vendor/symfony/var-dumper/Caster/DsPairStub.php create mode 100644 vendor/symfony/var-dumper/Caster/EnumStub.php create mode 100644 vendor/symfony/var-dumper/Caster/ExceptionCaster.php create mode 100644 vendor/symfony/var-dumper/Caster/FrameStub.php create mode 100644 vendor/symfony/var-dumper/Caster/GmpCaster.php create mode 100644 vendor/symfony/var-dumper/Caster/IntlCaster.php create mode 100644 vendor/symfony/var-dumper/Caster/LinkStub.php create mode 100644 vendor/symfony/var-dumper/Caster/MemcachedCaster.php create mode 100644 vendor/symfony/var-dumper/Caster/PdoCaster.php create mode 100644 vendor/symfony/var-dumper/Caster/PgSqlCaster.php create mode 100644 vendor/symfony/var-dumper/Caster/ProxyManagerCaster.php create mode 100644 vendor/symfony/var-dumper/Caster/RedisCaster.php create mode 100644 vendor/symfony/var-dumper/Caster/ReflectionCaster.php create mode 100644 vendor/symfony/var-dumper/Caster/ResourceCaster.php create mode 100644 vendor/symfony/var-dumper/Caster/SplCaster.php create mode 100644 vendor/symfony/var-dumper/Caster/StubCaster.php create mode 100644 vendor/symfony/var-dumper/Caster/SymfonyCaster.php create mode 100644 vendor/symfony/var-dumper/Caster/TraceStub.php create mode 100644 vendor/symfony/var-dumper/Caster/XmlReaderCaster.php create mode 100644 vendor/symfony/var-dumper/Caster/XmlResourceCaster.php create mode 100644 vendor/symfony/var-dumper/Cloner/AbstractCloner.php create mode 100644 vendor/symfony/var-dumper/Cloner/ClonerInterface.php create mode 100644 vendor/symfony/var-dumper/Cloner/Cursor.php create mode 100644 vendor/symfony/var-dumper/Cloner/Data.php create mode 100644 vendor/symfony/var-dumper/Cloner/DumperInterface.php create mode 100644 vendor/symfony/var-dumper/Cloner/Stub.php create mode 100644 vendor/symfony/var-dumper/Cloner/VarCloner.php create mode 100644 vendor/symfony/var-dumper/Command/Descriptor/CliDescriptor.php create mode 100644 vendor/symfony/var-dumper/Command/Descriptor/DumpDescriptorInterface.php create mode 100644 vendor/symfony/var-dumper/Command/Descriptor/HtmlDescriptor.php create mode 100644 vendor/symfony/var-dumper/Command/ServerDumpCommand.php create mode 100644 vendor/symfony/var-dumper/Dumper/AbstractDumper.php create mode 100644 vendor/symfony/var-dumper/Dumper/CliDumper.php create mode 100644 vendor/symfony/var-dumper/Dumper/ContextProvider/CliContextProvider.php create mode 100644 vendor/symfony/var-dumper/Dumper/ContextProvider/ContextProviderInterface.php create mode 100644 vendor/symfony/var-dumper/Dumper/ContextProvider/RequestContextProvider.php create mode 100644 vendor/symfony/var-dumper/Dumper/ContextProvider/SourceContextProvider.php create mode 100644 vendor/symfony/var-dumper/Dumper/DataDumperInterface.php create mode 100644 vendor/symfony/var-dumper/Dumper/HtmlDumper.php create mode 100644 vendor/symfony/var-dumper/Dumper/ServerDumper.php create mode 100644 vendor/symfony/var-dumper/Exception/ThrowingCasterException.php create mode 100644 vendor/symfony/var-dumper/LICENSE create mode 100644 vendor/symfony/var-dumper/README.md create mode 100644 vendor/symfony/var-dumper/Resources/bin/var-dump-server create mode 100644 vendor/symfony/var-dumper/Resources/css/htmlDescriptor.css create mode 100644 vendor/symfony/var-dumper/Resources/functions/dump.php create mode 100644 vendor/symfony/var-dumper/Resources/js/htmlDescriptor.js create mode 100644 vendor/symfony/var-dumper/Server/Connection.php create mode 100644 vendor/symfony/var-dumper/Server/DumpServer.php create mode 100644 vendor/symfony/var-dumper/Test/VarDumperTestTrait.php create mode 100644 vendor/symfony/var-dumper/VarDumper.php create mode 100644 vendor/symfony/var-dumper/composer.json create mode 100644 vendor/topthink/framework/.gitignore create mode 100644 vendor/topthink/framework/.travis.yml create mode 100644 vendor/topthink/framework/CONTRIBUTING.md create mode 100644 vendor/topthink/framework/LICENSE.txt create mode 100644 vendor/topthink/framework/README.md create mode 100644 vendor/topthink/framework/composer.json create mode 100644 vendor/topthink/framework/logo.png create mode 100644 vendor/topthink/framework/phpunit.xml.dist create mode 100644 vendor/topthink/framework/src/helper.php create mode 100644 vendor/topthink/framework/src/lang/zh-cn.php create mode 100644 vendor/topthink/framework/src/think/App.php create mode 100644 vendor/topthink/framework/src/think/Cache.php create mode 100644 vendor/topthink/framework/src/think/Config.php create mode 100644 vendor/topthink/framework/src/think/Console.php create mode 100644 vendor/topthink/framework/src/think/Container.php create mode 100644 vendor/topthink/framework/src/think/Cookie.php create mode 100644 vendor/topthink/framework/src/think/Db.php create mode 100644 vendor/topthink/framework/src/think/Env.php create mode 100644 vendor/topthink/framework/src/think/Event.php create mode 100644 vendor/topthink/framework/src/think/Exception.php create mode 100644 vendor/topthink/framework/src/think/Facade.php create mode 100644 vendor/topthink/framework/src/think/File.php create mode 100644 vendor/topthink/framework/src/think/Filesystem.php create mode 100644 vendor/topthink/framework/src/think/Http.php create mode 100644 vendor/topthink/framework/src/think/Lang.php create mode 100644 vendor/topthink/framework/src/think/Log.php create mode 100644 vendor/topthink/framework/src/think/Manager.php create mode 100644 vendor/topthink/framework/src/think/Middleware.php create mode 100644 vendor/topthink/framework/src/think/Pipeline.php create mode 100644 vendor/topthink/framework/src/think/Request.php create mode 100644 vendor/topthink/framework/src/think/Response.php create mode 100644 vendor/topthink/framework/src/think/Route.php create mode 100644 vendor/topthink/framework/src/think/Service.php create mode 100644 vendor/topthink/framework/src/think/Session.php create mode 100644 vendor/topthink/framework/src/think/Validate.php create mode 100644 vendor/topthink/framework/src/think/View.php create mode 100644 vendor/topthink/framework/src/think/cache/Driver.php create mode 100644 vendor/topthink/framework/src/think/cache/TagSet.php create mode 100644 vendor/topthink/framework/src/think/cache/driver/File.php create mode 100644 vendor/topthink/framework/src/think/cache/driver/Memcache.php create mode 100644 vendor/topthink/framework/src/think/cache/driver/Memcached.php create mode 100644 vendor/topthink/framework/src/think/cache/driver/Redis.php create mode 100644 vendor/topthink/framework/src/think/cache/driver/Wincache.php create mode 100644 vendor/topthink/framework/src/think/console/Command.php create mode 100644 vendor/topthink/framework/src/think/console/Input.php create mode 100644 vendor/topthink/framework/src/think/console/LICENSE create mode 100644 vendor/topthink/framework/src/think/console/Output.php create mode 100644 vendor/topthink/framework/src/think/console/Table.php create mode 100644 vendor/topthink/framework/src/think/console/bin/README.md create mode 100644 vendor/topthink/framework/src/think/console/bin/hiddeninput.exe create mode 100644 vendor/topthink/framework/src/think/console/command/Clear.php create mode 100644 vendor/topthink/framework/src/think/console/command/Help.php create mode 100644 vendor/topthink/framework/src/think/console/command/Lists.php create mode 100644 vendor/topthink/framework/src/think/console/command/Make.php create mode 100644 vendor/topthink/framework/src/think/console/command/RouteList.php create mode 100644 vendor/topthink/framework/src/think/console/command/RunServer.php create mode 100644 vendor/topthink/framework/src/think/console/command/ServiceDiscover.php create mode 100644 vendor/topthink/framework/src/think/console/command/VendorPublish.php create mode 100644 vendor/topthink/framework/src/think/console/command/Version.php create mode 100644 vendor/topthink/framework/src/think/console/command/make/Command.php create mode 100644 vendor/topthink/framework/src/think/console/command/make/Controller.php create mode 100644 vendor/topthink/framework/src/think/console/command/make/Event.php create mode 100644 vendor/topthink/framework/src/think/console/command/make/Listener.php create mode 100644 vendor/topthink/framework/src/think/console/command/make/Middleware.php create mode 100644 vendor/topthink/framework/src/think/console/command/make/Model.php create mode 100644 vendor/topthink/framework/src/think/console/command/make/Service.php create mode 100644 vendor/topthink/framework/src/think/console/command/make/Subscribe.php create mode 100644 vendor/topthink/framework/src/think/console/command/make/Validate.php create mode 100644 vendor/topthink/framework/src/think/console/command/make/stubs/command.stub create mode 100644 vendor/topthink/framework/src/think/console/command/make/stubs/controller.api.stub create mode 100644 vendor/topthink/framework/src/think/console/command/make/stubs/controller.plain.stub create mode 100644 vendor/topthink/framework/src/think/console/command/make/stubs/controller.stub create mode 100644 vendor/topthink/framework/src/think/console/command/make/stubs/event.stub create mode 100644 vendor/topthink/framework/src/think/console/command/make/stubs/listener.stub create mode 100644 vendor/topthink/framework/src/think/console/command/make/stubs/middleware.stub create mode 100644 vendor/topthink/framework/src/think/console/command/make/stubs/model.stub create mode 100644 vendor/topthink/framework/src/think/console/command/make/stubs/service.stub create mode 100644 vendor/topthink/framework/src/think/console/command/make/stubs/subscribe.stub create mode 100644 vendor/topthink/framework/src/think/console/command/make/stubs/validate.stub create mode 100644 vendor/topthink/framework/src/think/console/command/optimize/Route.php create mode 100644 vendor/topthink/framework/src/think/console/command/optimize/Schema.php create mode 100644 vendor/topthink/framework/src/think/console/input/Argument.php create mode 100644 vendor/topthink/framework/src/think/console/input/Definition.php create mode 100644 vendor/topthink/framework/src/think/console/input/Option.php create mode 100644 vendor/topthink/framework/src/think/console/output/Ask.php create mode 100644 vendor/topthink/framework/src/think/console/output/Descriptor.php create mode 100644 vendor/topthink/framework/src/think/console/output/Formatter.php create mode 100644 vendor/topthink/framework/src/think/console/output/Question.php create mode 100644 vendor/topthink/framework/src/think/console/output/descriptor/Console.php create mode 100644 vendor/topthink/framework/src/think/console/output/driver/Buffer.php create mode 100644 vendor/topthink/framework/src/think/console/output/driver/Console.php create mode 100644 vendor/topthink/framework/src/think/console/output/driver/Nothing.php create mode 100644 vendor/topthink/framework/src/think/console/output/formatter/Stack.php create mode 100644 vendor/topthink/framework/src/think/console/output/formatter/Style.php create mode 100644 vendor/topthink/framework/src/think/console/output/question/Choice.php create mode 100644 vendor/topthink/framework/src/think/console/output/question/Confirmation.php create mode 100644 vendor/topthink/framework/src/think/contract/CacheHandlerInterface.php create mode 100644 vendor/topthink/framework/src/think/contract/LogHandlerInterface.php create mode 100644 vendor/topthink/framework/src/think/contract/ModelRelationInterface.php create mode 100644 vendor/topthink/framework/src/think/contract/SessionHandlerInterface.php create mode 100644 vendor/topthink/framework/src/think/contract/TemplateHandlerInterface.php create mode 100644 vendor/topthink/framework/src/think/event/AppInit.php create mode 100644 vendor/topthink/framework/src/think/event/HttpEnd.php create mode 100644 vendor/topthink/framework/src/think/event/HttpRun.php create mode 100644 vendor/topthink/framework/src/think/event/LogWrite.php create mode 100644 vendor/topthink/framework/src/think/event/RouteLoaded.php create mode 100644 vendor/topthink/framework/src/think/exception/ClassNotFoundException.php create mode 100644 vendor/topthink/framework/src/think/exception/ErrorException.php create mode 100644 vendor/topthink/framework/src/think/exception/FileException.php create mode 100644 vendor/topthink/framework/src/think/exception/FuncNotFoundException.php create mode 100644 vendor/topthink/framework/src/think/exception/Handle.php create mode 100644 vendor/topthink/framework/src/think/exception/HttpException.php create mode 100644 vendor/topthink/framework/src/think/exception/HttpResponseException.php create mode 100644 vendor/topthink/framework/src/think/exception/InvalidArgumentException.php create mode 100644 vendor/topthink/framework/src/think/exception/RouteNotFoundException.php create mode 100644 vendor/topthink/framework/src/think/exception/ValidateException.php create mode 100644 vendor/topthink/framework/src/think/facade/App.php create mode 100644 vendor/topthink/framework/src/think/facade/Cache.php create mode 100644 vendor/topthink/framework/src/think/facade/Config.php create mode 100644 vendor/topthink/framework/src/think/facade/Console.php create mode 100644 vendor/topthink/framework/src/think/facade/Cookie.php create mode 100644 vendor/topthink/framework/src/think/facade/Env.php create mode 100644 vendor/topthink/framework/src/think/facade/Event.php create mode 100644 vendor/topthink/framework/src/think/facade/Filesystem.php create mode 100644 vendor/topthink/framework/src/think/facade/Lang.php create mode 100644 vendor/topthink/framework/src/think/facade/Log.php create mode 100644 vendor/topthink/framework/src/think/facade/Middleware.php create mode 100644 vendor/topthink/framework/src/think/facade/Request.php create mode 100644 vendor/topthink/framework/src/think/facade/Route.php create mode 100644 vendor/topthink/framework/src/think/facade/Session.php create mode 100644 vendor/topthink/framework/src/think/facade/Validate.php create mode 100644 vendor/topthink/framework/src/think/facade/View.php create mode 100644 vendor/topthink/framework/src/think/file/UploadedFile.php create mode 100644 vendor/topthink/framework/src/think/filesystem/CacheStore.php create mode 100644 vendor/topthink/framework/src/think/filesystem/Driver.php create mode 100644 vendor/topthink/framework/src/think/filesystem/driver/Local.php create mode 100644 vendor/topthink/framework/src/think/initializer/BootService.php create mode 100644 vendor/topthink/framework/src/think/initializer/Error.php create mode 100644 vendor/topthink/framework/src/think/initializer/RegisterService.php create mode 100644 vendor/topthink/framework/src/think/log/Channel.php create mode 100644 vendor/topthink/framework/src/think/log/ChannelSet.php create mode 100644 vendor/topthink/framework/src/think/log/driver/File.php create mode 100644 vendor/topthink/framework/src/think/log/driver/Socket.php create mode 100644 vendor/topthink/framework/src/think/middleware/AllowCrossDomain.php create mode 100644 vendor/topthink/framework/src/think/middleware/CheckRequestCache.php create mode 100644 vendor/topthink/framework/src/think/middleware/FormTokenCheck.php create mode 100644 vendor/topthink/framework/src/think/middleware/LoadLangPack.php create mode 100644 vendor/topthink/framework/src/think/middleware/SessionInit.php create mode 100644 vendor/topthink/framework/src/think/response/File.php create mode 100644 vendor/topthink/framework/src/think/response/Html.php create mode 100644 vendor/topthink/framework/src/think/response/Json.php create mode 100644 vendor/topthink/framework/src/think/response/Jsonp.php create mode 100644 vendor/topthink/framework/src/think/response/Redirect.php create mode 100644 vendor/topthink/framework/src/think/response/View.php create mode 100644 vendor/topthink/framework/src/think/response/Xml.php create mode 100644 vendor/topthink/framework/src/think/route/Dispatch.php create mode 100644 vendor/topthink/framework/src/think/route/Domain.php create mode 100644 vendor/topthink/framework/src/think/route/Resource.php create mode 100644 vendor/topthink/framework/src/think/route/Rule.php create mode 100644 vendor/topthink/framework/src/think/route/RuleGroup.php create mode 100644 vendor/topthink/framework/src/think/route/RuleItem.php create mode 100644 vendor/topthink/framework/src/think/route/RuleName.php create mode 100644 vendor/topthink/framework/src/think/route/Url.php create mode 100644 vendor/topthink/framework/src/think/route/dispatch/Callback.php create mode 100644 vendor/topthink/framework/src/think/route/dispatch/Controller.php create mode 100644 vendor/topthink/framework/src/think/route/dispatch/Redirect.php create mode 100644 vendor/topthink/framework/src/think/route/dispatch/Response.php create mode 100644 vendor/topthink/framework/src/think/route/dispatch/Url.php create mode 100644 vendor/topthink/framework/src/think/route/dispatch/View.php create mode 100644 vendor/topthink/framework/src/think/service/ModelService.php create mode 100644 vendor/topthink/framework/src/think/service/PaginatorService.php create mode 100644 vendor/topthink/framework/src/think/service/ValidateService.php create mode 100644 vendor/topthink/framework/src/think/session/Store.php create mode 100644 vendor/topthink/framework/src/think/session/driver/Cache.php create mode 100644 vendor/topthink/framework/src/think/session/driver/File.php create mode 100644 vendor/topthink/framework/src/think/validate/ValidateRule.php create mode 100644 vendor/topthink/framework/src/think/view/driver/Php.php create mode 100644 vendor/topthink/framework/src/tpl/think_exception.tpl create mode 100644 vendor/topthink/framework/tests/AppTest.php create mode 100644 vendor/topthink/framework/tests/CacheTest.php create mode 100644 vendor/topthink/framework/tests/ConfigTest.php create mode 100644 vendor/topthink/framework/tests/ContainerTest.php create mode 100644 vendor/topthink/framework/tests/DbTest.php create mode 100644 vendor/topthink/framework/tests/EnvTest.php create mode 100644 vendor/topthink/framework/tests/EventTest.php create mode 100644 vendor/topthink/framework/tests/FilesystemTest.php create mode 100644 vendor/topthink/framework/tests/HttpTest.php create mode 100644 vendor/topthink/framework/tests/LogTest.php create mode 100644 vendor/topthink/framework/tests/MiddlewareTest.php create mode 100644 vendor/topthink/framework/tests/SessionTest.php create mode 100644 vendor/topthink/framework/tests/ViewTest.php create mode 100644 vendor/topthink/framework/tests/bootstrap.php create mode 100644 vendor/topthink/think-captcha/.gitignore create mode 100644 vendor/topthink/think-captcha/LICENSE create mode 100644 vendor/topthink/think-captcha/README.md create mode 100644 vendor/topthink/think-captcha/assets/bgs/1.jpg create mode 100644 vendor/topthink/think-captcha/assets/bgs/2.jpg create mode 100644 vendor/topthink/think-captcha/assets/bgs/3.jpg create mode 100644 vendor/topthink/think-captcha/assets/bgs/4.jpg create mode 100644 vendor/topthink/think-captcha/assets/bgs/5.jpg create mode 100644 vendor/topthink/think-captcha/assets/bgs/6.jpg create mode 100644 vendor/topthink/think-captcha/assets/bgs/7.jpg create mode 100644 vendor/topthink/think-captcha/assets/bgs/8.jpg create mode 100644 vendor/topthink/think-captcha/assets/ttfs/1.ttf create mode 100644 vendor/topthink/think-captcha/assets/ttfs/2.ttf create mode 100644 vendor/topthink/think-captcha/assets/ttfs/3.ttf create mode 100644 vendor/topthink/think-captcha/assets/ttfs/4.ttf create mode 100644 vendor/topthink/think-captcha/assets/ttfs/5.ttf create mode 100644 vendor/topthink/think-captcha/assets/ttfs/6.ttf create mode 100644 vendor/topthink/think-captcha/assets/zhttfs/1.ttf create mode 100644 vendor/topthink/think-captcha/composer.json create mode 100644 vendor/topthink/think-captcha/src/Captcha.php create mode 100644 vendor/topthink/think-captcha/src/CaptchaController.php create mode 100644 vendor/topthink/think-captcha/src/CaptchaService.php create mode 100644 vendor/topthink/think-captcha/src/facade/Captcha.php create mode 100644 vendor/topthink/think-captcha/src/helper.php create mode 100644 vendor/topthink/think-helper/.gitignore create mode 100644 vendor/topthink/think-helper/LICENSE create mode 100644 vendor/topthink/think-helper/README.md create mode 100644 vendor/topthink/think-helper/composer.json create mode 100644 vendor/topthink/think-helper/src/Collection.php create mode 100644 vendor/topthink/think-helper/src/contract/Arrayable.php create mode 100644 vendor/topthink/think-helper/src/contract/Jsonable.php create mode 100644 vendor/topthink/think-helper/src/helper.php create mode 100644 vendor/topthink/think-helper/src/helper/Arr.php create mode 100644 vendor/topthink/think-helper/src/helper/Str.php create mode 100644 vendor/topthink/think-multi-app/LICENSE create mode 100644 vendor/topthink/think-multi-app/README.md create mode 100644 vendor/topthink/think-multi-app/composer.json create mode 100644 vendor/topthink/think-multi-app/src/MultiApp.php create mode 100644 vendor/topthink/think-multi-app/src/Service.php create mode 100644 vendor/topthink/think-multi-app/src/Url.php create mode 100644 vendor/topthink/think-orm/.gitignore create mode 100644 vendor/topthink/think-orm/LICENSE create mode 100644 vendor/topthink/think-orm/README.md create mode 100644 vendor/topthink/think-orm/composer.json create mode 100644 vendor/topthink/think-orm/src/DbManager.php create mode 100644 vendor/topthink/think-orm/src/Model.php create mode 100644 vendor/topthink/think-orm/src/Paginator.php create mode 100644 vendor/topthink/think-orm/src/db/BaseQuery.php create mode 100644 vendor/topthink/think-orm/src/db/Builder.php create mode 100644 vendor/topthink/think-orm/src/db/CacheItem.php create mode 100644 vendor/topthink/think-orm/src/db/Connection.php create mode 100644 vendor/topthink/think-orm/src/db/ConnectionInterface.php create mode 100644 vendor/topthink/think-orm/src/db/Fetch.php create mode 100644 vendor/topthink/think-orm/src/db/Mongo.php create mode 100644 vendor/topthink/think-orm/src/db/PDOConnection.php create mode 100644 vendor/topthink/think-orm/src/db/Query.php create mode 100644 vendor/topthink/think-orm/src/db/Raw.php create mode 100644 vendor/topthink/think-orm/src/db/Where.php create mode 100644 vendor/topthink/think-orm/src/db/builder/Mongo.php create mode 100644 vendor/topthink/think-orm/src/db/builder/Mysql.php create mode 100644 vendor/topthink/think-orm/src/db/builder/Oracle.php create mode 100644 vendor/topthink/think-orm/src/db/builder/Pgsql.php create mode 100644 vendor/topthink/think-orm/src/db/builder/Sqlite.php create mode 100644 vendor/topthink/think-orm/src/db/builder/Sqlsrv.php create mode 100644 vendor/topthink/think-orm/src/db/concern/AggregateQuery.php create mode 100644 vendor/topthink/think-orm/src/db/concern/JoinAndViewQuery.php create mode 100644 vendor/topthink/think-orm/src/db/concern/ModelRelationQuery.php create mode 100644 vendor/topthink/think-orm/src/db/concern/ParamsBind.php create mode 100644 vendor/topthink/think-orm/src/db/concern/ResultOperation.php create mode 100644 vendor/topthink/think-orm/src/db/concern/TableFieldInfo.php create mode 100644 vendor/topthink/think-orm/src/db/concern/TimeFieldQuery.php create mode 100644 vendor/topthink/think-orm/src/db/concern/Transaction.php create mode 100644 vendor/topthink/think-orm/src/db/concern/WhereQuery.php create mode 100644 vendor/topthink/think-orm/src/db/connector/Mongo.php create mode 100644 vendor/topthink/think-orm/src/db/connector/Mysql.php create mode 100644 vendor/topthink/think-orm/src/db/connector/Oracle.php create mode 100644 vendor/topthink/think-orm/src/db/connector/Pgsql.php create mode 100644 vendor/topthink/think-orm/src/db/connector/Sqlite.php create mode 100644 vendor/topthink/think-orm/src/db/connector/Sqlsrv.php create mode 100644 vendor/topthink/think-orm/src/db/connector/pgsql.sql create mode 100644 vendor/topthink/think-orm/src/db/exception/BindParamException.php create mode 100644 vendor/topthink/think-orm/src/db/exception/DataNotFoundException.php create mode 100644 vendor/topthink/think-orm/src/db/exception/DbException.php create mode 100644 vendor/topthink/think-orm/src/db/exception/InvalidArgumentException.php create mode 100644 vendor/topthink/think-orm/src/db/exception/ModelEventException.php create mode 100644 vendor/topthink/think-orm/src/db/exception/ModelNotFoundException.php create mode 100644 vendor/topthink/think-orm/src/db/exception/PDOException.php create mode 100644 vendor/topthink/think-orm/src/facade/Db.php create mode 100644 vendor/topthink/think-orm/src/model/Collection.php create mode 100644 vendor/topthink/think-orm/src/model/Pivot.php create mode 100644 vendor/topthink/think-orm/src/model/Relation.php create mode 100644 vendor/topthink/think-orm/src/model/concern/Attribute.php create mode 100644 vendor/topthink/think-orm/src/model/concern/Conversion.php create mode 100644 vendor/topthink/think-orm/src/model/concern/ModelEvent.php create mode 100644 vendor/topthink/think-orm/src/model/concern/OptimLock.php create mode 100644 vendor/topthink/think-orm/src/model/concern/RelationShip.php create mode 100644 vendor/topthink/think-orm/src/model/concern/SoftDelete.php create mode 100644 vendor/topthink/think-orm/src/model/concern/TimeStamp.php create mode 100644 vendor/topthink/think-orm/src/model/relation/BelongsTo.php create mode 100644 vendor/topthink/think-orm/src/model/relation/BelongsToMany.php create mode 100644 vendor/topthink/think-orm/src/model/relation/HasMany.php create mode 100644 vendor/topthink/think-orm/src/model/relation/HasManyThrough.php create mode 100644 vendor/topthink/think-orm/src/model/relation/HasOne.php create mode 100644 vendor/topthink/think-orm/src/model/relation/HasOneThrough.php create mode 100644 vendor/topthink/think-orm/src/model/relation/MorphMany.php create mode 100644 vendor/topthink/think-orm/src/model/relation/MorphOne.php create mode 100644 vendor/topthink/think-orm/src/model/relation/MorphTo.php create mode 100644 vendor/topthink/think-orm/src/model/relation/MorphToMany.php create mode 100644 vendor/topthink/think-orm/src/model/relation/OneToOne.php create mode 100644 vendor/topthink/think-orm/src/paginator/driver/Bootstrap.php create mode 100644 vendor/topthink/think-template/.gitignore create mode 100644 vendor/topthink/think-template/LICENSE create mode 100644 vendor/topthink/think-template/README.md create mode 100644 vendor/topthink/think-template/composer.json create mode 100644 vendor/topthink/think-template/src/Template.php create mode 100644 vendor/topthink/think-template/src/template/TagLib.php create mode 100644 vendor/topthink/think-template/src/template/driver/File.php create mode 100644 vendor/topthink/think-template/src/template/exception/TemplateNotFoundException.php create mode 100644 vendor/topthink/think-template/src/template/taglib/Cx.php create mode 100644 vendor/topthink/think-trace/.gitignore create mode 100644 vendor/topthink/think-trace/LICENSE create mode 100644 vendor/topthink/think-trace/README.md create mode 100644 vendor/topthink/think-trace/composer.json create mode 100644 vendor/topthink/think-trace/src/Console.php create mode 100644 vendor/topthink/think-trace/src/Html.php create mode 100644 vendor/topthink/think-trace/src/Service.php create mode 100644 vendor/topthink/think-trace/src/TraceDebug.php create mode 100644 vendor/topthink/think-trace/src/config.php create mode 100644 vendor/topthink/think-trace/src/tpl/page_trace.tpl create mode 100644 vendor/topthink/think-view/.gitignore create mode 100644 vendor/topthink/think-view/LICENSE create mode 100644 vendor/topthink/think-view/README.md create mode 100644 vendor/topthink/think-view/composer.json create mode 100644 vendor/topthink/think-view/src/Think.php create mode 100644 vendor/xiaodi/think-auth/.gitignore create mode 100644 vendor/xiaodi/think-auth/LICENSE create mode 100644 vendor/xiaodi/think-auth/README.md create mode 100644 vendor/xiaodi/think-auth/composer.json create mode 100644 vendor/xiaodi/think-auth/src/Auth.php create mode 100644 view/admin/.gitignore create mode 100644 view/admin/admin/adminedit.html create mode 100644 view/admin/admin/adminform.html create mode 100644 view/admin/admin/list.html create mode 100644 view/admin/article/comment.html create mode 100644 view/admin/article/contform.html create mode 100644 view/admin/article/list.html create mode 100644 view/admin/article/listform.html create mode 100644 view/admin/article/tags.html create mode 100644 view/admin/article/tagsform.html create mode 100644 view/admin/authgroup/edit.html create mode 100644 view/admin/authgroup/role-1.html create mode 100644 view/admin/authgroup/role.html create mode 100644 view/admin/authgroup/roleadd.html create mode 100644 view/admin/authgroup/roleedit-1.html create mode 100644 view/admin/authgroup/roleedit.html create mode 100644 view/admin/authrule/add.html create mode 100644 view/admin/authrule/edit.html create mode 100644 view/admin/authrule/index.html create mode 100644 view/admin/forum/list.html create mode 100644 view/admin/forum/listform.html create mode 100644 view/admin/forum/replys.html create mode 100644 view/admin/forum/replysform.html create mode 100644 view/admin/forum/tags.html create mode 100644 view/admin/forum/tagsform.html create mode 100644 view/admin/index/home.html create mode 100644 view/admin/index/index.html create mode 100644 view/admin/login/forget.html create mode 100644 view/admin/login/login.html create mode 100644 view/admin/login/reg.html create mode 100644 view/admin/public/base.html create mode 100644 view/admin/public/header.html create mode 100644 view/admin/public/page_tabs.html create mode 100644 view/admin/public/side_menu.html create mode 100644 view/admin/set/system/email.html create mode 100644 view/admin/set/system/website.html create mode 100644 view/admin/set/user/info.html create mode 100644 view/admin/set/user/repass.html create mode 100644 view/admin/slider/add.html create mode 100644 view/admin/slider/edit.html create mode 100644 view/admin/slider/index.html create mode 100644 view/admin/upgrade/index.html create mode 100644 view/admin/upgrade/keyedit.html create mode 100644 view/admin/user/list.html create mode 100644 view/admin/user/useredit.html create mode 100644 view/admin/user/userform.html create mode 100644 view/index/.gitignore create mode 100644 view/index/article/add.html create mode 100644 view/index/article/cate.html create mode 100644 view/index/article/detail.html create mode 100644 view/index/article/edit.html create mode 100644 view/index/index/index.html create mode 100644 view/index/index/search.html create mode 100644 view/index/login/forget.html create mode 100644 view/index/login/login.html create mode 100644 view/index/login/reg.html create mode 100644 view/index/other/404.html create mode 100644 view/index/other/notice.html create mode 100644 view/index/other/tips.html create mode 100644 view/index/public/404.html create mode 100644 view/index/public/base.html create mode 100644 view/index/public/column.html create mode 100644 view/index/public/filter.html create mode 100644 view/index/public/flink.html create mode 100644 view/index/public/footer.html create mode 100644 view/index/public/header.html create mode 100644 view/index/public/js.html create mode 100644 view/index/public/jump.html create mode 100644 view/index/public/layout.html create mode 100644 view/index/public/link.html create mode 100644 view/index/public/sign.html create mode 100644 view/index/public/user-nav.html create mode 100644 view/index/public/user.html create mode 100644 view/index/sign/lists.html create mode 100644 view/index/user/activate.html create mode 100644 view/index/user/home.html create mode 100644 view/index/user/index.html create mode 100644 view/index/user/message.html create mode 100644 view/index/user/post.html create mode 100644 view/index/user/set.html create mode 100644 view/index/user/upimg.html create mode 100644 view/index/user/user.html create mode 100644 view/install/index/agreement.html create mode 100644 view/install/index/base.html create mode 100644 view/install/index/complete.html create mode 100644 view/install/index/create.html create mode 100644 view/install/index/test.html diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..8e098ed --- /dev/null +++ b/.gitignore @@ -0,0 +1,4 @@ +/.idea +/.vscode +*.log +.env \ No newline at end of file diff --git a/.travis.yml b/.travis.yml new file mode 100644 index 0000000..36f7b6f --- /dev/null +++ b/.travis.yml @@ -0,0 +1,42 @@ +sudo: false + +language: php + +branches: + only: + - stable + +cache: + directories: + - $HOME/.composer/cache + +before_install: + - composer self-update + +install: + - composer install --no-dev --no-interaction --ignore-platform-reqs + - zip -r --exclude='*.git*' --exclude='*.zip' --exclude='*.travis.yml' ThinkPHP_Core.zip . + - composer require --update-no-dev --no-interaction "topthink/think-image:^1.0" + - composer require --update-no-dev --no-interaction "topthink/think-migration:^1.0" + - composer require --update-no-dev --no-interaction "topthink/think-captcha:^1.0" + - composer require --update-no-dev --no-interaction "topthink/think-mongo:^1.0" + - composer require --update-no-dev --no-interaction "topthink/think-worker:^1.0" + - composer require --update-no-dev --no-interaction "topthink/think-helper:^1.0" + - composer require --update-no-dev --no-interaction "topthink/think-queue:^1.0" + - composer require --update-no-dev --no-interaction "topthink/think-angular:^1.0" + - composer require --dev --update-no-dev --no-interaction "topthink/think-testing:^1.0" + - zip -r --exclude='*.git*' --exclude='*.zip' --exclude='*.travis.yml' ThinkPHP_Full.zip . + +script: + - php think unit + +deploy: + provider: releases + api_key: + secure: TSF6bnl2JYN72UQOORAJYL+CqIryP2gHVKt6grfveQ7d9rleAEoxlq6PWxbvTI4jZ5nrPpUcBUpWIJHNgVcs+bzLFtyh5THaLqm39uCgBbrW7M8rI26L8sBh/6nsdtGgdeQrO/cLu31QoTzbwuz1WfAVoCdCkOSZeXyT/CclH99qV6RYyQYqaD2wpRjrhA5O4fSsEkiPVuk0GaOogFlrQHx+C+lHnf6pa1KxEoN1A0UxxVfGX6K4y5g4WQDO5zT4bLeubkWOXK0G51XSvACDOZVIyLdjApaOFTwamPcD3S1tfvuxRWWvsCD5ljFvb2kSmx5BIBNwN80MzuBmrGIC27XLGOxyMerwKxB6DskNUO9PflKHDPI61DRq0FTy1fv70SFMSiAtUv9aJRT41NQh9iJJ0vC8dl+xcxrWIjU1GG6+l/ZcRqVx9V1VuGQsLKndGhja7SQ+X1slHl76fRq223sMOql7MFCd0vvvxVQ2V39CcFKao/LB1aPH3VhODDEyxwx6aXoTznvC/QPepgWsHOWQzKj9ftsgDbsNiyFlXL4cu8DWUty6rQy8zT2b4O8b1xjcwSUCsy+auEjBamzQkMJFNlZAIUrukL/NbUhQU37TAbwsFyz7X0E/u/VMle/nBCNAzgkMwAUjiHM6FqrKKBRWFbPrSIixjfjkCnrMEPw= + file: + - ThinkPHP_Core.zip + - ThinkPHP_Full.zip + skip_cleanup: true + on: + tags: true diff --git a/README.en.md b/README.en.md deleted file mode 100644 index 57dae4f..0000000 --- a/README.en.md +++ /dev/null @@ -1,36 +0,0 @@ -# TaoLer - -#### Description -TaoLer社区系统,thinkphp6+layui+fly php框架, - -#### Software Architecture -Software architecture description - -#### Installation - -1. xxxx -2. xxxx -3. xxxx - -#### Instructions - -1. xxxx -2. xxxx -3. xxxx - -#### Contribution - -1. Fork the repository -2. Create Feat_xxx branch -3. Commit your code -4. Create Pull Request - - -#### Gitee Feature - -1. You can use Readme\_XXX.md to support different languages, such as Readme\_en.md, Readme\_zh.md -2. Gitee blog [blog.gitee.com](https://blog.gitee.com) -3. Explore open source project [https://gitee.com/explore](https://gitee.com/explore) -4. The most valuable open source project [GVP](https://gitee.com/gvp) -5. The manual of Gitee [https://gitee.com/help](https://gitee.com/help) -6. The most popular members [https://gitee.com/gitee-stars/](https://gitee.com/gitee-stars/) diff --git a/README.md b/README.md index 11a8e78..9c7a841 100644 --- a/README.md +++ b/README.md @@ -1,23 +1,29 @@ -# TaoLer - +# TaoLer 1.0.0 +TaoLer 1.0 2020.1.1 #### 介绍 TaoLer社区系统,thinkphp6+layui+fly php框架, #### 软件架构 软件架构说明 - +ThinkPHP6核心框架,layui前端,Fly模板。 #### 安装教程 -1. xxxx -2. xxxx -3. xxxx +1. git地址 https://gitee.com/toogee/TaoLer/repository/archive/master.zip +2. 官网下载 http://www.aieok.com +3. 解压后,项目域名部署为public对外访问,http:://www.youdomain.com/install/index +4. 安装前需要准保好建立数据库信息(数据库连接地址,数据库用户名,数据库密码,数据库端口,数据库名称) +5. 安装过程注意记录好设置后台的用户名和密码。 #### 使用说明 -1. xxxx -2. xxxx -3. xxxx +1. 安装后本系统已配置默认演示数据,可以删除原数据或者进行数据的修改 +2. 后台可设置分类cate,一定要设置英文别名 +3. 首页有置顶模块,列表文章模块,右侧包含广告模块,回复展示模块 + +#### 文档 + +1. 参考官网分享文章 #### 参与贡献 @@ -26,6 +32,16 @@ TaoLer社区系统,thinkphp6+layui+fly php框架, 3. 提交代码 4. 新建 Pull Request +#### 版权信息 + +非商业可免费使用,没有功能限制,但不能更改版本信息,如需更改可购买授权。 + +本项目包含的第三方源码和二进制文件之版权信息另行标注。 + +版权所有Copyright © 2019 by aieok.com (http://www.aieok.com) + +All rights reserved。 + #### 码云特技 diff --git a/app/.gitignore b/app/.gitignore new file mode 100644 index 0000000..baf0980 --- /dev/null +++ b/app/.gitignore @@ -0,0 +1,2 @@ +/api +/home \ No newline at end of file diff --git a/app/.htaccess b/app/.htaccess new file mode 100644 index 0000000..3418e55 --- /dev/null +++ b/app/.htaccess @@ -0,0 +1 @@ +deny from all \ No newline at end of file diff --git a/app/BaseController.php b/app/BaseController.php new file mode 100644 index 0000000..b3bd7d3 --- /dev/null +++ b/app/BaseController.php @@ -0,0 +1,94 @@ +app = $app; + $this->request = $this->app->request; + + // 控制器初始化 + $this->initialize(); + } + + // 初始化 + protected function initialize() + {} + + /** + * 验证数据 + * @access protected + * @param array $data 数据 + * @param string|array $validate 验证器名或者验证规则数组 + * @param array $message 提示信息 + * @param bool $batch 是否批量验证 + * @return array|string|true + * @throws ValidateException + */ + protected function validate(array $data, $validate, array $message = [], bool $batch = false) + { + if (is_array($validate)) { + $v = new Validate(); + $v->rule($validate); + } else { + if (strpos($validate, '.')) { + // 支持场景 + list($validate, $scene) = explode('.', $validate); + } + $class = false !== strpos($validate, '\\') ? $validate : $this->app->parseClass('validate', $validate); + $v = new $class(); + if (!empty($scene)) { + $v->scene($scene); + } + } + + $v->message($message); + + // 是否批量验证 + if ($batch || $this->batchValidate) { + $v->batch(true); + } + + return $v->failException(true)->check($data); + } + +} diff --git a/app/ExceptionHandle.php b/app/ExceptionHandle.php new file mode 100644 index 0000000..453d126 --- /dev/null +++ b/app/ExceptionHandle.php @@ -0,0 +1,58 @@ +alias('a') + ->join('auth_group u','a.auth_group_id = u.id') + ->field('a.id as aid,username,mobile,email,title,last_login_ip,a.status as astatus,last_login_time') + ->where('a.delete_time',0) + ->select(); + + $count = $admins->count(); + if($admins){ + $res = ['code'=>0,'msg'=>'','count'=>$count]; + foreach($admins as $k => $v){ + $data = ['id'=>$v['aid'],'loginname'=>$v['username'],'telphone'=>$v['mobile'],'email'=>$v['email'],'role'=>$v['title'],'ip'=>$v['last_login_ip'],'check'=>$v['astatus'],'logintime'=>date("Y-m-d",$v['last_login_time'])]; + $res['data'][] = $data; + } + } + return json($res); + } + return View::fetch('list'); + } + + + //管理员审核 + public function adminCheck() + { + $data = Request::param(); + + //获取状态 + $res = Db::name('admin')->where('id',$data['id'])->save(['status' => $data['status']]); + if($res){ + if($data['status'] == 1){ + return json(['code'=>0,'msg'=>'设置管理员通过','icon'=>6]); + } else { + return json(['code'=>0,'msg'=>'管理员已取消','icon'=>5]); + } + + }else { + return json(['code'=>1,'msg'=>'审核出错']); + } + + } + + //添加管理员 + public function adminForm() + { + if(Request::isAjax()){ + $data = Request::param(); + $data['create_time'] = time(); + $salt = substr(md5($data['create_time']),-6); + $data['password'] = substr_replace(md5($data['password']),$salt,0,6); + $result = Db::name('admin')->save($data); + Db::name('auth_group_access')->save(['uid'=>$data['id'],'group_id'=>$data['auth_group_id']]); + if($result){ + $res = ['code'=>1,'msg'=>'添加成功']; + }else{ + $res = ['code'=>0,'msg'=>'添加失败']; + } + return json($res); + } + $auth_group = Db::name('auth_group')->select(); + View::assign(['auth_group'=>$auth_group]); + return View::fetch('adminform'); + } + + //管理员编辑 + public function adminEdit() + { + $admin = AdminModel::find(input('id')); + + if(Request::isAjax()){ + $data = Request::param(); + if(empty($data['password'])){ + unset($data['password']); + } else { + $t = strtotime($admin['create_time']); + $salt = substr(md5($t),-6); + $data['password'] = md5(substr_replace(md5($data['password']),$salt,0,6)); + } + $data['update_time'] = time(); + $result = $admin->update($data); + Db::name('auth_group_access')->where('uid',$data['id'])->update(['group_id'=>$data['auth_group_id']]); + if($result){ + $res = ['code'=>1,'msg'=>'编辑成功']; + }else{ + $res = ['code'=>0,'msg'=>'编辑失败']; + } + return json($res); + } + $auth_group = Db::name('auth_group')->select(); + View::assign(['admin'=>$admin,'auth_group'=>$auth_group]); + return View::fetch(); + } + + //删除管理员 + public function delete($id) + { + if(Request::isAjax()){ + $user =AdminModel::find($id); + $result = $user->delete(); + + if($result){ + return json(['code'=>1,'msg'=>'删除成功']); + }else{ + return json(['code'=>0,'msg'=>'删除失败']); + } + } + } + + public function info() + { + $admin = AdminModel::find(Session::get('admin_id')); + if(Request::isAjax()){ + $data = Request::param(); + $result = $admin->update($data); + if($result){ + $res = ['code'=>0,'msg'=>'更新成功']; + } else { + $res = ['code'=>1,'msg'=>'更新失败']; + } + return json($res); + } + View::assign('admin',$admin); + return View::fetch('set/user/info'); + } + + /** + * 显示指定的资源 + * + * @param int $id + * @return \think\Response + */ + public function repass() + { + // + $admin = AdminModel::find(Session::get('admin_id')); + if(Request::isAjax()){ + $data = Request::param(); + $salt = substr(md5(strtotime($admin['create_time'])),-6); + $pwd = substr_replace(md5($data['oldPassword']),$salt,0,6); + $data['oldPassword'] = md5($pwd); + if($admin['password'] != $data['oldPassword']){ + $res = ['code'=>1,'msg'=>'当前密码错误']; + } elseif($data['password'] != $data['repassword']){ + $res = ['code'=>1,'msg'=>'两次密码不一致']; + } else { + $password = md5(substr_replace(md5($data['password']),$salt,0,6)); + $result = $admin->update([ + 'id' => $admin['id'], + 'password' => $password + ]); + if($result){ + $res = ['code'=>0,'msg'=>'更新成功']; + } else { + $res = ['code'=>1,'msg'=>'更新失败']; + } + } + + return json($res); + } + View::assign('admin',$admin); + return View::fetch('set/user/repass'); + } +} \ No newline at end of file diff --git a/app/admin/controller/AuthGroup.php b/app/admin/controller/AuthGroup.php new file mode 100644 index 0000000..151ebdb --- /dev/null +++ b/app/admin/controller/AuthGroup.php @@ -0,0 +1,107 @@ +select(); + $count = $role->count(); + $res = []; + if($role){ + $res = ['code'=>0,'msg'=>'','count'=>$count]; + foreach($role as $k => $v){ + $data = ['id'=>$v['id'],'rolename'=>$v['title'],'limits'=>$v['limits'],'descr'=>$v['descr'],'check'=>$v['status']]; + $res['data'][] = $data; + } + } + return json($res); + } + return View::fetch('role'); + } + + + + + //角色管理 + public function role() + { + // + return View::fetch('role'); + } + + //角色添加 + public function roleAdd() + { + if(Request::isAjax()){ + $data = Request::param(); + $result = AuthGroupModel::create($data); + if($result) { + $res = ['code'=>1,'msg'=>'添加成功']; + } else { + $res = ['code'=>0,'msg'=>'添加失败']; + } + return json($res); + } + + $menus = $this->getMenus(); + View::assign('menus',$menus); + + return View::fetch('roleadd'); + } + + //角色编辑 + public function roleEdit() + { + + if(Request::isAjax()){ + $data = Request::param(); + +/* + if(!strpos($data['rules'],'1,2,3,4,5')) + { + $data['rules'] = substr_replace($data['rules'],"1,2,3,4,5,",0,0); + } +*/ + $rule = AuthGroupModel::update($data); + if($rule){ + $res = ['code'=>1,'msg'=>'保存成功']; + } else { + $res = ['code'=>1,'msg'=>'保存成功']; + } + return json($res); + } + + $menus = $this->getMenus(); + View::assign('menus',$menus); + + $authGroup = AuthGroupModel::select(); + $auth = AuthGroupModel::find(input('id')); + $ru = $auth->rules; + + View::assign(['authGroup'=>$authGroup,'auth'=>$auth,'ru'=>$ru]); + return View::fetch('roleedit'); + } + + + +} diff --git a/app/admin/controller/AuthRule.php b/app/admin/controller/AuthRule.php new file mode 100644 index 0000000..2f5655f --- /dev/null +++ b/app/admin/controller/AuthRule.php @@ -0,0 +1,169 @@ +authRuleTree(); + $count = count($auth_rules); + $res = []; + if($auth_rules){ + $res = ['code'=>0,'msg'=>'','count'=>$count]; + + foreach($auth_rules as $k => $v){ + //$data = $v->getData(); + $data = ['id'=>$v['id'],'sort'=>$v['sort'],'title'=>str_repeat('---',$v['level']*2).$v['title'],'name'=>$v['name'],'icon'=>$v['icon'],'status'=>$v['status'],'level'=>$v['level']+1,'ishidden'=>$v['ishidden']]; + $res['data'][] = $data; + } + } + return json($res); + } + return View::fetch(); + + } + //添加权限 + public function add() + { + // + if(Request::isAjax()){ + $data = Request::param(); + //halt($data); + $plevel = Db::name('auth_rule')->field('level')->find($data['pid']); + if($plevel){ + $data['level'] = $plevel['level']+1; + } else { + $data['level'] = 0; + } + + $list = Db::name('auth_rule')->save($data); + + if($list){ + return json(['code'=>0,'msg'=>'添加权限成功']); + }else{ + return json(['code'=>-1,'msg'=>'添加权限失败']); + } + } + $rule = new AuthRuleModel(); + $auth_rules = $rule->authRuleTree(); + View::assign('AuthRule',$auth_rules); + return View::fetch(); + } + + //权限编辑 + public function edit() + { + $rule = new AuthRuleModel(); + + if(Request::isAjax()){ + $data = Request::param(); + $ruId = $rule->find($data['pid']); //查询出上级ID + if($ruId){ + $plevel = $ruId->level; //上级level等级 + $data['level'] = $plevel+1; + } else { + $data['level'] = 0; + } + + $zi = $rule->where('pid',$data['id'])->select();//查询出下级 + + if($zi){ + $zi->update(['level'=>$data['level']+1]); + } + + + + + + $save = AuthRuleModel::update($data); + + if($save){ + $res = ['code'=>0,'msg'=>'修改成功']; + } else { + $res = ['code'=>1,'msg'=>'修改失败']; + } + return json($res); + } + + $auth_rules = $rule->authRuleTree(); + $rules = $rule->find(input('id')); + View::assign(['AuthRule'=>$auth_rules,'rules'=>$rules]); + return View::fetch(); + } + + + //权限开关 + public function Check() + { + $data = Request::param(); + + //获取状态 + $res = Db::name('auth_rule')->where('id',$data['id'])->save(['status' => $data['status']]); + if($res){ + if($data['status'] == 1){ + return json(['code'=>0,'msg'=>'权限开启','icon'=>6]); + } else { + return json(['code'=>0,'msg'=>'权限禁用','icon'=>5]); + } + + }else { + return json(['code'=>1,'msg'=>'审核出错']); + } + + } + + //菜单显示控制 + public function menuShow() + { + $data = Request::param(); + //var_dump($data); + $rules = Db::name('auth_rule')->save($data); + if($rules){ + if($data['ishidden'] == 1){ + return json(['code'=>1,'msg'=>'设置菜单显示','icon'=>6]); + } else { + return json(['code'=>1,'msg'=>'取消菜单显示','icon'=>5]); + } + }else{ + $res = ['code'=>0,'msg'=>'设置失败']; + } + return json($res); + } + + //排序 + public function sort() + { + $data = Request::param(); + $rules = Db::name('auth_rule')->save($data); + if($rules){ + $res = ['code'=>1,'msg'=>'排序成功']; + }else{ + $res = ['code'=>0,'msg'=>'排序失败']; + } + return json($res); + } + + public function delete($id) + { + $rule = AuthRuleModel::find($id); + $result = $rule->delete(); + if($result){ + $res = ['code'=>1,'msg'=>'删除成功']; + } else { + $res = ['code'=>0,'msg'=>'删除失败']; + } + return json($res); + } + +} diff --git a/app/admin/controller/Forum.php b/app/admin/controller/Forum.php new file mode 100644 index 0000000..a07b28f --- /dev/null +++ b/app/admin/controller/Forum.php @@ -0,0 +1,151 @@ +alias('a') + ->join('user u','a.user_id = u.id') + ->field('a.id as aid,name,user_img,title,a.update_time,is_top') + ->where('a.delete_time',0) + ->order('a.create_time', 'desc') + ->paginate(15); + $res = []; + if($forumList){ + $res['code'] = 0; + $res['msg'] = ''; + $res['count'] = $forumList->total(); + foreach($forumList as $k=>$v){ + $res['data'][]= ['id'=>$v['aid'],'poster'=>$v['name'],'avatar'=>$v['user_img'],'content'=>$v['title'],'posttime'=>date("Y-m-d",$v['update_time']),'top'=>$v['is_top']]; + } + } + return json($res); + } + return View::fetch(); + } + + //编辑帖子 + public function listForm() + { + if(Request::isAjax()){ + $data = Request::param(); + $form = Db::name('article')->find($data['id']); + //halt($form); + } + return View::fetch(); + } + + //帖子分类 + public function tags() + { + if(Request::isAjax()){ + $list = Cate::select(); + if($list){ + $res['code'] = 0; + $res['msg'] = ''; + $res['count']= count($list); + $res['data'] = []; + foreach($list as $k=>$v){ + $res['data'][] = ['id' => $v['id'],'tags'=>$v['catename'],'sort'=>$v['sort'],'ename'=>$v['ename']]; + } + } + return json($res); + } + return View::fetch(); + } + + //添加帖子分类 + public function addtags() + { + if(Request::isAjax()){ + $data = Request::param(); + //halt($data); + $list = Db::name('cate')->save($data); + + if($list){ + return json(['code'=>0,'msg'=>'添加分类成功']); + }else{ + return json(['code'=>-1,'msg'=>'添加分类失败']); + } + } + return view('tagsform'); + + } + + //编辑帖子分类 + public function tagsform() + { + if(Request::isAjax()){ + $data = Request::param(); + //halt($data); + $list = Db::name('cate')->where('id',$data['id'])->save($data); + + if($list){ + return json(['code'=>0,'msg'=>'修改分类成功']); + }else{ + return json(['code'=>-1,'msg'=>'修改分类失败']); + } + } + return View::fetch(); + } + + //删除帖子分类 + public function tagsdelete() + { + if(Request::isAjax()){ + $data = Request::param(); + + $cate = new Cate; + $result = $cate->del($data); + + + if($result == 1){ + return json(['code'=>0,'msg'=>'删除分类成功']); + }else{ + return json(['code'=>-1,'msg'=>'删除分类失败']); + } + } + } + + //帖子评论 + public function replys() + { + if(Request::isAjax()) { + $replys = Comment::with(['user','article'])->paginate(15); + $count = $replys->total(); + $res = []; + if ($replys) { + $res = ['code'=>0,'msg'=>'','count'=>$count]; + foreach($replys as $k => $v){ + //var_dump($v); + $res['data'][] = ['id'=>$k+1,'replyer'=>$v->user->name,'cardid'=>$v->article->title,'avatar'=>$v->user->user_img,'content'=>$v['content'],'replytime'=>$v['create_time']]; + } + } + return json($res); + } + + return View::fetch(); + } + + public function replysform() + { + return View::fetch(); + } + +} diff --git a/app/admin/controller/Index.php b/app/admin/controller/Index.php new file mode 100644 index 0000000..117f2e5 --- /dev/null +++ b/app/admin/controller/Index.php @@ -0,0 +1,47 @@ +find(1); + View::assign('sys',$sys); + return View::fetch(); + } + + + public function layout(){ + + return view(); + } +} \ No newline at end of file diff --git a/app/admin/controller/Login.php b/app/admin/controller/Login.php new file mode 100644 index 0000000..cc035bd --- /dev/null +++ b/app/admin/controller/Login.php @@ -0,0 +1,57 @@ +scene('Login') + ->check($data); + } catch(ValidateException $e){ + return json(['code'=>-1,'msg'=>$e->getError()]); + } + + $user = new \app\admin\model\Admin(); + $res = $user->login($data); + + if ($res == 1) { + $res = ['code'=>0,'msg'=>'登陆成功']; + //$res['data']['access_token'] = $data['__token__']; + } else { + $res = ['code'=>-1,'msg'=>$res,'url'=>'admin/login']; + } + return json($res); + } + return View::fetch('login'); + } + + //注册 + public function reg() + { + if(Session::has('admin_id')){ + return redirect('/admin/index/index'); + } + + return View::fetch('reg'); + } + + +} \ No newline at end of file diff --git a/app/admin/controller/Menu.php b/app/admin/controller/Menu.php new file mode 100644 index 0000000..b3ed64d --- /dev/null +++ b/app/admin/controller/Menu.php @@ -0,0 +1,11 @@ +find(1); + $sysInfo = System::find(1); + if(Request::isAjax()){ + $data = Request::param(); + + $result = $sysInfo->allowField(['webname','webtitle','domain','keywords','descript','copyright','blackname'])->save($data); + if($result){ + return json(['code'=>0,'msg'=>'更新成功']); + } else { + return json(['code'=>-1,'msg'=>'更新失败']); + } + } + $syscy = $this->check($sysInfo['base_url']); + View::assign(['sysInfo'=>$sysInfo,'syscy'=>$syscy]); + return View::fetch('set/system/website'); + } + + /** + * 显示创建资源表单页. + * + * @return \think\Response + */ + public function email() + { + //$mailserver = Db::name('mail_server')->find(1); + $mailserver = MailServer::find(1); + //邮箱配置 + if(Request::isAjax()){ + $data = Request::param(); + $res = $mailserver->save($data); + //dump($data); + if($res){ + return json(['code'=>0,'msg'=>'更新成功']); + } else { + return json(['code'=>-1,'msg'=>'更新失败']); + } + } + + View::assign('mailserver',$mailserver); + return View::fetch('set/system/email'); + } + + /** + * 显示编辑资源表单页. + * + * @param int $id + * @return \think\Response + */ + public function edit($id) + { + // + } + + /** + * 保存更新的资源 + * + * @param \think\Request $request + * @param int $id + * @return \think\Response + */ + public function update(Request $request, $id) + { + // + } + + /** + * 删除指定资源 + * + * @param int $id + * @return \think\Response + */ + public function delete($id) + { + // + } + + //上传logo + public function upload() + { + $file = request()->file('file'); + + try { + validate(['image'=>'filesize:2048|fileExt:jpg,png,gif|image:200,200,jpg']) + ->check(array($file)); + $savename = \think\facade\Filesystem::disk('public')->putFile('logo',$file); + } catch (think\exception\ValidateException $e) { + echo $e->getMessage(); + } + $upload = Config::get('filesystem.disks.public.url'); + + if($savename){ + $name_path =str_replace('\\',"/",$upload.'/'.$savename); + $result = Db::name('system')->where('id', 1)->update(['logo'=>$name_path]); + if($result){ + $res = ['code'=>0,'msg'=>'上传logo成功']; + } else { + $res = ['code'=>1,'msg'=>'上传错误']; + } + + } + return json($res); + } + + public function check($url) + { + $url = $url.'?u='.Request::domain(); + $ch =curl_init (); + curl_setopt($ch,CURLOPT_URL, $url); + curl_setopt($ch,CURLOPT_RETURNTRANSFER, 1); + curl_setopt($ch,CURLOPT_CONNECTTIMEOUT, 20); + curl_setopt($ch,CURLOPT_POST, 1); + $data = curl_exec($ch); + $httpCode = curl_getinfo($ch,CURLINFO_HTTP_CODE); + curl_close($ch); + if($httpCode == '200'){ + $cy = json_decode($data); + if(!empty($cy)){ + $cylevel = $cy->level; + return $cylevel; + } + } else { + return 0; + } + } + +} diff --git a/app/admin/controller/Slider.php b/app/admin/controller/Slider.php new file mode 100644 index 0000000..6270156 --- /dev/null +++ b/app/admin/controller/Slider.php @@ -0,0 +1,126 @@ +select(); + View::assign('slider',$sliders); + return View::fetch(); + } + + /** + * 显示创建资源表单页. + * + * @return \think\Response + */ + public function add() + { + //添加幻灯 + if(Request::isAjax()){ + $data = Request::param(); + $data['slid_start'] = strtotime($data['slid_start']); + $data['slid_over'] = strtotime($data['slid_over']); + $result = Db::name('slider')->save($data); + if($result){ + $res = ['code'=>1,'msg'=>'添加成功']; + }else{ + $res = ['code'=>0,'msg'=>'添加失败']; + } + return json($res); + } + + return View::fetch(); + } + + + /** + * 编辑幻灯 + * + * @param int $id + * @return \think\Response + */ + public function edit($id) + { + $slider = Db::name('slider')->find($id); + + if(Request::isAjax()){ + $data = Request::param(); + //var_dump($data); + $data['slid_start'] = strtotime($data['slid_start']); + $data['slid_over'] = strtotime($data['slid_over']); + $result = Db::name('slider')->where('id',$id)->save($data); + if($result){ + $res = ['code'=>1,'msg'=>'编辑成功']; + }else{ + $res = ['code'=>0,'msg'=>'编辑失败']; + } + return json($res); + } + View::assign('slider',$slider); + + return View::fetch(); + } + + /** + * 保存更新的资源 + * + * @param + * @param int $id + * @return \think\Response + */ + public function uploadImg() + { + $id = Request::param(); + $file = request()->file('file'); + try { + validate(['image'=>'filesize:2048|fileExt:jpg,png,gif|image:200,200,jpg']) + ->check(array($file)); + $savename = \think\facade\Filesystem::disk('public')->putFile('slider',$file); + } catch (think\exception\ValidateException $e) { + echo $e->getMessage(); + } + $upload = Config::get('filesystem.disks.public.url'); + + if($savename){ + $name_path =str_replace('\\',"/",$upload.'/'.$savename); + $res = ['code'=>0,'msg'=>'上传flash成功','src'=>$name_path]; + } else { + $res = ['code'=>1,'msg'=>'上传错误']; + } + return json($res); + } + + /** + * 删除指定资源 + * + * @param int $id + * @return \think\Response + */ + public function delete($id) + { + // + $slider = SliderModel::find($id); + $res = $slider->delete(); + if($res){ + return json(['code'=>1,'msg'=>'删除成功']); + } else { + return json(['code'=>0,'msg'=>'删除失败']); + } + } +} diff --git a/app/admin/controller/Upgrade.php b/app/admin/controller/Upgrade.php new file mode 100644 index 0000000..2c9a4af --- /dev/null +++ b/app/admin/controller/Upgrade.php @@ -0,0 +1,471 @@ +sys_version_num = Db::name('system')->where('id',1)->value('sys_version_num'); + } + + + + /** 展示升级界面 */ + public function index() + { + $sys_version_num = Db::name('system')->field('sys_version_num,key,upcheck_url,upgrade_url')->find(1); + View::assign('ver_num',$sys_version_num); + return View::fetch(); + } + + //设置key + public function key() + { + $data = Request::param(); + if($data['key']== ''){ + return json(['code'=>0,'msg'=>'请填写正确的key']); + } + $res = Db::name('system')->update(['key'=>$data['key'],'id'=>1]); + if($res){ + $res = ['code'=>1,'msg'=>'保存成功']; + } else { + $res = ['code'=>0,'msg'=>'保存失败']; + } + return json($res); + } + + //修改key + public function keyedit() + { + $key = Db::name('system')->field('key,upcheck_url,upgrade_url')->find(1); + + if(Request::isAjax()){ + $data = Request::param(); + if($data['key']== ''){ + return json(['code'=>0,'msg'=>'请正确填写申请到的key']); + } + $res = Db::name('system')->update(['key'=>$data['key'],'upcheck_url'=>$data['upcheck_url'],'upgrade_url'=>$data['upgrade_url'],'id'=>1]); + if($res){ + $res = ['code'=>1,'msg'=>'修改成功']; + } else { + $res = ['code'=>0,'msg'=>'修改失败']; + } + return json($res); + } + View::assign('key',$key); + return View::fetch(); + } + + //升级前的版本检测 + public function check($url) + { + $url = $url.'?ver='.$this->sys_version_num; + $ch =curl_init (); + curl_setopt($ch,CURLOPT_URL, $url); + curl_setopt($ch,CURLOPT_RETURNTRANSFER, 1); + curl_setopt($ch,CURLOPT_CONNECTTIMEOUT, 20); + curl_setopt($ch,CURLOPT_POST, 1); + $data = curl_exec($ch); + $httpCode = curl_getinfo($ch,CURLINFO_HTTP_CODE); + curl_close($ch); + if($httpCode != '200'){ + return json(['code'=>0,'msg'=>'连接服务器失败,稍后重试...']); + } + $versions = json_decode($data); + //判断状态 + $version_code = $versions->code; + if($version_code == 0){ + return json(['code'=>$version_code,'msg'=>$versions->msg]); + } + //版本比较 + $version_num = $versions->version; + $up_num =$versions->up_num; + $res = version_compare($version_num,$this->sys_version_num,'>'); + if($res){ + return json(['code'=>1,'msg'=>'发现新版本','version'=>$version_num,'upnum'=>$up_num]); + } else { + return json(['code'=>0,'msg'=>'暂时还没更新哦! ==8']); + } + } + + + /** + * 自动更新 + */ + public function upload() + { + $data = Request::param(); + if(empty($data['key'])){ + return json(["code"=>0,"msg"=>"请配置正确升级key"]); + } + $url = $data['url'].'?domain='.Request::domain().'&key='.$data['key'].'&ver='.$this->sys_version_num; + + $ch =curl_init (); + curl_setopt($ch,CURLOPT_URL, $url); + curl_setopt($ch,CURLOPT_RETURNTRANSFER, 1); + curl_setopt($ch,CURLOPT_CONNECTTIMEOUT, 20); + curl_setopt($ch,CURLOPT_POST, 1); + $data = curl_exec($ch); + $httpCode = curl_getinfo($ch,CURLINFO_HTTP_CODE); + curl_close($ch); + if($httpCode != '200'){ + return json(['code'=>0,'msg'=>'连接服务器失败,稍后重试...']); + } + //获取远程文件 + $versions = json_decode($data); + //判断状态 + $version_code = $versions->code; + if($version_code == 0){ + return json(['code'=>$version_code,'msg'=>$versions->msg]); + } + + $version_num = $versions->version; + $file_url = $versions->src; + + //判断远程文件是否可用存在 + $header = get_headers($file_url, true); + if(!isset($header[0]) && (strpos($header[0], '200') || strpos($header[0], '304'))){ + return json(["code"=>0,"msg"=>"获取远程文件失败"]); + } + //把远程文件放入本地 + $package_file = $this->upload_dir.'tao_'.$version_num.'.zip'; + + if(!is_dir($this->upload_dir)){ + $this->create_dirs($this->upload_dir); + } + $cpfile = copy($file_url,$package_file); + if(!$cpfile) + { + return json(["code"=>0,"msg"=>"下载升级文件失败"]); + } + + //记录下日志 + $this->save_log("上传升级包成功!"); + $this->update_progress("20%"); + + //升级前备份代码 + $ex = array('app','view'); + $backup_code_res = $this->copydir('../', $this->backup_dir, $ex); + if(!$backup_code_res){ + $this->save_log("备份失败!"); + return json(["code"=>0,"msg"=>"备份失败"]); + } + $this->update_progress("30%"); + + //执行升级 + $upres = $this->execute_update($package_file); + //更新版本 + Db::name('system')->update(['sys_version_num'=>$version_num,'id'=>1]); + if($upres){ + return json(["code"=>1,"msg"=>"升级成功"]); + }else { + return json(["code"=>0,"msg"=>"升级失败"]); + } + } + + /** + * 处理升级包上传 + */ + public function uploadZip() + { + $files = request()->file('file'); + + if($files) + { + $name = $files->getOriginalName(); + + if(!$name) + { + return json(["code"=>0,"msg"=>"请上传升级包文件"]); + } + } + //校验后缀 + $astr = explode('.',$name); + $ext = array_pop($astr); + if($ext != 'zip') + { + return json(["code"=>0,"msg"=>"请上传文件格式不对"]); + + } + + //对比版本号 + $astr = explode('_',$name); + $version_num = str_replace(".zip", '',array_pop($astr)); + //var_dump($version_num); + if(!$version_num) + { + return json(["code"=>0,"msg"=>"获取版本号失败"]); + + } + //对比 + if(!$this->compare_version($version_num)) + { + return json(["code"=>0,"msg"=>"版本升级不能降级!请检查..."]); + } + + + $package_file = $this->upload_dir.$name; + //$mv = $files->move('/../tmp/web/upload_dir',$version_num); + $mfile = move_uploaded_file($files,$package_file); + if(!$mfile) + { + return json(["code"=>0,"msg"=>"上传文件失败"]); + } + + //记录下日志 + $this->save_log("上传升级包成功!"); + $this->update_progress("20%"); + + //升级前备份代码 + $ex = array('app','view'); + $backup_code_res = $this->copydir('../', $this->backup_dir, $ex); + if(!$backup_code_res){ + $this->save_log("备份失败!"); + return json(["code"=>0,"msg"=>"备份失败"]); + } + + $this->update_progress("30%"); + //执行升级 + $upres = $this->execute_update($package_file); + //更新版本 + Db::name('system')->update(['sys_version_num'=>$version_num,'id'=>1]); + if($upres){ + return json(["code"=>1,"msg"=>"升级成功"]); + }else { + return json(["code"=>0,"msg"=>"升级失败"]); + } + } + + /** + * 升级操作 + * @return [type] [description] + */ + private function execute_update($package_file) + { + //解压 如何使用zip加密压缩,这里解压缩的时候注意要解密 + $uzip = new Uzip(); + $unzip_res = $uzip->uzip($package_file,$this->upload_dir,true); + //halt($unzip_res); + if(!$unzip_res) + { + $this->save_log("解压失败"); + return json(["code"=>0,"msg"=>"解压失败"]); + } + //解压成功,得到文件夹 + $package_name = str_replace(".zip","",$package_file); +//var_dump($package_name); + $this->update_progress("50%"); + +/* + //升级mysql + if(file_exists($this->upload_dir.'/'.$package_file."/mysql/mysql_update.sql")) + { + $result = $this->database_operation($this->upload_dir.'/'.$package_file."/mysql/mysql_update.sql"); + if(!$result['code']) + { + echo json($result);die; + } + } +*/ + + $this->update_progress("70%"); + + + if(is_dir($package_name.'/')) + { + + //升级PHP + $cp_res = $this->copydir($package_name.'/', $this->root_dir); + if(!$cp_res) + { + $this->save_log("php更新失败"); + //数据库回滚 + if(file_exists($this->upload_dir.'/'.$package_file."/mysql/mysql_rockback.sql")) + { + $this->save_log("数据库回滚"); + $this->database_operation($this->upload_dir.'/'.$package_file."/mysql/mysql_rockback.sql"); + + } + + //php代码回滚 升级前备份的代码 + + $backup_code_res = $this->copydir($this->backup_dir, $this->zip_dir); + if($backup_code_res){ + $this->save_log("php回滚"); + return json(["code"=>0,"msg"=>"php更新失败"]); + } + } + } + + //把解压的升级包清除 + //$del_zip = unlink($package_file); + $this->delDirAndFile($this->upload_dir); + $this->delDirAndFile($this->backup_dir); + + $this->update_progress("100%"); + //更新系统的版本号了 + //更新php的版本号了(应该跟svn/git的版本号一致) + //更新数据库的版本号了(应该跟svn/git的版本号一致) + + return true; + } + + + + /** + * 比较代码版本 + * @return [type] [description] + */ + private function compare_version($version_num='1.0.0') + { + + return version_compare($version_num,$this->sys_version_num,'>'); + //return json(['code'=>1,'msg'=>'版本','data'=>$version]); + } + + + /** + * 数据库操作 + */ + public function database_operation($file) + { + $mysqli = new mysqli("localhost","root","root","test"); + if($mysqli->connect_errno) + { + return json(["code"=>0,"msg"=>"Connect failed:".$mysqli->connect_error]); + } + $sql = file_get_contents($file); + $a = $mysqli->multi_query($sql); + return ["code"=>1,"msg"=>"数据库操作OK"]; + } + + /** + * 返回系统升级的进度 + */ + public function update_progress($progress) + { + exec(" echo '".$progress."' > $this->progress_log "); + + } + /** + * 记录日志 + */ + public function save_log($msg,$action="update") + { + $msg .= date("Y-m-d H:i:s").":".$msg."\n"; + if($action == "update") + { + exec(" echo '".$msg."' >> $this->update_log "); + }else + { + exec(" echo '".$msg."' >> $this->return_log "); + } + } + + + /** + * 复制文件夹$source下的文件和子文件夹下的内容到$dest下 升级+备份代码 + * @param $source + * @param $dest + * @param $ex 定义指定复制的目录,默认全复制 + */ + public function copydir($source, $dest, $ex=array()) + { + if (!file_exists($dest)) mkdir($dest); + if($handle = opendir($source)){ + while (($file = readdir($handle)) !== false) { + + if (( $file != '.' ) && ( $file != '..' )) { + if ( is_dir($source . $file) ) { + + if(count($ex) != 0){ + if(in_array($file,$ex)){ + + $this->copydir($source . $file.'/', $dest . $file.'/'); + } + }else{ + $this->copydir($source . $file.'/', $dest . $file.'/'); + } + } else { + copy($source. $file, $dest . $file); + } + } + } + closedir($handle); + + } else { + return false; + } + return true; + } + + /** + * 删除文件夹及内容 + * @param $dirPath + * @param $nowDir 是否删除当前文件夹$dirPath true false + */ + public function delDirAndFile( $dirPath, $nowDir=false ) + + { + if ( $handle = opendir($dirPath) ) { + + while ( false !== ( $item = readdir( $handle ) ) ) { + + if ( $item != '.' && $item != '..' ) { + + $path = $dirPath.$item; + //var_dump($path); + if (is_dir($path)) { + $this->delDirAndFile($path.'/'); + rmdir($path.'/'); + } else { + unlink($path); + } + } + } + + closedir( $handle ); +/* + if($nowDir == true){ + if(!rmdir($dirPath)){ + return false; + } + } +*/ + } else { + return false; + } + return true; + } + + +} \ No newline at end of file diff --git a/app/admin/controller/User.php b/app/admin/controller/User.php new file mode 100644 index 0000000..edce1ec --- /dev/null +++ b/app/admin/controller/User.php @@ -0,0 +1,129 @@ +where(['delete_time'=>0])->select(); + $count = $user->count(); + $res = []; + if($user){ + $res = ['code'=>0,'msg'=>'','count'=>$count]; + + foreach($user as $k => $v){ + $data = ['id'=>$v['id'],'username'=>$v['name'],'avatar'=>$v['user_img'],'phone'=>$v['phone'],'email'=>$v['email'],'sex'=>$v['sex'],'ip'=>$v['last_login_ip'],'jointime'=>date("Y-m-d",$v['create_time']),'status'=>$v['status']]; + $res['data'][] = $data; + } + } + return json($res); + } + return View::fetch(); + } + + + //添加用户 + public function userForm() + { + // + if(Request::isAjax()){ + $data = Request::param(); + $result = Db::name('user')->save($data); + if($result){ + $res = ['code'=>1,'msg'=>'添加成功']; + }else{ + $res = ['code'=>0,'msg'=>'添加失败']; + } + return json($res); + } + + return View::fetch('userform'); + } + + //编辑用户 + public function userEdit() + { + if(Request::isAjax()){ + $data = Request::param(); + $result = Db::name('user')->update($data); + if($result){ + $res = ['code'=>1,'msg'=>'编辑成功']; + }else{ + $res = ['code'=>0,'msg'=>'编辑失败']; + } + return json($res); + } + $user = Db::name('user')->find(input('id')); + View::assign('user',$user); + return View::fetch('useredit'); + } + + //删除用户 + public function delete($id) + { + if(Request::isAjax()){ + $user =UserModel::find($id); + $result = $user->delete(); + + if($result){ + return json(['code'=>1,'msg'=>'删除成功']); + }else{ + return json(['code'=>0,'msg'=>'删除失败']); + } + } + } + + //上传头像 + public function uploadImg() + { + $file = request()->file('file'); + try { + validate(['image'=>'filesize:2048|fileExt:jpg,png,gif|image:200,200,jpg']) + ->check(array($file)); + $savename = \think\facade\Filesystem::disk('public')->putFile('head_pic',$file); + } catch (think\exception\ValidateException $e) { + echo $e->getMessage(); + } + $upload = Config::get('filesystem.disks.public.url'); + + if($savename){ + $name_path =str_replace('\\',"/",$upload.'/'.$savename); + $res = ['code'=>0,'msg'=>'上传头像成功','src'=>$name_path]; + } else { + $res = ['code'=>1,'msg'=>'上传错误']; + } + return json($res); + } + + + //退出登陆 + public function logout() + { + Session::clear(); + $res = ['code'=>0,'msg'=>'退出成功' ]; + + return json($res); + } + +} diff --git a/app/admin/controller/Uzip.php b/app/admin/controller/Uzip.php new file mode 100644 index 0000000..ce026f5 --- /dev/null +++ b/app/admin/controller/Uzip.php @@ -0,0 +1,96 @@ +create_dirs($dir); + } + + if(file_exists($filename)) { + $resource = zip_open($filename); + + while($zip = zip_read($resource)) { + if(zip_entry_open($resource, $zip)) { + + //获得文件名,mac压缩成zip,解压需要过滤资源库隐藏文件 + $file_content = zip_entry_name($zip); + + + // 如果文件不在根目录中 + $pos_last_slash = strrpos($file_content, "/"); + $file_name = substr($file_content, $pos_last_slash+1); + + if(empty($file_name)){ + + $pt = $this->create_dirs($dir.$file_content); + } + + if($file_name) { + + $save_path = $dir.$file_content; + + if(file_exists($save_path)) { + if($overwrite === true){ + //echo $file_name . '
';	
+								$file_size = zip_entry_filesize($zip);
+								$file = zip_entry_read($zip, $file_size);
+								$fpc = file_put_contents($save_path, $file);
+								//zip_entry_close($zip);	
+							}else{
+								//echo '文件夹内已存在文件 "' . $file_name . '" 
';
+								return json(['code'=>0,'msg'=>'文件夹内已存在文件']);
+							}
+							
+						}else {
+							//echo $file_name . '
';	
+							$file_size = zip_entry_filesize($zip);
+							$file = zip_entry_read($zip, $file_size);
+							$fpc = file_put_contents($save_path, $file);
+							//zip_entry_close($zip);
+						}
+					
+					}
+				zip_entry_close($zip);	
+				}
+			}
+			zip_close($resource);
+			
+		}else{
+			return false;
+		}
+		return true;
+	}
+	
+	
+	public function create_dirs($path)
+	{
+	  if (!is_dir($path))
+	  {
+		$directory_path = "";
+		$directories = explode("/",$path);
+		array_pop($directories);
+	   
+		foreach($directories as $directory)
+		{
+		  $directory_path .= $directory."/";
+		  if (!is_dir($directory_path))
+		  {
+			mkdir($directory_path);
+			chmod($directory_path, 0777);
+		  }
+		}
+	  }
+	}
+}
\ No newline at end of file
diff --git a/app/admin/middleware.php b/app/admin/middleware.php
new file mode 100644
index 0000000..bdf6ca9
--- /dev/null
+++ b/app/admin/middleware.php
@@ -0,0 +1,6 @@
+ \app\middleware\logedCheck::class,
+];
\ No newline at end of file
diff --git a/app/admin/model/.gitignore b/app/admin/model/.gitignore
new file mode 100644
index 0000000..0a94e04
--- /dev/null
+++ b/app/admin/model/.gitignore
@@ -0,0 +1 @@
+Version.php
\ No newline at end of file
diff --git a/app/admin/model/Admin.php b/app/admin/model/Admin.php
new file mode 100644
index 0000000..a63f603
--- /dev/null
+++ b/app/admin/model/Admin.php
@@ -0,0 +1,50 @@
+where('username',$data['username'])->find();
+		
+		if($admin['status'] !=1){
+			return '用户被禁用或未审核,请联系管理员';
+		}
+		//对输入的密码字段进行MD5加密,再进行数据库的查询
+		$salt = substr(md5($admin['create_time']),-6);
+		$pwd = substr_replace(md5($data['password']),$salt,0,6);
+		$data['password'] = md5($pwd);
+        if($admin['password'] == $data['password']){
+			
+			//将用户数据写入Session
+			Session::set('admin_id',$admin['id']);
+			Session::set('admin_name',$admin['username']);
+
+			Db::name('admin')->where('id',$admin['id'])->update(
+                        [
+                            'last_login_time' => time(),
+                            'last_login_ip' => request()->ip(),
+                        ]
+                    );
+					
+            //用户名密码正确返回1
+            return 1;
+        }else{
+            return '用户名或密码错误';
+        }
+    }
+}
diff --git a/app/admin/model/Article.php b/app/admin/model/Article.php
new file mode 100644
index 0000000..e2463f0
--- /dev/null
+++ b/app/admin/model/Article.php
@@ -0,0 +1,10 @@
+order('sort asc')->select();
+		return $this->sort($authRules);
+	}
+	
+	public function sort($data,$pid=0)
+	{
+		static $arr = array();
+		foreach($data as $k=> $v){
+			if($v['pid']==$pid){
+				$arr[] = $v;
+				$this->sort($data,$v['id']);	
+			}
+		}
+		return $arr;
+	}
+}
diff --git a/app/admin/model/AuthRule.php b/app/admin/model/AuthRule.php
new file mode 100644
index 0000000..dbcb07d
--- /dev/null
+++ b/app/admin/model/AuthRule.php
@@ -0,0 +1,35 @@
+order('sort asc')->select();
+		return $this->sort($authRules);
+	}
+	
+	public function sort($data,$pid=0)
+	{
+		static $arr = array();
+		foreach($data as $k=> $v){
+			if($v['pid']==$pid){
+				$arr[] = $v;
+				$this->sort($data,$v['id']);	
+			}
+		}
+		return $arr;
+	}
+}
diff --git a/app/admin/model/MailServer.php b/app/admin/model/MailServer.php
new file mode 100644
index 0000000..e5efcb8
--- /dev/null
+++ b/app/admin/model/MailServer.php
@@ -0,0 +1,24 @@
+ 'require|min:2|max:18|unique:admin',
+        'password|密码' => 'require|min:6|max:20',
+        'repassword|确认密码'=>'require|confirm:password',
+        'nickname|昵称' => 'require|min:2|max:20',
+        'email|邮箱' => 'require|email|unique:admin',
+        'captcha|验证码' => 'require|captcha',
+		'city|城市' => 'min:2',
+		'sign|签名' => 'min:10',
+		'sex|性别' => 'require',
+		'nowpass|密码' => 'require|min:6|max:20',
+    ];
+
+    //登陆验证场景
+    public function sceneLogin()
+    {
+        return $this->only(['username','password','captcha'])
+			->remove('username', 'unique');
+    }
+
+        //注册验证场景
+    public function sceneReg()
+    {
+        return $this->only(['username','password','repassword','email','captcha']);
+            //->append('email','unique:user');
+           // ->remove('password', 'confirm');
+    }
+	
+	//密码找回
+    public function sceneForget()
+    {
+        return $this->only(['email','captcha']);
+    }
+	
+	//密码重设
+    public function sceneRepass()
+    {
+        return $this->only(['password','repassword','captcha']);
+    }
+	
+	//用户资料
+	public function sceneSet()
+	{
+		return $this->only(['email','nickname','ctity','sex','sign'])
+					->remove('email','unique');
+	}
+	
+	//设置新密码
+	public function sceneSetpass()
+	{
+		return $this->only(['nowpass','password','repassword']);
+	}
+}
\ No newline at end of file
diff --git a/app/common.php b/app/common.php
new file mode 100644
index 0000000..7c54aac
--- /dev/null
+++ b/app/common.php
@@ -0,0 +1,246 @@
+find(1);
+try {
+    //Server settings
+    $mail->SMTPDebug = 0;                       // Enable verbose debug output
+    $mail->CharSet = 'utf-8';           //b
+    $mail->isSMTP();                                      // Set mailer to use SMTP
+    $mail->Host = $mailserver['host'];  // Specify main and backup SMTP servers
+    $mail->SMTPAuth = true;                               // Enable SMTP authentication
+    $mail->Username = $mailserver['mail'];                 // SMTP username
+    $mail->Password = $mailserver['password'];                           // SMTP password
+    $mail->SMTPSecure = 'tls';                            // Enable TLS encryption, `ssl` also accepted
+    $mail->Port = $mailserver['port'];                                    // TCP port to connect to
+
+    //Recipients
+    $mail->setFrom($mailserver['mail'], $mailserver['nickname']);
+    $mail->addAddress($to);     // Add a recipient
+    //$mail->addAddress('ellen@example.com');               // Name is optional
+    //$mail->addReplyTo('info@example.com', 'Information');
+    //$mail->addCC('cc@example.com');
+    //$mail->addBCC('bcc@example.com');
+
+    //Attachments
+    //$mail->addAttachment('/var/tmp/file.tar.gz');         // Add attachments
+    //$mail->addAttachment('/tmp/image.jpg', 'new.jpg');    // Optional name
+
+    //Content
+    $mail->isHTML(true);                                  // Set email format to HTML
+    $mail->Subject = $title;
+    $mail->Body    = $content;
+    //$mail->AltBody =$user ;
+
+
+   return $mail->send();
+    echo 'Message has been sent';
+	} catch (Exception $e) {
+    echo 'Message could not be sent. Mailer Error: ', $mail->ErrorInfo;
+    }
+}
+
+//根据user area_id查询区域简称
+function getAsing($area_id){
+	return Db::name('user_area')->where('id',$area_id)->value('asing');
+}
+
+//根据用户主键ID,查询用户名称
+if(!function_exists('getUserName'))
+{
+    function getUserName($user_id)
+    {
+       return Db::name('user')->where('id',$user_id)->value('name');
+    }
+}
+
+if(!function_exists('getUserImg'))
+{
+    function getUserImg($user_id)
+    {
+       return Db::name('user')->where('id',$user_id)->value('user_img');
+    }
+}
+
+
+//根据文章分类ID查询分类名
+function getCateName($cate_ename)
+    {
+       return Db::name('cate')->where('ename',$cate_ename)->value('catename');
+    }
+
+
+//过滤文章摘要
+function getArtContent($content)
+{
+    return mb_substr(strip_tags($content),0,50).'更多详情...';
+}
+
+
+
+//根据帖子收藏主键ID,查询帖子名称
+if(!function_exists('getArticName'))
+{
+    function getArticName($article_id)
+    {
+       return Db::name('article')->where('id',$article_id)->value('title');
+    }
+}
+
+//根据评论时间查询是否已过修改期
+function getLimtTime($create_time)
+    {
+		$nt = time();
+		$lt = intval(($nt - strtotime($create_time))/86400);
+		
+       return $lt;
+    }
+
+//根据用户名查询主页
+function jump()
+{
+    $username = Request::param('username');
+    return Db::name('user')->where('name',$username)->find();
+}
+
+/**
+ * 数组层级缩进转换
+ * @param array $array 源数组
+ * @param int   $pid
+ * @param int   $level
+ * @return array
+ */
+function array2level($array, $pid = 0, $level = 1)
+{
+    static $list = [];
+
+    foreach ($array as $v) {
+
+        if ($v['pid'] == $pid) {
+
+            $v['level'] = $level;
+            $list[]     = $v;
+
+            array2level($array, $v['id'], $level + 1);
+        }
+    }
+
+    return $list;
+}
+
+/**
+ * 构建层级(树状)数组
+ * @param array  $array          要进行处理的一维数组,经过该函数处理后,该数组自动转为树状数组
+ * @param string $pid_name       父级ID的字段名
+ * @param string $child_key_name 子元素键名
+ * @return array|bool
+ */
+function array2tree(&$array, $pid_name = 'pid', $child_key_name = 'children')
+{
+    $counter = array_children_count($array, $pid_name);
+    if (!isset($counter[0]) || $counter[0] == 0) {
+        return $array;
+    }
+    $tree = [];
+    while (isset($counter[0]) && $counter[0] > 0) {
+        $temp = array_shift($array);
+        if (isset($counter[$temp['id']]) && $counter[$temp['id']] > 0) {
+            array_push($array, $temp);
+        } else {
+            if ($temp[$pid_name] == 0) {
+                $tree[] = $temp;
+            } else {
+                $array = array_child_append($array, $temp[$pid_name], $temp, $child_key_name);
+            }
+        }
+        $counter = array_children_count($array, $pid_name);
+    }
+
+    return $tree;
+}
+
+/**
+ * 子元素计数器
+ * @param array $array
+ * @param int   $pid
+ * @return array
+ */
+function array_children_count($array, $pid)
+{
+    $counter = [];
+    foreach ($array as $item) {
+        $count = isset($counter[$item[$pid]]) ? $counter[$item[$pid]] : 0;
+        $count++;
+        $counter[$item[$pid]] = $count;
+    }
+
+    return $counter;
+}
+
+/**
+ * 把元素插入到对应的父元素$child_key_name字段
+ * @param        $parent
+ * @param        $pid
+ * @param        $child
+ * @param string $child_key_name 子元素键名
+ * @return mixed
+ */
+function array_child_append($parent, $pid, $child, $child_key_name)
+{
+    foreach ($parent as &$item) {
+        if ($item['id'] == $pid) {
+            if (!isset($item[$child_key_name])) {
+                $item[$child_key_name] = [];
+            }
+
+            $item[$child_key_name][] = $child;
+        }
+    }
+
+    return $parent;
+}
+
+
+//菜单递归
+function getTree($data)
+{
+	$tree = [];
+	foreach ($data as $array) {
+
+		if(isset($data[$array['pid']])) {
+			$data[$array['pid']]['children'][] = &$data[$array['id']];
+			//$tree = $data;
+		} else {
+			$tree[] = &$data[$array['id']];
+		}
+	}
+	return $tree;
+}
+
+//按钮权限检查
+function checkRuleButton($rules_button)
+{
+	$admin_id = Session::get('admin_id');
+	$auth = new xiaodi\Auth();
+	$res = $auth->check($rules_button,$admin_id );
+	
+	if($res || $admin_id == 1){
+		return true;
+	} else {
+		return false;
+	}
+}
+
+//菜单结构
+function getSpaceNmu($level)
+{
+	return str_repeat('---',$level);
+}
diff --git a/app/common/controller/AdminController.php b/app/common/controller/AdminController.php
new file mode 100644
index 0000000..37735a1
--- /dev/null
+++ b/app/common/controller/AdminController.php
@@ -0,0 +1,238 @@
+app     = $app;
+        $this->request = $this->app->request;
+
+        // 控制器初始化
+        $this->initialize();
+    }
+
+    // 初始化
+    protected function initialize()
+    {
+		//权限auth检查
+		//$this->checkAuth();
+		$this->getMenu();
+	}
+
+    /**
+     * 验证数据
+     * @access protected
+     * @param  array        $data     数据
+     * @param  string|array $validate 验证器名或者验证规则数组
+     * @param  array        $message  提示信息
+     * @param  bool         $batch    是否批量验证
+     * @return array|string|true
+     * @throws ValidateException
+     */
+    protected function validate(array $data, $validate, array $message = [], bool $batch = false)
+    {
+        if (is_array($validate)) {
+            $v = new Validate();
+            $v->rule($validate);
+        } else {
+            if (strpos($validate, '.')) {
+                // 支持场景
+                list($validate, $scene) = explode('.', $validate);
+            }
+            $class = false !== strpos($validate, '\\') ? $validate : $this->app->parseClass('validate', $validate);
+            $v     = new $class();
+            if (!empty($scene)) {
+                $v->scene($scene);
+            }
+        }
+
+        $v->message($message);
+
+        // 是否批量验证
+        if ($batch || $this->batchValidate) {
+            $v->batch(true);
+        }
+
+        return $v->failException(true)->check($data);
+    }
+
+
+	//权限检查
+	/**
+     * 权限检查
+     * @return bool
+     */
+/*	 
+    protected function checkAuth()
+    {
+        if (!Session::has('admin_id')) {
+			echo '请去登陆';
+            return redirect('/admin/login/index');
+			 //$this->error('请登录');
+			 //return ['code'=>0,'url'=>'/user/login'];
+        }
+
+        $app = app('http')->getName();
+        $controller = $this->request->controller();
+        $action     = $this->request->action();
+
+        // 排除权限
+        $not_check = ['admin/Index/index','admin/Index/home','admin/Set/info','admin/Set/password'];
+
+        if (!in_array($app . '/' . $controller . '/' . $action, $not_check)) {
+            $auth     = new Auth();
+            $admin_id = Session::get('admin_id');
+
+            if (!$auth->check($app . '/' . $controller . '/' . $action, $admin_id) && $admin_id != 1) {
+                //$this->error('没有权限');
+				echo '';
+				//return redirect('admin/user/login');
+            }
+        }
+    }
+*/	
+
+	
+    /**
+     * 获取侧边栏菜单
+     */
+    protected function getMenu()
+    {
+        $menu     = [];
+        $admin_id = Session::get('admin_id');
+        $auth     = new Auth();
+
+        $auth_rule_list = Db::name('auth_rule')->where(['status'=> 1,'ishidden'=>1])->order(['sort' => 'asc'])->select();
+        //var_export($auth_rule_list);
+
+        foreach ($auth_rule_list as $value) {
+            if ($auth->check($value['name'], $admin_id) || $admin_id == 1) {
+                $menu[] = $value;
+            }
+        }
+
+        $menu = !empty($menu) ? array2tree($menu) : [];
+        return View::assign('menu', $menu);
+    }
+	
+	/**
+     * 获取角色菜单
+     */
+    protected function getMenus()
+    {
+        $menu     = [];
+        $auth_rule_list = Db::name('auth_rule')->where(['status'=> 1])->order(['sort' => 'ASC', 'id' => 'ASC'])->select();
+        //var_export($auth_rule_list);
+
+        foreach ($auth_rule_list as $value) {
+                $menu[] = $value;  
+        }
+        $menus = !empty($menu) ? array2tree($menu) : [];
+		//$menu2 = getTree($menu);
+		return $menus;
+        //return View::assign('menus', $menus);
+    }
+	
+	//判断是否已登录?
+	protected function isLogged()
+	{
+		if(Session::has('admin_id')){
+			return redirect('admin/index/index');
+		}
+	}
+
+    //判断是否需要登录?
+    protected function isLogin()
+    {
+        if(!Session::has('admin_id')){
+			return redirect('/admin/login/index');
+        }
+    }
+
+	//显示当前登录管理员
+    protected function showAdmin()
+    {
+		$id = Session::get('admin_id');
+
+        //1.查询管理用户
+		$adminHead = Admin::find($id);
+	
+        //2.将User变量赋给模板 公共模板nav.html
+        View::assign('adminHead',$adminHead);
+    }
+	
+	/**创建目录
+	* This function creates recursive directories if it doesn't already exist
+	*
+	* @param String  The path that should be created
+	* 
+	* @return  void
+	*/
+	protected function create_dirs($path)
+	{
+	  if (!is_dir($path))
+	  {
+		$directory_path = "";
+		$directories = explode("/",$path);
+		array_pop($directories);
+	   
+		foreach($directories as $directory)
+		{
+		  $directory_path .= $directory."/";
+		  if (!is_dir($directory_path))
+		  {
+			mkdir($directory_path);
+			chmod($directory_path, 0777);
+		  }
+		}
+	  }
+	}
+
+}
\ No newline at end of file
diff --git a/app/common/controller/BaseController.php b/app/common/controller/BaseController.php
new file mode 100644
index 0000000..42589f2
--- /dev/null
+++ b/app/common/controller/BaseController.php
@@ -0,0 +1,257 @@
+app     = $app;
+        $this->request = $this->app->request;
+
+        // 控制器初始化
+        $this->initialize();
+    }
+
+    // 初始化
+    protected function initialize()
+    {
+		//系统配置
+		$this->showSystem();
+        //显示分类导航
+        $this->showNav();
+		$this->showUser();
+	}
+
+    /**
+     * 验证数据
+     * @access protected
+     * @param  array        $data     数据
+     * @param  string|array $validate 验证器名或者验证规则数组
+     * @param  array        $message  提示信息
+     * @param  bool         $batch    是否批量验证
+     * @return array|string|true
+     * @throws ValidateException
+     */
+    protected function validate(array $data, $validate, array $message = [], bool $batch = false)
+    {
+        if (is_array($validate)) {
+            $v = new Validate();
+            $v->rule($validate);
+        } else {
+            if (strpos($validate, '.')) {
+                // 支持场景
+                list($validate, $scene) = explode('.', $validate);
+            }
+            $class = false !== strpos($validate, '\\') ? $validate : $this->app->parseClass('validate', $validate);
+            $v     = new $class();
+            if (!empty($scene)) {
+                $v->scene($scene);
+            }
+        }
+
+        $v->message($message);
+
+        // 是否批量验证
+        if ($batch || $this->batchValidate) {
+            $v->batch(true);
+        }
+
+        return $v->failException(true)->check($data);
+    }
+
+    /**
+     * 操作错误跳转
+     * @param  mixed   $msg 提示信息
+     * @param  string  $url 跳转的URL地址
+     * @param  mixed   $data 返回的数据
+     * @param  integer $wait 跳转等待时间
+     * @param  array   $header 发送的Header信息
+     * @return void
+     */
+    protected function error($msg = '', string $url = null, $data = '', int $wait = 3, array $header = []): Response
+    {
+        if (is_null($url)) {
+            $url = request()->isAjax() ? '' : 'javascript:history.back(-1);';
+        } elseif ($url) {
+            $url = (strpos($url, '://') || 0 === strpos($url, '/')) ? $url : app('route')->buildUrl($url);
+        }
+
+        $result = [
+            'code' => 0,
+            'msg'  => $msg,
+            'data' => $data,
+            'url'  => $url,
+            'wait' => $wait,
+        ];
+
+        $type = (request()->isJson() || request()->isAjax()) ? 'json' : 'html';
+        if ('html' == strtolower($type)) {
+            $type = 'jump';
+        }
+
+        $response = Response::create($result, $type)->header($header)->options(['jump_template' => app('config')->get('app.dispatch_error_tmpl')]);
+
+        throw new HttpResponseException($response);
+    }
+
+    /**
+     * 返回封装后的API数据到客户端
+     * @param  mixed   $data 要返回的数据
+     * @param  integer $code 返回的code
+     * @param  mixed   $msg 提示信息
+     * @param  string  $type 返回数据格式
+     * @param  array   $header 发送的Header信息
+     * @return Response
+     */
+    protected function result($data, int $code = 0, $msg = '', string $type = '', array $header = []): Response
+    {
+        $result = [
+            'code' => $code,
+            'msg'  => $msg,
+            'time' => time(),
+            'data' => $data,
+        ];
+
+        $type     = $type ?: 'json';
+        $response = Response::create($result, $type)->header($header);
+
+        throw new HttpResponseException($response);
+    }
+
+    /**
+     * 操作成功跳转
+     * @param  mixed     $msg 提示信息
+     * @param  string    $url 跳转的URL地址
+     * @param  mixed     $data 返回的数据
+     * @param  integer   $wait 跳转等待时间
+     * @param  array     $header 发送的Header信息
+     * @return void
+     */
+    protected function success($msg = '', string $url = null, $data = '', int $wait = 3, array $header = []): Response
+    {
+        if (is_null($url) && isset($_SERVER["HTTP_REFERER"])) {
+            $url = $_SERVER["HTTP_REFERER"];
+        } elseif ($url) {
+            $url = (strpos($url, '://') || 0 === strpos($url, '/')) ? $url : app('route')->buildUrl($url);
+        }
+
+        $result = [
+            'code' => 1,
+            'msg'  => $msg,
+            'data' => $data,
+            'url'  => $url,
+            'wait' => $wait,
+        ];
+
+        $type = (request()->isJson() || request()->isAjax()) ? 'json' : 'html';
+        // 把跳转模板的渲染下沉,这样在 response_send 行为里通过getData()获得的数据是一致性的格式
+        if ('html' == strtolower($type)) {
+            $type = 'jump';
+        }
+
+        $response = Response::create($result, $type)->header($header)->options(['jump_template' => app('config')->get('app.dispatch_success_tmpl')]);
+
+        throw new HttpResponseException($response);
+    }
+
+	
+	//判断是否已登录?
+	protected function isLogged()
+	{
+		if(Session::has('user_id')){
+			$this->success('您已登录','/index/index/index');
+		}
+	}
+
+    //判断是否需要登录?
+    protected function isLogin()
+    {
+        if(!Session::has('user_id')){
+            $this->error('请登录','/index/user/login');
+        }
+    }
+	
+/*	 //判断密码找回是否已进行了邮件发送?
+    protected function isMailed()
+    {
+        if(Cache::get('repass') != 1){
+            $this->error('错误请求,请正确操作!','/index/user/forget');
+        }
+    }*/
+
+//    显示导航
+    protected function showNav()
+    {
+        //1.查询分类表获取所有分类
+		$cateList = Db::name('cate')->where(['status'=>1,'delete_time'=>0])->order('sort','asc')->select();
+		
+        //2.将catelist变量赋给模板 公共模板nav.html
+        View::assign('cateList',$cateList);
+
+    }
+	
+	//显示用户
+    protected function showUser()
+    {
+		$user['user_id'] = Session::get('user_id');
+        //1.查询用户
+		$user = Db::name('user')->field('id,name,nickname,user_img,sex,auth,city,email,sign,point')->where('id',$user['user_id'])->find();
+	
+        //2.将User变量赋给模板 公共模板nav.html
+        View::assign('user',$user);
+
+    }
+	
+	 //显示网站设置
+    protected function showSystem()
+    {
+        //1.查询分类表获取所有分类
+		$sysInfo = Db::name('system')->cache(true)->find(1);
+        View::assign('sysInfo',$sysInfo);
+    }
+	
+
+}
diff --git a/app/common/model/Article.php b/app/common/model/Article.php
new file mode 100644
index 0000000..f34125f
--- /dev/null
+++ b/app/common/model/Article.php
@@ -0,0 +1,82 @@
+1,'is_top'=>0,'is_hot'=>0];
+	//仅更新有效
+	protected $update = ['update_time'];
+	
+	//软删除
+	use SoftDelete;
+	protected $deleteTime = 'delete_time';
+	protected $defaultSoftDelete = 0;
+	
+    //文章关联栏目表
+    public function cate()
+    {
+        return $this->belongsTo('Cate','cate_id','id');
+    }
+	
+	//文章关联评论
+	public function comments()
+	{
+		return $this->hasMany('Comment','article_id','id');
+	}
+	
+	//文章关联用户
+	public function user()
+	{
+		return $this->belongsTo('User','user_id','id');
+	}
+	
+	//文章添加
+	public function add($data)
+	{
+		$result = $this->save($data);
+
+		if($result) {
+			return 1;
+		} else {
+			return '文章添加失败!';
+		}
+	}
+	
+	//文章编辑
+	public function edit($data)
+	{
+		$article = $this->find($data['id']);
+		$result = $article->save($data);
+		if($result) {
+			return 1;
+		} else {
+			return '文章修改失败!';
+		}
+	}
+	
+	//文章
+	public function detail()
+	{
+		$arts = Article::all();
+		return $arts;
+	}
+	
+	
+	//置顶文章
+	public function artTop()
+	{
+		$artTop = Article::where('status',1)->where('is_top',1)->select();
+		
+		return $artTop;
+	}
+}
\ No newline at end of file
diff --git a/app/common/model/Cate.php b/app/common/model/Cate.php
new file mode 100644
index 0000000..6327d31
--- /dev/null
+++ b/app/common/model/Cate.php
@@ -0,0 +1,28 @@
+find($data['id']);
+		
+		$res = $cates->delete();
+		if($res){
+			return 1;
+		}else{
+			return -1;
+		}
+		
+	}
+	
+	
+}
\ No newline at end of file
diff --git a/app/common/model/Collection.php b/app/common/model/Collection.php
new file mode 100644
index 0000000..3d41516
--- /dev/null
+++ b/app/common/model/Collection.php
@@ -0,0 +1,25 @@
+belongsTo('Article','article_id','id');
+	}
+
+}
\ No newline at end of file
diff --git a/app/common/model/Comment.php b/app/common/model/Comment.php
new file mode 100644
index 0000000..178f1c1
--- /dev/null
+++ b/app/common/model/Comment.php
@@ -0,0 +1,30 @@
+belongsTo('Article','article_id','id');
+	}
+	
+	public function user()
+	{
+		//评论关联用户
+		return $this->belongsTo('User','user_id','id');
+	}
+	
+}
\ No newline at end of file
diff --git a/app/common/model/Sign.php b/app/common/model/Sign.php
new file mode 100644
index 0000000..82c58aa
--- /dev/null
+++ b/app/common/model/Sign.php
@@ -0,0 +1,28 @@
+hasMany('User','user_id','id');
+	}
+	
+
+	
+}
\ No newline at end of file
diff --git a/app/common/model/System.php b/app/common/model/System.php
new file mode 100644
index 0000000..29d4818
--- /dev/null
+++ b/app/common/model/System.php
@@ -0,0 +1,21 @@
+hasMany('Comment','user_id','id');
+	}
+	
+	//用户关联所属区域
+    public function userArea()
+    {
+        return $this->belongsTo('UserArea','user_raea_id','id');
+    }
+	
+	//登陆校验
+    public function login($data)
+    {	
+        //查询用户
+        $user = Db::name('user')->whereOr('email',$data['name'])->whereOr('name',$data['name'])->find();
+		//halt($user);
+		//对输入的密码字段进行MD5加密,再进行数据库的查询
+		$salt = substr(md5($user['create_time']),-6);
+		$pwd = substr_replace(md5($data['password']),$salt,0,6);
+		$data['password'] = md5($pwd);
+
+        if($user['password'] == $data['password']){
+			//将用户数据写入Session
+			Session::set('user_id',$user['id']);
+			Session::set('user_name',$user['name']);
+            //查询结果1表示有用户,用户名密码正确
+            return 1;
+        }else{
+            return '用户名或密码错误';
+        }
+    }
+	
+    //注册校验
+    public function reg($data)
+    {	
+			//随机存入默认头像
+			$code = mt_rand('1','11');
+			$data['user_img'] = "./static/res/images/avatar/$code.jpg";	
+			$data['create_time'] = time();
+			$salt = substr(md5($data['create_time']),-6);
+			$data['password'] = substr_replace(md5($data['password']),$salt,0,6);
+            $result = $this->save($data);
+           if ($result) {
+               return 1;
+           } else{
+               return '注册失败';
+           }
+    }
+	
+	//重置密码
+    public function respass($data)
+    {	//halt($data);
+		$user = $this->where('id',$data['uid'])->find();
+		$salt = substr(md5($user['create_time']),-6);
+		$data['password'] = substr_replace(md5($data['password']),$salt,0,6);
+		$result = $user->save($data);
+           if ($result) {
+               return 1;
+			} else{
+               return '更改失败';
+			}
+    }
+	
+    //更新设置
+    public function setNew($data)
+    {
+        $userId = $data['user_id'];
+        $user = User::where('id',$userId)->find();
+        $result = $user->allowField(['email','nickname','sex','city','sign'])->save($data);
+        if($result){
+            return 1;
+        }else{
+            return '修改失败';
+        }
+    }
+	
+	//用户修改密码
+	public function setpass($data)
+	{
+		$user = $this->find($data['user_id']);
+		$salt = substr(md5($user['create_time']),-6);
+		$pwd = substr_replace(md5($data['nowpass']),$salt,0,6);
+		$data['nowpass'] = md5($pwd);
+		$result = $data['nowpass'] == $user['password'];
+		if(!$result){
+			return '当前密码不正确';
+		}
+		$data['password'] = substr_replace(md5($data['password']),$salt,0,6); 
+		$user->password = $data['password'];
+		$result = $user->save();
+		if($result){
+			return 1;
+		}else{
+			return '修改失败,请改换密码';
+		}
+	}
+	
+	
+}
\ No newline at end of file
diff --git a/app/common/model/UserArea.php b/app/common/model/UserArea.php
new file mode 100644
index 0000000..f219a3a
--- /dev/null
+++ b/app/common/model/UserArea.php
@@ -0,0 +1,23 @@
+belongsTo('User','user_id','id');
+	}
+	
+}
\ No newline at end of file
diff --git a/app/common/model/UserZan.php b/app/common/model/UserZan.php
new file mode 100644
index 0000000..6519b85
--- /dev/null
+++ b/app/common/model/UserZan.php
@@ -0,0 +1,30 @@
+belongsTo('Comment','comment_id','id');
+	}
+	
+	public function user()
+	{
+		//评论关联用户
+		return $this->belongsTo('User','user_id','id');
+	}
+	
+}
\ No newline at end of file
diff --git a/app/common/validate/Article.php b/app/common/validate/Article.php
new file mode 100644
index 0000000..4e5c30b
--- /dev/null
+++ b/app/common/validate/Article.php
@@ -0,0 +1,20 @@
+ 'require|min:4|max:50',
+        'content|内容' => 'require',
+        'cate_id|分类' => 'require',
+        'captcha|验证码' => 'require|captcha'
+    ];
+	
+	public function sceneArtadd()
+	{
+		return $this->only(['cate_id','title','content','captcha']);
+	}
+}
\ No newline at end of file
diff --git a/app/common/validate/User.php b/app/common/validate/User.php
new file mode 100644
index 0000000..98c81e9
--- /dev/null
+++ b/app/common/validate/User.php
@@ -0,0 +1,80 @@
+ 'require|min:2|max:18|unique:user',
+		'email|邮箱' => 'require|email|unique:user',
+        'password|密码' => 'require|min:6|max:20',
+        'repassword|确认密码'=>'require|confirm:password',
+        'nickname|昵称' => 'require|min:2|max:20',      
+        'captcha|验证码' => 'require|captcha',
+		'city|城市' => 'min:2|max:25',
+		'sign|签名' => 'min:10|max:100',
+		'sex|性别' => 'require',
+		'nowpass|新密码' => 'require|min:6|max:20',
+		'code|校验码' => 'require|length:4',
+    ];
+	
+	//邮件邮件码验证
+	 public function sceneCode()
+    {
+        return $this->only(['code',]);
+    }
+
+    //name登陆验证场景
+    public function sceneLoginName()
+    {
+        return $this->only(['name','password','captcha'])
+			->remove('name', 'unique');
+    }
+	
+	//emai登陆验证场景
+    public function sceneLoginEmail()
+    {
+        return $this->only(['email','password','captcha'])
+			->remove('email', 'unique');
+    }
+
+        //注册验证场景
+    public function sceneReg()
+    {
+        return $this->only(['name','email','password','repassword','captcha']);
+            
+    }
+	
+	//密码找回
+    public function sceneForget()
+    {
+        return $this->only(['email','captcha'])
+				->remove('email', 'unique');
+    }
+	
+	//密码重设
+    public function sceneRepass()
+    {
+        return $this->only(['password','repassword','captcha']);
+    }
+	
+	//密码重置
+    public function sceneRespass()
+    {
+        return $this->only(['password','repassword','captcha']);
+    }
+	
+	//用户资料
+	public function sceneSet()
+	{
+		return $this->only(['email','nickname','ctity','sex','sign'])
+					->remove('email','unique');
+	}
+	
+	//设置新密码
+	public function sceneSetpass()
+	{
+		return $this->only(['nowpass','password','repassword']);
+	}
+}
\ No newline at end of file
diff --git a/app/event.php b/app/event.php
new file mode 100644
index 0000000..e9851bb
--- /dev/null
+++ b/app/event.php
@@ -0,0 +1,17 @@
+ [
+    ],
+
+    'listen'    => [
+        'AppInit'  => [],
+        'HttpRun'  => [],
+        'HttpEnd'  => [],
+        'LogLevel' => [],
+        'LogWrite' => [],
+    ],
+
+    'subscribe' => [
+    ],
+];
diff --git a/app/index/controller/.gitignore b/app/index/controller/.gitignore
new file mode 100644
index 0000000..06c2f0f
--- /dev/null
+++ b/app/index/controller/.gitignore
@@ -0,0 +1 @@
+Api.php
\ No newline at end of file
diff --git a/app/index/controller/Article.php b/app/index/controller/Article.php
new file mode 100644
index 0000000..c6d8e11
--- /dev/null
+++ b/app/index/controller/Article.php
@@ -0,0 +1,272 @@
+ ['except' 	=> ['cate','detail'] ],
+    ];
+	
+	//文章分类
+    public function cate(){
+
+		$where =[];
+		//获取分类ID
+		$ename = Request::param('ename');
+		$cate = Db::name('cate')->where('ename',$ename)->find();
+		$types = input('type');
+		if($cate){
+			$where = ['cate_id' => $cate['id']];
+		}else{
+			$where = true;
+		}
+		switch ($types) {
+				//查询文章,10个分1页
+                case 'all':
+				$artList = ArticleModel::withCount(['user','cate','comments'])->where('status',1)->where($where)->order(['is_top'=>'desc','create_time'=>'desc'])->paginate(10);
+				break;
+				
+				case 'hot':
+				$artList = ArticleModel::withCount(['user','cate','comments'])->where('status',1)->where($where)->where('is_hot',1)->order(['is_top'=>'desc','create_time'=>'desc'])->paginate(10);
+				break;
+				
+				case 'top':
+				$artList = ArticleModel::withCount(['user','cate','comments'])->where('status',1)->where($where)->where('is_top',1)->order(['is_top'=>'desc','create_time'=>'desc'])->paginate(10);
+				break;
+				
+				default:
+				$artList = ArticleModel::withCount(['user','cate','comments'])->where('status',1)->where($where)->order(['is_top'=>'desc','create_time'=>'desc'])->paginate(10);
+				break;
+		}
+		
+		//	热议文章
+		$artHot = ArticleModel::withCount('comments')->where('status',1)->whereTime('create_time', 'year')->order('comments_count','desc')->limit(10)->select();
+		//分类右栏广告
+		$ad_cate = Db::name('slider')->where('slid_status',1)->where('delete_time',0)->where('slid_type',4)->whereTime('slid_over','>=',time())->select();
+		//通用右栏
+		$ad_comm = Db::name('slider')->where('slid_status',1)->where('delete_time',0)->where('slid_type',3)->whereTime('slid_over','>=',time())->select();
+		
+		View::assign(['type'=>$types,'artList'=>$artList,'artHot'=>$artHot,'ad_cate'=>$ad_cate,'ad_comm'=>$ad_comm]);
+		return View::fetch();
+    }
+
+	//文章详情页
+    public function detail($id = 1)
+    {
+		//获取文章ID
+		$id = Request::param('id');
+		//查询文章
+		$article = ArticleModel::withCount(['user','cate','comments'])->find($id);
+		$article->inc('pv')->update();
+
+/*		
+		$nt = time();
+		$ft = $article->comments;
+		$ct[] = [];
+		foreach($ft as $c){
+			$t = $c->create_time;
+			$ct[] = intval(($nt - strtotime($t))/86400);
+		}
+		dump($nt);
+		dump($ct);
+		$this->assign('ct',$ct);
+		$article->append(['comment.ct'])->toArray();
+		//halt($article);
+*/		
+		
+		//	热议文章
+		$artHot = ArticleModel::withCount('comments')->where('status',1)->whereTime('create_time', 'year')->order('comments_count','desc')->limit(10)->select();
+		//文章广告
+		$ad_article = Db::name('slider')->where('slid_status',1)->where('delete_time',0)->where('slid_type',3)->whereTime('slid_over','>=',time())->select();
+		//通用右栏
+		$ad_comm = Db::name('slider')->where('slid_status',1)->where('delete_time',0)->where('slid_type',3)->whereTime('slid_over','>=',time())->select();
+		View::assign(['article'=>$article,'artHot'=>$artHot,'ad_art'=>$ad_article,'ad_comm'=>$ad_comm]);
+		return View::fetch();
+    }
+	
+	//文章评论
+	public function comment()
+	{
+		//if (Request::isAjax()){
+		//获取评论
+		$data = Request::only(['content','article_id','user_id']);
+		
+		//用户留言存入数据库
+		if (Comment::create($data)) {
+			$res = ['code'=>1, 'msg'=>'留言成功'];
+		} else{
+			$res = ['code'=>0, 'msg'=>'留言失败'];
+		}
+		return json($res);
+	}
+	
+	
+
+    //添加文章
+    public function add()
+	{
+		if(Request::isAjax()){
+			$data = Request::post();
+			$validate = new \app\common\validate\Article; //调用验证器
+			$result = $validate->scene('Artadd')->check($data); //进行数据验证		
+			if(true !==$result){	
+				return $this->error($validate->getError());
+			} else {	
+				$article = new \app\common\model\Article;
+				$result = $article->add($data);
+				if($result == 1) {
+					$aid = Db::name('article')->max('id');
+					return json(['code'=>1,'msg'=>'发布成功','url'=>'/'.app('http')->getName().'/jie/'.$aid.'.html']);
+				} else {
+					$this->error($result);
+				}
+			}
+		}
+		return View::fetch();
+    }
+
+    //编辑文章
+    public function edit()
+    {
+		$aid = input('id');
+		$article = Db::name('article')->find($aid);
+		
+		if(Request::isAjax()){
+			$data = Request::post();
+			$validate = new \app\common\validate\Article(); //调用验证器
+			$res = $validate->scene('Artadd')->check($data); //进行数据验证
+			
+			if(true !==$res){	
+				//echo '';
+				return $this->error($validate->getError());
+			} else {	
+				$article = new \app\common\model\Article;
+				$result = $article->edit($data);
+				if($result == 1) {
+					return json(['code'=>1,'msg'=>'修改成功','url'=>'/'.app('http')->getName().'/jie/'.$aid.'.html']);
+				} else {
+				$this->error($result);
+				}
+			}
+		}
+        
+        View::assign('article',$article);
+		return View::fetch();
+    }
+	
+	//删除文章
+    public function delete()
+	{
+		$article = ArticleModel::find(input('id'));
+		$result = $article->together(['comments'])->delete();
+		if($result) {
+			$res = ['code'=>1,'msg'=>'删除文章成功','url'=>'/index/user/post'];
+		} else {
+			$res = ['code'=>0,'msg'=>'删除文章失败'];	
+		}
+		return json($res);
+	}
+	
+	//添加文章和编辑页富文本编辑器图片上传
+	public function lay_img_upload()
+    {
+        $file = Request()->file('file');
+        if(empty($file)){
+            $result["code"] = "1";
+            $result["msg"] = "请选择图片";
+            $result['data']["src"] = '';
+        }else{
+            // 移动到框架应用根目录/public/uploads/ 目录下
+            $info = $file->move('uploads/' );
+            if($info){
+                $infos = $info->getInfo();
+                // 源文件名
+                $name = $infos['name'];
+ 
+                $name_path =str_replace('\\',"/",$info->getSaveName());
+                //成功上传后 获取上传信息
+                $result["code"] = '0';
+                $result["msg"] = "上传成功";
+                $result['data']["src"] = "/uploads/".$name_path;
+                $result['data']["title"] = $name;
+            }else{
+                // 上传失败获取错误信息
+                $result["code"] = "2";
+                $result["msg"] = "上传出错";
+                $result['data']["src"] ='';
+            }
+        }
+ 
+        return json_encode($result);
+ 
+    }
+	
+	//文本编辑器图片上传
+	public function text_img_upload()
+    {
+        $file = request()->file('file');
+		try {
+			validate(['image'=>'filesize:2048|fileExt:jpg,png,gif'])
+            ->check(array($file));
+			$savename = \think\facade\Filesystem::disk('public')->putFile('article_pic',$file);
+		} catch (think\exception\ValidateException $e) {
+			echo $e->getMessage();
+		}
+		$upload = Config::get('filesystem.disks.public.url');
+
+		if($savename){
+            //$name = $file->hashName();
+            $name_path =str_replace('\\',"/",$upload.'/'.$savename);
+			//halt($name_path);
+			//$image = \think\Image::open("uploads/$name_path");
+			//$image->thumb(168, 168)->save("uploads/$name_path");
+
+            $res = ['status'=>0,'msg'=>'上传成功','url'=> $name_path];
+        }else{
+            $res = ['status'=>1,'msg'=>'上传错误'];
+        }
+	return json($res);
+    }
+
+	
+	//文章置顶,状态
+	public function jieset(){
+		$data = Request::param();
+		$article = ArticleModel::find($data['id']);
+		if($data['field'] === 'top') {
+			if($data['rank']==1){
+				$article->save(['is_top' => 1]);
+				$res['status'] = 0;
+				$res['msg'] ='置顶成功';
+			} else {
+				$article->save(['is_top' => 0]);
+				$res['status'] = 0;
+				$res['msg'] ='已取消置顶';
+			}
+		} else {
+			if($data['rank']==1){
+				$article->save(['is_hot' => 1]);
+				$res['status'] = 0;
+				$res['msg'] ='已设精贴';
+			} else {
+				$article->save(['is_hot' => 0]);
+				$res['status'] = 0;
+				$res['msg'] ='精贴已取消';
+			}
+		}
+		return json($res);	
+	}
+	
+}
\ No newline at end of file
diff --git a/app/index/controller/Collection.php b/app/index/controller/Collection.php
new file mode 100644
index 0000000..9676d6e
--- /dev/null
+++ b/app/index/controller/Collection.php
@@ -0,0 +1,64 @@
+  'integer',
+//    ];
+
+	//文章收藏
+	public function add(){
+		//$data = Request::param();
+		$data['article_id'] = intval(input('cid'));
+		$data['user_id'] = session::get('user_id');
+		$result = CollectionModel::create($data);
+        if($result){
+            $res['status'] = 0;
+			//$res=['type' => 'add','type' => 'remove', 'msg' => '收藏成功'];
+        }
+        return $res;
+	}
+
+    //取消收藏
+    public function remove(){
+		
+		$cid = input('cid');
+        $aid = intval($cid);
+		$user['user_id'] = session::get('user_id');
+        //$result = CollectionModel::where('cid',$arid)->select();
+        $result =  Db::name('collection')->where(['article_id' => $aid,'user_id' => $user['user_id']])->delete();
+        if($result){
+			$res['status'] = 0;
+            //$res=['type' => 'add','type' => 'remove', 'msg' => '收藏成功'];  
+        }
+	 return $res;
+    }
+
+    //收藏查询
+	public function find(){
+		//$cid = Request::param();
+		$cid = input('cid');
+		$aid = intval($cid);
+		$user['user_id'] = session::get('user_id');
+		//halt($artid);
+        $collectData =  Db::name('collection')->where(['article_id' => $aid,'user_id' => $user['user_id']])->find();
+		if($collectData){
+			$res['status'] = 0;
+			$res['data']['collection'] = $collectData['article_id'];
+		} else {
+			$res['status'] = 0;
+			$res['data'] = '';
+		} 
+       return json($res);
+	}
+
+	
+}
\ No newline at end of file
diff --git a/app/index/controller/Comment.php b/app/index/controller/Comment.php
new file mode 100644
index 0000000..71287ea
--- /dev/null
+++ b/app/index/controller/Comment.php
@@ -0,0 +1,109 @@
+save(['cai' =>1]);
+		$res = [];
+        if($result){
+				$art = Article::find($comms['article_id']);
+				$jie = $art->save(['jie' => 1]);
+				if($jie){
+					$res['status'] = 0; 
+				}
+        }
+	 return json($res);
+    }
+
+    //删除评论
+    public function jiedaDelete(){
+		
+		$id = input('id');
+        //$arid = intval($id);
+
+        $comms = CommentModel::find($id);
+		$result = $comms->delete();
+        //$result =  Db::name('collection')->where('article_id',$arid)->delete();
+        if($result){
+            //$res=['type' => 'add','type' => 'remove', 'msg' => '收藏成功'];
+            $res = [
+                'status' => 0,
+            ]; 
+        }
+	 return json($res);
+    }
+	
+	
+	//编辑评论
+	public function getDa()
+	{
+		$this->isLogin();
+		$id = input('id');
+		$comms = CommentModel::find($id);
+		$res['rows'] = [];
+		if($comms) {
+			$res['status'] = 0;
+			$res['rows']['content'] = $comms['content'];		
+		}
+		return json($res);
+	}
+	
+		//更新评论
+	public function updateDa()
+	{
+		$this->isLogin();
+		$id = input('id');
+		$content = input('content');
+		$comms = CommentModel::find($id);
+		$result = $comms->save(['content' => $content]);
+		if($result) {
+			$res['status'] = 0;
+			$res['msg'] = '更新成功';
+		} else {
+			$res['msg'] = '更新失败';
+		}
+		return json($res);
+	}
+	
+	//点赞评论
+	public function jiedaZan()
+	{
+		$this->isLogin();
+		$data['comment_id'] = input('post.id');
+		$data['user_id'] = session('user_id');
+		//查询是否已存在点赞
+		$zan = UserZan::where(['comment_id'=>input('post.id'),'user_id'=>session('user_id')])->find();
+		Session::set('ok',$zan['comment_id']);
+		if(!$zan ){ //如果没有点过赞执行点赞操作
+			$coms = CommentModel::find(input('post.id'));
+			if($coms['user_id'] == session('user_id')){
+				return $res=['msg' => '不能给自己点赞哦'];
+			} else {
+				$res = UserZan::create($data);
+				if($res){
+					//评论点赞数加1
+					$coms->save(['zan' => $coms['zan']+1]);
+					return $res=['status' => 0, 'msg' => '点赞成功'];
+				}else {
+					$this->error('点赞失败');
+				}
+			}
+			
+		} else {
+			return $res=['msg' => '你已赞过了'];
+		}
+	}	
+}
\ No newline at end of file
diff --git a/app/index/controller/Error.php b/app/index/controller/Error.php
new file mode 100644
index 0000000..733cbf1
--- /dev/null
+++ b/app/index/controller/Error.php
@@ -0,0 +1,10 @@
+where('slid_status',1)->where('delete_time',0)->where('slid_type',1)->whereTime('slid_over','>=',time())->select();
+	
+		//置顶文章
+		$artTop = Article::where(['is_top'=>1,'status'=>1,'delete_time'=>0])->with([
+            'cate' => function($query){
+            $query->where('delete_time',0);
+            }
+        ])->with(['user'])->withCount(['comments'])->order('create_time','desc')->limit(5)->select();
+		
+		//查询首页文章显示15条
+		$types = input('type');
+		$artList = Article::withCount(['user','cate','comments'])->where(['status'=>1,'delete_time'=>0])->order('create_time','desc')->limit(15)->select();
+
+		//热议文章
+		$artHot = Article::withCount('comments')->field('title,comments_count')->where(['status'=>1,'delete_time'=>0])->whereTime('create_time', 'year')->order('comments_count','desc')->limit(10)->select();
+		
+		//首页赞助
+		$ad_index = Db::name('slider')->where('slid_status',1)->where('delete_time',0)->where('slid_type',2)->whereTime('slid_over','>=',time())->select();
+		
+		//首页右栏
+		$ad_comm = Db::name('slider')->where('slid_status',1)->where('delete_time',0)->where('slid_type',3)->whereTime('slid_over','>=',time())->select();
+		
+		//友情链接
+		$friend_links = Db::name('friend_link')->field('linkname,linksrc')->select();
+		
+		$vs = [
+			'slider'	=>	$sliders,
+			'artTop'	=>	$artTop,
+			'artList'	=>	$artList,
+			'artHot'	=>	$artHot,
+			'type'		=>	$types,
+			'ad_index'	=>	$ad_index,
+			'ad_comm'	=>	$ad_comm,
+			'flinks'	=>	$friend_links,
+		];
+		View::assign($vs);
+
+		return View::fetch();
+    }
+	
+	//回帖榜
+	public function reply()
+	{
+		$user = User::withCount('comments')->order('comments_count','desc')->limit(20)->select();
+		if($user)
+		{	
+			$res['status'] = 0;
+			$res['data'] = array();
+				foreach ($user as $key=>$v) {
+					
+					$u['uid'] = $v['id'];
+					$u['count(*)'] = $v['comments_count'];
+					if($v['nickname'])
+					{
+						$u['user'] = ['username'=>$v['nickname'],'avatar'=>$v['user_img']];
+					} else {
+						$u['user'] = ['username'=>$v['name'],'avatar'=>$v['user_img']];
+					}
+					$res['data'][] = $u;					
+				}					
+		}
+	return json($res);		
+	}
+
+	//搜索功能
+	public function search()
+	{
+		//$this->showUser();
+        //全局查询条件
+        $map = []; //所有的查询条件封装到数组中
+        //条件1:
+        $map[] = ['status','=',1]; //这里等号不能省略
+
+        //实现搜索功能
+        $keywords = input('keywords');
+        if(!empty($keywords)){
+			//条件2
+            $map[] = ['title','like','%'.$keywords.'%'];
+			$artList = Article::where($map)->withCount('comments')->order('create_time','desc')->paginate(10);
+			$counts = $artList->count(); 
+			$searchs = [
+				'artList' => $artList,
+				'keywords' => $keywords,
+				'counts' => $counts
+			];
+			
+		View::assign($searchs);
+			//友情链接
+		$friend_links = Db::name('friend_link')->field('linkname,linksrc')->select();
+		View::assign('flinks',$friend_links);
+		
+		//	查询热议
+		$artHot = Article::withCount('comments')->field('title,comments_count')->where('status',1)->whereTime('create_time', 'year')->order('comments_count','desc')->limit(10)->select();
+		View::assign('artHot',$artHot);
+			    	
+        } else{
+			return '请输入关键词';
+		}
+		return View::fetch('search');
+	}
+
+    public function jump()
+    {
+        $username = Request::param('username');
+        $u = Db::name('user')->whereOr('nickname', $username)->whereOr('name', $username)->find();
+        return redirect('index/user/home',['id'=>$u['id']]);
+
+    }
+
+}
diff --git a/app/index/controller/Jump.php b/app/index/controller/Jump.php
new file mode 100644
index 0000000..ecc7e02
--- /dev/null
+++ b/app/index/controller/Jump.php
@@ -0,0 +1,27 @@
+scene('loginEmail')
+                        ->check($data);
+                } catch (ValidateException $e) {
+                    // 验证失败 输出错误信息
+                    return json(['code'=>0,'msg'=>$e->getError()]);
+                }
+                $data['name'] = $data['email'];
+				unset($data['email']);
+		   } else {
+			   //用户名name登陆验证
+			   try{
+                    validate(userValidate::class)
+                        ->scene('loginName')
+                        ->check($data);
+                } catch (ValidateException $e) {
+                    // 验证失败 输出错误信息
+					return json(['code'=>0,'msg'=>$e->getError()]);
+                }  
+		   }			
+			//登陆请求
+			$user = new \app\common\model\User();
+			$res = $user->login($data);
+            if ($res == 1) {
+                return json(['code'=>'1','msg'=>'登陆成功','url'=>'/index/index/index']);
+            } else {
+				return json(['code'=>'0','msg'=>$res]);
+            }
+        }
+        return View::fetch('login');
+	}
+
+    //注册
+    public function reg()
+    {
+        if(Request::isAjax()){
+			$data = Request::only(['name','email','password','repassword','captcha']);
+		
+        //校验场景中reg的方法数据
+		try{
+            validate(userValidate::class)
+                ->scene('Reg')
+                ->check($data);
+        } catch (ValidateException $e) {
+				return json(['code'=>0,'msg'=>$e->getError()]);
+        }
+		
+		$user = new userModel;
+		$result = $user->reg($data);
+		
+           if ($result == 1) {
+			   $res = ['code'=>1,'msg'=>'注册成功','url'=>'/index/login/index'];
+           }else {
+			   $res = ['code'=>0,'msg'=>$result];
+           }
+		   return json($res);
+        }
+        //加载注册模板
+        return View::fetch();
+    }
+	
+	//找回密码
+	public function forget()
+	{
+		if(Request::isAjax()){
+			$data = Request::param();
+			
+		try{
+            validate(userValidate::class)
+                ->scene('Forget')
+                ->check($data);
+        } catch (ValidateException $e) {
+			return json(['code'=>0,'msg'=>$e->getError()]);
+        }
+		//查询用户
+		$user = Db::name('user')->where('email',$data['email'])->find();
+            if($user) {
+                $code = mt_rand('1111','9999');
+                Cache::set('code',$code,600);
+                Cache::set('userid',$user['id'],600);
+
+                $result = mailto($data['email'],'重置密码','Hi亲爱的'.$user['name'].':
您正在维护您的信息,请在10分钟内验证,您的验证码为:'.$code); + if($result){ + Cache::set('repass',1,60); //设置repass标志为1存入Cache + $res = ['code'=>1,'msg'=>'验证码已发送成功,请去邮箱查看!','url'=>'/index/login/postcode']; + } else { + $res = ['code'=>0,'msg'=>'验证码发送失败!']; + } + }else{ + $res = ['code' =>0,'msg'=>'邮箱错误或不存在']; + } + return json($res); + } + return View::fetch(); + } + + //接收验证码 + public function postcode() + { + if(Cache::get('repass') != 1){ + return json(['code'=>0,'msg'=>'请求错误!','url'=>'/index/login/forget']); + } + if(Request::isAjax()){ + $code = Request::only(['code']); + try{ + validate(userValidate::class) + ->scene('Code') + ->check($code); + } catch (ValidateException $e) { + return json(['code'=>0,'msg'=>$e->getError()]); + } + + if(Cache::get('code')==$code['code']) { //无任何输入情况下需排除code为0和Cache为0的情况 + //Cache::delete('repass'); + Cache::set('repass',2,60); + $res = ['code'=>'1','msg'=>'验证成功','url'=>'/index/login/respass']; + } else { + $res = ['code'=>0,'msg'=>'验证码错误或已过期!']; + } + return json($res); + } + return View::fetch('forget'); + } + + //忘记密码找回重置 + public function respass() + { + if(Cache::get('repass') != 2){ + return json(['code'=>0,'msg'=>'请求错误!','url'=>'/index/login/forget']); + } + if(Request::isAjax()){ + $data = Request::param(); + try{ + validate(userValidate::class) + ->scene('Repass') + ->check($data); + } catch (ValidateException $e) { + return json(['code'=>0,'msg'=>$e->getError()]); + } + + $data['uid'] = Cache::get('userid'); + $user = new \app\common\model\User(); + $res = $user->respass($data); + if ($res == 1) { + return json(['code'=>'1','msg'=>'修改成功','url'=>'/index/login/index']); + } else { + return json(['code'=>'0','msg'=>'$res']); + } + } + return View::fetch('forget'); + } + +} \ No newline at end of file diff --git a/app/index/controller/Message.php b/app/index/controller/Message.php new file mode 100644 index 0000000..b517e2d --- /dev/null +++ b/app/index/controller/Message.php @@ -0,0 +1,20 @@ +0,'count' => 0, 'msg' => 'nums']; + + return $res; + } + +} \ No newline at end of file diff --git a/app/index/controller/Sign.php b/app/index/controller/Sign.php new file mode 100644 index 0000000..dd27fa0 --- /dev/null +++ b/app/index/controller/Sign.php @@ -0,0 +1,268 @@ +uid = session('user_id'); + + } + + public function lists() + { + //总榜 + $totallist = Db::name('user_sign')->alias('s')->join('user u', 's.uid=u.id', 'LEFT')->field('s.uid,s.id,max(s.days) as days,u.name as name,u.user_img as user_img')->group('s.uid')->order('days desc')->limit(20)->select(); + $time = time(); + $start_stime = strtotime(date('Y-m-d 0:0:0', $time)) - 1; + $end_stime = strtotime(date('Y-m-d 23:59:59', $time)) + 1; + //今日最快 + $fastlist = Db::name('user_sign')->alias('s')->join('user u', 's.uid=u.id')->field('s.*,u.name as name,u.user_img as user_img')->where("s.stime > $start_stime and s.stime < $end_stime")->order('s.id asc')->limit(20)->select(); + //最新 + $newlist = Db::name('user_sign')->alias('s')->join('user u', 's.uid=u.id')->field('s.*,u.name as name,u.user_img as user_img')->order('id desc')->limit(20)->select(); + + View::assign('totallist', $totallist); + View::assign('fastlist', $fastlist); + View::assign('newlist', $newlist); + return View::fetch(); + } + + /** + * 执行当天签到 + * @return json 签到成功返回 {status:1,info:'已签到'} + */ + public function sign() + { + if (!Session::has('user_id') || !Session::has('user_name')) { + return json(array('code' => 0, 'msg' => '亲,登陆后才能签到哦','url' => 'index/login/index')); + } else { + $uid = session('user_id'); + $todayData = $this->todayData()->getData(); + //var_dump($todayData); + + if ($todayData['is_sign'] == 1) { //数组中是返回的是一个对象,不能直接用[]来显示,正确的输出方法是:$pic[0]->title问题解决! + exit('{"code":-1,"msg":"你今天已经签过到了"}'); + } else { + $data = $this->getInsertData($uid); + + $days = $data['days']; + // 无今天数据 + + $data['uid'] = $uid; + $data['stime'] = time(); + $id = Db::name('user_sign')->insertGetId($data); + + if ($id) { + //$will_getscore + //$score = $this->getTodayScores($days); + $score = $todayData['will_getscore']; + $date=date('Ymd'); + $msg=''; + $teshudate=['20180215','20180216','20180217','20180218','20180219','20180220','20180221']; + //签到奖励 + if(in_array($date,$teshudate)){ + $randnum=rand(1,99); + $msg='新年好!您额外获得随机奖励'.$randnum.'金币!'; + point_note($randnum, $uid, 'NewYearReward', $id); + } + + session('signdate', $date); + + if ($score > 0) { + // 为该用户添加积分 + $user = User::find($uid); + $point = $user['point']+$score; + $user->save(['point' => $point]); + //point_note($score, $uid, $id); + + } + return json(['code'=>200,'score'=>$score,'days'=>$days,'msg'=>$msg]); + // exit('{"code":200,"score":"' . $score . '","days":"' . $days . '"}'); + } else { + exit('{"code":-1,"msg":"签到失败,请刷新后重试!"}'); + } + } + } + } + /** + * 返回每次签到要插入的数据 + * + * @param int $uid 用户id + * @return array( + * 'days' => '天数', + * 'is_sign' => '昨天是否签到,用1表示已经签到', + * 'stime' => '签到时间', + * ); + */ + protected function getInsertData($uid) + { + // 昨天的连续签到天数 + $start_time = strtotime(date('Y-m-d 0:0:0', time() - 86400)) - 1; + $end_time = strtotime(date('Y-m-d 23:59:59', time() - 86400)) + 1; + $days = Db::name('user_sign')->where("uid = $uid and stime > $start_time and stime < $end_time")->value('days'); + if ($days) { + $days++; + $is_sign = 1; + $time = time(); + // if($days > 30){ + // $days = 1; + // } + } else { + //$days=1; + $is_sign = 0; + $days = 1; + $time = ''; + } + return [ + 'days' => $days, + 'is_sign' => $is_sign, + 'stime' => $time, + ]; + } + /** + * 用户当天签到的数据 + * @return array 签到信息 is_sign,stime 等 + */ + public function todayData() + { + $time = time(); + $start_stime = strtotime(date('Y-m-d 0:0:0', $time)) - 1; + $end_stime = strtotime(date('Y-m-d 23:59:59', $time)) + 1; + $res = Db::name('user_sign')->where('uid',session('user_id'))->where('stime', '>', $start_stime)->where('stime', '<', $end_stime)->find(); + $score = 0; + if ($res) { + $is_sign = 1; + //昨天已签到 + //已连续签到 已获取 + $days = $res['days']; + $score = $this->getTodayScores($res['days']); + $will_getscore = $this->getTodayScores($res['days'] + 1); + } else { + //今天没有签,看昨天 + $is_sign = 0; + $yestoday = $this->getInsertData(session('user_id')); + if ($yestoday['is_sign']) { + //今天连续天数 + $days = $yestoday['days'] - 1; + $will_getscore = $this->getTodayScores($yestoday['days']); + } else { + //今天第一天 + $days = 0; + $will_getscore = $this->getTodayScores(1); + + } + + //已连续签到 可获取 + $score = $this->getTodayScores($days); + } + $data = [ + 'is_sign' => $is_sign, + 'days' => $days, + 'score' => $score, + 'will_getscore' => $will_getscore, + ]; + + return json($data); + } + /** + * 积分规则,返回连续签到的天数对应的积分 + * + * @param int $days 当天应该得的分数 + * @return int 积分 + */ + protected function getTodayScores($days) + { + $score = 0; + $scores = Db::name('user_signrule')->where("days <= $days")->order('days desc')->limit(1)->value('score'); + if ($scores) { + $score = $scores; + } + + return $score; + } + + public function getsignrule() + { + $rules = Db::name('user_signrule')->order('days asc')->select(); + return json(array('code' => 200, 'msg' => $rules)); + } + + /** + * 显示签到列表 + * + * @param array $signDays 某月签到的日期 array(1,2,3,4,5,12,13) + * @param int $year 可选,年份 + * @param int $month 可选,月份 + * @return string 日期列表
  • 1
  • .... + */ + public function showDays($signDays, $year = '', $month = '') + { + $time = time(); + $year = $year ? $year : date('Y', $time); + $month = $month ? $month : date('m', $time); + $daysTotal = date('t', mktime(0, 0, 0, $month, 1, $year)); + $now = date('Y-m-d', $time); + $str = ''; + // $i=0; + for ($j = 1; $j <= $daysTotal; $j++) { + // $i++; + $someDay = date('Y-m-d', strtotime("$year-$month-$j")); + // 小于今天的日期样式 + if ($someDay <= $now) { + // 当天日期样式 tdc = todayColor + if ($someDay == $now) { + // 当天签到过的 + if (in_array($j, $signDays)) { + $str .= '
  • ' . $j . '
  • '; + } else { + $str .= '
  • ' . $j . '
  • '; + } + } else { + // 签到过的日期样式 current bfc = beforeColor , fw = font-weight + if (in_array($j, $signDays)) { + $str .= '
  • ' . $j . '
  • '; + } else { + $str .= '
  • ' . $j . '
  • '; + } + } + } else { + $str .= '
  • ' . $j . '
  • '; + } + } + return $str; + } + /** + * 获取当月签到的天数,与 $this->showDays() 配合使用 + * @return 当月签到日期 array(1,2,3,4,5,12,13) + */ + public function getMonthSign() + { + $time = time(); + $year = date('Y', $time); + $month = date('m', $time); + $day = date("t", strtotime("$year-$month")); + $start_stime = strtotime("$year-$month-1 0:0:0") - 1; + $end_stime = strtotime("$year-$month-$day 23:59:59") + 1; + $list = Db::name('user_sign')->where("uid = {$this->uid} and stime > $start_stime and stime < $end_stime")->order('stime asc')->column('stime'); + //if(is_array($list)){ + foreach ($list as $key => $value) { + $list[$key] = date('j', $value); + } + //} + //return $list; + return json_encode($list); + } + +} diff --git a/app/index/controller/User.php b/app/index/controller/User.php new file mode 100644 index 0000000..403e289 --- /dev/null +++ b/app/index/controller/User.php @@ -0,0 +1,198 @@ + ['except' => ['home'] ], + ]; + + //用户中心 + public function index() + { + //$this->isLogin(); + $user['user_id'] = session::get('user_id'); + $username = session::get('user_name'); + + return view(); + } + //文章管理 + public function post() + { + //发表的帖子 + $user['user_id'] = session::get('user_id'); + $username = session::get('user_name'); + + $article = Article::withCount('comments')->where('user_id',$user['user_id'])->order('update_time','desc')->paginate([ + 'list_rows'=>10, + 'page', + 'path' => 'post', + 'fragment' => 'index', + 'var_page' => 'page', + ]); + $page = $article->render(); + View::assign(['article'=>$article,'page'=>$page]); + + + //收藏的帖子 + $collect = Collection::with('article')->where('user_id',$user['user_id'])->order('create_time','desc')->paginate(10); + + $count =$collect->total(); + View::assign(['collect'=>$collect,'count'=>$count]); + + return View::fetch(); + } + + //取消文章收藏 + public function colltDel() + { + $collt = Collection::where('article_id',input('id'))->where('user_id',session::get('user_id'))->find(); + $result = $collt->delete(); + if($result){ + $this->success('取消成功'); + } else { + $this->error('取消失败了'); + } + } + + //用户设置-我的资料 + public function set() + { + if(Request::isAjax()){ + $data = Request::param(); + $validate = new \app\common\validate\User(); + $result = $validate->scene('Set')->check($data); + if(!$result){ + $this->error($validate->getError()); + } else { + $user = new \app\common\model\User(); + $result = $user->setNew($data); + if($result==1){ + return ['code'=>1,'msg'=>'资料更新成功','url'=>'/index/user/set']; + } else { + $this->error($result); + } + } + } + return View::fetch(); + } + + //更换头像 + public function uploadHeadImg() + { + $file = request()->file('file'); + try { + validate(['image'=>'filesize:2048|fileExt:jpg,png,gif|image:200,200,jpg']) + ->check(array($file)); + $savename = \think\facade\Filesystem::disk('public')->putFile('head_pic',$file); + } catch (think\exception\ValidateException $e) { + echo $e->getMessage(); + } + $upload = Config::get('filesystem.disks.public.url'); + if($savename){ + //$name = $file->hashName(); + $name_path =str_replace('\\',"/",$upload.'/'.$savename); + //$image = \think\Image::open("uploads/$name_path"); + //$image->thumb(168, 168)->save("uploads/$name_path"); + + //查出当前用户并把得到的用户头像更新 + $userId = Session::get('user_id'); + $result = Db::name('user') + ->where('id',$userId) + ->update(['user_img'=>$name_path]); + + if($result) { + $res = ['status'=>0,'msg'=>'头像更新成功']; + } else { + $res = ['status'=>1,'msg'=>'头像更新失败']; + } + }else{ + $res = ['status'=>1,'msg'=>'上传错误']; + } + return json($res); + } + + + public function message() + { + return view(); + } + + //个人页 + public function home() + { + $userID = input('id'); + Session::get('user_id'); + //用户 + $u = Db::name('user')->field('name,nickname,city,sex,sign,user_img,point,create_time')->find($userID ?: Session::get('user_id')); + //用户发贴 + $arts = Db::name('user')->alias('u')->join('article a','u.id = a.user_id')->field('u.id,a.id,a.title,a.pv,a.is_hot,a.create_time')->where('a.user_id',input('id') ?: Session::get('user_id'))->select(); + //用户回答 + $reys = Db::name('comment')->alias('c')->join('article a','c.article_id = a.id')->field('a.id,a.title,c.content,c.create_time')->where('c.user_id',input('id') ?: Session::get('user_id'))->select(); + + View::assign('u',$u); + View::assign('arts',$arts); + View::assign('reys',$reys); + return View::fetch(); + } + + + public function layout() + { + return View::fetch(); + } + + + //邮箱激活 + public function activate() + { + $this->isLogin(); + $user['user_id'] = session::get('user_id'); + $user = UserModel::find($user['user_id']); + $this->assign('user',$user); + return view(); + } + + //修改密码 + public function setpass() + { + if(Request::isAjax()){ + $data = Request::param(); + $validate = new \app\common\validate\User(); + $res = $validate->scene('setPass')->check($data); + if(!$res){ + return $this->error($validate->getError()); + } + $user = new \app\common\model\User(); + $result = $user->setpass($data); + if($result == 1) { + Session::clear(); + return $this->success('密码修改成功 请登录', '/index/user/login'); + } else { + return $this->error($result); + } + } + } + + //退出账户 + public function logout() + { + Session::clear(); + return json(array('code' => 200, 'msg' => '退出成功')); + } + +} \ No newline at end of file diff --git a/app/index/middleware.php b/app/index/middleware.php new file mode 100644 index 0000000..49e7ff0 --- /dev/null +++ b/app/index/middleware.php @@ -0,0 +1,7 @@ + \app\middleware\logedCheck::class, +]; \ No newline at end of file diff --git a/app/install/common.php b/app/install/common.php new file mode 100644 index 0000000..159a191 --- /dev/null +++ b/app/install/common.php @@ -0,0 +1,153 @@ + +// +---------------------------------------------------------------------- +// 检测环境是否支持可写 +//define('IS_WRITE', true); + +use Think\Request; +use think\facade\Session; +use think\facade\Config; +use think\facade\Env; + +/** + * 写入配置文件 + * @param array $config 配置信息 + * @return string + */ +function write_config($config) +{ + if (is_array($config)) { + //读取配置内容 + $conf = file_get_contents(Env::get('module_path') . 'data/database.tpl'); + //替换配置项 + foreach ($config as $name => $value) { + $conf = str_replace("[{$name}]", $value, $conf); + } + //写入应用配置文件 + if (file_put_contents(Env::get('config_path') . 'database.php', $conf)) { + show_msg('配置文件写入成功!'); + } else { + show_msg('配置文件写入失败!', 'error'); + Session::set('error', true, 'install'); + } + return true; + } +} + +/** + * 创建数据表 + * @param resource $db 数据库连接资源 + * @param string $prefix + */ +function create_tables($db, $prefix = '') { + // 导入sql数据并创建表 + $sql = file_get_contents('../app/install/data/taoler.sql'); + //替换表前缀 + $orginal = 'tao_'; + ($orginal==$prefix) ? true : $sql = str_replace(" `{$orginal}", " `{$prefix}", $sql); + $sql_array=preg_split("/;[\r\n]+/", $sql); + //开始安装 + //var_dump($sql_array); + foreach ($sql_array as $k => $v) { + if (!empty($v)) { + //$v=$v.';'; + if (substr($v, 0, 12) == 'CREATE TABLE') { + //echo 'ddddddddddddddddd'; + $name = preg_replace("/^CREATE TABLE `(\w+)` .*/s", "\\1", $v); + $msg = "创建数据表{$name}"; + if (false !== $db->query($v)) { + //show_msg($msg . '...成功!'); + //echo '成功'; + } else { + echo '失败'; + + //show_msg($msg . '...失败!', 'error'); + //Session::set('error', true, 'install'); + } + } else { + $db->query($v); + } + //echo substr($v, 0, 12).'--'; + // $db->query($v); + } + } +} + +function register_administrator($db, $prefix, $admin) { + //show_msg('开始注册创始人帐号...'); + $password = password_hash($admin['password'], PASSWORD_DEFAULT); + $sql="INSERT INTO {$prefix}user(group_id,username,password,email,create_time) VALUE(1,'{$admin['username']}','{$password}','{$admin['email']}','{time()}')"; + //执行sql + $db->execute($sql); + //show_msg('创始人帐号注册完成!'); +} + +/** + * 更新数据表 + * @param resource $db 数据库连接资源 + * @param string $prefix + * @author lyq <605415184@qq.com> + */ +function update_tables($db, $prefix = '') { + //读取SQL文件 + $sql = file_get_contents(APP_PATH . 'install/data/update.sql'); + $sql = str_replace("\r", "\n", $sql); + $sql = explode(";\n", $sql); + + //替换表前缀 + $sql = str_replace(" `tao_", " `{$prefix}", $sql); + + //开始安装 + show_msg('开始升级数据库...'); + foreach ($sql as $value) { + $value = trim($value); + if (empty($value)) { + continue; + } + if (substr($value, 0, 12) == 'CREATE TABLE') { + $name = preg_replace("/^CREATE TABLE `(\w+)` .*/s", "\\1", $value); + $msg = "创建数据表{$name}"; + if (false !== $db->execute($value)) { + show_msg($msg . '...成功!'); + } else { + show_msg($msg . '...失败!', 'error'); + Session::set('error', true, 'install'); + } + } else { + if (substr($value, 0, 8) == 'UPDATE `') { + $name = preg_replace("/^UPDATE `(\w+)` .*/s", "\\1", $value); + $msg = "更新数据表{$name}"; + } else if (substr($value, 0, 11) == 'ALTER TABLE') { + $name = preg_replace("/^ALTER TABLE `(\w+)` .*/s", "\\1", $value); + $msg = "修改数据表{$name}"; + } else if (substr($value, 0, 11) == 'INSERT INTO') { + $name = preg_replace("/^INSERT INTO `(\w+)` .*/s", "\\1", $value); + $msg = "写入数据表{$name}"; + } + if (($db->execute($value)) !== false) { + show_msg($msg . '...成功!'); + } else { + show_msg($msg . '...失败!', 'error'); + Session::set('error', true, 'install'); + } + } + } +} + +/** + * 及时显示提示信息 + * @param string $msg 提示信息 + * @param string $class + * @param string $jump + */ +function show_msg($msg, $class = '',$jump='') { + echo ""; + flush(); + ob_flush(); +} \ No newline at end of file diff --git a/app/install/config/database.php b/app/install/config/database.php new file mode 100644 index 0000000..fcf0b7c --- /dev/null +++ b/app/install/config/database.php @@ -0,0 +1,26 @@ + [ + 'install' => [ + // 数据库类型 + 'type' => 'mysql', + // 服务器地址 + 'hostname' => '127.0.0.1', + // 数据库名 + 'database' => '', + // 用户名 + 'username' => 'root', + // 密码 + 'password' => '', + // 端口 + 'hostport' => '3306', + // 数据库连接参数 + 'params' => [], + // 数据库编码默认采用utf8 + 'charset' => 'utf8', + // 数据库表前缀 + 'prefix' => 'tao_', + ], + ], +]; \ No newline at end of file diff --git a/app/install/controller/index.php b/app/install/controller/index.php new file mode 100644 index 0000000..f0e0963 --- /dev/null +++ b/app/install/controller/index.php @@ -0,0 +1,207 @@ +alert('已经成功安装了TaoLer社区系统,安装系统已锁定。如需重新安装,请删除根目录下的install.lock文件')"; + die(); + } + } + + //安装首页 + public function index() + { + Session::set('agre',true); + return View::fetch('agreement'); + } + + //test + public function test() + { + if(Session::pull('agre')){ + Session::set('cre',true); + return View::fetch('test'); + } else { + return 'error,请返回安装!'; + } + } + + //test + public function create(){ + if(Session::pull('cre')){ + Session::set('suc',true); + return View::fetch('create'); + } else { + return 'error,请返回安装!'; + } + } + + // 安装成功页面 + public function complete(){ + + if(Session::has('suc') != 'true'){ + return 'error,请返回安装!'; + } + + // 判断是否为post + if ($_SERVER['REQUEST_METHOD'] == 'POST') { + + $data = $_POST; + //var_dump($data); + if (!preg_match("/^[a-zA-Z]{1}([0-9a-zA-Z]|[._]){4,19}$/", $data['admin_user'])) { + die(""); + } + + if (!preg_match("/^[\@A-Za-z0-9\!\#\$\%\^\&\*\.\~]{6,22}$/", $data['admin_pass'])) { + die(""); + } + if ($data['admin_pass'] != $data['admin_pass2']) { + die(""); + + } + $_SESSION['adminusername'] = $data['admin_user']; + // 生成管理员 + $username = $data['admin_user']; + $create_time = time(); + $salt = substr(md5($create_time),-6); + $pass = md5(substr_replace(md5($data['admin_pass']),$salt,0,6)); + + + if ($data['DB_TYPE'] == 'mysql') { + + //数据库 + $db_s = << [ + 'install' => [ + // 数据库类型 + 'type' => 'mysql', + // 服务器地址 + 'hostname' => '{$data['DB_HOST']}', + // 数据库名 + 'database' => '{$data['DB_NAME']}', + // 用户名 + 'username' => '{$data['DB_USER']}', + // 密码 + 'password' => '{$data['DB_PWD']}', + // 端口 + 'hostport' => '{$data['DB_PORT']}', + // 数据库连接参数 + 'params' => [], + // 数据库编码默认采用utf8 + 'charset' => 'utf8', + // 数据库表前缀 + 'prefix' => '{$data['DB_PREFIX']}', + ], + ], +]; +php; + // 创建数据库链接配置文件 + + $fp = fopen('../app/install/config/database.php', "r+b"); + fputs($fp, $db_s); + fclose($fp); + + + $db = Db::connect('install'); + //var_dump($db); + $sql = 'CREATE DATABASE IF NOT EXISTS '.$data['DB_NAME'].' DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci'; + //$db->execute($sql); + + //创建数据表 + create_tables($db, $data['DB_PREFIX']); + + //管理员 + $table_admin = $data['DB_PREFIX'] . "admin"; + $table_user = $data['DB_PREFIX'] . "user"; + $sql_admin = "UPDATE $table_admin SET username = '{$username}', password = '{$pass}', status=1,create_time = '{$create_time}' WHERE id = 1"; + $sql_user = "UPDATE $table_user SET name = '{$username}', password = '{$pass}', status=1, auth=1, create_time = '{$create_time}' WHERE id = 1"; + $db->execute($sql_admin); + $db->execute($sql_user); + + Db::getConnection()->close(); + } + + $db_str = << [], + // 自动写入时间戳字段 + // true为自动识别类型 false关闭 + // 字符串则明确指定时间字段类型 支持 int timestamp datetime date + 'auto_timestamp' => true, + // 时间字段取出后的默认时间格式 + 'datetime_format' => 'Y-m-d H:i:s', + // 数据库连接配置信息 + 'connections' => [ + 'mysql' => [ + // 数据库类型 + 'type' => 'mysql', + // 服务器地址 + 'hostname' => '{$data['DB_HOST']}', + // 数据库名 + 'database' => '{$data['DB_NAME']}', + // 用户名 + 'username' => '{$data['DB_USER']}', + // 密码 + 'password' => '{$data['DB_PWD']}', + // 端口 + 'hostport' => '{$data['DB_PORT']}', + // 数据库连接参数 + 'params' => [], + // 数据库编码默认采用utf8 + 'charset' => 'utf8', + // 数据库表前缀 + 'prefix' => '{$data['DB_PREFIX']}', + // 数据库部署方式:0 集中式(单一服务器),1 分布式(主从服务器) + 'deploy' => 0, + // 数据库读写是否分离 主从式有效 + 'rw_separate' => false, + // 读写分离后 主服务器数量 + 'master_num' => 1, + // 指定从服务器序号 + 'slave_no' => '', + // 是否严格检查字段是否存在 + 'fields_strict' => true, + // 是否需要断线重连 + 'break_reconnect' => false, + // 监听SQL + 'trigger_sql' => true, + // 开启字段缓存 + 'fields_cache' => false, + // 字段缓存路径 + 'schema_cache_path' => app()->getRuntimePath() . 'schema' . DIRECTORY_SEPARATOR, + ], + ], +]; +php; + // 创建数据库链接配置文件 + + $fp = fopen('../config/database.php', "r+b"); + fwrite($fp, $db_str); + fclose($fp); + + file_put_contents('../install.lock', 'lock'); + Session::clear(); + return View::fetch('complete'); + } else { + return '安装失败'; + } + + } +} \ No newline at end of file diff --git a/app/install/data/taoler.sql b/app/install/data/taoler.sql new file mode 100644 index 0000000..ece0c38 --- /dev/null +++ b/app/install/data/taoler.sql @@ -0,0 +1,557 @@ +/* +Navicat MySQL Data Transfer + +Source Server : TP +Source Server Version : 50727 +Source Host : 127.0.0.1:3306 +Source Database : taoler + +Target Server Type : MYSQL +Target Server Version : 50727 +File Encoding : 65001 + +Date: 2020-01-01 12:54:45 +*/ + +SET FOREIGN_KEY_CHECKS=0; + +-- ---------------------------- +-- Table structure for tao_admin +-- ---------------------------- +DROP TABLE IF EXISTS `tao_admin`; +CREATE TABLE `tao_admin` ( + `id` int(10) unsigned NOT NULL AUTO_INCREMENT, + `username` varchar(20) NOT NULL COMMENT '管理员账户', + `nickname` varchar(20) NOT NULL COMMENT '昵称', + `password` varchar(32) NOT NULL COMMENT '密码', + `email` varchar(30) NOT NULL COMMENT '邮箱', + `mobile` varchar(11) NOT NULL COMMENT '手机号', + `sex` tinyint(1) NOT NULL DEFAULT '0' COMMENT '0女1男', + `status` enum('1','0') NOT NULL DEFAULT '0' COMMENT '1启用0禁用', + `auth_group_id` smallint(1) NOT NULL DEFAULT '0' COMMENT '1超级管理员0是普通管理员', + `remarks` varchar(255) NOT NULL COMMENT '备注', + `last_login_ip` int(4) unsigned NOT NULL COMMENT '最后登录IP', + `last_login_time` int(11) unsigned zerofill NOT NULL COMMENT '最后登录时间', + `create_time` int(11) unsigned zerofill NOT NULL COMMENT '创建时间', + `update_time` int(11) unsigned zerofill NOT NULL COMMENT '更新时间', + `delete_time` int(11) unsigned zerofill NOT NULL COMMENT '软删除', + PRIMARY KEY (`id`) +) ENGINE=MyISAM AUTO_INCREMENT=9 DEFAULT CHARSET=utf8; + +-- ---------------------------- +-- Records of tao_admin +-- ---------------------------- +INSERT INTO `tao_admin` VALUES ('1', 'admin', '管理员', 'def94a4e0b210f2fac7df0fb279d09d3', 'adminqq@qq.com', '13511112222', '1', '1', '1', '2019.12.31,明天新年发布新版本!', '1270', '01577852879', '01577258664', '01577801064', '00000000000'); +INSERT INTO `tao_admin` VALUES ('2', 'test', '测试员', '3dbfa76bd34a2a0274f5d52f5529ccb3', 'tao@qq.com', '13567891236', '0', '0', '2', '', '1270', '01577514365', '01555892325', '01577847765', '00000000000'); + +-- ---------------------------- +-- Table structure for tao_article +-- ---------------------------- +DROP TABLE IF EXISTS `tao_article`; +CREATE TABLE `tao_article` ( + `id` int(11) NOT NULL AUTO_INCREMENT COMMENT '用户ID', + `title` varchar(50) NOT NULL COMMENT '标题', + `content` text NOT NULL COMMENT '内容', + `status` enum('0','1') NOT NULL DEFAULT '1' COMMENT '状态1显示0隐藏', + `cate_id` int(11) NOT NULL COMMENT '分类id', + `user_id` int(11) NOT NULL COMMENT '用户id', + `is_top` enum('0','1') NOT NULL DEFAULT '0' COMMENT '置顶1否0', + `is_hot` enum('0','1') NOT NULL DEFAULT '0' COMMENT '推荐1否0', + `is_reply` enum('1','0') NOT NULL DEFAULT '1' COMMENT '0禁评1可评', + `pv` int(11) NOT NULL COMMENT '浏览量', + `jie` enum('1','0') NOT NULL DEFAULT '0' COMMENT '0未结1已结', + `create_time` int(11) NOT NULL COMMENT '创建时间', + `update_time` int(11) NOT NULL COMMENT '更新时间', + `delete_time` int(11) NOT NULL COMMENT '删除时间', + PRIMARY KEY (`id`) +) ENGINE=MyISAM AUTO_INCREMENT=25 DEFAULT CHARSET=utf8; + +-- ---------------------------- +-- Records of tao_article +-- ---------------------------- +INSERT INTO `tao_article` VALUES ('1', '哪里有好用专一的社区论坛?', '最近有所需要,在网上搜了一下,想找好用现成的社区性质的论坛,本来想搭建一个小区可维护的论坛。你们有推荐的吗?\r\n偶尔进到layui的Fly社区,感觉这个还挺好看的,搜了一下,也有几个类似的项目,得到的结果是,有不错的,可惜不维护了,有维护的,但不是自己想要的风格。\r\n我看的项目框架大多PHP实现的,要不咱也来一个。', '1', '6', '1', '0', '0', '1', '27', '0', '1546698110', '1577773844', '0'); +INSERT INTO `tao_article` VALUES ('2', 'php是世界最好的语言吗?', '[quote]\r\n PHP是世界最好的语言\r\n[/quote]\r\n您是怎么认为的呢?据说现在PHP7性能蛮好的,对于WEB开发很有效率,我是学C的,PHP几年前有过了解,在ASP时代,做过电影网站站长,很ASP后来很快就不用了。\r\n你认为PHP怎么样呢?', '1', '1', '1', '0', '0', '1', '77', '0', '1546699158', '1577773832', '0'); +INSERT INTO `tao_article` VALUES ('3', 'php压缩文件解压Unzip类', '[quote]\r\n 解压代码\r\n[/quote]\r\n[pre]\r\ncreate_dirs($dest_dir);\r\n\r\n // zip包中的 每个 文件\r\n while ($zip_entry = zip_read($zip))\r\n {\r\n\r\n // 现在我们要在目标目录中创建目录\r\n \r\n // 如果文件不在根目录中\r\n $pos_last_slash = strrpos(zip_entry_name($zip_entry), \"/\"); // strrpos()字符串在另一字符串中最后一次出现的位置。\r\n if ($pos_last_slash !== false)\r\n {\r\n // 创建保存zip条目的目录(结尾加“/”)substr()可在字符串中抽取从 start 下标开始的指定数目的字符。\r\n $this->create_dirs($dest_dir.substr(zip_entry_name($zip_entry), 0, $pos_last_slash+1));\r\n \r\n }\r\n\r\n // Open the entry\r\n if (zip_entry_open($zip,$zip_entry,\"r\"))\r\n {\r\n \r\n // 要保存在磁盘上的文件名\r\n $file_name = $dest_dir.zip_entry_name($zip_entry);\r\n\r\n // 检查是否应覆盖文件\r\n if ($overwrite === true || $overwrite === false && !is_file($file_name))\r\n {\r\n // 获取zip条目的内容\r\n $fstream = zip_entry_read($zip_entry, zip_entry_filesize($zip_entry));\r\n\r\n file_put_contents($file_name, $fstream );\r\n // Set the rights\r\n chmod($file_name, 0777);\r\n echo \"save: \".$file_name.\"
    \";\r\n }\r\n \r\n // Close the entry\r\n zip_entry_close($zip_entry);\r\n } \r\n }\r\n // Close the zip-file\r\n zip_close($zip);\r\n }\r\n }else{\r\n return false;\r\n }\r\n \r\n return true;\r\n}\r\n\r\n/**\r\n* This function creates recursive directories if it doesn\'t already exist\r\n*\r\n* @param String The path that should be created\r\n* \r\n* @return void\r\n*/\r\npublic function create_dirs($path)\r\n{\r\n if (!is_dir($path))\r\n {\r\n $directory_path = \"\";\r\n $directories = explode(\"/\",$path);\r\n array_pop($directories);\r\n \r\n foreach($directories as $directory)\r\n {\r\n $directory_path .= $directory.\"/\";\r\n if (!is_dir($directory_path))\r\n {\r\n mkdir($directory_path);\r\n chmod($directory_path, 0777);\r\n }\r\n }\r\n }\r\n}\r\n\r\n\r\n}\r\n[/pre]\r\n\r\n[quote]\r\n 使用实例\r\n[/quote]\r\n[pre]\r\nExtract C:/zipfiletest/zip-file.zip to C:/zipfiletest/zip-file/ and overwrites existing files\r\nunzip(\"C:/zipfiletest/zip-file.zip\", false, true, true);\r\n\r\nExtract C:/zipfiletest/zip-file.zip to C:/another_map/zipfiletest/ and doesn\'t overwrite existing files. NOTE: It doesn\'t create a map with the zip-file-name!\r\nunzip(\"C:/zipfiletest/zip-file.zip\", \"C:/another_map/zipfiletest/\", true, false);\r\n[/pre]\r\n\r\n\r\n', '1', '2', '1', '0', '1', '1', '218', '0', '1546698192', '1577763213', '0'); +INSERT INTO `tao_article` VALUES ('4', 'Fly Template 社区模版', '[quote]\r\n 你们认为layui官方Fly Template 社区模版怎么样?\r\n[/quote]\r\nimg[https://cdn.layui.com/upload/2017_11/168_1512035128058_80242.jpg] \r\n你喜欢吗?\r\n很多人都说比较喜欢,我个人认为不错的,这个板子非常喜欢,我看到有一些人做了开发,可惜的是都没有很好的维护,有的漏洞比较多,不完善,很美好的一个板子,但没有长久 的更新,非常的可惜。\r\n如果用别人的不好用,那我就做一个出来吧。喜欢的人多关注,适当时候放出来大家一起用。\r\n关于详情页的内容解析\r\n该模板自带一个特定语法的编辑器,当你把内容存储到数据库后,在页面读取后浏览,会发现诸如“表情、代码、图片”等无法解析,这是因为需要对该内容进行一次转义,通常来说这是在服务端完成的,但鉴于简单化,你还可以直接在前端去解析,在模板的detail.html中,我们已经把相关的代码写好了,你只需打开注释即可(在代码的最下面)。当然,如果觉得编辑器无法满足你的需求,你也可以把该编辑器换成别的HTML编辑器或MarkDown编辑器。', '1', '1', '1', '0', '0', '1', '12', '0', '1546698225', '1577772362', '0'); +INSERT INTO `tao_article` VALUES ('5', '中国区域性网上社区的舆情研究', '[quote]\r\n 中国区域性网上社区的舆情研究--基于《济南部落论坛》和《福州家园网》的实证分析\r\n冯立梅\r\n福建师范大学\r\n[/quote]\r\n网上论坛是网上社区最主要的组成部分。继全国性综合网上论坛,如天涯论坛、强国论坛的火爆之后,区域性的网上论坛,也开始迅速成长。\r\n如今每个城市,甚至有的县,都已经拥有了自己的网上论坛。泡本地的网上论坛,成为上网一族的习惯。处在社会转型时期的中国,各种矛盾问题比以往更加突出。而越来越多的社会热点事件,是萌芽于各地方性的网上论坛。网络舆情,是网上论坛信息的体现。因此,研究中国区域性网上社区的舆情信息就显得十分必要。\r\n\r\n本文力图从舆情的第一线出发,探讨中国区域性网上社区目前发展的态势,以及网络舆情的状况。并具体到几个网上论坛,通过综合研究和个案观察的方法,来概括其真实的表征,以此为据进行相关的理论分析。\r\n本着根据调查成果来下结论的思路,经过研究发现,中国区域性网上论坛能够一定程度的反映网络舆情,但是多停留在初级的讨论状态,情绪抒发后真正的问题并没有得到实质的解决。只有个别事件由于舆论压力而被重点处理。网上论坛具有很好的社会降压阀的作用,但对于网络民主的促进,远不及微博等新的媒体形式。 ', '1', '3', '2', '0', '1', '1', '23', '0', '1556798251', '1577765263', '0'); +INSERT INTO `tao_article` VALUES ('6', 'PHP是什么', '[quote]\r\n PHP原始为Personal Home Page的缩写,已经正式更名为 \"PHP: Hypertext Preprocessor\"。\r\n[/quote]\r\n\r\n自20世纪90年代国内互联网开始发展到现在,互联网信息几乎覆盖了我们日常活动所有知识范畴,并逐渐成为我们生活、学习、工作中必不可少的一部分。据统计,从2003 年开始,我国的网页规模基本保持了翻番的增长速度,并且呈上升趋势。PHP 语言作为当今最热门的网站程序开发语言,它具有成本低、速度快、可移植性好、 内置丰富的函数库等优点,因此被越来越多的企业应用于网站开发中。但随着互联网的不断更新换代,PHP语言也出现了不少问题。 [1] \r\n根据动态网站要求,PHP语言作为一种语言程序,其专用性逐渐在应用过程中显现,其技术水平的优劣与否将直接影响网站的运行效率。其特点是具有公开的源代码, 在程序设计上与通用型语言,如C语言相似性较高,因此在操作过程中简单易懂,可操作性强。同时,PHP语言具有较高的数据传送处理水平和输出水平,可以广泛应用在Windows系统及各类Web服务器中。如果数据量较大,PHP语言还可以拓宽链接面,与各种数据库相连,缓解数据存储、检索及维护压力。随着技术的发展,PHP 语言搜索引擎还可以量体裁衣,实行个性化服务,如根据客户的喜好进行分类收集储存,极大提高了数据运行效率。', '1', '3', '1', '0', '0', '1', '28', '0', '1546748103', '1577772531', '0'); +INSERT INTO `tao_article` VALUES ('7', 'thinkphp Db类和模型的正确使用姿势', '[quote]\r\n 来源:流年 ThinkPHP官方博客\r\n[/quote]\r\n\r\n2018 年 10 月 23 日 发布\r\n发现很多开发者在使用ThinkPHP5.*的时候不明白Db和模型的正确使用姿势,尤其是在5.1版本里面,如果你没有使用下面的正确姿势,有很大可能性会踩坑。\r\n\r\nDb的正确姿势\r\n下面是官方推荐的Db类用法(也就是每次都是静态方法调用)\r\n\r\n[pre]\r\n// 查询单个数据\r\nDb::name(\'user\')->where(\'id\', 1)->find();\r\n// 查询多个数据\r\nDb::name(\'user\')->where(\'id\', \'>\', 1)->select();\r\n// 写入新的数据\r\nDb::name(\'user\')->insert([\'name\' => \'张三\']);\r\n// 更新数据\r\nDb::name(\'user\')->where(\'id\', 1)->update([\'name\' => \'李四\']);\r\n// 删除数据\r\nDb::name(\'user\')->delete(1);\r\n[/pre]\r\n\r\n很多开发者为了简化代码,喜欢使用下面的代码。\r\n\r\n[quote]\r\n 但是,永远不要在5.1中使用下面的代码!\r\n[/quote]\r\n\r\n[pre]\r\n// 错误的用法\r\n\r\n$user = Db::name(\'user\');\r\n// 查询单个数据\r\n$user->where(\'id\', 1)->find();\r\n// 查询多个数据\r\n$user->where(\'id\', \'>\', 1)->select();\r\n// 写入新的数据\r\n$user->insert([\'name\' => \'张三\']);\r\n// 更新数据\r\n$user->update([\'name\' => \'李四\']);\r\n// 删除数据\r\n$user->delete(1);\r\n[/pre]\r\n\r\n[quote]\r\n 即便是使用助手函数仍然不建议!\r\n[/quote]\r\n\r\n[pre]\r\n// 仍然是错误的用法\r\n\r\n// 查询单个数据\r\ndb(\'user\')->where(\'id\', 1)->find();\r\n// 查询多个数据\r\ndb(\'user\')->where(\'id\', \'>\', 1)->select();\r\n// 写入新的数据\r\ndb(\'user\')->insert([\'name\' => \'张三\']);\r\n// 更新数据\r\ndb(\'user\')->update([\'name\' => \'李四\']);\r\n// 删除数据\r\ndb(\'user\')->delete(1);\r\n[/pre]\r\n\r\n很多开发者可能会奇怪,为什么是错误的用法呢?我使用的结果明明都没问题啊?这只是说明你还没踩坑罢了。\r\n\r\n真正的原因,是5.1版本每次查询后是不会清空前次(5.0则会每次清空)的查询条件的,所以下面的用法是有效的。\r\n\r\n[pre]\r\n$user = Db::name(\'user\');\r\n// 查询分数大于80分的用户总数\r\n$count = $user->where(\'score\', \'>\', 80)->count();\r\n// 查询分数大于80分的用户数据\r\n$user->select();\r\n[/pre]\r\n\r\n看到这里你应该明白了,当你使用的是同一个数据库查询对象实例的话,查询条件是始终会保留的(也就是会导致后面的查询条件错乱),而如果你使用助手函数或者手动实例化后多次操作都是相同的对象实例,除非你像下面一样手动清除。\r\n\r\n[pre]\r\n$user = Db::name(\'user\');\r\n// 查询分数大于80分的用户总数\r\n$count = $user->where(\'score\', \'>\', 80)->count();\r\n// 清除查询条件(但不包括排序或者字段等信息)\r\n$user->removeOption(\'where\');\r\n// 查询所有用户数据 并按分数倒序排列 \r\n$user->order(\'score\', \'desc\')->select();\r\n// 清除所有查询条件\r\n$user->removeOption();\r\n// 查询分数等于100的用户\r\n$user->where(\'score\', 100)->select();\r\n[/pre]\r\n\r\n[quote]\r\n 最佳实践:每次使用全新的Db静态查询\r\n[/quote]\r\n\r\n模型的正确姿势\r\n模型的设计其实和Db一样,基本上不需要手动进行实例化。\r\n\r\n[pre]\r\n// 写入新的数据\r\n$user = User::create([\'name\' => \'张三\']);\r\n// 更新数据\r\n$user->update([\'name\' => \'李四\']);\r\n\r\n// 查询单个数据\r\n$user = User::get(1);\r\n// 删除当前模型数据\r\n$user->delete();\r\n[/pre]\r\n\r\n上面的代码中,我们没有使用任何的实例化代码,都是使用静态方法操作。模型的实例化工作是由系统在查询或者写入数据的时候自动完成的。如果你自己手动实例化模型的话,会造成模型的重复实例化开销。\r\n\r\n不建议的用法:\r\n\r\n[pre]\r\n$user = new User;\r\n// 写入新的数据\r\n$user->name = \'张三\';\r\n$user->save();\r\n$user = new User;\r\n$user->find(1);\r\necho $user->name;\r\n[/pre]\r\n\r\n建议用法:\r\n\r\n[pre]\r\n// 写入新的数据\r\nUser::create([\'name\' => \'张三\']);\r\n$user = User::get(1);\r\necho $user->name;\r\n[/pre]\r\n\r\n所以,请不要手动实例化模型,也不建议使用model助手函数。\r\n\r\n[quote]\r\n 最佳实践:模型查询和创建都使用静态方法\r\n[/quote]\r\n\r\n现在,你明白Db类和模型使用的正确姿势了么?', '1', '2', '3', '0', '1', '1', '29', '0', '1546776559', '1577766682', '0'); +INSERT INTO `tao_article` VALUES ('8', 'thinkphp更新数据表的方法', '[quote]\r\n tp更新数据表的方法\r\n[/quote]\r\n[pre]\r\n/**\r\n * 更新数据表\r\n * @param resource $db 数据库连接资源\r\n * @param string $prefix\r\n * @author lyq <605415184@qq.com>\r\n */\r\nfunction update_tables($db, $prefix = \'\') {\r\n //读取SQL文件\r\n $sql = file_get_contents(APP_PATH . \'install/data/update.sql\');\r\n $sql = str_replace(\"\\r\", \"\\n\", $sql);\r\n $sql = explode(\";\\n\", $sql);\r\n\r\n //替换表前缀\r\n $sql = str_replace(\" `tao_\", \" `{$prefix}\", $sql);\r\n\r\n //开始安装\r\n show_msg(\'开始升级数据库...\');\r\n foreach ($sql as $value) {\r\n $value = trim($value);\r\n if (empty($value)) {\r\n continue;\r\n }\r\n if (substr($value, 0, 12) == \'CREATE TABLE\') {\r\n $name = preg_replace(\"/^CREATE TABLE `(\\w+)` .*/s\", \"\\\\1\", $value);\r\n $msg = \"创建数据表{$name}\";\r\n if (false !== $db->execute($value)) {\r\n show_msg($msg . \'...成功!\');\r\n } else {\r\n show_msg($msg . \'...失败!\', \'error\');\r\n Session::set(\'error\', true, \'install\');\r\n }\r\n } else {\r\n if (substr($value, 0, 8) == \'UPDATE `\') {\r\n $name = preg_replace(\"/^UPDATE `(\\w+)` .*/s\", \"\\\\1\", $value);\r\n $msg = \"更新数据表{$name}\";\r\n } else if (substr($value, 0, 11) == \'ALTER TABLE\') {\r\n $name = preg_replace(\"/^ALTER TABLE `(\\w+)` .*/s\", \"\\\\1\", $value);\r\n $msg = \"修改数据表{$name}\";\r\n } else if (substr($value, 0, 11) == \'INSERT INTO\') {\r\n $name = preg_replace(\"/^INSERT INTO `(\\w+)` .*/s\", \"\\\\1\", $value);\r\n $msg = \"写入数据表{$name}\";\r\n }\r\n if (($db->execute($value)) !== false) {\r\n show_msg($msg . \'...成功!\');\r\n } else {\r\n show_msg($msg . \'...失败!\', \'error\');\r\n Session::set(\'error\', true, \'install\');\r\n }\r\n }\r\n }\r\n}\r\n[/pre]\r\n', '1', '2', '2', '0', '0', '1', '110', '0', '1546776594', '1577763657', '0'); +INSERT INTO `tao_article` VALUES ('9', '社区为单位组织的区域性社区服务', '作为以社区为单位组织的区域性社区福利服务,社区服务主要表现为以下几个方面特征:()\r\n\r\nA、自助互助性\r\n\r\nB、多元化\r\n\r\nC、服务形式丰富化\r\n\r\nD、广泛性\r\n\r\nE、服务人员专业化\r\n\r\nF、持续发展性', '1', '3', '2', '0', '0', '1', '37', '0', '1546776655', '1577765003', '0'); +INSERT INTO `tao_article` VALUES ('10', '徐州这个小区业主自治攒下24万元家底', '[quote]\r\n 转自腾讯网\r\n[/quote]\r\n2月13日,大年初九,家住军缘新城的蔺女士是春节后第四次在家请客了。\r\n\r\n“以前小区环境不好,不好意思喊亲戚朋友来家里吃饭。现在小区像花园一样,晚上还有喷泉,作为业主感觉很自豪。小区自治这几个月,变化太大了。”\r\n\r\n重建后的小区广场美观又实用\r\nimg[https://inews.gtimg.com/newsapp_bt/0/7699348341/1000] \r\n\r\n13日早上9时许,军缘新城小区广场上很安静,只听见扫帚“唰唰”的扫地声,两名保洁员在打扫卫生,清扫过的地面一尘不染。\r\n\r\n小区业委会主任马照明和财务监督组组长周永才介绍了自从2018年9月10日小区自治以来广场上发生的变化:\r\nimg[https://inews.gtimg.com/newsapp_bt/0/7699348342/1000] \r\n\r\n小区水清路净。\r\n\r\n最大的亮点是春节前花费2305元修好了闲置多年的喷泉,安装上彩色的灯带。春节以来,业主们每天晚上都到广场欣赏彩色喷泉,大人孩子个个欢天喜地。\r\n\r\n\r\n春节前,清理水池里的淤泥,修复喷泉。\r\n\r\n“喷泉水池积攒多年的淤泥我们都清理干净了,七八个人整整干了12天的时间,又花300元钱买了一批观赏鱼放进去。”周永才指着清澈见底的水池说:“天冷,这些鱼懒得动,喜欢躲在石头缝里,等天年暖和了,它们游来游去更漂亮。”\r\n\r\n小区路灯全部更换成LED灯,亮堂又节能。广场上有一盏10米多高的大灯,是6年前有业主捐赠的,只亮了一段时间就坏了,几任物业公司都没人修理过。\r\nimg[https://inews.gtimg.com/newsapp_bt/0/7699348344/1000] \r\n\r\n业委会工作人员和业主齐心协力上阵,安装照明设施。\r\n\r\n这次实行自治后,也请电工维修好了。因为灯杆太高太重,放下和扶起的时候难度都很大,小区20多名男女老少一起过来用绳子把它拽起来。灯亮起来以后,早上锻炼、晚上跳广场舞的业主都很方便。\r\n\r\n广场的绿植看上去也很整齐、富有层次,树木已经修剪好,灌木丛内没有一点杂草和落叶。白玉兰树叶绿油油的,樱花树枝也泛出了生机。\r\n\r\n\r\n为了美化环境,小区内每个向阳的地段都设置了晾晒区\r\n\r\n小区广场不仅美观,还很实用,四周安装了15个高大的晾衣架。阳光好的时候,业主都喜欢到这里晒被子。\r\n\r\n广场的一角,还有一个醒目的展示牌,上面贴着1月11日至2月10日的各项收支明细和工资发放表。大到几百元的灯带,小到2元的刷子,一项项都罗列清楚。\r\n\r\n小区自治之路一波三折\r\n\r\n治理好一个小区,并不比管理好一家企业轻松。军缘新城的自治之路,也经历了一波三折。\r\n\r\n军缘新城于2008年3月上房,至2018年年初,10年间换了6任物业公司,没有一家能够在这个小区顺顺当当干下去。\r\n\r\n“主要是形成了恶性循环。物业服务不好,业主不愿交物业费;物业收不上来费用,服务质量就更差。”周永才说,最差的一年,物业公司只收到了60户业主的物业费。\r\n\r\n亏损最严重的一家物业公司,欠下了9万多元的债务。每一任物业走的时候,小区都是垃圾遍地,物业办公室里甚至连灯泡都被拆走。最后,业主们只能向社区求助,2018年以后,没有物业公司愿意到军缘新城来服务了。\r\n\r\n业主自治成了军缘新城唯一的出路。马照明说,自治并不像想像的那么简单、美好。军缘新城先后有三班热心业主出马实行自治,都想改变小区面貌,也摔了不少跟头。\r\n\r\n第一次自治从2018年2月开始,坚持了5个月,但管理中出现一些问题,物业费迟迟收不上来,只得偃旗息鼓;在社区的组织下,第二次自治很快又开始了,但因为提出的两套方案业主不认可,也没能顺利收取物业费,前后只坚持了26天。\r\n\r\n\r\n业主委员会马照明主任向业主群内发布的就职声明\r\n\r\n两次自治失败,有些人觉得灰心了。这时,曾经担任过业委会成员的马照明,在大家的推选之下站了出来,愿意担心业委会主任。上任之初他就声明:不要任何薪水和奖励,一切工作站在广大业主利益方面出发,监督、督促物业搞好小区物业服务,维护业主利益。\r\n\r\n新的业委会班子共有11名成员,经过商讨,成立了自治办,自治办负责人是热心业主朱兆砥,一名退休老师,也是他带头站出来支持小区自治的。\r\n\r\n\r\n只有物业经理和保安保洁等人员能领工资,他们都是小区业主。\r\n\r\n朱兆砥聘任用了一名物业经理和保安、保洁、电工共10人,只有这11人是拿工资的,其余人全部是义务为小区服务。朱兆砥在内蒙还有一份工作,经常在群里“遥控”指挥,春节回来这几天每天泡在小区里,几乎没有休息过。\r\n\r\n成功秘诀是“财务公开+办实事”\r\n\r\n\r\n每个月公示一次账目\r\n\r\n总结小区自治成功的经验,马照明透露了两个秘诀:一是财务公开,二是给业主办实事。\r\n\r\n作为小区的“财务总监”,周永才说,他们财务小组一共有7名成员,里面有从事会计工作的,有拿到会计师职称的,有干过财务科长的,还有在高校里传授财会知识的教授,这些成员都由热心业主推荐,他挨家挨户上门动员做工作争取来的。\r\n\r\n每个月月底大家坐在一起集体进行财务审核,查看各项收入和支出有无问题,全部同意后由周永才签字,再进行公示。\r\n\r\n接手小区财务后,他们才知道,有些盈利以前的物业从来不公示也不会告知业主,比如小区的饮水机、捐衣箱、快递箱都是有租金的,虽然不高,但也积少成多。\r\n\r\n诸如此类的收入,哪怕有100元的进账,周永才也会公示。支出更要征求民意,春年前给物业人员每人发100元过节费,也是征得大家同意的。\r\n\r\n每项财务专项专用,物业费用于发放物业人员工资,小区租金和广告收入则用于小区公共建设。\r\n\r\n\r\n业主委员会财务都有专职人员进行监管,每个月的收支都张贴出来。\r\n\r\n“我们账上现在还剩余241580.9元。”年过六旬的周永才对小区账户上的每项数字都能脱口而出。他总是想方设法为小区省钱,购买路灯灯泡时为了享受团购价,他在群里发动有需求的业主一起购买,最终省下了150元。小区物业办公需要电脑,他主动把自己家闲置的电脑拿过来作为公用。业委会与物业用房也由5间压缩为4间,多出租一间房就多一点收入。\r\n\r\n说到给业主办实事,那肯定需要钱,军缘新城的这一届业委会上任时一穷二白,马照明甚至还垫付了4000多元的电梯维修费。怎么办?\r\n\r\n业委会想到了小门门口的一排公共用房,上房多年来,除去物业和业委会用房5间,其余全部被无端占用。顶着巨大的压力,他们请一些有威望的老人前去做工作,一遍遍动员、贴公告,前后花了两个月的时间终于把房子全部要回来并租了出去,14间房屋每年可收租金3.5万元。另外小区广告费的收入每年也有2.5万元左右。\r\n\r\n业委会和自治办一边整改小区,一边收取物业费,将物业费收取标准由每平米0.45元降至每平米0.40元,而且不另收公共能耗费,前三个月的物业费收缴率终于创了新高,达到90%以上,如果不是有140户空关户,收缴率会更高。\r\n\r\n社区放心了,业主满意了\r\n\r\n军缘新城新一轮自治从2018年9月10日开始,到现在5个多月了,工作进展十分顺利。\r\n\r\n道北社区盛莉主任感慨说,现在军缘新城自治工作确实已经走上正轨,不需要社区介入了,也没有业主前来投诉了。以前每次物业撤出和自治失败后,都是社区来兜底。\r\n\r\n这次自治,物业费收得低,保安和保洁用的都是小区居民,活干得好,业委会跟业主沟通也有方法,业主很满意,社区也放心了。\r\n\r\n在广场上保洁的陈衍玲说,\r\n\r\n她负责小区三栋楼房和半个广场的清洁工作,每天把三栋楼的公共区域都打扫一遍,广场早中晚都要打扫,一天下来没有清闲的时候,每个月工资1600元。\r\n\r\n但是打扫自己的小区很开心,就像在自己家里搞卫生一样,到处弄得干干净净的,得到业主的夸赞,心里很自豪。\r\n\r\n小区居民季女士对业委会竖起了大拇指:\r\n\r\n小区自治很成功,业主们都很感激业委会和自治办,他们个个都是无私奉献。如今的小区比很多有物业管理的小区都要干净。\r\n\r\n自从她5年前住进这里,喷泉水池就是个臭水沟,以前从来没见喷泉喷过水,现在水池变得那么干净,还养起了鱼。变化大太了。业委会为业主服务更热心,有一次她家突然停电了,马主任带着电工到她家维修,一会儿就把问题解决了。他们是实实在在给业主办事。\r\n\r\n马照明骄傲地说,前几天他看到小区里有个孩子不愿去爷爷奶奶家,原因竟然是这里晚上有漂亮的喷泉,比爷爷奶奶家好玩。\r\n\r\n据了解,军缘新城即将上马一个更好玩的项目:取消门禁卡,刷脸进小区,打造智慧小区。这个全市还是首家。\r\n\r\n对于小区将来的发展,军缘新城业委会已经制定了长远规划:重建广场上6座小亭子,更换所有单元门,美化小区入口的500米长廊,建成花园式小区。最近他们正在寻找广告商合作一起翻修入口长廊,还希望有爱好墙壁画的人士能帮他们美化墙面。', '1', '4', '2', '0', '1', '1', '68', '0', '1550996685', '1577765713', '0'); +INSERT INTO `tao_article` VALUES ('11', '数据查询链式操作', 'face[微笑] \r\n\r\n数据库提供的链式操作方法,可以有效的提高数据存取的代码清晰度和开发效率,并且支持所有的CURD操作(原生查询不支持链式操作)。\r\n\r\n使用也比较简单,假如我们现在要查询一个User表的满足状态为1的前10条记录,并希望按照用户的创建时间排序 ,代码如下:\r\n\r\n[pre]\r\nDb::table(\'think_user\')\r\n ->where(\'status\',1)\r\n ->order(\'create_time\')\r\n ->limit(10)\r\n ->select();\r\n[/pre]\r\n这里的where、order和limit方法就被称之为链式操作方法,除了select方法必须放到最后一个外(因为select方法并不是链式操作方法),链式操作的方法调用顺序没有先后,例如,下面的代码和上面的等效:\r\n\r\n[pre]\r\nDb::table(\'think_user\')\r\n ->order(\'create_time\')\r\n ->limit(10)\r\n ->where(\'status\',1)\r\n ->select();\r\n[/pre]\r\n其实不仅仅是查询方法可以使用连贯操作,包括所有的CURD方法都可以使用,例如:\r\n\r\n[pre]\r\nDb::table(\'think_user\')\r\n ->where(\'id\',1)\r\n ->field(\'id,name,email\')\r\n ->find(); \r\n \r\nDb::table(\'think_user\')\r\n ->where(\'status\',1)\r\n ->where(\'id\',1)\r\n ->delete();\r\n[/pre]', '1', '3', '1', '0', '0', '1', '53', '0', '1546860297', '1577773852', '0'); +INSERT INTO `tao_article` VALUES ('12', 'layui表单页面元素', '[quote]\r\n 在一个容器中设定 class=\"layui-form\" 来标识一个表单元素块,通过规范好的HTML结构及CSS类,来组装成各式各样的表单元素,并通过内置的 form模块 来完成各种交互。\r\n[/quote]\r\n[quote]\r\n 依赖加载模块:form (请注意:如果不加载form模块,select、checkbox、radio等将无法显示,并且无法使用form相关功能)\r\n[/quote]\r\n[pre]\r\n
    \r\n
    \r\n \r\n
    \r\n \r\n
    \r\n
    \r\n
    \r\n \r\n
    \r\n \r\n
    \r\n
    辅助文字
    \r\n
    \r\n
    \r\n \r\n
    \r\n \r\n
    \r\n
    \r\n
    \r\n \r\n
    \r\n \r\n \r\n \r\n
    \r\n
    \r\n
    \r\n \r\n
    \r\n \r\n
    \r\n
    \r\n
    \r\n \r\n
    \r\n \r\n \r\n
    \r\n
    \r\n
    \r\n \r\n
    \r\n \r\n
    \r\n
    \r\n
    \r\n
    \r\n \r\n \r\n
    \r\n
    \r\n
    \r\n \r\n\r\n[/pre]\r\nUI的最终呈现得益于 Form模块 的全自动渲染,她将原本普通的诸如select、checkbox、radio等元素重置为你所看到的模样。或许你可以移步左侧导航的 内置模块 中的 表单 对其进行详细的了解。', '1', '2', '1', '0', '0', '1', '29', '0', '1546871441', '1577771850', '0'); +INSERT INTO `tao_article` VALUES ('13', 'thinkphp5.1开发规范', '[quote]\r\n 命名规范\r\n[/quote]\r\n\r\nThinkPHP5.1遵循PSR-2命名规范和PSR-4自动加载规范,并且注意如下规范:\r\n\r\n[quote]\r\n 目录和文件\r\n[/quote]\r\n\r\n目录使用小写+下划线;\r\n类库、函数文件统一以.php为后缀;\r\n类的文件名均以命名空间定义,并且命名空间的路径和类库文件所在路径一致;\r\n类文件采用驼峰法命名(首字母大写),其它文件采用小写+下划线命名;\r\n类名和类文件名保持一致,统一采用驼峰法命名(首字母大写);\r\n[quote]\r\n 函数和类、属性命名\r\n[/quote]\r\n\r\n类的命名采用驼峰法(首字母大写),例如 User、UserType,默认不需要添加后缀,例如UserController应该直接命名为User;\r\n函数的命名使用小写字母和下划线(小写字母开头)的方式,例如 get_client_ip;\r\n方法的命名使用驼峰法(首字母小写),例如 getUserName;\r\n属性的命名使用驼峰法(首字母小写),例如 tableName、instance;\r\n特例:以双下划线__打头的函数或方法作为魔术方法,例如 __call 和 __autoload;\r\n[quote]\r\n 常量和配置\r\n[/quote]\r\n\r\n常量以大写字母和下划线命名,例如 APP_PATH;\r\n配置参数以小写字母和下划线命名,例如 url_route_on 和url_convert;\r\n环境变量定义使用大写字母和下划线命名,例如APP_DEBUG;\r\n[quote]\r\n 数据表和字段\r\n[/quote]\r\n\r\n数据表和字段采用小写加下划线方式命名,并注意字段名不要以下划线开头,例如 think_user 表和 user_name字段,不建议使用驼峰和中文作为数据表及字段命名。\r\n请理解并尽量遵循以上命名规范,可以减少在开发过程中出现不必要的错误。', '1', '2', '1', '0', '0', '1', '51', '0', '1547436945', '1577772688', '0'); +INSERT INTO `tao_article` VALUES ('14', 'thinkphp5.1目录结构', '[pre]\r\nwww WEB部署目录(或者子目录)\r\n├─application 应用目录\r\n│ ├─common 公共模块目录(可以更改)\r\n│ ├─module_name 模块目录\r\n│ │ ├─common.php 模块函数文件\r\n│ │ ├─controller 控制器目录\r\n│ │ ├─model 模型目录\r\n│ │ ├─view 视图目录\r\n│ │ ├─config 配置目录\r\n│ │ └─ ... 更多类库目录\r\n│ │\r\n│ ├─command.php 命令行定义文件\r\n│ ├─common.php 公共函数文件\r\n│ └─tags.php 应用行为扩展定义文件\r\n│\r\n├─config 应用配置目录\r\n│ ├─module_name 模块配置目录\r\n│ │ ├─database.php 数据库配置\r\n│ │ ├─cache 缓存配置\r\n│ │ └─ ... \r\n│ │\r\n│ ├─app.php 应用配置\r\n│ ├─cache.php 缓存配置\r\n│ ├─cookie.php Cookie配置\r\n│ ├─database.php 数据库配置\r\n│ ├─log.php 日志配置\r\n│ ├─session.php Session配置\r\n│ ├─template.php 模板引擎配置\r\n│ └─trace.php Trace配置\r\n│\r\n├─route 路由定义目录\r\n│ ├─route.php 路由定义\r\n│ └─... 更多\r\n│\r\n├─public WEB目录(对外访问目录)\r\n│ ├─index.php 入口文件\r\n│ ├─router.php 快速测试文件\r\n│ └─.htaccess 用于apache的重写\r\n│\r\n├─thinkphp 框架系统目录\r\n│ ├─lang 语言文件目录\r\n│ ├─library 框架类库目录\r\n│ │ ├─think Think类库包目录\r\n│ │ └─traits 系统Trait目录\r\n│ │\r\n│ ├─tpl 系统模板目录\r\n│ ├─base.php 基础定义文件\r\n│ ├─convention.php 框架惯例配置文件\r\n│ ├─helper.php 助手函数文件\r\n│ └─logo.png 框架LOGO文件\r\n│\r\n├─extend 扩展类库目录\r\n├─runtime 应用的运行时目录(可写,可定制)\r\n├─vendor 第三方类库目录(Composer依赖库)\r\n├─build.php 自动生成定义文件(参考)\r\n├─composer.json composer 定义文件\r\n├─LICENSE.txt 授权说明文件\r\n├─README.md README 文件\r\n├─think 命令行入口文件\r\n[/pre]\r\n\r\n[quote]\r\n 在mac或者linux环境下面,注意需要设置runtime目录权限为777。\r\n[/quote]\r\n[quote]\r\n 由于5.1版本取消了系统路径的常量定义,因此系统的目录名称不可更改。如果需要更改应用目录或者入口文件位置,参考架构章节的入口文件部分。\r\n[/quote]\r\n', '1', '1', '1', '0', '0', '1', '239', '1', '1548325869', '1577772871', '0'); +INSERT INTO `tao_article` VALUES ('15', 'add添加文章有误', 'face[微笑] \r\n123\r\nimg[/uploads/20190310/4cc8e58de8f2765270e8475bf059ae1d.jpg] \r\n[hr]\r\n[pre]\r\njjjj\r\n[/pre]\r\n[quote]\r\n这样的风格,呵呵!\r\n[/quote]\r\n', '1', '1', '1', '0', '0', '1', '184', '0', '1551436861', '1555747615', '0'); +INSERT INTO `tao_article` VALUES ('16', '谁在使用thinkphp6.0版本', '新项目测试,更新为thinkphp6框架。', '1', '6', '1', '0', '0', '1', '12', '0', '1552182370', '1577769774', '0'); +INSERT INTO `tao_article` VALUES ('17', '2019.3.10创建TaoLer项目', '创建TaoLer项目\r\n使用Thinkphp为核心框架,\r\n前身TLBS,think5.1开发。\r\n', '1', '4', '1', '0', '0', '1', '32', '0', '1552183473', '1577769686', '0'); +INSERT INTO `tao_article` VALUES ('18', 'layui 2.5.5发布', '闲心:\r\n[quote]\r\n 之前大家在《2.5.x 问题集中收集》中反馈的内容,我已如数看到,谢谢大家的积极反馈!。其中有些被采纳在本次版本中,有些被规划到了 v2.6、v3.0 中。我深知之前反复的断更对 layui 带来的是怎样无可挽回的损失,然而 layui 终于还是不得不重新审视它所处的位置,行进的「前端河」分出了两条支流:一条是滚滚洪流,没有人能够逃脱它的流速,我们必须要在拥抱中重生;一条是波澜不惊,那是我们最初的方向,返璞归真、自诩的「经典」和不灭的执念。顺应潮流而不背离初心,layui 注定要同时流向这两条支流,虽千万里之行,亦愿独闯。\r\n[/quote]\r\n\r\n# v2.5.5(2019.09.10)\r\n● [优化] form 组件的 val() 方法,除了之前版本的赋值,目前还可支持取值\r\n● [新增] tree 组件的数据源参数 field,用于定义数据字段名\r\n● [优化] tree 组件的节点删除前的提示功能\r\n● [修复] tree 组件的数据源参数 checked 在父子节点同时设定时的异常问题\r\n● [优化] table 组件的 defaultToolbar 参数,可以扩展头部工具栏右侧图标按钮\r\n● [优化] table 组件的局部代码,减少重复的全局事件引发的卡顿问题\r\n● [修复] table 组件的合计行未按照对应列显示自定义模板的问题\r\n● [修复] table 组件导出数据时未包含合计行的问题\r\n● [修复] transfer 组件的右侧面板在使用搜索转移数据后,无法再获取右侧数据的问题\r\n● [新增] upload 组件的 progress 回调,用于监听文件的上传进度', '1', '4', '1', '1', '0', '1', '88', '0', '1568096396', '1577769315', '0'); +INSERT INTO `tao_article` VALUES ('19', 'php创建递归目录', '如果不存在,创建递归目录:\r\n[pre]\r\n/**\r\n* This function creates recursive directories if it doesn\'t already exist\r\n*\r\n* @param String The path that should be created\r\n* \r\n* @return void\r\n*/\r\npublic function create_dirs($path)\r\n{\r\n if (!is_dir($path))\r\n {\r\n $directory_path = \"\";\r\n $directories = explode(\"/\",$path);\r\n array_pop($directories);\r\n \r\n foreach($directories as $directory)\r\n {\r\n $directory_path .= $directory.\"/\";\r\n if (!is_dir($directory_path))\r\n {\r\n mkdir($directory_path);\r\n chmod($directory_path, 0777);\r\n }\r\n }\r\n }\r\n}\r\n[/pre]\r\n', '1', '2', '1', '0', '1', '1', '178', '0', '1559193830', '1577763199', '0'); +INSERT INTO `tao_article` VALUES ('22', '漂亮!2018江苏扶贫脱贫工作再报好成绩!', '2019年02月26日 21:50 新华报业网\r\n交汇点讯 以“绣花”功夫扎实推进精准扶贫精准脱贫,以决战决胜的信心和决心打赢打好脱贫攻坚战。2月26日下午,全省扶贫开发工作会议在南京召开。根据会议通报,2018年,全省人均收入6000元以下低收入农户共有267674户、675383人实现脱贫。全省有244个省定经济薄弱村集体经济收入超过18万元,扶贫工作交出亮眼“成绩单”。\r\nimg[http://n.sinaimg.cn/translate/516/w752h564/20190226/qNqo-htptaqe9309745.png] \r\n\r\n  家门口就能就业苏北5市脱贫工作成效显著\r\n\r\n  根据会议通报,苏北5市脱贫255046户、653051人,占全省脱贫人数的96.7%。苏中扬州市、泰州市脱贫12628户、22332人。苏北12个重点县(区)脱贫126548户、352630人,占苏北5市脱贫人数的54.0%。苏北5市脱贫236个村,占全省脱贫村总数的96.7%;苏中泰州市脱贫8个。苏北12个重点县(区)脱贫140个村,占苏北5市脱贫村的59.3%。\r\n\r\n  成绩单背后,是全省扶贫工作的扎实稳步推进。\r\n\r\n  以宿迁市为例,2018年该市实现12.8万建档立卡低收入人口、46个省定经济薄弱村脱贫达标,分别完成年度且标任务的126.7%、109.5%。宿迁市副市长光华介绍,该市打造优质稻米、标准化果蔬、园艺型花木、农牧循环型生猪、精深加工型肉禽、生态河蟹六大百亿级产业,带动近10万低收入人口增收;免费开展劳动力培训,累计实施“家门口就业”项目989个,带动低收入劳动力就业5.9万人,人均年增收1.32万元。\r\n\r\n  “沙集模式”加入助力精准扶贫、精准脱贫\r\n\r\n  靶向发力,精准施策,才能让脱贫攻坚取得过硬成果。\r\n\r\n  2018年,睢宁县53个省定和47个县定经济薄弱村全部“摘帽”,12.14万低收入人口实现脱贫。在众多扶贫举措中,做好电商扶贫是该县扶贫工作的一大亮点。\r\n\r\n  睢宁县委副书记王敏说,睢宁县着力打造8大电商产业园区、设立600多个服务网点,全面拓宽电商就业渠道。设置1000万元电商专项扶持资金,强化扶贫小额贷款支持力度。依托全国首家地市级“淘宝大学”,实施“万人培训计划”,4年免费培训超过4万人,带动近5500名低收入户成功创业。\r\n\r\n  不仅如此,该县复制推广“沙集模式”,积极开展淘宝镇村创建,打造出东部简约家具、西南部小饰品、西北部特色农产品、中部传统店铺与网店结合的“四大电商片区”。2018年累计创成淘宝镇10个、淘宝村92个,淘宝村总量全省第一、全国第四,拥有网商3.4万户,带动从业人数超21万人,直接或间接帮助近2万人脱贫。\r\n\r\n  各类帮扶项目持续发力为扶贫增收提供保障\r\n\r\n  2018年,全省235家后方单位完成省定出资任务2.59亿元,到挂钩帮扶县(区)开展扶贫现场办公3769人次。省委驻县帮扶工作队全年协调投入资金12.55亿元,实施各类帮扶项目623个,所挂钩帮扶203个省定经济薄弱村通过不到一年的帮扶,已有140个村实现脱贫。\r\n\r\n  在淮安,省委驻涟水县帮扶工作队打造了“安东米富”品牌,整合资源,扶持经营主体,以“互联网+公司+基地+农户”的模式,打造新型农业产业化联合体。省委驻涟水县帮扶工作队队长孙国君介绍,目前已整合7个生产基地,对接15个家庭农场;“安东米富”从单一有机稻米,扩展到近二十几种产品,拥有草鸡蛋、有机大米、红薯粉丝等23个特色农产品,产业发展覆盖9个村,带动农户2066个。已经形成的长期稳定产销关系实现全年销售额超过1000万元,为村集体和农民持久增收提供了有力保障。\r\n\r\n  两地帮扶共赢为区域后续发展增添新动能\r\n\r\n  截至2018年底,全省低收入人口还剩余568883人未脱贫,97个省定经济薄弱村未达标。打赢打好脱贫攻坚战,求实求效,相生相长,也是一个有效措施。\r\n\r\n  南京市江宁区从1995年开始挂钩帮扶淮安市淮阴区。截至目前,帮扶淮阴区建设项目146个,累计投入资金5352万元;江宁开发区投入以奖代补资金8500万元。\r\n\r\n  2006年10月,江宁开发区与淮阴区携手共建淮阴工业园,随着一系列项目招引、转型升级举措的实施,这一园区在全省45家南北共建园区中,连续七年被评为共建园区先进单位;成功引进了众创空间合伙人项目,2018年9月获批省级众创空间称号,是淮安市唯一获批的省级众创空间。\r\n\r\n  南京江宁区委常委、常务副区长李滨说,目前,在众创空间注册成立企业16家,引进创业团队13个。李德发院士、王国栋院士在园区企业澳华农牧、振达钢管设立院士工作站;淮阴工学院、淮阴师范学院等高校和科研院所,常年在园区开展“百名博士帮百企”等活动,为区域后续发展增添了新动能。\r\n\r\n  【新闻延伸】\r\n\r\n  江苏全省低收入人口大病专项救治病种数增至30种\r\n\r\n  交汇点讯全省因病致贫农户从2016年的40.3万户下降到目前的14.2万户。这是记者从2月26日下午举办的全省扶贫开发工作会议上获得的消息。\r\n\r\n  据省卫生健康委巡视员何小鹏介绍,全省低收入人口治疗总费用个人自付比例由2016年的50%左右下降至2018年底的30%左右;大病专项救治病种数由20种增至30种;全省确定定点医院412家,救治大病患者7.47万人,减免医疗费用超过3.21亿元。\r\n\r\n  交汇点见习记者 胡安静', '1', '4', '3', '0', '1', '0', '4', '0', '1551996685', '1577767438', '0'); +INSERT INTO `tao_article` VALUES ('23', 'ThinkPHP6.0版本发布', '[quote]\r\n 2019 年 10 月 24 日 发布\r\n官方历时一年多倾力打造的ThinkPHP6.0版本正式发布,该版本基于精简核心和统一用法两大原则在5.1的基础上对底层架构做了进一步的优化改进,并更加规范化。\r\n\r\n由于引入了一些新特性,ThinkPHP6.0运行环境要求PHP7.1+(推荐PHP7.3+),不支持5.1的无缝升级\r\n[/quote]\r\n\r\n主要特性:\r\n采用PHP7强类型(严格模式)\r\n支持更多的PSR规范\r\n多应用支持\r\nORM组件独立\r\n改进的中间件机制\r\n核心架构服务化\r\n全新的事件系统\r\n容器功能增强\r\n模板引擎组件独立\r\n内部功能中间件化\r\nSESSION机制改进\r\n缓存及日志支持多通道\r\n引入Filesystem组件\r\n对Swoole以及协程支持改进\r\n对IDE更加友好\r\n统一和精简大量用法\r\n强类型及严格模式\r\n在主流框架里面,ThinkPHP6.0是最先采用PHP7严格模式的。所有的核心文件都是开启了严格模式的类型约束,因此有任何的变量类型不符的情况都会抛出异常,有利于规范代码中的变量类型和提前发现问题隐患。\r\n\r\n多应用模式\r\n新版框架提供了多应用模式支持,默认安装为单应用,你只需要安装一个多应用模式扩展就可以更轻松的部署多个应用而不需要重复安装依赖组件,每个应用都支持独立入口访问以及域名绑定,也可以使用一个入口文件实现自动多应用部署。并且自动多应用模式支持智能识别,对于不存在的应用访问会自动切换到单应用模式进行匹配。同时支持应用的映射和禁止访问机制。\r\n\r\n多应用模式的设计可以让开发更加模块化,因为每个应用的配置、路由及视图都可以纳入应用目录,所以更方便应用的模块化,甚至引入composer应用。\r\n\r\n容器和服务\r\n新版的容器支持PSR-11规范,容器类的功能特性主要包括:\r\n\r\n绑定类、对象实例、接口到容器\r\n创建类的实例(存在则直接获取)\r\n容器对象绑定别名\r\n支持容器对象(实例化)回调\r\n获取容器对象实例\r\n删除容器中的对象实例\r\n提供依赖注入和门面实现支持\r\n调用容器对象实例的方法(或者闭包)\r\n提供容器对象的ArrayAccess支持\r\n事件系统\r\n新版的事件系统可以看成是5.1版本行为系统的升级版,事件系统相比行为系统强大的地方在于事件本身可以是一个类,并且可以更好的支持事件订阅者。支持事件智能订阅,通过反射机制来识别当前订阅者要订阅的事件。\r\n\r\n事件相比较中间件的优势是事件比中间件更加精准定位(或者说粒度更细),并且更适合一些业务场景的扩展。例如,我们通常会遇到用户注册或者登录后需要做一系列操作,通过事件系统可以做到不侵入原有代码完成登录的操作扩展,降低系统的耦合性的同时,也降低了BUG的可能性。\r\n\r\n中间件支持完善\r\n中间件分为全局中间件、应用中间件、路由中间件和控制器中间件,这四个中间件分组完全独立执行,但同一个分组内的中间件不会重复执行。中间件方法执行依赖注入,以及请求结束的回调机制。\r\n\r\n核心很多功能都是基于中间件来完成,包括多应用模式也是采用中间件机制执行。\r\n\r\n路由和请求\r\n新版的路由精简了很多不必要的功能,路由定义也更加规范化和语义化,并且路由定义文件支持纳入应用目录,便于模块化开发。路由注解功能独立为think-annotation库,并且使用更加规范,支持IDE提示。\r\n\r\n新版的请求对象更易扩展,系统默认安装后提供了一个app\\Request类,你可以在应用中直接自定义请求对象,增加必要的属性和方法。但不会影响对think\\Request的依赖注入和门面调用。\r\n\r\n系统服务\r\n由于核心框架采用了服务化设计,你可以在你的扩展或者应用中注册需要的服务。在系统服务中注册一个对象到容器,或者对某些对象进行相关的依赖注入。由于系统服务的执行优先级问题,可以确保相关组件在执行的时候已经完成相关依赖注入。一个服务类通常包括注册(register)和启动(boot)方法,用于不同阶段的执行。\r\n\r\nORM组件化\r\n内置的ORM功能已经完全独立为think-orm组件,可以独立使用,ThinkPHP6.0默认依赖安装了该组件,保持用法不变的同时,增强了查询功能。\r\n\r\n模板引擎组件化\r\n核心不再内置任何模板引擎,仅提供PHP模板支持,官方的模板引擎已经独立为think-template模板引擎,并默认依赖安装。你可以更方便的使用第三方模板引擎。\r\n\r\n日志系统\r\n日志支持多通道、并统一命令行和WEB日志格式,主要包括:\r\n\r\n日志增加多通道支持,可以同时或者切换写入多个通道\r\nWEB和CLI的日志记录格式统一,并支持日志格式化\r\n对JSON日志格式的改进\r\n支持日志写入事件\r\nSession机制改进\r\n6.0版本的Session机制完全重写了,并且不再使用PHP内置的Session机制,全新实现一套Session机制,可以更好的支持Swoole/Workerman等环境。\r\n\r\n所以不再支持PHP内置的session_*** 系列函数,也不再支持使用$_SESSION读取session数据,你必须通过框架提供的Session类或者门面来操作,Request类也封装了Session数据的读取。\r\n\r\nSession支持跨应用读取和自定义序列化机制,默认采用文件类型记录Session数据,由于共用了缓存机制,你还可以使用任何支持的缓存类型来记录Session数据。\r\n\r\n引入Filesystem组件\r\n新版增加了Filesystem类库对文件系统强化了支持,而且可以很方便的支持各种云存储,包括阿里云和七牛云。\r\n\r\nSwoole扩展改进\r\nSwoole扩展同时支持HTTP和Socket服务,支持数据库和缓存的连接池功能,以及RPC功能。\r\n\r\n调试工具更新\r\n原来内置的页面Trace调试工具已经更改为扩展的方式,改成安装think-trace扩展,如果通过composer安装应用的话,默认会安装topthink/think-trace扩展。\r\n\r\n基本用法和之前保持不变,但无需额外配置,默认使用html方式显示,同时仍然支持浏览器控制台显示,并仅在调试模式下有效。\r\n\r\n同时增加了一个基于debugbar的调试扩展think-debugbar,需要单独安装后才能使用。\r\n\r\ncomposer require topthink/think-debugbar\r\n统一和精简大量用法\r\n新版对很多用法进行了精简和统一,尽可能避免在开发过程中规范不一的困惑。', '1', '4', '3', '1', '0', '1', '13', '0', '1571986396', '1552186396', '0'); +INSERT INTO `tao_article` VALUES ('24', '辞旧迎新 ,回顾2019,展望2020!', '[quote]\r\n 2019,马上就要永远的留在了历史长河中,2020,在期望中到来。\r\n[/quote]\r\n\r\n要总结回顾一下二零一九年,也要展望规划新的二零二零。\r\n过去的这一年里,忙忙碌碌,喜剧哀乐各种滋味都有。丰富多彩,缤纷灿烂。这其中有学习进步,也有懒惰懈怠。\r\n但,总结一句话,2019年是不后悔的,是充满挑战的,是美好的。\r\n新的一年里,会在一点一滴中充实壮大自己。弥补不足,改变不好的,抓住美好的。', '1', '2', '1', '1', '0', '1', '4', '0', '1577775729', '1577775740', '0'); + +-- ---------------------------- +-- Table structure for tao_auth_group +-- ---------------------------- +DROP TABLE IF EXISTS `tao_auth_group`; +CREATE TABLE `tao_auth_group` ( + `id` mediumint(8) unsigned NOT NULL AUTO_INCREMENT, + `title` varchar(100) NOT NULL DEFAULT '', + `rules` char(255) NOT NULL DEFAULT '', + `limits` varchar(255) NOT NULL COMMENT '权限范围', + `descr` varchar(255) NOT NULL COMMENT '权限描述', + `status` tinyint(1) NOT NULL DEFAULT '1', + `create_time` int(11) NOT NULL COMMENT '创建时间', + `update_time` int(11) NOT NULL COMMENT '更新时间', + `delete_time` int(11) NOT NULL COMMENT '删除时间', + PRIMARY KEY (`id`) +) ENGINE=MyISAM AUTO_INCREMENT=9 DEFAULT CHARSET=utf8; + +-- ---------------------------- +-- Records of tao_auth_group +-- ---------------------------- +INSERT INTO `tao_auth_group` VALUES ('1', '超级管理员', '4,14,20,29,30,31,32,33,34,3,12,13,5,15,21,22,16,24,26,25,17,27,28,23,1,6,7,8,9,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,53,2,10,51,11,18,52,54,55,19,56,57,58,59,60', '管理所有的管理员', '所有权限', '1', '0', '0', '0'); +INSERT INTO `tao_auth_group` VALUES ('2', '管理员', '4,14,20,29,30,31,32,33,34,3,12,13,2,10,51,11,18,52,54,55,53', '所有列表的管理', '普通管理员', '1', '0', '0', '0'); +INSERT INTO `tao_auth_group` VALUES ('3', '帖子管理', '3,12,13,5,15,21,22,16,24,26,25,17,27,28,23', '负责帖子的审核', '文章专员', '1', '0', '0', '0'); + +-- ---------------------------- +-- Table structure for tao_auth_group_access +-- ---------------------------- +DROP TABLE IF EXISTS `tao_auth_group_access`; +CREATE TABLE `tao_auth_group_access` ( + `uid` mediumint(8) unsigned NOT NULL, + `group_id` mediumint(8) unsigned NOT NULL, + UNIQUE KEY `uid_group_id` (`uid`,`group_id`), + KEY `uid` (`uid`), + KEY `group_id` (`group_id`) +) ENGINE=MyISAM DEFAULT CHARSET=utf8; + +-- ---------------------------- +-- Records of tao_auth_group_access +-- ---------------------------- +INSERT INTO `tao_auth_group_access` VALUES ('1', '1'); +INSERT INTO `tao_auth_group_access` VALUES ('2', '2'); +INSERT INTO `tao_auth_group_access` VALUES ('3', '3'); +INSERT INTO `tao_auth_group_access` VALUES ('4', '3'); + +-- ---------------------------- +-- Table structure for tao_auth_rule +-- ---------------------------- +DROP TABLE IF EXISTS `tao_auth_rule`; +CREATE TABLE `tao_auth_rule` ( + `id` mediumint(8) unsigned NOT NULL AUTO_INCREMENT, + `name` char(80) NOT NULL DEFAULT '', + `title` char(20) NOT NULL DEFAULT '', + `type` tinyint(1) unsigned NOT NULL DEFAULT '1', + `status` enum('1','0') NOT NULL DEFAULT '1' COMMENT '菜单1启用,0禁用', + `pid` smallint(5) NOT NULL DEFAULT '0' COMMENT '父级ID', + `level` tinyint(1) NOT NULL DEFAULT '1' COMMENT '菜单层级', + `icon` varchar(50) NOT NULL COMMENT '图标', + `ishidden` enum('1','0') NOT NULL DEFAULT '1' COMMENT '0隐藏,1显示', + `sort` tinyint(4) NOT NULL COMMENT '排序', + `condition` char(100) NOT NULL DEFAULT '', + `create_time` int(11) NOT NULL COMMENT '创建时间', + `update_time` int(11) NOT NULL COMMENT '更新时间', + `delete_time` int(11) NOT NULL COMMENT '删除时间', + PRIMARY KEY (`id`), + UNIQUE KEY `name` (`name`) +) ENGINE=MyISAM AUTO_INCREMENT=61 DEFAULT CHARSET=utf8; + +-- ---------------------------- +-- Records of tao_auth_rule +-- ---------------------------- +INSERT INTO `tao_auth_rule` VALUES ('1', 'admin', '管理', '1', '1', '0', '0', 'layui-icon-user', '1', '3', '', '0', '0', '0'); +INSERT INTO `tao_auth_rule` VALUES ('2', 'set', '设置', '1', '1', '0', '0', 'layui-icon-set', '1', '4', '', '0', '0', '0'); +INSERT INTO `tao_auth_rule` VALUES ('3', 'administrator', '账户', '1', '1', '0', '0', 'layui-icon-username', '1', '5', '', '0', '0', '0'); +INSERT INTO `tao_auth_rule` VALUES ('4', 'app', '应用', '1', '1', '0', '0', 'layui-icon-app', '0', '2', '', '0', '0', '0'); +INSERT INTO `tao_auth_rule` VALUES ('5', 'article', '内容', '1', '1', '0', '0', 'layui-icon-read', '1', '1', '', '0', '0', '0'); +INSERT INTO `tao_auth_rule` VALUES ('6', 'admin/user/list', '用户管理', '1', '1', '1', '1', '', '1', '0', '', '0', '0', '0'); +INSERT INTO `tao_auth_rule` VALUES ('7', 'admin/admin/adminlist', '管理员', '1', '1', '1', '1', '', '1', '0', '', '0', '0', '0'); +INSERT INTO `tao_auth_rule` VALUES ('8', 'admin/authgroup/list', '角色管理', '1', '1', '1', '1', '', '1', '0', '', '0', '0', '0'); +INSERT INTO `tao_auth_rule` VALUES ('9', 'admin/Authrule/index', '权限管理', '1', '1', '1', '1', '', '1', '0', '', '0', '0', '0'); +INSERT INTO `tao_auth_rule` VALUES ('10', 'admin/set/website', '网站设置', '1', '1', '2', '1', '', '1', '1', '', '0', '0', '0'); +INSERT INTO `tao_auth_rule` VALUES ('11', 'admin/set/email', '邮件服务', '1', '1', '2', '1', '', '1', '3', '', '0', '0', '0'); +INSERT INTO `tao_auth_rule` VALUES ('12', 'admin/admin/info', '基本资料', '1', '1', '3', '1', '', '1', '0', '', '0', '0', '0'); +INSERT INTO `tao_auth_rule` VALUES ('13', 'admin/admin/repass', '修改密码', '1', '1', '3', '1', '', '1', '0', '', '0', '0', '0'); +INSERT INTO `tao_auth_rule` VALUES ('15', 'admin/forum/list', '帖子列表', '1', '1', '5', '1', '', '1', '1', '', '0', '0', '0'); +INSERT INTO `tao_auth_rule` VALUES ('16', 'admin/forum/tags', '分类管理', '1', '1', '5', '1', '', '1', '4', '', '0', '0', '0'); +INSERT INTO `tao_auth_rule` VALUES ('17', 'admin/forum/replys', '评论管理', '1', '1', '5', '1', '', '0', '8', '', '0', '0', '0'); +INSERT INTO `tao_auth_rule` VALUES ('18', 'admin/slider/index', '广告投放', '1', '1', '2', '1', '', '1', '4', '', '0', '0', '0'); +INSERT INTO `tao_auth_rule` VALUES ('19', 'admin/Upgrade/index', '系统升级', '1', '1', '2', '1', '', '1', '8', '', '0', '0', '0'); +INSERT INTO `tao_auth_rule` VALUES ('21', 'admin/forum/edit', '编辑帖子', '1', '1', '5', '1', '', '0', '2', '', '0', '0', '0'); +INSERT INTO `tao_auth_rule` VALUES ('22', 'admin/forum/del', '删除帖子', '1', '1', '5', '1', '', '0', '3', '', '0', '0', '0'); +INSERT INTO `tao_auth_rule` VALUES ('23', 'admin/forum/check', '审核帖子', '1', '1', '5', '1', '', '0', '11', '', '0', '0', '0'); +INSERT INTO `tao_auth_rule` VALUES ('24', 'admin/forum/addtags', '添加分类', '1', '1', '5', '1', '', '0', '5', '', '0', '0', '0'); +INSERT INTO `tao_auth_rule` VALUES ('25', 'admin/forum/tagsform', '编辑分类', '1', '1', '5', '1', '', '0', '7', '', '0', '0', '0'); +INSERT INTO `tao_auth_rule` VALUES ('26', 'admin/forum/tagsdelete', '删除分类', '1', '1', '5', '1', '', '0', '6', '', '0', '0', '0'); +INSERT INTO `tao_auth_rule` VALUES ('27', 'admin/forum/commedit', '编辑评论', '1', '1', '5', '1', '', '0', '9', '', '0', '0', '0'); +INSERT INTO `tao_auth_rule` VALUES ('28', 'admin/forum/commdel', '删除评论', '1', '1', '5', '1', '', '0', '10', '', '0', '0', '0'); +INSERT INTO `tao_auth_rule` VALUES ('35', 'admin/user/userform', '添加用户', '1', '1', '1', '1', '', '0', '0', '', '0', '0', '0'); +INSERT INTO `tao_auth_rule` VALUES ('36', 'admin/user/useredit', '编辑用户', '1', '1', '1', '1', '', '0', '0', '', '0', '0', '0'); +INSERT INTO `tao_auth_rule` VALUES ('37', 'admin/user/delete', '删除用户', '1', '1', '1', '1', '', '0', '0', '', '0', '0', '0'); +INSERT INTO `tao_auth_rule` VALUES ('38', 'admin/user/check', '审核用户', '1', '1', '1', '1', '', '0', '0', '', '0', '0', '0'); +INSERT INTO `tao_auth_rule` VALUES ('39', 'admin/admin/addform', '添加管理员', '1', '1', '1', '1', '', '0', '0', '', '0', '0', '0'); +INSERT INTO `tao_auth_rule` VALUES ('40', 'admin/admin/addedit', '编辑管理员', '1', '1', '1', '1', '', '0', '0', '', '0', '0', '0'); +INSERT INTO `tao_auth_rule` VALUES ('41', 'admin/admin/delete', '删除管理员', '1', '1', '1', '1', '', '0', '0', '', '0', '0', '0'); +INSERT INTO `tao_auth_rule` VALUES ('42', 'admin/admin/addcheck', '审核管理员', '1', '1', '1', '1', '', '0', '0', '', '0', '0', '0'); +INSERT INTO `tao_auth_rule` VALUES ('43', 'admin/authgroup/roleadd', '添加角色', '1', '1', '1', '1', '', '0', '0', '', '0', '0', '0'); +INSERT INTO `tao_auth_rule` VALUES ('44', 'admin/authgroup/roleedit', '编辑角色', '1', '1', '1', '1', '', '0', '0', '', '0', '0', '0'); +INSERT INTO `tao_auth_rule` VALUES ('45', 'admin/authgroup/delete', '删除角色', '1', '1', '1', '1', '', '0', '0', '', '0', '0', '0'); +INSERT INTO `tao_auth_rule` VALUES ('46', 'admin/authrule/add', '添加权限', '1', '1', '1', '1', '', '0', '0', '', '0', '0', '0'); +INSERT INTO `tao_auth_rule` VALUES ('47', 'admin/authrule/edit', '编辑权限', '1', '1', '1', '1', '', '0', '0', '', '0', '0', '0'); +INSERT INTO `tao_auth_rule` VALUES ('48', 'admin/authrule/delete', '删除权限', '1', '1', '1', '1', '', '0', '0', '', '0', '0', '0'); +INSERT INTO `tao_auth_rule` VALUES ('49', 'admin/authrule/check', '审核权限', '1', '1', '1', '1', '', '0', '0', '', '0', '0', '0'); +INSERT INTO `tao_auth_rule` VALUES ('50', 'admin/authrule/menushow', '菜单权限', '1', '1', '1', '1', '', '0', '0', '', '0', '0', '0'); +INSERT INTO `tao_auth_rule` VALUES ('51', 'admin/set/upload', '上传logo', '1', '1', '2', '1', '', '0', '2', '', '0', '0', '0'); +INSERT INTO `tao_auth_rule` VALUES ('52', 'admin/slider/add', '添加广告', '1', '1', '2', '1', '', '0', '5', '', '0', '0', '0'); +INSERT INTO `tao_auth_rule` VALUES ('53', 'admin/slider/edit', '编辑广告', '1', '1', '2', '1', '', '0', '14', '', '0', '0', '0'); +INSERT INTO `tao_auth_rule` VALUES ('54', 'admin/slider/delete', '删除广告', '1', '1', '2', '1', '', '0', '6', '', '0', '0', '0'); +INSERT INTO `tao_auth_rule` VALUES ('55', 'admin/slider/uoloadimg', '上传广告', '1', '1', '2', '1', '', '0', '7', '', '0', '0', '0'); +INSERT INTO `tao_auth_rule` VALUES ('56', 'admin/upgrade/key', '设置key', '1', '1', '2', '1', '', '0', '9', '', '0', '0', '0'); +INSERT INTO `tao_auth_rule` VALUES ('57', 'admin/upgrade/keyedit', '修改key', '1', '1', '2', '1', '', '0', '10', '', '0', '0', '0'); +INSERT INTO `tao_auth_rule` VALUES ('58', 'admin/upgrade/check', '升级检测', '1', '1', '2', '1', '', '0', '11', '', '0', '0', '0'); +INSERT INTO `tao_auth_rule` VALUES ('59', 'admin/upgrade/upload', '自动升级', '1', '1', '2', '1', '', '0', '12', '', '0', '0', '0'); +INSERT INTO `tao_auth_rule` VALUES ('60', 'admin/upgrade/uploadzip', '上传升级包', '1', '1', '2', '1', '', '0', '13', '', '0', '0', '0'); + +-- ---------------------------- +-- Table structure for tao_cate +-- ---------------------------- +DROP TABLE IF EXISTS `tao_cate`; +CREATE TABLE `tao_cate` ( + `id` int(11) NOT NULL AUTO_INCREMENT COMMENT '主键id', + `catename` varchar(20) NOT NULL COMMENT '导航名称', + `ename` varchar(20) NOT NULL COMMENT '分类别名', + `sort` int(11) NOT NULL COMMENT '排序', + `status` enum('0','1') NOT NULL DEFAULT '1' COMMENT '状态1启用0禁用', + `type` tinyint(1) NOT NULL DEFAULT '0' COMMENT '0帖子1文章', + `create_time` int(11) NOT NULL COMMENT '创建时间', + `update_time` int(11) NOT NULL COMMENT '更新时间', + `delete_time` int(11) NOT NULL DEFAULT '0' COMMENT '删除时间', + PRIMARY KEY (`id`) +) ENGINE=MyISAM AUTO_INCREMENT=8 DEFAULT CHARSET=utf8; + +-- ---------------------------- +-- Records of tao_cate +-- ---------------------------- +INSERT INTO `tao_cate` VALUES ('1', '提问', 'ask', '1', '1', '0', '0', '0', '0'); +INSERT INTO `tao_cate` VALUES ('2', '分享', 'share', '2', '1', '0', '0', '0', '0'); +INSERT INTO `tao_cate` VALUES ('3', '讨论', 'talk', '3', '1', '0', '0', '0', '0'); +INSERT INTO `tao_cate` VALUES ('4', '新闻', 'news', '5', '1', '0', '0', '0', '0'); +INSERT INTO `tao_cate` VALUES ('5', '咸鱼', 'fish', '7', '1', '0', '0', '0', '0'); +INSERT INTO `tao_cate` VALUES ('6', '求助', 'help', '6', '1', '0', '0', '0', '0'); +INSERT INTO `tao_cate` VALUES ('7', '工作', 'work', '5', '1', '0', '0', '0', '0'); + +-- ---------------------------- +-- Table structure for tao_collection +-- ---------------------------- +DROP TABLE IF EXISTS `tao_collection`; +CREATE TABLE `tao_collection` ( + `id` int(11) NOT NULL AUTO_INCREMENT COMMENT '主键', + `article_id` int(11) NOT NULL COMMENT '文章id', + `user_id` int(11) NOT NULL COMMENT '用户id', + `create_time` int(11) NOT NULL COMMENT '创建时间', + `delete_time` int(11) NOT NULL COMMENT '删除时间', + PRIMARY KEY (`id`) +) ENGINE=MyISAM AUTO_INCREMENT=149 DEFAULT CHARSET=utf8 COMMENT='文章收藏表'; + +-- ---------------------------- +-- Records of tao_collection +-- ---------------------------- +INSERT INTO `tao_collection` VALUES ('141', '11', '1', '1567586177', '0'); +INSERT INTO `tao_collection` VALUES ('144', '6', '1', '1567586767', '0'); +INSERT INTO `tao_collection` VALUES ('143', '4', '1', '1567586749', '0'); +INSERT INTO `tao_collection` VALUES ('137', '13', '1', '1555745134', '0'); +INSERT INTO `tao_collection` VALUES ('138', '10', '1', '1555745142', '0'); +INSERT INTO `tao_collection` VALUES ('142', '1', '1', '1567586744', '0'); +INSERT INTO `tao_collection` VALUES ('140', '15', '1', '1567586167', '0'); +INSERT INTO `tao_collection` VALUES ('136', '14', '1', '1555745109', '0'); +INSERT INTO `tao_collection` VALUES ('145', '17', '1', '1567586778', '0'); +INSERT INTO `tao_collection` VALUES ('146', '19', '1', '1567586785', '0'); +INSERT INTO `tao_collection` VALUES ('147', '12', '1', '1567586802', '0'); +INSERT INTO `tao_collection` VALUES ('148', '8', '1', '1577762980', '0'); + +-- ---------------------------- +-- Table structure for tao_comment +-- ---------------------------- +DROP TABLE IF EXISTS `tao_comment`; +CREATE TABLE `tao_comment` ( + `id` int(11) NOT NULL AUTO_INCREMENT COMMENT '评论id', + `content` text NOT NULL COMMENT '评论', + `article_id` int(11) NOT NULL COMMENT '文章id', + `user_id` int(11) NOT NULL COMMENT '评论用户', + `zan` tinyint(4) NOT NULL COMMENT '赞', + `cai` enum('1','0') NOT NULL DEFAULT '0' COMMENT '0求解1采纳', + `create_time` int(11) NOT NULL COMMENT '创建时间', + `update_time` int(11) NOT NULL COMMENT '更新时间', + `delete_time` int(11) NOT NULL COMMENT '删除时间', + PRIMARY KEY (`id`) +) ENGINE=MyISAM AUTO_INCREMENT=77 DEFAULT CHARSET=utf8; + +-- ---------------------------- +-- Records of tao_comment +-- ---------------------------- +INSERT INTO `tao_comment` VALUES ('1', '好呀', '9', '1', '0', '0', '2019', '2019', '0'); +INSERT INTO `tao_comment` VALUES ('2', 'aieok.com', '4', '1', '0', '0', '2019', '2019', '0'); +INSERT INTO `tao_comment` VALUES ('3', 'http://www.aieok.com', '10', '2', '0', '0', '2019', '1555127897', '0'); +INSERT INTO `tao_comment` VALUES ('4', '数据库提供的链式', '11', '2', '0', '0', '2019', '2019', '0'); +INSERT INTO `tao_comment` VALUES ('5', 'tp5讨论2019讨论2019讨论2019', '12', '1', '0', '0', '2019', '2019', '0'); +INSERT INTO `tao_comment` VALUES ('24', 'face[微笑] \r\n1232 a(http://www.baidu.com)[http://www.baidu.com] \r\n[pre]\r\ncode\r\najax\r\nphp\r\n[/pre]\r\n[hr]', '14', '1', '0', '0', '1551430267', '1551430267', '0'); +INSERT INTO `tao_comment` VALUES ('23', '哈哈', '14', '1', '0', '0', '1551429718', '1555128388', '0'); +INSERT INTO `tao_comment` VALUES ('22', '美女哦', '14', '1', '0', '0', '1551429702', '1555128391', '0'); +INSERT INTO `tao_comment` VALUES ('20', 'face[嘻嘻] ', '9', '1', '0', '0', '1551413067', '1551413067', '0'); +INSERT INTO `tao_comment` VALUES ('25', '11', '6', '1', '0', '0', '1551432002', '1555123067', '0'); +INSERT INTO `tao_comment` VALUES ('26', '22', '6', '1', '0', '0', '1551433089', '1551433089', '0'); +INSERT INTO `tao_comment` VALUES ('27', 'img[https://ss1.bdstatic.com/70cFuXSh_Q1YnxGkpoWK1HF6hhy/it/u=4025342085,1549348620&fm=27&gp=0.jpg] ', '3', '1', '0', '0', '1551439637', '1551439637', '0'); +INSERT INTO `tao_comment` VALUES ('36', 'face[微笑] ', '15', '1', '0', '0', '1551584959', '1551584959', '0'); +INSERT INTO `tao_comment` VALUES ('47', 'face[哈哈] ', '17', '1', '0', '0', '1552183493', '1552183493', '0'); +INSERT INTO `tao_comment` VALUES ('48', 'face[嘻嘻] ', '17', '1', '0', '0', '1552183510', '1552183510', '0'); +INSERT INTO `tao_comment` VALUES ('39', 'face[微笑] ', '13', '1', '0', '0', '1551618056', '1551618056', '0'); +INSERT INTO `tao_comment` VALUES ('40', '这是二个提问', '5', '1', '0', '0', '1551878452', '1551878452', '0'); +INSERT INTO `tao_comment` VALUES ('41', '这是二个提问', '15', '1', '0', '0', '1551878500', '1555131321', '0'); +INSERT INTO `tao_comment` VALUES ('43', 'face[微笑] ', '3', '1', '0', '0', '1552178897', '1552178897', '0'); +INSERT INTO `tao_comment` VALUES ('44', 'img[/uploads/20190310/1fdcfad1c19010df4d5f83a8e7156af1.jpg] ', '3', '1', '0', '0', '1552178930', '1552178930', '0'); +INSERT INTO `tao_comment` VALUES ('45', 'face[微笑] ', '14', '1', '0', '0', '1552179991', '1552179991', '0'); +INSERT INTO `tao_comment` VALUES ('46', 'img[/uploads/20190310/4d5120c20e9b893c108da64e5c61e97a.jpg] ', '15', '1', '0', '0', '1552181616', '1555131303', '0'); +INSERT INTO `tao_comment` VALUES ('49', 'face[嘻嘻] ', '17', '1', '0', '0', '1552185406', '1552185406', '0'); +INSERT INTO `tao_comment` VALUES ('50', 'face[微笑] ', '18', '1', '0', '0', '1568097396', '1552186489', '0'); +INSERT INTO `tao_comment` VALUES ('66', 'face[嘻嘻] ', '3', '1', '0', '0', '1552193197', '1552193197', '0'); +INSERT INTO `tao_comment` VALUES ('67', 'face[微笑] face[嘻嘻] face[哈哈] ', '19', '1', '0', '0', '1559194830', '1555120988', '0'); +INSERT INTO `tao_comment` VALUES ('68', 'face[微笑] ', '15', '1', '0', '0', '1552195005', '1555131299', '0'); +INSERT INTO `tao_comment` VALUES ('69', 'img[/uploads/20190331/8d6af3839efe2a518d0c1aa026993bb5.jpg] ', '2', '1', '0', '0', '1553991079', '1553991079', '0'); +INSERT INTO `tao_comment` VALUES ('70', '@管理员 face[微笑] ', '2', '1', '0', '0', '1553991095', '1553991095', '0'); +INSERT INTO `tao_comment` VALUES ('71', 'face[微笑] face[嘻嘻] 非常高兴工', '19', '1', '0', '0', '1559203830', '1555121920', '0'); +INSERT INTO `tao_comment` VALUES ('73', 'face[微笑] ', '11', '1', '0', '0', '1555123035', '1555123035', '0'); +INSERT INTO `tao_comment` VALUES ('74', 'face[给力] ', '14', '2', '0', '1', '1555124049', '1555128398', '0'); +INSERT INTO `tao_comment` VALUES ('75', 'face[微笑] ', '8', '2', '0', '0', '1555124079', '1555127399', '0'); +INSERT INTO `tao_comment` VALUES ('76', 'face[微笑] 好美呀,', '7', '3', '0', '0', '1555131857', '1555131857', '0'); + +-- ---------------------------- +-- Table structure for tao_friend_link +-- ---------------------------- +DROP TABLE IF EXISTS `tao_friend_link`; +CREATE TABLE `tao_friend_link` ( + `id` int(2) unsigned NOT NULL AUTO_INCREMENT COMMENT '友情链接id', + `linkname` varchar(10) NOT NULL COMMENT '链接名称', + `linksrc` varchar(60) NOT NULL COMMENT '链接地址', + `linkimg` varchar(60) NOT NULL COMMENT '链接图片', + `creat_time` int(10) NOT NULL COMMENT '创建时间', + `update_time` int(10) NOT NULL COMMENT '更新时间', + `delete_time` int(10) NOT NULL, + PRIMARY KEY (`id`) +) ENGINE=MyISAM AUTO_INCREMENT=4 DEFAULT CHARSET=utf8; + +-- ---------------------------- +-- Records of tao_friend_link +-- ---------------------------- +INSERT INTO `tao_friend_link` VALUES ('1', 'ThinkPHP', 'https://www.thinkphp.cn', '', '0', '0', '0'); +INSERT INTO `tao_friend_link` VALUES ('2', 'Layui', 'https://www.layui.com', '', '0', '0', '0'); +INSERT INTO `tao_friend_link` VALUES ('3', 'TaoLer', 'http://www.aieok.com', '', '0', '0', '0'); + +-- ---------------------------- +-- Table structure for tao_mail_server +-- ---------------------------- +DROP TABLE IF EXISTS `tao_mail_server`; +CREATE TABLE `tao_mail_server` ( + `id` int(11) NOT NULL AUTO_INCREMENT, + `mail` varchar(50) NOT NULL COMMENT '邮箱设置', + `host` varchar(50) NOT NULL COMMENT '邮箱服务地址', + `port` tinyint(2) NOT NULL COMMENT '邮箱端口', + `nickname` varchar(20) NOT NULL DEFAULT '' COMMENT '昵称', + `password` varchar(16) NOT NULL COMMENT '邮箱密码', + `create_time` int(11) NOT NULL COMMENT '创建时间', + PRIMARY KEY (`id`) +) ENGINE=MyISAM AUTO_INCREMENT=2 DEFAULT CHARSET=utf8; + +-- ---------------------------- +-- Records of tao_mail_server +-- ---------------------------- +INSERT INTO `tao_mail_server` VALUES ('1', 'xxx@aliyun.com', 'smtp.aliyun.com', '25', '', '', '0'); + +-- ---------------------------- +-- Table structure for tao_slider +-- ---------------------------- +DROP TABLE IF EXISTS `tao_slider`; +CREATE TABLE `tao_slider` ( + `id` int(2) NOT NULL AUTO_INCREMENT COMMENT '自增ID', + `slid_name` varchar(30) NOT NULL COMMENT '幻灯名', + `slid_type` tinyint(1) NOT NULL DEFAULT '1' COMMENT '类型', + `slid_img` varchar(70) NOT NULL COMMENT '幻灯图片地址', + `slid_href` varchar(70) NOT NULL COMMENT '链接', + `slid_start` int(11) NOT NULL COMMENT '开始时间', + `slid_over` int(11) NOT NULL COMMENT '结束时间', + `slid_status` enum('1','0') NOT NULL DEFAULT '1' COMMENT '1投放0仓库', + `create_time` int(11) NOT NULL COMMENT '创建时间', + `update_time` int(11) NOT NULL COMMENT '更新时间', + `delete_time` int(11) NOT NULL COMMENT '删除时间', + PRIMARY KEY (`id`) +) ENGINE=MyISAM AUTO_INCREMENT=6 DEFAULT CHARSET=utf8; + +-- ---------------------------- +-- Records of tao_slider +-- ---------------------------- +INSERT INTO `tao_slider` VALUES ('1', 'CODING', '1', '/uploads/images/F1.jpg', '#', '1574870400', '1575043200', '1', '0', '0', '0'); +INSERT INTO `tao_slider` VALUES ('2', '无人机', '1', '/uploads/images/F2.jpg', 'www.taobao.com', '-28800', '1606665600', '1', '0', '0', '0'); +INSERT INTO `tao_slider` VALUES ('3', 'keji', '2', '/storage/slider/20191210/6e6486b81a5b07be4425b676513b0334.jpg', 'http://www.baidu.com', '1571155200', '1577721600', '1', '0', '0', '0'); +INSERT INTO `tao_slider` VALUES ('4', '科技', '3', '/storage/slider/20191210/d35a49fda5839d4b27f65076fb57b7f2.jpg', '4', '1575907200', '1609344000', '1', '0', '0', '0'); +INSERT INTO `tao_slider` VALUES ('5', '科学', '4', '/storage/slider/20191210/e87f15527f32e690538671753010fd00.jpg', '大', '-28800', '1609344000', '1', '0', '0', '0'); + +-- ---------------------------- +-- Table structure for tao_system +-- ---------------------------- +DROP TABLE IF EXISTS `tao_system`; +CREATE TABLE `tao_system` ( + `id` tinyint(2) NOT NULL AUTO_INCREMENT COMMENT '主键', + `webname` varchar(20) NOT NULL COMMENT '网站名称', + `webtitle` varchar(30) NOT NULL, + `domain` varchar(50) NOT NULL, + `logo` varchar(70) NOT NULL COMMENT '网站logo', + `copyright` varchar(80) NOT NULL COMMENT '版权', + `keywords` tinytext NOT NULL COMMENT '网站关键字', + `descript` tinytext NOT NULL COMMENT '网站描述', + `is_open` tinyint(4) NOT NULL COMMENT '是否开启站点1开启0关闭', + `is_comment` tinyint(4) NOT NULL COMMENT '是否开启评论1开启0关闭', + `is_reg` tinyint(4) NOT NULL COMMENT '是否开放注册1开启0禁止', + `icp` varchar(50) NOT NULL COMMENT '备案', + `blackname` varchar(255) NOT NULL COMMENT '注册黑名单', + `sys_version_num` varchar(5) NOT NULL COMMENT '系统版本', + `key` varchar(60) DEFAULT NULL COMMENT 'key', + `base_url` varchar(50) NOT NULL DEFAULT '', + `upcheck_url` varchar(255) NOT NULL COMMENT '版本检测', + `upgrade_url` varchar(255) NOT NULL COMMENT '升级地址', + `create_time` int(10) NOT NULL COMMENT '创建时间', + `update_time` int(10) NOT NULL COMMENT '更新时间', + `delete_time` int(10) NOT NULL, + PRIMARY KEY (`id`) +) ENGINE=MyISAM AUTO_INCREMENT=2 DEFAULT CHARSET=utf8 COMMENT='系统配置表'; + +-- ---------------------------- +-- Records of tao_system +-- ---------------------------- +INSERT INTO `tao_system` VALUES ('1', 'TaoLer社区', '淘宝卖家交流平台', 'http://www.tp6.com', '/storage/logo/20191024/a5671b2c16a37ec8587f31989dab1177.png', 'aieok.com 版权所有', '淘宝,卖家,TaoLer社区', '这是一个社区论坛', '1', '1', '1', '0.0.0.0', '管理员|admin|审核员|超级|垃圾', '1.1.1', '', 'http://www.aieok.com/api/index/cy', 'http://www.aieok.com/api/upload/check', 'http://www.aieok.com/api/upload/api', '0', '1577419197', '0'); + +-- ---------------------------- +-- Table structure for tao_user +-- ---------------------------- +DROP TABLE IF EXISTS `tao_user`; +CREATE TABLE `tao_user` ( + `id` int(11) NOT NULL AUTO_INCREMENT COMMENT '用户ID', + `name` varchar(16) NOT NULL COMMENT '用户名', + `password` varchar(32) NOT NULL COMMENT '密码', + `phone` varchar(11) NOT NULL COMMENT '手机', + `email` varchar(50) NOT NULL COMMENT '邮箱', + `nickname` varchar(16) NOT NULL COMMENT '昵称', + `city` varchar(50) NOT NULL COMMENT '归属地', + `sex` enum('0','1') NOT NULL DEFAULT '0' COMMENT '性别0男1女', + `sign` varchar(255) NOT NULL COMMENT '签名', + `user_img` varbinary(70) NOT NULL COMMENT '头像', + `auth` enum('1','0') NOT NULL DEFAULT '0' COMMENT '0普通1超级', + `point` tinyint(11) NOT NULL DEFAULT '0' COMMENT '积分', + `area_id` int(11) NOT NULL COMMENT '用户所属区域ID', + `status` enum('0','1') NOT NULL DEFAULT '1' COMMENT '1启用0禁用', + `vip` tinyint(1) DEFAULT NULL COMMENT 'vip', + `last_login_ip` varchar(70) NOT NULL COMMENT '最后登陆ip', + `last_login_time` int(11) NOT NULL COMMENT '最后登陆时间', + `login_error_num` tinyint(1) NOT NULL DEFAULT '0' COMMENT '登陆错误次数', + `login_error_time` int(11) NOT NULL COMMENT '登陆错误时间', + `login_error_lock` tinyint(1) NOT NULL DEFAULT '0' COMMENT '登陆锁定0正常1锁定', + `create_time` int(11) NOT NULL COMMENT '创建时间', + `update_time` int(11) NOT NULL COMMENT '修改时间', + `delete_time` int(11) NOT NULL COMMENT '删除时间', + PRIMARY KEY (`id`) +) ENGINE=MyISAM AUTO_INCREMENT=38 DEFAULT CHARSET=utf8; + +-- ---------------------------- +-- Records of tao_user +-- ---------------------------- +INSERT INTO `tao_user` VALUES ('1', 'aieok', '7596a5c80d28bf147aae75b3b6f02f1a', '2147483647', 'xxx@qq.com', '管理员', '北京市', '1', '这是我的第一个TP5系统,2019北京。OK! OK!ok@', 0x2F73746F726167652F686561645F7069632F32303139313231372F39343036636334623866336538323731613238616339646239353339333766352E6A7067, '1', '12', '1', '1', null, '127.0.0.1', '0', '0', '0', '0', '1555892325', '1577420182', '0'); +INSERT INTO `tao_user` VALUES ('2', 'liudong', '', '2147483647', 'liudong@qq.com', '刘冬', '上海', '0', '在', 0x2F7374617469632F7265732F696D616765732F6176617461722F30302E6A7067, '0', '0', '2', '1', null, '', '0', '0', '0', '0', '1555892355', '1546176176', '0'); +INSERT INTO `tao_user` VALUES ('3', 'shenlu', '', '13512345678', 'shenlu@qq.com', '沈璐', '杭州', '0', '沈璐沈璐沈璐沈璐沈璐是一个美女', 0x2F7374617469632F7265732F696D616765732F6176617461722F302E6A7067, '0', '0', '3', '1', null, '', '0', '0', '0', '0', '1555882325', '1547700180', '0'); +INSERT INTO `tao_user` VALUES ('4', '张志', '', '13513615898', 'zhangzhi@qq.com', '张志', '深圳', '0', '在一', 0x2F7374617469632F7265732F696D616765732F6176617461722F312E6A7067, '0', '0', '1', '1', null, '', '0', '0', '0', '0', '1555892336', '1551182521', '0'); +INSERT INTO `tao_user` VALUES ('5', '王龙', '', '0', 'wanglong@qq.com', 'long', '纽约', '1', '', 0x2F7374617469632F7265732F696D616765732F6176617461722F322E6A7067, '0', '0', '2', '0', null, '', '0', '0', '0', '0', '1555892347', '1555890307', '0'); +INSERT INTO `tao_user` VALUES ('6', '贺青', '', '0', 'heqing@qq.com', '贺青', '巴黎', '0', '', 0x2F7374617469632F7265732F696D616765732F6176617461722F332E6A7067, '0', '0', '3', '1', null, '', '0', '0', '0', '0', '1555893525', '1555892325', '0'); +INSERT INTO `tao_user` VALUES ('7', '李可', '', '0', 'keke@qq.com', '可可', '', '1', '', 0x2F7374617469632F7265732F696D616765732F6176617461722F342E6A7067, '0', '2', '0', '1', null, '', '0', '0', '0', '0', '1555892374', '1569247195', '0'); +INSERT INTO `tao_user` VALUES ('8', '飞儿', '', '2147483647', 'fei@qq.com', '飞儿', '', '0', '', 0x2F7374617469632F7265732F696D616765732F6176617461722F352E6A7067, '0', '0', '0', '1', null, '', '0', '0', '0', '0', '1555892388', '1576558484', '1576558484'); + +-- ---------------------------- +-- Table structure for tao_user_area +-- ---------------------------- +DROP TABLE IF EXISTS `tao_user_area`; +CREATE TABLE `tao_user_area` ( + `id` int(11) NOT NULL AUTO_INCREMENT COMMENT '自增id', + `area` varchar(10) NOT NULL COMMENT '所属区域', + `asing` varchar(2) NOT NULL COMMENT '区域简称', + `create_time` int(11) NOT NULL, + `update_time` int(11) NOT NULL, + `delete_time` int(11) NOT NULL, + PRIMARY KEY (`id`) +) ENGINE=MyISAM AUTO_INCREMENT=4 DEFAULT CHARSET=utf8; + +-- ---------------------------- +-- Records of tao_user_area +-- ---------------------------- +INSERT INTO `tao_user_area` VALUES ('1', '北京', '京', '0', '0', '0'); +INSERT INTO `tao_user_area` VALUES ('2', '上海', '沪', '0', '0', '0'); +INSERT INTO `tao_user_area` VALUES ('3', '广州', '粤', '0', '0', '0'); + +-- ---------------------------- +-- Table structure for tao_user_sign +-- ---------------------------- +DROP TABLE IF EXISTS `tao_user_sign`; +CREATE TABLE `tao_user_sign` ( + `id` int(11) unsigned NOT NULL AUTO_INCREMENT, + `uid` int(11) unsigned NOT NULL COMMENT '用户id', + `days` tinyint(2) unsigned NOT NULL DEFAULT '0' COMMENT '连续签到的天数', + `is_share` tinyint(1) unsigned NOT NULL DEFAULT '0' COMMENT '是否分享过', + `is_sign` tinyint(1) unsigned NOT NULL DEFAULT '0' COMMENT '是否签到过', + `stime` int(11) unsigned NOT NULL DEFAULT '0' COMMENT '签到的时间', + `create_time` int(11) NOT NULL COMMENT '创建时间', + PRIMARY KEY (`id`) +) ENGINE=MyISAM AUTO_INCREMENT=25 DEFAULT CHARSET=utf8 COMMENT='用户签到表'; + +-- ---------------------------- +-- Records of tao_user_sign +-- ---------------------------- +INSERT INTO `tao_user_sign` VALUES ('16', '2', '1', '0', '0', '1558750514', '0'); +INSERT INTO `tao_user_sign` VALUES ('18', '1', '1', '0', '0', '1558750797', '0'); +INSERT INTO `tao_user_sign` VALUES ('19', '1', '1', '0', '0', '1566911693', '0'); +INSERT INTO `tao_user_sign` VALUES ('20', '1', '1', '0', '0', '1568346096', '0'); +INSERT INTO `tao_user_sign` VALUES ('21', '1', '1', '0', '0', '1568515766', '0'); +INSERT INTO `tao_user_sign` VALUES ('22', '1', '1', '0', '0', '1569245600', '0'); +INSERT INTO `tao_user_sign` VALUES ('23', '36', '1', '0', '0', '1569247195', '0'); +INSERT INTO `tao_user_sign` VALUES ('24', '1', '1', '0', '0', '1574650402', '0'); + +-- ---------------------------- +-- Table structure for tao_user_signrule +-- ---------------------------- +DROP TABLE IF EXISTS `tao_user_signrule`; +CREATE TABLE `tao_user_signrule` ( + `id` int(2) unsigned NOT NULL AUTO_INCREMENT, + `days` int(5) unsigned NOT NULL COMMENT '连续天数', + `score` int(3) unsigned NOT NULL DEFAULT '0' COMMENT '积分', + PRIMARY KEY (`id`) +) ENGINE=MyISAM AUTO_INCREMENT=13 DEFAULT CHARSET=utf8 COMMENT='用户签到积分规则'; + +-- ---------------------------- +-- Records of tao_user_signrule +-- ---------------------------- +INSERT INTO `tao_user_signrule` VALUES ('1', '1', '2'); +INSERT INTO `tao_user_signrule` VALUES ('2', '3', '3'); +INSERT INTO `tao_user_signrule` VALUES ('3', '5', '5'); + +-- ---------------------------- +-- Table structure for tao_user_zan +-- ---------------------------- +DROP TABLE IF EXISTS `tao_user_zan`; +CREATE TABLE `tao_user_zan` ( + `id` int(11) NOT NULL AUTO_INCREMENT COMMENT '点赞主键id', + `comment_id` int(11) NOT NULL COMMENT '评论id', + `user_id` int(11) NOT NULL COMMENT '用户id', + `create_time` int(11) NOT NULL COMMENT '点赞时间', + PRIMARY KEY (`id`) +) ENGINE=MyISAM AUTO_INCREMENT=46 DEFAULT CHARSET=utf8; + +-- ---------------------------- +-- Records of tao_user_zan +-- ---------------------------- diff --git a/app/middleware.php b/app/middleware.php new file mode 100644 index 0000000..c8d321e --- /dev/null +++ b/app/middleware.php @@ -0,0 +1,10 @@ +pathinfo()); + $response = $next($request); + + if($request->controller() !== 'Login' && $request->action() !=='logout') + { + //登陆检验 + if (!Session::has('admin_id')) { + return redirect('/admin/login/index'); + } + $app = app('http')->getName(); + $controller = $request->controller(); + $action = $request->action(); + + // 排除权限 + $not_check = ['admin/Index/index','admin/Index/home','admin/Set/info','admin/Set/password','admin/User/logout']; + + if (!in_array($app . '/' . $controller . '/' . $action, $not_check)) { + $auth = new UserAuth(); + $admin_id = Session::get('admin_id'); + + if (!$auth->check($app . '/' . $controller . '/' . $action, $admin_id) && $admin_id != 1) { + //return response(''); + return response('没有权限'); + } + } + } + + return $response; + } + + +} diff --git a/app/middleware/CheckRegister.php b/app/middleware/CheckRegister.php new file mode 100644 index 0000000..ad91129 --- /dev/null +++ b/app/middleware/CheckRegister.php @@ -0,0 +1,23 @@ +action(true)=='reg'){ + $disname = Db::name('system')->where('id',1)->value('blackname'); + $data = explode("|",$disname); + foreach($data as $v){ + if ($request->param('name') == $v) { + return json(['msg'=>'该用户名禁止注册,请更换名称']); + } + } + } + return $next($request); + } +} diff --git a/app/middleware/LogedCheck.php b/app/middleware/LogedCheck.php new file mode 100644 index 0000000..20df583 --- /dev/null +++ b/app/middleware/LogedCheck.php @@ -0,0 +1,16 @@ + Request::class, + 'think\exception\Handle' => ExceptionHandle::class, +]; diff --git a/build.example.php b/build.example.php new file mode 100644 index 0000000..0f2222f --- /dev/null +++ b/build.example.php @@ -0,0 +1,26 @@ + +// +---------------------------------------------------------------------- + +/** + * php think build 自动生成应用的目录结构的定义示例 + */ +return [ + // 需要自动创建的文件 + '__file__' => [], + // 需要自动创建的目录 + '__dir__' => ['controller', 'model', 'view'], + // 需要自动创建的控制器 + 'controller' => ['Index'], + // 需要自动创建的模型 + 'model' => ['User'], + // 需要自动创建的模板 + 'view' => ['index/index'], +]; diff --git a/composer.json b/composer.json new file mode 100644 index 0000000..254569d --- /dev/null +++ b/composer.json @@ -0,0 +1,49 @@ +{ + "name": "topthink/think", + "description": "the new thinkphp framework", + "type": "project", + "keywords": [ + "framework", + "thinkphp", + "ORM" + ], + "homepage": "http://thinkphp.cn/", + "license": "Apache-2.0", + "authors": [ + { + "name": "liu21st", + "email": "liu21st@gmail.com" + } + ], + "require": { + "php": ">=7.1.0", + "topthink/framework": "6.0.*-dev", + "topthink/think-orm": "2.0.*-dev", + "topthink/think-view": "^1.0", + "topthink/think-multi-app": "^1.0", + "topthink/think-captcha": "^3.0", + "xiaodi/think-auth": "^3.0", + "phpmailer/phpmailer": "^6.1" + }, + "require-dev": { + "symfony/var-dumper": "^4.2", + "topthink/think-trace":"^1.0" + }, + "autoload": { + "psr-4": { + "app\\": "app" + }, + "psr-0": { + "": "extend/" + } + }, + "config": { + "preferred-install": "dist" + }, + "scripts": { + "post-autoload-dump": [ + "@php think service:discover", + "@php think vendor:publish" + ] + } +} diff --git a/composer.lock b/composer.lock new file mode 100644 index 0000000..611e647 --- /dev/null +++ b/composer.lock @@ -0,0 +1,1176 @@ +{ + "_readme": [ + "This file locks the dependencies of your project to a known state", + "Read more about it at https://getcomposer.org/doc/01-basic-usage.md#installing-dependencies", + "This file is @generated automatically" + ], + "content-hash": "5a265ecc15ad9efdc9addab19cbb739a", + "packages": [ + { + "name": "league/flysystem", + "version": "1.0.62", + "source": { + "type": "git", + "url": "https://github.com/thephpleague/flysystem.git", + "reference": "14dd5d7dff5fbc29ca9a2a53ff109760e40d91a0" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/thephpleague/flysystem/zipball/14dd5d7dff5fbc29ca9a2a53ff109760e40d91a0", + "reference": "14dd5d7dff5fbc29ca9a2a53ff109760e40d91a0", + "shasum": "", + "mirrors": [ + { + "url": "https://mirrors.aliyun.com/composer/dists/%package%/%reference%.%type%", + "preferred": true + } + ] + }, + "require": { + "ext-fileinfo": "*", + "php": ">=5.5.9" + }, + "conflict": { + "league/flysystem-sftp": "<1.0.6" + }, + "require-dev": { + "phpspec/phpspec": "^3.4", + "phpunit/phpunit": "^5.7.10" + }, + "suggest": { + "ext-fileinfo": "Required for MimeType", + "ext-ftp": "Allows you to use FTP server storage", + "ext-openssl": "Allows you to use FTPS server storage", + "league/flysystem-aws-s3-v2": "Allows you to use S3 storage with AWS SDK v2", + "league/flysystem-aws-s3-v3": "Allows you to use S3 storage with AWS SDK v3", + "league/flysystem-azure": "Allows you to use Windows Azure Blob storage", + "league/flysystem-cached-adapter": "Flysystem adapter decorator for metadata caching", + "league/flysystem-eventable-filesystem": "Allows you to use EventableFilesystem", + "league/flysystem-rackspace": "Allows you to use Rackspace Cloud Files", + "league/flysystem-sftp": "Allows you to use SFTP server storage via phpseclib", + "league/flysystem-webdav": "Allows you to use WebDAV storage", + "league/flysystem-ziparchive": "Allows you to use ZipArchive adapter", + "spatie/flysystem-dropbox": "Allows you to use Dropbox storage", + "srmklive/flysystem-dropbox-v2": "Allows you to use Dropbox storage for PHP 5 applications" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.1-dev" + } + }, + "autoload": { + "psr-4": { + "League\\Flysystem\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Frank de Jonge", + "email": "info@frenky.net" + } + ], + "description": "Filesystem abstraction: Many filesystems, one API.", + "keywords": [ + "Cloud Files", + "WebDAV", + "abstraction", + "aws", + "cloud", + "copy.com", + "dropbox", + "file systems", + "files", + "filesystem", + "filesystems", + "ftp", + "rackspace", + "remote", + "s3", + "sftp", + "storage" + ], + "time": "2019-12-29T14:46:55+00:00" + }, + { + "name": "league/flysystem-cached-adapter", + "version": "1.0.9", + "source": { + "type": "git", + "url": "https://github.com/thephpleague/flysystem-cached-adapter.git", + "reference": "08ef74e9be88100807a3b92cc9048a312bf01d6f" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/thephpleague/flysystem-cached-adapter/zipball/08ef74e9be88100807a3b92cc9048a312bf01d6f", + "reference": "08ef74e9be88100807a3b92cc9048a312bf01d6f", + "shasum": "", + "mirrors": [ + { + "url": "https://mirrors.aliyun.com/composer/dists/%package%/%reference%.%type%", + "preferred": true + } + ] + }, + "require": { + "league/flysystem": "~1.0", + "psr/cache": "^1.0.0" + }, + "require-dev": { + "mockery/mockery": "~0.9", + "phpspec/phpspec": "^3.4", + "phpunit/phpunit": "^5.7", + "predis/predis": "~1.0", + "tedivm/stash": "~0.12" + }, + "suggest": { + "ext-phpredis": "Pure C implemented extension for PHP" + }, + "type": "library", + "autoload": { + "psr-4": { + "League\\Flysystem\\Cached\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "frankdejonge", + "email": "info@frenky.net" + } + ], + "description": "An adapter decorator to enable meta-data caching.", + "time": "2018-07-09T20:51:04+00:00" + }, + { + "name": "opis/closure", + "version": "3.5.1", + "source": { + "type": "git", + "url": "https://github.com/opis/closure.git", + "reference": "93ebc5712cdad8d5f489b500c59d122df2e53969" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/opis/closure/zipball/93ebc5712cdad8d5f489b500c59d122df2e53969", + "reference": "93ebc5712cdad8d5f489b500c59d122df2e53969", + "shasum": "", + "mirrors": [ + { + "url": "https://mirrors.aliyun.com/composer/dists/%package%/%reference%.%type%", + "preferred": true + } + ] + }, + "require": { + "php": "^5.4 || ^7.0" + }, + "require-dev": { + "jeremeamia/superclosure": "^2.0", + "phpunit/phpunit": "^4.0 || ^5.0 || ^6.0 || ^7.0" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "3.5.x-dev" + } + }, + "autoload": { + "psr-4": { + "Opis\\Closure\\": "src/" + }, + "files": [ + "functions.php" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Marius Sarca", + "email": "marius.sarca@gmail.com" + }, + { + "name": "Sorin Sarca", + "email": "sarca_sorin@hotmail.com" + } + ], + "description": "A library that can be used to serialize closures (anonymous functions) and arbitrary objects.", + "homepage": "https://opis.io/closure", + "keywords": [ + "anonymous functions", + "closure", + "function", + "serializable", + "serialization", + "serialize" + ], + "time": "2019-11-29T22:36:02+00:00" + }, + { + "name": "phpmailer/phpmailer", + "version": "v6.1.4", + "source": { + "type": "git", + "url": "https://github.com/PHPMailer/PHPMailer.git", + "reference": "c5e61d0729507049cec9673aa1a679f9adefd683" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/PHPMailer/PHPMailer/zipball/c5e61d0729507049cec9673aa1a679f9adefd683", + "reference": "c5e61d0729507049cec9673aa1a679f9adefd683", + "shasum": "", + "mirrors": [ + { + "url": "https://mirrors.aliyun.com/composer/dists/%package%/%reference%.%type%", + "preferred": true + } + ] + }, + "require": { + "ext-ctype": "*", + "ext-filter": "*", + "php": ">=5.5.0" + }, + "require-dev": { + "doctrine/annotations": "^1.2", + "friendsofphp/php-cs-fixer": "^2.2", + "phpunit/phpunit": "^4.8 || ^5.7" + }, + "suggest": { + "ext-mbstring": "Needed to send email in multibyte encoding charset", + "hayageek/oauth2-yahoo": "Needed for Yahoo XOAUTH2 authentication", + "league/oauth2-google": "Needed for Google XOAUTH2 authentication", + "psr/log": "For optional PSR-3 debug logging", + "stevenmaguire/oauth2-microsoft": "Needed for Microsoft XOAUTH2 authentication", + "symfony/polyfill-mbstring": "To support UTF-8 if the Mbstring PHP extension is not enabled (^1.2)" + }, + "type": "library", + "autoload": { + "psr-4": { + "PHPMailer\\PHPMailer\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "LGPL-2.1-only" + ], + "authors": [ + { + "name": "Marcus Bointon", + "email": "phpmailer@synchromedia.co.uk" + }, + { + "name": "Jim Jagielski", + "email": "jimjag@gmail.com" + }, + { + "name": "Andy Prevost", + "email": "codeworxtech@users.sourceforge.net" + }, + { + "name": "Brent R. Matzelle" + } + ], + "description": "PHPMailer is a full-featured email creation and transfer class for PHP", + "time": "2019-12-10T11:17:38+00:00" + }, + { + "name": "psr/cache", + "version": "1.0.1", + "source": { + "type": "git", + "url": "https://github.com/php-fig/cache.git", + "reference": "d11b50ad223250cf17b86e38383413f5a6764bf8" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/php-fig/cache/zipball/d11b50ad223250cf17b86e38383413f5a6764bf8", + "reference": "d11b50ad223250cf17b86e38383413f5a6764bf8", + "shasum": "", + "mirrors": [ + { + "url": "https://mirrors.aliyun.com/composer/dists/%package%/%reference%.%type%", + "preferred": true + } + ] + }, + "require": { + "php": ">=5.3.0" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.0.x-dev" + } + }, + "autoload": { + "psr-4": { + "Psr\\Cache\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "PHP-FIG", + "homepage": "http://www.php-fig.org/" + } + ], + "description": "Common interface for caching libraries", + "keywords": [ + "cache", + "psr", + "psr-6" + ], + "time": "2016-08-06T20:24:11+00:00" + }, + { + "name": "psr/container", + "version": "1.0.0", + "source": { + "type": "git", + "url": "https://github.com/php-fig/container.git", + "reference": "b7ce3b176482dbbc1245ebf52b181af44c2cf55f" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/php-fig/container/zipball/b7ce3b176482dbbc1245ebf52b181af44c2cf55f", + "reference": "b7ce3b176482dbbc1245ebf52b181af44c2cf55f", + "shasum": "", + "mirrors": [ + { + "url": "https://mirrors.aliyun.com/composer/dists/%package%/%reference%.%type%", + "preferred": true + } + ] + }, + "require": { + "php": ">=5.3.0" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.0.x-dev" + } + }, + "autoload": { + "psr-4": { + "Psr\\Container\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "PHP-FIG", + "homepage": "http://www.php-fig.org/" + } + ], + "description": "Common Container Interface (PHP FIG PSR-11)", + "homepage": "https://github.com/php-fig/container", + "keywords": [ + "PSR-11", + "container", + "container-interface", + "container-interop", + "psr" + ], + "time": "2017-02-14T16:28:37+00:00" + }, + { + "name": "psr/log", + "version": "1.1.2", + "source": { + "type": "git", + "url": "https://github.com/php-fig/log.git", + "reference": "446d54b4cb6bf489fc9d75f55843658e6f25d801" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/php-fig/log/zipball/446d54b4cb6bf489fc9d75f55843658e6f25d801", + "reference": "446d54b4cb6bf489fc9d75f55843658e6f25d801", + "shasum": "", + "mirrors": [ + { + "url": "https://mirrors.aliyun.com/composer/dists/%package%/%reference%.%type%", + "preferred": true + } + ] + }, + "require": { + "php": ">=5.3.0" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.1.x-dev" + } + }, + "autoload": { + "psr-4": { + "Psr\\Log\\": "Psr/Log/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "PHP-FIG", + "homepage": "http://www.php-fig.org/" + } + ], + "description": "Common interface for logging libraries", + "homepage": "https://github.com/php-fig/log", + "keywords": [ + "log", + "psr", + "psr-3" + ], + "time": "2019-11-01T11:05:21+00:00" + }, + { + "name": "psr/simple-cache", + "version": "1.0.1", + "source": { + "type": "git", + "url": "https://github.com/php-fig/simple-cache.git", + "reference": "408d5eafb83c57f6365a3ca330ff23aa4a5fa39b" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/php-fig/simple-cache/zipball/408d5eafb83c57f6365a3ca330ff23aa4a5fa39b", + "reference": "408d5eafb83c57f6365a3ca330ff23aa4a5fa39b", + "shasum": "", + "mirrors": [ + { + "url": "https://mirrors.aliyun.com/composer/dists/%package%/%reference%.%type%", + "preferred": true + } + ] + }, + "require": { + "php": ">=5.3.0" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.0.x-dev" + } + }, + "autoload": { + "psr-4": { + "Psr\\SimpleCache\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "PHP-FIG", + "homepage": "http://www.php-fig.org/" + } + ], + "description": "Common interfaces for simple caching", + "keywords": [ + "cache", + "caching", + "psr", + "psr-16", + "simple-cache" + ], + "time": "2017-10-23T01:57:42+00:00" + }, + { + "name": "topthink/framework", + "version": "6.0.x-dev", + "source": { + "type": "git", + "url": "https://github.com/top-think/framework.git", + "reference": "dbdf7e45e6c9a598017e15d3116c1cf96a87c0ae" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/top-think/framework/zipball/dbdf7e45e6c9a598017e15d3116c1cf96a87c0ae", + "reference": "dbdf7e45e6c9a598017e15d3116c1cf96a87c0ae", + "shasum": "", + "mirrors": [ + { + "url": "https://mirrors.aliyun.com/composer/dists/%package%/%reference%.%type%", + "preferred": true + } + ] + }, + "require": { + "ext-json": "*", + "ext-mbstring": "*", + "league/flysystem": "^1.0", + "league/flysystem-cached-adapter": "^1.0", + "opis/closure": "^3.1", + "php": ">=7.1.0", + "psr/container": "~1.0", + "psr/log": "~1.0", + "psr/simple-cache": "^1.0", + "topthink/think-helper": "^3.1.1", + "topthink/think-orm": "^2.0" + }, + "require-dev": { + "mikey179/vfsstream": "^1.6", + "mockery/mockery": "^1.2", + "phpunit/phpunit": "^7.0" + }, + "type": "library", + "autoload": { + "files": [], + "psr-4": { + "think\\": "src/think/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "Apache-2.0" + ], + "authors": [ + { + "name": "liu21st", + "email": "liu21st@gmail.com" + }, + { + "name": "yunwuxin", + "email": "448901948@qq.com" + } + ], + "description": "The ThinkPHP Framework.", + "homepage": "http://thinkphp.cn/", + "keywords": [ + "framework", + "orm", + "thinkphp" + ], + "time": "2019-12-28T14:12:22+00:00" + }, + { + "name": "topthink/think-captcha", + "version": "v3.0.2", + "source": { + "type": "git", + "url": "https://github.com/top-think/think-captcha.git", + "reference": "0b4305da19e118cefd934007875a8112f9352f01" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/top-think/think-captcha/zipball/0b4305da19e118cefd934007875a8112f9352f01", + "reference": "0b4305da19e118cefd934007875a8112f9352f01", + "shasum": "", + "mirrors": [ + { + "url": "https://mirrors.aliyun.com/composer/dists/%package%/%reference%.%type%", + "preferred": true + } + ] + }, + "require": { + "topthink/framework": "^6.0.0" + }, + "type": "library", + "extra": { + "think": { + "services": [ + "think\\captcha\\CaptchaService" + ], + "config": { + "captcha": "src/config.php" + } + } + }, + "autoload": { + "psr-4": { + "think\\captcha\\": "src/" + }, + "files": [ + "src/helper.php" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "Apache-2.0" + ], + "authors": [ + { + "name": "yunwuxin", + "email": "448901948@qq.com" + } + ], + "description": "captcha package for thinkphp", + "time": "2019-10-03T07:45:11+00:00" + }, + { + "name": "topthink/think-helper", + "version": "v3.1.3", + "source": { + "type": "git", + "url": "https://github.com/top-think/think-helper.git", + "reference": "4d85dfd3778623bbb1de3648f1dcd0c82f4439f4" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/top-think/think-helper/zipball/4d85dfd3778623bbb1de3648f1dcd0c82f4439f4", + "reference": "4d85dfd3778623bbb1de3648f1dcd0c82f4439f4", + "shasum": "", + "mirrors": [ + { + "url": "https://mirrors.aliyun.com/composer/dists/%package%/%reference%.%type%", + "preferred": true + } + ] + }, + "require": { + "php": ">=7.1.0" + }, + "type": "library", + "autoload": { + "psr-4": { + "think\\": "src" + }, + "files": [ + "src/helper.php" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "Apache-2.0" + ], + "authors": [ + { + "name": "yunwuxin", + "email": "448901948@qq.com" + } + ], + "description": "The ThinkPHP6 Helper Package", + "time": "2019-09-30T02:36:48+00:00" + }, + { + "name": "topthink/think-multi-app", + "version": "v1.0.11", + "source": { + "type": "git", + "url": "https://github.com/top-think/think-multi-app.git", + "reference": "215f4a6bb88e53ad41b448c61957336eb55ce6f9" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/top-think/think-multi-app/zipball/215f4a6bb88e53ad41b448c61957336eb55ce6f9", + "reference": "215f4a6bb88e53ad41b448c61957336eb55ce6f9", + "shasum": "", + "mirrors": [ + { + "url": "https://mirrors.aliyun.com/composer/dists/%package%/%reference%.%type%", + "preferred": true + } + ] + }, + "require": { + "php": ">=7.1.0", + "topthink/framework": "^6.0.0" + }, + "type": "library", + "extra": { + "think": { + "services": [ + "think\\app\\Service" + ] + } + }, + "autoload": { + "psr-4": { + "think\\app\\": "src" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "Apache-2.0" + ], + "authors": [ + { + "name": "liu21st", + "email": "liu21st@gmail.com" + } + ], + "description": "thinkphp6 multi app support", + "time": "2019-10-29T06:34:59+00:00" + }, + { + "name": "topthink/think-orm", + "version": "2.0.x-dev", + "source": { + "type": "git", + "url": "https://github.com/top-think/think-orm.git", + "reference": "444277e2acff186a8066a8a42912ebea01d948c5" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/top-think/think-orm/zipball/444277e2acff186a8066a8a42912ebea01d948c5", + "reference": "444277e2acff186a8066a8a42912ebea01d948c5", + "shasum": "", + "mirrors": [ + { + "url": "https://mirrors.aliyun.com/composer/dists/%package%/%reference%.%type%", + "preferred": true + } + ] + }, + "require": { + "ext-json": "*", + "php": ">=7.1.0", + "psr/log": "~1.0", + "psr/simple-cache": "^1.0", + "topthink/think-helper": "^3.1" + }, + "type": "library", + "autoload": { + "psr-4": { + "think\\": "src" + }, + "files": [] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "Apache-2.0" + ], + "authors": [ + { + "name": "liu21st", + "email": "liu21st@gmail.com" + } + ], + "description": "think orm", + "keywords": [ + "database", + "orm" + ], + "time": "2019-12-28T13:25:27+00:00" + }, + { + "name": "topthink/think-template", + "version": "v2.0.7", + "source": { + "type": "git", + "url": "https://github.com/top-think/think-template.git", + "reference": "e98bdbb4a4c94b442f17dfceba81e0134d4fbd19" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/top-think/think-template/zipball/e98bdbb4a4c94b442f17dfceba81e0134d4fbd19", + "reference": "e98bdbb4a4c94b442f17dfceba81e0134d4fbd19", + "shasum": "", + "mirrors": [ + { + "url": "https://mirrors.aliyun.com/composer/dists/%package%/%reference%.%type%", + "preferred": true + } + ] + }, + "require": { + "php": ">=7.1.0", + "psr/simple-cache": "^1.0" + }, + "type": "library", + "autoload": { + "psr-4": { + "think\\": "src" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "Apache-2.0" + ], + "authors": [ + { + "name": "liu21st", + "email": "liu21st@gmail.com" + } + ], + "description": "the php template engine", + "time": "2019-09-20T15:31:04+00:00" + }, + { + "name": "topthink/think-view", + "version": "v1.0.13", + "source": { + "type": "git", + "url": "https://github.com/top-think/think-view.git", + "reference": "90803b73f781db5d42619082c4597afc58b2d4c5" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/top-think/think-view/zipball/90803b73f781db5d42619082c4597afc58b2d4c5", + "reference": "90803b73f781db5d42619082c4597afc58b2d4c5", + "shasum": "", + "mirrors": [ + { + "url": "https://mirrors.aliyun.com/composer/dists/%package%/%reference%.%type%", + "preferred": true + } + ] + }, + "require": { + "php": ">=7.1.0", + "topthink/think-template": "^2.0" + }, + "type": "library", + "autoload": { + "psr-4": { + "think\\view\\driver\\": "src" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "Apache-2.0" + ], + "authors": [ + { + "name": "liu21st", + "email": "liu21st@gmail.com" + } + ], + "description": "thinkphp template driver", + "time": "2019-10-07T12:23:10+00:00" + }, + { + "name": "xiaodi/think-auth", + "version": "3.0.0", + "source": { + "type": "git", + "url": "https://github.com/edenleung/think-auth.git", + "reference": "1ab2e2f8b85bfe55bd218578660c8ec9b90d751c" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/edenleung/think-auth/zipball/1ab2e2f8b85bfe55bd218578660c8ec9b90d751c", + "reference": "1ab2e2f8b85bfe55bd218578660c8ec9b90d751c", + "shasum": "", + "mirrors": [ + { + "url": "https://mirrors.aliyun.com/composer/dists/%package%/%reference%.%type%", + "preferred": true + } + ] + }, + "require": { + "php": ">=7.1.0", + "topthink/framework": "6.0.*-dev" + }, + "type": "library", + "autoload": { + "psr-4": { + "xiaodi\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "Apache-2.0" + ], + "authors": [ + { + "name": "xiaodi", + "email": "758861884@qq.com" + } + ], + "description": "Auth Package For ThinkPHP 6.0", + "homepage": "https://github.com/xiaodit/think-auth", + "time": "2019-04-24T09:54:42+00:00" + } + ], + "packages-dev": [ + { + "name": "symfony/polyfill-mbstring", + "version": "v1.13.1", + "source": { + "type": "git", + "url": "https://github.com/symfony/polyfill-mbstring.git", + "reference": "7b4aab9743c30be783b73de055d24a39cf4b954f" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/polyfill-mbstring/zipball/7b4aab9743c30be783b73de055d24a39cf4b954f", + "reference": "7b4aab9743c30be783b73de055d24a39cf4b954f", + "shasum": "", + "mirrors": [ + { + "url": "https://mirrors.aliyun.com/composer/dists/%package%/%reference%.%type%", + "preferred": true + } + ] + }, + "require": { + "php": ">=5.3.3" + }, + "suggest": { + "ext-mbstring": "For best performance" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.13-dev" + } + }, + "autoload": { + "psr-4": { + "Symfony\\Polyfill\\Mbstring\\": "" + }, + "files": [ + "bootstrap.php" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Nicolas Grekas", + "email": "p@tchwork.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Symfony polyfill for the Mbstring extension", + "homepage": "https://symfony.com", + "keywords": [ + "compatibility", + "mbstring", + "polyfill", + "portable", + "shim" + ], + "time": "2019-11-27T14:18:11+00:00" + }, + { + "name": "symfony/polyfill-php72", + "version": "v1.13.1", + "source": { + "type": "git", + "url": "https://github.com/symfony/polyfill-php72.git", + "reference": "66fea50f6cb37a35eea048d75a7d99a45b586038" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/polyfill-php72/zipball/66fea50f6cb37a35eea048d75a7d99a45b586038", + "reference": "66fea50f6cb37a35eea048d75a7d99a45b586038", + "shasum": "", + "mirrors": [ + { + "url": "https://mirrors.aliyun.com/composer/dists/%package%/%reference%.%type%", + "preferred": true + } + ] + }, + "require": { + "php": ">=5.3.3" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.13-dev" + } + }, + "autoload": { + "psr-4": { + "Symfony\\Polyfill\\Php72\\": "" + }, + "files": [ + "bootstrap.php" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Nicolas Grekas", + "email": "p@tchwork.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Symfony polyfill backporting some PHP 7.2+ features to lower PHP versions", + "homepage": "https://symfony.com", + "keywords": [ + "compatibility", + "polyfill", + "portable", + "shim" + ], + "time": "2019-11-27T13:56:44+00:00" + }, + { + "name": "symfony/var-dumper", + "version": "v4.4.2", + "source": { + "type": "git", + "url": "https://github.com/symfony/var-dumper.git", + "reference": "be330f919bdb395d1e0c3f2bfb8948512d6bdd99" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/var-dumper/zipball/be330f919bdb395d1e0c3f2bfb8948512d6bdd99", + "reference": "be330f919bdb395d1e0c3f2bfb8948512d6bdd99", + "shasum": "", + "mirrors": [ + { + "url": "https://mirrors.aliyun.com/composer/dists/%package%/%reference%.%type%", + "preferred": true + } + ] + }, + "require": { + "php": "^7.1.3", + "symfony/polyfill-mbstring": "~1.0", + "symfony/polyfill-php72": "~1.5" + }, + "conflict": { + "phpunit/phpunit": "<4.8.35|<5.4.3,>=5.0", + "symfony/console": "<3.4" + }, + "require-dev": { + "ext-iconv": "*", + "symfony/console": "^3.4|^4.0|^5.0", + "symfony/process": "^4.4|^5.0", + "twig/twig": "^1.34|^2.4|^3.0" + }, + "suggest": { + "ext-iconv": "To convert non-UTF-8 strings to UTF-8 (or symfony/polyfill-iconv in case ext-iconv cannot be used).", + "ext-intl": "To show region name in time zone dump", + "symfony/console": "To use the ServerDumpCommand and/or the bin/var-dump-server script" + }, + "bin": [ + "Resources/bin/var-dump-server" + ], + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "4.4-dev" + } + }, + "autoload": { + "files": [ + "Resources/functions/dump.php" + ], + "psr-4": { + "Symfony\\Component\\VarDumper\\": "" + }, + "exclude-from-classmap": [ + "/Tests/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Nicolas Grekas", + "email": "p@tchwork.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Symfony mechanism for exploring and dumping PHP variables", + "homepage": "https://symfony.com", + "keywords": [ + "debug", + "dump" + ], + "time": "2019-12-18T13:41:29+00:00" + }, + { + "name": "topthink/think-trace", + "version": "v1.2", + "source": { + "type": "git", + "url": "https://github.com/top-think/think-trace.git", + "reference": "4589d06a07945d57478cc2236f4b23d51ff919cc" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/top-think/think-trace/zipball/4589d06a07945d57478cc2236f4b23d51ff919cc", + "reference": "4589d06a07945d57478cc2236f4b23d51ff919cc", + "shasum": "", + "mirrors": [ + { + "url": "https://mirrors.aliyun.com/composer/dists/%package%/%reference%.%type%", + "preferred": true + } + ] + }, + "require": { + "php": ">=7.1.0", + "topthink/framework": "^6.0.0" + }, + "type": "library", + "extra": { + "think": { + "services": [ + "think\\trace\\Service" + ], + "config": { + "trace": "src/config.php" + } + } + }, + "autoload": { + "psr-4": { + "think\\trace\\": "src" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "Apache-2.0" + ], + "authors": [ + { + "name": "liu21st", + "email": "liu21st@gmail.com" + } + ], + "description": "thinkphp debug trace", + "time": "2019-10-17T02:14:09+00:00" + } + ], + "aliases": [], + "minimum-stability": "stable", + "stability-flags": { + "topthink/framework": 20, + "topthink/think-orm": 20 + }, + "prefer-stable": false, + "prefer-lowest": false, + "platform": { + "php": ">=7.1.0" + }, + "platform-dev": [] +} diff --git a/config/app.php b/config/app.php new file mode 100644 index 0000000..18feded --- /dev/null +++ b/config/app.php @@ -0,0 +1,38 @@ + Env::get('app.host', ''), + // 应用的命名空间 + 'app_namespace' => '', + // 是否启用路由 + 'with_route' => true, + // 是否启用事件 + 'with_event' => true, + // 开启应用快速访问 + 'app_express' => true, + // 默认应用 + 'default_app' => 'index', + // 默认时区 + 'default_timezone' => 'Asia/Shanghai', + + // 应用映射(自动多应用模式有效) + 'app_map' => [], + // 域名绑定(自动多应用模式有效) + 'domain_bind' => [], + // 禁止URL访问的应用列表(自动多应用模式有效) + 'deny_app_list' => [], + + // 异常页面的模板文件 + 'exception_tmpl' => app()->getThinkPath() . 'tpl/think_exception.tpl', + + // 错误显示信息,非调试模式有效 + 'error_message' => '页面错误!请稍后再试~', + // 显示错误信息 + 'show_error_msg' => false, +]; diff --git a/config/cache.php b/config/cache.php new file mode 100644 index 0000000..dd492df --- /dev/null +++ b/config/cache.php @@ -0,0 +1,30 @@ + Env::get('cache.driver', 'file'), + + // 缓存连接方式配置 + 'stores' => [ + 'file' => [ + // 驱动方式 + 'type' => 'File', + // 缓存保存目录 + 'path' => '', + // 缓存前缀 + 'prefix' => '', + // 缓存有效期 0表示永久缓存 + 'expire' => 0, + // 缓存标签前缀 + 'tag_prefix' => 'tag:', + // 序列化机制 例如 ['serialize', 'unserialize'] + 'serialize' => [], + ], + // 更多的缓存连接 + ], +]; diff --git a/config/captcha.php b/config/captcha.php new file mode 100644 index 0000000..208663d --- /dev/null +++ b/config/captcha.php @@ -0,0 +1,40 @@ + 6, + // 验证码字符集合 + 'codeSet' => '2345678abcdefhijkmnpqrstuvwxyzABCDEFGHJKLMNPQRTUVWXY', + // 验证码过期时间 + 'expire' => 1800, + // 是否使用中文验证码 + 'useZh' => false, + // 是否使用算术验证码 + 'math' => false, + // 是否使用背景图 + 'useImgBg' => false, + //验证码字符大小 + 'fontSize' => 14, + // 是否使用混淆曲线 + 'useCurve' => true, + //是否添加杂点 + 'useNoise' => true, + // 验证码字体 不设置则随机 + 'fontttf' => '', + //背景颜色 + 'bg' => [243, 251, 254], + // 验证码图片高度 + 'imageH' => 36, + // 验证码图片宽度 + 'imageW' => 0, + //算术验证码 + 'math' => true, + + // 添加额外的验证码设置 + verify => [ + 'length'=>6, + ], +]; diff --git a/config/console.php b/config/console.php new file mode 100644 index 0000000..a818a98 --- /dev/null +++ b/config/console.php @@ -0,0 +1,9 @@ + [ + ], +]; diff --git a/config/cookie.php b/config/cookie.php new file mode 100644 index 0000000..f728024 --- /dev/null +++ b/config/cookie.php @@ -0,0 +1,18 @@ + 0, + // cookie 保存路径 + 'path' => '/', + // cookie 有效域名 + 'domain' => '', + // cookie 启用安全传输 + 'secure' => false, + // httponly设置 + 'httponly' => false, + // 是否使用 setcookie + 'setcookie' => true, +]; diff --git a/config/database.php b/config/database.php new file mode 100644 index 0000000..fb2cb4f --- /dev/null +++ b/config/database.php @@ -0,0 +1,52 @@ + [], + // 自动写入时间戳字段 + // true为自动识别类型 false关闭 + // 字符串则明确指定时间字段类型 支持 int timestamp datetime date + 'auto_timestamp' => true, + // 时间字段取出后的默认时间格式 + 'datetime_format' => 'Y-m-d H:i:s', + // 数据库连接配置信息 + 'connections' => [ + 'mysql' => [ + // 数据库类型 + 'type' => 'mysql', + // 服务器地址 + 'hostname' => '127.0.0.1', + // 数据库名 + 'database' => '', + // 用户名 + 'username' => 'root', + // 密码 + 'password' => '', + // 端口 + 'hostport' => '3306', + // 数据库连接参数 + 'params' => [], + // 数据库编码默认采用utf8 + 'charset' => 'utf8', + // 数据库表前缀 + 'prefix' => 'tao_', + // 数据库部署方式:0 集中式(单一服务器),1 分布式(主从服务器) + 'deploy' => 0, + // 数据库读写是否分离 主从式有效 + 'rw_separate' => false, + // 读写分离后 主服务器数量 + 'master_num' => 1, + // 指定从服务器序号 + 'slave_no' => '', + // 是否严格检查字段是否存在 + 'fields_strict' => true, + // 是否需要断线重连 + 'break_reconnect' => false, + // 监听SQL + 'trigger_sql' => true, + // 开启字段缓存 + 'fields_cache' => false, + // 字段缓存路径 + 'schema_cache_path' => app()->getRuntimePath() . 'schema' . DIRECTORY_SEPARATOR, + ], + ], +]; \ No newline at end of file diff --git a/config/filesystem.php b/config/filesystem.php new file mode 100644 index 0000000..c95874c --- /dev/null +++ b/config/filesystem.php @@ -0,0 +1,37 @@ + Env::get('filesystem.driver', 'local'), + // 磁盘列表 + 'disks' => [ + 'local' => [ + 'type' => 'local', + 'root' => app()->getRuntimePath() . 'storage', + ], + 'public' => [ + // 磁盘类型 + 'type' => 'local', + // 磁盘路径 + 'root' => app()->getRootPath() . 'public/storage', + // 磁盘路径对应的外部URL路径 + 'url' => '/storage', + // 可见性 + 'visibility' => 'public', + ], + // 更多的磁盘配置信息 + + 'tmp' => [ + // 磁盘类型 + 'type' => 'local', + // 磁盘路径 + 'root' => app()->getRootPath() . 'tmp/web', + // 磁盘路径对应的外部URL路径 + 'url' => '/web', + // 可见性 + 'visibility' => 'tmp', + ], + ], +]; diff --git a/config/lang.php b/config/lang.php new file mode 100644 index 0000000..33232bd --- /dev/null +++ b/config/lang.php @@ -0,0 +1,27 @@ + Env::get('lang.default_lang', 'zh-cn'), + // 允许的语言列表 + 'allow_lang_list' => [], + // 多语言自动侦测变量名 + 'detect_var' => 'lang', + // 是否使用Cookie记录 + 'use_cookie' => true, + // 多语言cookie变量 + 'cookie_var' => 'think_lang', + // 扩展语言包 + 'extend_list' => [], + // Accept-Language转义为对应语言包名称 + 'accept_language' => [ + 'zh-hans-cn' => 'zh-cn', + ], + // 是否支持语言分组 + 'allow_group' => false, +]; diff --git a/config/log.php b/config/log.php new file mode 100644 index 0000000..5f7afcb --- /dev/null +++ b/config/log.php @@ -0,0 +1,46 @@ + Env::get('log.channel', 'file'), + // 日志记录级别 + 'level' => [], + // 日志类型记录的通道 ['error'=>'email',...] + 'type_channel' => [], + // 关闭全局日志写入 + 'close' => false, + // 全局日志处理 支持闭包 + 'processor' => null, + + // 日志通道列表 + 'channels' => [ + 'file' => [ + // 日志记录方式 + 'type' => 'File', + // 日志保存目录 + 'path' => '', + // 单文件日志写入 + 'single' => false, + // 独立日志级别 + 'apart_level' => [], + // 最大日志文件数量 + 'max_files' => 0, + // 使用JSON格式记录 + 'json' => false, + // 日志处理 + 'processor' => null, + // 关闭通道日志写入 + 'close' => false, + // 日志输出格式化 + 'format' => '[%s][%s] %s', + // 是否实时写入 + 'realtime_write' => false, + ], + // 其它日志通道配置 + ], + +]; diff --git a/config/middleware.php b/config/middleware.php new file mode 100644 index 0000000..b40354c --- /dev/null +++ b/config/middleware.php @@ -0,0 +1,11 @@ + [ + 'logedcheck' => \app\middleware\LogedCheck::class, + 'logincheck' => \app\middleware\LoginCheck::class, + ], + // 优先级设置,此数组中的中间件会按照数组中的顺序优先执行 + 'priority' => [], +]; diff --git a/config/route.php b/config/route.php new file mode 100644 index 0000000..288c8f1 --- /dev/null +++ b/config/route.php @@ -0,0 +1,51 @@ + '/', + // URL伪静态后缀 + 'url_html_suffix' => 'html', + // URL普通方式参数 用于自动生成 + 'url_common_param' => true, + // 是否开启路由延迟解析 + 'url_lazy_route' => false, + // 是否强制使用路由 + 'url_route_must' => false, + // 合并路由规则 + 'route_rule_merge' => false, + // 路由是否完全匹配 + 'route_complete_match' => false, + // 是否开启路由缓存 + 'route_check_cache' => false, + // 路由缓存连接参数 + 'route_cache_option' => [], + // 路由缓存Key + 'route_check_cache_key' => '', + // 访问控制器层名称 + 'controller_layer' => 'controller', + // 空控制器名 + 'empty_controller' => 'Error', + // 是否使用控制器后缀 + 'controller_suffix' => false, + // 默认的路由变量规则 + 'default_route_pattern' => '[\w\.]+', + // 是否开启请求缓存 true自动缓存 支持设置请求缓存规则 + 'request_cache' => false, + // 请求缓存有效期 + 'request_cache_expire' => null, + // 全局请求缓存排除规则 + 'request_cache_except' => [], + // 默认控制器名 + 'default_controller' => 'Index', + // 默认操作名 + 'default_action' => 'index', + // 操作方法后缀 + 'action_suffix' => '', + // 默认JSONP格式返回的处理方法 + 'default_jsonp_handler' => 'jsonpReturn', + // 默认JSONP处理方法 + 'var_jsonp_handler' => 'callback', +]; diff --git a/config/session.php b/config/session.php new file mode 100644 index 0000000..c1ef6e1 --- /dev/null +++ b/config/session.php @@ -0,0 +1,19 @@ + 'PHPSESSID', + // SESSION_ID的提交变量,解决flash上传跨域 + 'var_session_id' => '', + // 驱动方式 支持file cache + 'type' => 'file', + // 存储连接标识 当type使用cache的时候有效 + 'store' => null, + // 过期时间 + 'expire' => 1440, + // 前缀 + 'prefix' => '', +]; diff --git a/config/trace.php b/config/trace.php new file mode 100644 index 0000000..fad2392 --- /dev/null +++ b/config/trace.php @@ -0,0 +1,10 @@ + 'Html', + // 读取的日志通道名 + 'channel' => '', +]; diff --git a/config/view.php b/config/view.php new file mode 100644 index 0000000..7499b1d --- /dev/null +++ b/config/view.php @@ -0,0 +1,25 @@ + 'Think', + // 默认模板渲染规则 1 解析为小写+下划线 2 全部转换小写 3 保持操作方法 + 'auto_rule' => 3, + // 模板目录名 + 'view_dir_name' => 'view', + // 模板后缀 + 'view_suffix' => 'html', + // 模板文件名分隔符 + 'view_depr' => DIRECTORY_SEPARATOR, + // 模板引擎普通标签开始标记 + 'tpl_begin' => '{', + // 模板引擎普通标签结束标记 + 'tpl_end' => '}', + // 标签库标签开始标记 + 'taglib_begin' => '{', + // 标签库标签结束标记 + 'taglib_end' => '}', +]; diff --git a/extend/.gitignore b/extend/.gitignore new file mode 100644 index 0000000..c96a04f --- /dev/null +++ b/extend/.gitignore @@ -0,0 +1,2 @@ +* +!.gitignore \ No newline at end of file diff --git a/public/.htaccess b/public/.htaccess new file mode 100644 index 0000000..cbc7868 --- /dev/null +++ b/public/.htaccess @@ -0,0 +1,8 @@ + + Options +FollowSymlinks -Multiviews + RewriteEngine On + + RewriteCond %{REQUEST_FILENAME} !-d + RewriteCond %{REQUEST_FILENAME} !-f + RewriteRule ^(.*)$ index.php/$1 [QSA,PT,L] + diff --git a/public/favicon.ico b/public/favicon.ico new file mode 100644 index 0000000000000000000000000000000000000000..e71815a6618c6ef19c78d27840b8995fb2521499 GIT binary patch literal 1150 zcmbVMSx8i26uv?4_SAEaJq7BFqqJE;Q9TBc5JYcLIgSmPnyr-jk`K{>ZB(>aLWVXo z*9E63a&I$RrZR03EEi&&_1^#9`}O_*AViPd;mm*e&-u>z&UX%1)0XhJY?;RY723X~ znzmfiw3Reo@g{fAL(}N{_i=@Ma0M%r6$X8HFcE zpG~1@_%Y6ow1ksJIN%eE0)m_g-8Gd#K%-r;7XvI$t0gLrlUMS(*o zV$Y+$Ct(SJ+L5c+)7OmI%nVG$!vbteaep>7ij6%r*#F`@;?!a~HIJfDIkr7LrT7TO z8Pus^>>;*w*WwO!6s7@#wJgVkVE+^G7)ra2;Ldm_p8Ob6`0br_NQk8JTkP3k{J^jG z*cCa8vT!3JGaq0ucb3{&JkLiTVfXWMD5q9ZyH%ZD)V;jPIT^6ouVd%VG`X~V*0H+F zhl^v6kP#Mn+6Yg-!rHDH>fs|^>X)1U?nncMSj%CIp#G9el3d=+e!&L43iV_6ITI5d zQv>h>y$V~X^k*JwD7m;pl{iR^$K%uN!-g$vq?qse=KxBm_3+$BoO#pw7gpx+aR#|L z%6Dm{!D`%_jIeKm8ajyn9!EZFoOpW+Tl5oZR|^>D;?7A9ZiV-%JuQ#*owco@x{a zD-|ENtov7tOFzK5r}KRMSHhkEb!7aa$$nhqBKuHtV!cJ5I+?Si!w-Hm{`)ye +// +---------------------------------------------------------------------- + +// [ 应用入口文件 ] +namespace think; + +require __DIR__ . '/../vendor/autoload.php'; + +// 执行HTTP应用并响应 +$http = (new App())->http; + +$response = $http->run(); + +$response->send(); + +$http->end($response); diff --git a/public/robots.txt b/public/robots.txt new file mode 100644 index 0000000..eb05362 --- /dev/null +++ b/public/robots.txt @@ -0,0 +1,2 @@ +User-agent: * +Disallow: diff --git a/public/router.php b/public/router.php new file mode 100644 index 0000000..ac7b3c8 --- /dev/null +++ b/public/router.php @@ -0,0 +1,17 @@ + +// +---------------------------------------------------------------------- +// $Id$ + +if (is_file($_SERVER["DOCUMENT_ROOT"] . $_SERVER["SCRIPT_NAME"])) { + return false; +} else { + require __DIR__ . "/index.php"; +} diff --git a/public/static/admin/config.js b/public/static/admin/config.js new file mode 100644 index 0000000..cd7027c --- /dev/null +++ b/public/static/admin/config.js @@ -0,0 +1,130 @@ +/** + + @Name:layuiAdmin iframe版全局配置 + @Author:贤心 + @Site:http://www.layui.com/admin/ + @License:LPPL(layui付费产品协议) + + */ + +layui.define(['laytpl', 'layer', 'element', 'util'], function(exports){ + exports('setter', { + container: 'LAY_app' //容器ID + ,base: layui.cache.base //记录静态资源所在路径 + ,views: layui.cache.base + 'tpl/' //动态模板所在目录 + ,entry: 'index' //默认视图文件名 + ,engine: '.html' //视图文件后缀名 + ,pageTabs: true //是否开启页面选项卡功能。iframe版推荐开启 + ,version: new Date().getTime() //这样你每次刷新页面,都会更新一次缓存 + ,name: 'layuiAdmin' + ,tableName: 'layuiAdmin' //本地存储表名 + ,MOD_NAME: 'admin' //模块事件名 + + ,debug: true //是否开启调试模式。如开启,接口异常时会抛出异常 URL 等信息 + + //自定义请求字段 + ,request: { + tokenName: false //自动携带 token 的字段名(如:access_token)。可设置 false 不携带。 + } + + //自定义响应字段 + ,response: { + statusName: 'code' //数据状态的字段名称 + ,statusCode: { + ok: 0 //数据状态一切正常的状态码 + ,logout: 1001 //登录状态失效的状态码 + ,error: -1 //增加登录失败的状态码 + } + ,msgName: 'msg' //状态信息的字段名称 + ,dataName: 'data' //数据详情的字段名称 + } + + //扩展的第三方模块 + ,extend: [ + 'echarts', //echarts 核心包 + 'echartsTheme' //echarts 主题 + ] + + //主题配置 + ,theme: { + //内置主题配色方案 + color: [{ + main: '#20222A' //主题色 + ,selected: '#009688' //选中色 + ,alias: 'default' //默认别名 + },{ + main: '#03152A' + ,selected: '#3B91FF' + ,alias: 'dark-blue' //藏蓝 + },{ + main: '#2E241B' + ,selected: '#A48566' + ,alias: 'coffee' //咖啡 + },{ + main: '#50314F' + ,selected: '#7A4D7B' + ,alias: 'purple-red' //紫红 + },{ + main: '#344058' + ,logo: '#1E9FFF' + ,selected: '#1E9FFF' + ,alias: 'ocean' //海洋 + },{ + main: '#3A3D49' + ,logo: '#2F9688' + ,selected: '#5FB878' + ,alias: 'green' //墨绿 + },{ + main: '#20222A' + ,logo: '#F78400' + ,selected: '#F78400' + ,alias: 'red' //橙色 + },{ + main: '#28333E' + ,logo: '#AA3130' + ,selected: '#AA3130' + ,alias: 'fashion-red' //时尚红 + },{ + main: '#24262F' + ,logo: '#3A3D49' + ,selected: '#009688' + ,alias: 'classic-black' //经典黑 + },{ + logo: '#226A62' + ,header: '#2F9688' + ,alias: 'green-header' //墨绿头 + },{ + main: '#344058' + ,logo: '#0085E8' + ,selected: '#1E9FFF' + ,header: '#1E9FFF' + ,alias: 'ocean-header' //海洋头 + },{ + header: '#393D49' + ,alias: 'classic-black-header' //经典黑头 + },{ + main: '#50314F' + ,logo: '#50314F' + ,selected: '#7A4D7B' + ,header: '#50314F' + ,alias: 'purple-red-header' //紫红头 + },{ + main: '#28333E' + ,logo: '#28333E' + ,selected: '#AA3130' + ,header: '#AA3130' + ,alias: 'fashion-red-header' //时尚红头 + },{ + main: '#28333E' + ,logo: '#009688' + ,selected: '#009688' + ,header: '#009688' + ,alias: 'green-header' //墨绿头 + }] + + //初始的颜色索引,对应上面的配色方案数组索引 + //如果本地已经有主题色记录,则以本地记录为优先,除非请求本地数据(localStorage) + ,initColorIndex: 0 + } + }); +}); diff --git a/public/static/admin/json/console/prograss.js b/public/static/admin/json/console/prograss.js new file mode 100644 index 0000000..13a093b --- /dev/null +++ b/public/static/admin/json/console/prograss.js @@ -0,0 +1,36 @@ +{ + "code": 0 + ,"msg": "" + ,"count": "100" + ,"data": [{ + "prograss": "开会" + ,"time": "一小时" + ,"complete": "已完成" + ,"LAY_CHECKED": true + },{ + "prograss": "项目开发" + ,"time": "两小时" + ,"complete": "进行中" + ,"LAY_CHECKED": true + },{ + "prograss": "陪吃饭" + ,"time": "一小时" + ,"complete": "未完成" + },{ + "prograss": "修改小bug" + ,"time": "半小时" + ,"complete": "未完成" + },{ + "prograss": "修改大bug" + ,"time": "两小时" + ,"complete": "未完成" + },{ + "prograss": "修改小bug" + ,"time": "半小时" + ,"complete": "未完成" + },{ + "prograss": "修改大bug" + ,"time": "两小时" + ,"complete": "未完成" + }] +} \ No newline at end of file diff --git a/public/static/admin/json/console/top-card.js b/public/static/admin/json/console/top-card.js new file mode 100644 index 0000000..51ee9bb --- /dev/null +++ b/public/static/admin/json/console/top-card.js @@ -0,0 +1,76 @@ +{ + "code": 0 + ,"msg": "" + ,"count": "100" + ,"data": [{ + "id": 111 + ,"title": "社区开始接受 “赞助商广告” 投放" + ,"username": "贤心" + ,"channel": "公告" + ,"href": "http://fly.layui.com/jie/15697/" + ,"crt": 61632 + },{ + "id": 222 + ,"title": "layui 一周年" + ,"username": "猫吃" + ,"channel": "讨论" + ,"href": "http://fly.layui.com/jie/16622/" + ,"crt": 61632 + },{ + "id": 333 + ,"title": "四个月的前端" + ,"username": "fd" + ,"channel": "分享" + ,"href": "http://fly.layui.com/jie/16651/" + ,"crt": 61632 + },{ + "id": 333 + ,"title": "如何评价LayUI和他的作者闲心" + ,"username": "纸飞机" + ,"channel": "提问" + ,"href": "http://fly.layui.com/jie/9352/" + ,"crt": 61632 + },{ + "id": 333 + ,"title": "如何评价LayUI和他的作者闲心" + ,"username": "纸飞机" + ,"channel": "提问" + ,"href": "http://fly.layui.com/jie/9352/" + ,"crt": 61632 + },{ + "id": 333 + ,"title": "如何评价LayUI和他的作者闲心" + ,"username": "纸飞机" + ,"channel": "提问" + ,"href": "http://fly.layui.com/jie/9352/" + ,"crt": 61632 + },{ + "id": 333 + ,"title": "如何评价LayUI和他的作者闲心" + ,"username": "纸飞机" + ,"channel": "提问" + ,"href": "http://fly.layui.com/jie/9352/" + ,"crt": 61632 + },{ + "id": 333 + ,"title": "如何评价LayUI和他的作者闲心" + ,"username": "纸飞机" + ,"channel": "提问" + ,"href": "http://fly.layui.com/jie/9352/" + ,"crt": 61632 + },{ + "id": 333 + ,"title": "如何评价LayUI和他的作者闲心" + ,"username": "纸飞机" + ,"channel": "提问" + ,"href": "http://fly.layui.com/jie/9352/" + ,"crt": 61632 + },{ + "id": 333 + ,"title": "如何评价LayUI和他的作者闲心" + ,"username": "纸飞机" + ,"channel": "提问" + ,"href": "http://fly.layui.com/jie/9352/" + ,"crt": 61632 + }] +} \ No newline at end of file diff --git a/public/static/admin/json/console/top-search.js b/public/static/admin/json/console/top-search.js new file mode 100644 index 0000000..9750e5e --- /dev/null +++ b/public/static/admin/json/console/top-search.js @@ -0,0 +1,46 @@ +{ + "code": 0 + ,"msg": "" + ,"count": "100" + ,"data": [{ + "keywords": "贤心是男是女" + ,"frequency": 8520 + ,"userNums": 2216 + },{ + "keywords": "Java程序员能找到女朋友吗" + ,"frequency": 666 + ,"userNums": 333 + },{ + "keywords": "此表格是静态模拟数据" + ,"frequency": 666 + ,"userNums": 333 + },{ + "keywords": "layui官方教程" + ,"frequency": 666 + ,"userNums": 333 + },{ + "keywords": "layui官方教程" + ,"frequency": 666 + ,"userNums": 333 + },{ + "keywords": "layui官方教程" + ,"frequency": 666 + ,"userNums": 333 + },{ + "keywords": "layui官方教程" + ,"frequency": 666 + ,"userNums": 333 + },{ + "keywords": "layui官方教程" + ,"frequency": 666 + ,"userNums": 333 + },{ + "keywords": "layui官方教程" + ,"frequency": 666 + ,"userNums": 333 + },{ + "keywords": "layui官方教程" + ,"frequency": 666 + ,"userNums": 333 + }] +} \ No newline at end of file diff --git a/public/static/admin/json/content/comment.js b/public/static/admin/json/content/comment.js new file mode 100644 index 0000000..45b8c3f --- /dev/null +++ b/public/static/admin/json/content/comment.js @@ -0,0 +1,56 @@ +{ + "code": 0 + ,"msg": "" + ,"count": "100" + ,"data": [{ + "id": "001" + ,"reviewers": "赵" + ,"content": "我又爱上编程了" + ,"commtime": 20160312 + },{ + "id": "002" + ,"reviewers": "钱" + ,"content": "女生出门要小心" + ,"commtime": 20160821 + },{ + "id": "003" + ,"reviewers": "孙" + ,"content": "框架就用layui" + ,"commtime": 20161212 + },{ + "id": "004" + ,"reviewers": "李" + ,"content": "心姐么么哒" + ,"commtime": 20170311 + },{ + "id": "005" + ,"reviewers": "周" + ,"content": "希望明天是个好天气" + ,"commtime": 20170612 + },{ + "id": "006" + ,"reviewers": "吴" + ,"content": "我又爱上编程了" + ,"commtime": 20171112 + },{ + "id": "007" + ,"reviewers": "郑" + ,"content": "女生出门要小心" + ,"commtime": 20171230 + },{ + "id": "008" + ,"reviewers": "王" + ,"content": "框架就用layui" + ,"commtime": 20180112 + },{ + "id": "009" + ,"reviewers": "冯" + ,"content": "心姐么么哒" + ,"commtime": 20180221 + },{ + "id": "010" + ,"reviewers": "陈" + ,"content": "希望明天是个好天气" + ,"commtime": 20180312 + }] +} \ No newline at end of file diff --git a/public/static/admin/json/content/list.js b/public/static/admin/json/content/list.js new file mode 100644 index 0000000..b70f3e7 --- /dev/null +++ b/public/static/admin/json/content/list.js @@ -0,0 +1,62 @@ +{ + "code": 0 + ,"msg": "" + ,"count": "100" + ,"data": [{ + "id": "001" + ,"label": "美食" + ,"title": "舌尖上的中国第一季" + ,"author": "作者-1" + ,"content": "通过中华美食的多个侧面,来展现食物给中国人生活带来的仪式、伦理等方面的文化;见识中国特色食材以及与食物相关、构成中国美食特有气质的一系列元素;了解中华饮食文化的精致和源远流长" + ,"uploadtime": 20121204 + ,"status": true + },{ + "id": "002" + ,"label": "美食" + ,"title": "舌尖上的中国第二季" + ,"author": "作者-2" + ,"content": "以食物为窗口,读懂中国——通过美食,使人们可以有滋有味地认知这个古老的东方国度。“一方水土一方人”,本片将通过展示人们日常生活中与美食相关的多重侧面,描绘与感知中国人的文化传统、家族观念、生活态度与故土难离。人们收获、保存、烹饪、生产美食,并在其过程中留存和传承食物所承载的味觉记忆、饮食习俗、文化样态与家常情感。" + ,"uploadtime": 20141204 + ,"status": false + },{ + "id": "003" + ,"label": "美食" + ,"title": "舌尖上的中国第三季" + ,"author": "作者-3" + ,"content": "以食物为窗口,读懂中国——通过美食,使人们可以有滋有味地认知这个古老的东方国度。“一方水土一方人”,本片将通过展示人们日常生活中与美食相关的多重侧面,描绘与感知中国人的文化传统、家族观念、生活态度与故土难离。人们收获、保存、烹饪、生产美食,并在其过程中留存和传承食物所承载的味觉记忆、饮食习俗、文化样态与家常情感将世界美食和中国美食进行比照。春耕、夏耘、秋收、冬藏,天人合一的东方哲学让中国饮食依时而变,智慧灵动,中医营养摄生学说创造了食材运用的新天地,儒家人伦道德则把心意和家的味道端上我们的餐桌。淘洗历史,糅合时光,一代又一代的中国人在天地间升起烟火,用至精至诚的心意烹制食物,一餐一食之间,中国人展示个性,确认归属,构建文明,理解和把握着世界的奥妙。" + ,"uploadtime": 20161204 + ,"status": false + },{ + "id": "004" + ,"label": "历史" + ,"title": "诸葛亮骂王朗" + ,"author": "作者-1" + ,"content": "皓首匹夫!苍髯老贼!你即将命归于九泉之下,届时,有何面目见汉朝二十四代先帝?二臣贼子!你枉活七十有六,一生未立寸功,只会摇唇舞舌,助曹为虐!一条断脊之犬,还敢在我军阵前狺狺狂吠!我从未见过如此厚颜无耻之人!!!" + ,"uploadtime": 20180201 + ,"status": false + },{ + "id": "005" + ,"label": "新闻" + ,"title": "新时代特色中国梦" + ,"author": "作者-1" + ,"content": "今天,我们比历史上任何时期都更接近、更有信心和能力实现中华民族伟大复兴的目标。新时代已经到来,蓝图已经绘就,中国梦离我们越来越近了。" + ,"uploadtime": 20180512 + ,"status": false + },{ + "id": "006" + ,"label": "新闻" + ,"title": "新时代特色中国梦" + ,"author": "作者-2" + ,"content": "梦想不会主动走向我们,只有我们去主动实现梦想。行百里者半九十。虽然中国梦离我们越来越近了,但是要实现中国梦,还要靠我们以永不懈怠的精神状态、功在不舍的坚强意志,不忘初心,继续前进。" + ,"uploadtime": 20180514 + ,"status": false + },{ + "id": "007" + ,"label": "体育" + ,"title": "皇马大战利物浦" + ,"author": "作者-3" + ,"content": "对欧足联而言,更想要产生个新冠军。连续三年都是同一个冠军队,这会毁掉欧冠……”格里姆表态,“皇马有梦幻般的阵容,但从促进竞争的角度而言,另一支球队获胜会更好。" + ,"uploadtime": 20180515 + ,"status": false + }] +} \ No newline at end of file diff --git a/public/static/admin/json/content/tags.js b/public/static/admin/json/content/tags.js new file mode 100644 index 0000000..6ca85cd --- /dev/null +++ b/public/static/admin/json/content/tags.js @@ -0,0 +1,21 @@ +{ + "code": 0 + ,"msg": "" + ,"count": "100" + ,"data": [{ + "id": "001" + ,"tags": "美食" + },{ + "id": "002" + ,"tags": "新闻" + },{ + "id": "003" + ,"tags": "八卦" + },{ + "id": "004" + ,"tags": "体育" + },{ + "id": "005" + ,"tags": "音乐" + }] +} \ No newline at end of file diff --git a/public/static/admin/json/forum/list.js b/public/static/admin/json/forum/list.js new file mode 100644 index 0000000..144e75b --- /dev/null +++ b/public/static/admin/json/forum/list.js @@ -0,0 +1,62 @@ +{ + "code": 0 + ,"msg": "" + ,"count": "100" + ,"data": [{ + "id": "1001" + ,"poster": "赵" + ,"avatar": "https://wx4.sinaimg.cn/mw1024/5db11ff4gy1fmx4keaw9pj20dw08caa4.jpg" + ,"content": "为什么花儿这么么红" + ,"posttime": 20160805 + ,"top": false + },{ + "id": "1002" + ,"poster": "钱" + ,"avatar": "https://wx4.sinaimg.cn/mw1024/5db11ff4gy1fmx4keaw9pj20dw08caa4.jpg" + ,"content": "喜欢胡歌,赞赞赞" + ,"posttime": 20161205 + ,"top": true + },{ + "id": "1003" + ,"poster": "孙" + ,"avatar": "https://wx4.sinaimg.cn/mw1024/5db11ff4gy1fmx4keaw9pj20dw08caa4.jpg" + ,"content": "明天就要考试了,好紧张,求保佑" + ,"posttime": 20170405 + ,"top": false + },{ + "id": "1004" + ,"poster": "李" + ,"avatar": "https://wx4.sinaimg.cn/mw1024/5db11ff4gy1fmx4keaw9pj20dw08caa4.jpg" + ,"content": "希望明天是个好天气" + ,"posttime": 20171005 + ,"top": false + },{ + "id": "1005" + ,"poster": "周" + ,"avatar": "https://wx4.sinaimg.cn/mw1024/5db11ff4gy1fmx4keaw9pj20dw08caa4.jpg" + ,"content": "女追男隔层纱,是不是真的" + ,"posttime": 20180205 + ,"top": false + },{ + "id": "1006" + ,"poster": "吴" + ,"avatar": "https://wx4.sinaimg.cn/mw1024/5db11ff4gy1fmx4keaw9pj20dw08caa4.jpg" + ,"content": "竟然有人跳楼,年轻人想不开啊!" + ,"posttime": 20180512 + ,"top": false + },{ + "id": "1007" + ,"poster": "郑" + ,"avatar": "https://wx4.sinaimg.cn/mw1024/5db11ff4gy1fmx4keaw9pj20dw08caa4.jpg" + ,"content": "大家一定不能学那个年轻人,珍爱生命啊" + ,"posttime": 20180512 + ,"top": false + },{ + "id": "1008" + ,"poster": "王" + ,"avatar": "https://wx4.sinaimg.cn/mw1024/5db11ff4gy1fmx4keaw9pj20dw08caa4.jpg" + ,"content": "想知道南昌哪里有好吃的西安肉夹馍" + ,"posttime": 20180514 + ,"top": false + }] +} \ No newline at end of file diff --git a/public/static/admin/json/forum/replys.js b/public/static/admin/json/forum/replys.js new file mode 100644 index 0000000..0703695 --- /dev/null +++ b/public/static/admin/json/forum/replys.js @@ -0,0 +1,69 @@ +{ + "code": 0 + ,"msg": "" + ,"count": "100" + ,"data": [{ + "id": "001" + ,"replyer": "吴" + ,"cardid": "1002" + ,"avatar": "https://wx2.sinaimg.cn/mw690/5db11ff4gy1fmx4kec5bvj20eb0h3mxh.jpg" + ,"content": "有眼光,我也喜欢胡歌!" + ,"replytime": 20161205 + },{ + "id": "002" + ,"replyer": "郑" + ,"cardid": "1002" + ,"avatar": "https://wx2.sinaimg.cn/mw690/5db11ff4gy1fmx4kec5bvj20eb0h3mxh.jpg" + ,"content": "同上同上。" + ,"replytime": 20161205 + },{ + "id": "003" + ,"replyer": "王" + ,"cardid": "1003" + ,"avatar": "https://wx2.sinaimg.cn/mw690/5db11ff4gy1fmx4kec5bvj20eb0h3mxh.jpg" + ,"content": "能过一定过,不能过紧张也没用" + ,"replytime": 20170405 + },{ + "id": "004" + ,"replyer": "冯" + ,"cardid": "1001" + ,"avatar": "https://wx2.sinaimg.cn/mw690/5db11ff4gy1fmx4kec5bvj20eb0h3mxh.jpg" + ,"content": "可能因为你流鼻血了。" + ,"replytime": 20170405 + },{ + "id": "005" + ,"replyer": "陈" + ,"cardid": "1003" + ,"avatar": "https://wx2.sinaimg.cn/mw690/5db11ff4gy1fmx4kec5bvj20eb0h3mxh.jpg" + ,"content": "加油加油,看好你" + ,"replytime": 20170405 + },{ + "id": "006" + ,"replyer": "褚" + ,"cardid": "1005" + ,"avatar": "https://wx2.sinaimg.cn/mw690/5db11ff4gy1fmx4kec5bvj20eb0h3mxh.jpg" + ,"content": "纯属放屁" + ,"replytime": 20180207 + },{ + "id": "007" + ,"replyer": "卫" + ,"cardid": "1005" + ,"avatar": "https://wx2.sinaimg.cn/mw690/5db11ff4gy1fmx4kec5bvj20eb0h3mxh.jpg" + ,"content": "可以试试" + ,"replytime": 20180207 + },{ + "id": "006" + ,"replyer": "蒋" + ,"cardid": "1006" + ,"avatar": "https://wx2.sinaimg.cn/mw690/5db11ff4gy1fmx4kec5bvj20eb0h3mxh.jpg" + ,"content": "是啊是啊,太恐怖了。" + ,"replytime": 20180512 + },{ + "id": "007" + ,"replyer": "沈" + ,"cardid": "1008" + ,"avatar": "https://wx2.sinaimg.cn/mw690/5db11ff4gy1fmx4kec5bvj20eb0h3mxh.jpg" + ,"content": "魏家凉皮的凉皮就很不错奥。" + ,"replytime": 20180515 + }] +} \ No newline at end of file diff --git a/public/static/admin/json/layer/photos.js b/public/static/admin/json/layer/photos.js new file mode 100644 index 0000000..7daedc3 --- /dev/null +++ b/public/static/admin/json/layer/photos.js @@ -0,0 +1,39 @@ +{ + "code": 0, + "msg": "", + "title": "JSON请求的相册", + "id": 8, + "start": 0, + "data": [ + { + "alt": "layer", + "pid": 109, + "src": "https://wx4.sinaimg.cn/mw1024/5db11ff4gy1fmx4keaw9pj20dw08caa4.jpg", + "thumb": "" + }, + { + "alt": "说好的,一起Fly", + "pid": 110, + "src": "https://wx4.sinaimg.cn/mw1024/5db11ff4gy1fmx4kebemcj20ga09saa1.jpg", + "thumb": "" + }, + { + "alt": "佟丽娅女神", + "pid": 111, + "src": "https://wx2.sinaimg.cn/mw690/5db11ff4gy1fmx4kec5bvj20eb0h3mxh.jpg", + "thumb": "" + }, + { + "alt": "凤姐是个好人", + "pid": 112, + "src": "https://wx3.sinaimg.cn/mw690/5db11ff4gy1fmx4kec9vuj20b20dwmyk.jpg", + "thumb": "" + }, + { + "alt": "星空如此深邃", + "pid": 113, + "src": "https://wx3.sinaimg.cn/mw690/5db11ff4gy1fmx4keca8ag208g06iglw.gif", + "thumb": "" + } + ] +} \ No newline at end of file diff --git a/public/static/admin/json/layim/getList.js b/public/static/admin/json/layim/getList.js new file mode 100644 index 0000000..aa88110 --- /dev/null +++ b/public/static/admin/json/layim/getList.js @@ -0,0 +1,96 @@ +{ + "code": 0 + ,"msg": "" + ,"data": { + "mine": { + "username": "纸飞机" + ,"id": "100000" + ,"status": "online" + ,"sign": "在深邃的编码世界,做一枚轻盈的纸飞机" + ,"avatar": "//res.layui.com/images/fly/avatar/00.jpg" + } + ,"friend": [{ + "groupname": "知名人物" + ,"id": 0 + ,"list": [{ + "username": "贤心" + ,"id": "100001" + ,"avatar": "//tva1.sinaimg.cn/crop.0.0.118.118.180/5db11ff4gw1e77d3nqrv8j203b03cweg.jpg" + ,"sign": "这些都是测试数据,实际使用请严格按照该格式返回" + ,"status": "online" + },{ + "username": "刘涛tamia" + ,"id": "100001222" + ,"sign": "如约而至,不负姊妹欢乐颂" + ,"avatar": "//tva4.sinaimg.cn/crop.0.1.1125.1125.180/475bb144jw8f9nwebnuhkj20v90vbwh9.jpg" + },{ + "username": "谢楠" + ,"id": "10034001" + ,"avatar": "//tva2.sinaimg.cn/crop.1.0.747.747.180/633f068fjw8f9h040n951j20ku0kr74t.jpg" + ,"sign": "" + },{ + "username": "马小云" + ,"id": "168168" + ,"avatar": "//tva1.sinaimg.cn/crop.0.0.180.180.180/7fde8b93jw1e8qgp5bmzyj2050050aa8.jpg" + ,"sign": "让天下没有难写的代码" + },{ + "username": "徐小峥" + ,"id": "666666" + ,"avatar": "//tva1.sinaimg.cn/crop.0.0.512.512.180/6a4acad5jw8eqi6yaholjj20e80e8t9f.jpg" + ,"sign": "代码在囧途,也要写到底" + }] + },{ + "groupname": "网红声优" + ,"id": 1 + ,"list": [{ + "username": "罗玉凤" + ,"id": "121286" + ,"avatar": "//tva4.sinaimg.cn/crop.0.0.640.640.180/4a02849cjw8fc8vn18vktj20hs0hs75v.jpg" + ,"sign": "在自己实力不济的时候,不要去相信什么媒体和记者。他们不是善良的人,有时候候他们的采访对当事人而言就是陷阱" + },{ + "username": "Z_子晴" + ,"id": "108101" + ,"avatar": "//tva1.sinaimg.cn/crop.0.23.1242.1242.180/8693225ajw8fbimjimpjwj20yi0zs77l.jpg" + ,"sign": "微电商达人" + },{ + "username": "大鱼_MsYuyu" + ,"id": "12123454" + ,"avatar": "//tva2.sinaimg.cn/crop.0.0.512.512.180/005LMAegjw8f2bp9qg4mrj30e80e8dg5.jpg" + ,"sign": "我瘋了!這也太準了吧 超級笑點低" + },{ + "username": "醋醋cucu" + ,"id": "102101" + ,"avatar": "//tva2.sinaimg.cn/crop.0.0.640.640.180/648fbe5ejw8ethmg0u9egj20hs0ht0tn.jpg" + ,"sign": "" + },{ + "username": "柏雪近在它香" + ,"id": "3435343" + ,"avatar": "//tva2.sinaimg.cn/crop.0.8.751.751.180/961a9be5jw8fczq7q98i7j20kv0lcwfn.jpg" + ,"sign": "" + }] + },{ + "groupname": "女神艺人" + ,"id": 2 + ,"list": [{ + "username": "王祖贤" + ,"id": "76543" + ,"avatar": "//wx2.sinaimg.cn/mw690/5db11ff4gy1flxmew7edlj203d03wt8n.jpg" + ,"sign": "我爱贤心" + },{ + "username": "佟丽娅" + ,"id": "4803920" + ,"avatar": "//tva3.sinaimg.cn/crop.0.0.750.750.180/5033b6dbjw8etqysyifpkj20ku0kuwfw.jpg" + ,"sign": "我也爱贤心吖吖啊" + }] + }] + ,"group": [{ + "groupname": "前端群" + ,"id": "101" + ,"avatar": "//tva1.sinaimg.cn/crop.0.0.200.200.50/006q8Q6bjw8f20zsdem2mj305k05kdfw.jpg" + },{ + "groupname": "Fly社区官方群" + ,"id": "102" + ,"avatar": "//tva2.sinaimg.cn/crop.0.0.199.199.180/005Zseqhjw1eplix1brxxj305k05kjrf.jpg" + }] + } +} \ No newline at end of file diff --git a/public/static/admin/json/layim/getMembers.js b/public/static/admin/json/layim/getMembers.js new file mode 100644 index 0000000..66dcba0 --- /dev/null +++ b/public/static/admin/json/layim/getMembers.js @@ -0,0 +1,67 @@ +{ + "code": 0 + ,"msg": "" + ,"data": { + "list": [{ + "username": "贤心" + ,"id": "100001" + ,"avatar": "//tva1.sinaimg.cn/crop.0.0.118.118.180/5db11ff4gw1e77d3nqrv8j203b03cweg.jpg" + ,"sign": "这些都是测试数据,实际使用请严格按照该格式返回" + },{ + "username": "Z_子晴" + ,"id": "108101" + ,"avatar": "//tva1.sinaimg.cn/crop.0.23.1242.1242.180/8693225ajw8fbimjimpjwj20yi0zs77l.jpg" + ,"sign": "微电商达人" + },{ + "username": "Lemon_CC" + ,"id": "102101" + ,"avatar": "//tva4.sinaimg.cn/crop.0.0.180.180.180/6d424ea5jw1e8qgp5bmzyj2050050aa8.jpg" + ,"sign": "" + },{ + "username": "马小云" + ,"id": "168168" + ,"avatar": "//tva1.sinaimg.cn/crop.0.0.180.180.180/7fde8b93jw1e8qgp5bmzyj2050050aa8.jpg" + ,"sign": "让天下没有难写的代码" + },{ + "username": "徐小峥" + ,"id": "666666" + ,"avatar": "//tva1.sinaimg.cn/crop.0.0.512.512.180/6a4acad5jw8eqi6yaholjj20e80e8t9f.jpg" + ,"sign": "代码在囧途,也要写到底" + },{ + "username": "罗玉凤" + ,"id": "121286" + ,"avatar": "//tva4.sinaimg.cn/crop.0.0.640.640.180/4a02849cjw8fc8vn18vktj20hs0hs75v.jpg" + ,"sign": "在自己实力不济的时候,不要去相信什么媒体和记者。他们不是善良的人,有时候候他们的采访对当事人而言就是陷阱" + },{ + "username": "刘涛tamia" + ,"id": "100001222" + ,"avatar": "//tva4.sinaimg.cn/crop.0.1.1125.1125.180/475bb144jw8f9nwebnuhkj20v90vbwh9.jpg" + ,"sign": "如约而至,不负姊妹欢乐颂" + },{ + "username": "大鱼_MsYuyu" + ,"id": "12123454" + ,"avatar": "//tva2.sinaimg.cn/crop.0.0.512.512.180/005LMAegjw8f2bp9qg4mrj30e80e8dg5.jpg" + ,"sign": "我瘋了!這也太準了吧 超級笑點低" + },{ + "username": "谢楠" + ,"id": "10034001" + ,"avatar": "//tva2.sinaimg.cn/crop.1.0.747.747.180/633f068fjw8f9h040n951j20ku0kr74t.jpg" + ,"sign": "" + },{ + "username": "柏雪近在它香" + ,"id": "3435343" + ,"avatar": "//tva2.sinaimg.cn/crop.0.8.751.751.180/961a9be5jw8fczq7q98i7j20kv0lcwfn.jpg" + ,"sign": "" + },{ + "username": "林心如" + ,"id": "76543" + ,"avatar": "//tva3.sinaimg.cn/crop.0.0.512.512.180/48f122e6jw8fcmi072lkyj20e80e8t9i.jpg" + ,"sign": "我爱贤心" + },{ + "username": "佟丽娅" + ,"id": "4803920" + ,"avatar": "//tva3.sinaimg.cn/crop.0.0.750.750.180/5033b6dbjw8etqysyifpkj20ku0kuwfw.jpg" + ,"sign": "我也爱贤心吖吖啊" + }] + } +} \ No newline at end of file diff --git a/public/static/admin/json/mall/order.js b/public/static/admin/json/mall/order.js new file mode 100644 index 0000000..9ce2971 --- /dev/null +++ b/public/static/admin/json/mall/order.js @@ -0,0 +1,42 @@ +{ + "code": 0 + ,"msg": "" + ,"count": "100" + ,"data": [{ + "invoice": "X123565541" + ,"username": "张小三" + ,"orderDate": "2017-11-10" + ,"amount": 800 + ,"status": 1 + },{ + "invoice": "X123565542" + ,"username": "李小四" + ,"orderDate": "2017-11-10" + ,"amount": 800 + ,"status": 0 + },{ + "invoice": "X123565543" + ,"username": "王老五" + ,"orderDate": "2017-11-10" + ,"amount": 800 + ,"status": 1 + },{ + "invoice": "X123565544" + ,"username": "赵小六" + ,"orderDate": "2017-11-09" + ,"amount": 1600 + ,"status": 1 + },{ + "invoice": "X123565545" + ,"username": "孙小七" + ,"orderDate": "2017-11-09" + ,"amount": 1600 + ,"status": -1 + },{ + "invoice": "X123565546" + ,"username": "周小八" + ,"orderDate": "2017-11-08" + ,"amount": 2600 + ,"status": 1 + }] +} \ No newline at end of file diff --git a/public/static/admin/json/menu.js b/public/static/admin/json/menu.js new file mode 100644 index 0000000..0408505 --- /dev/null +++ b/public/static/admin/json/menu.js @@ -0,0 +1,227 @@ +{ + "code": 0 + ,"msg": "" + ,"data": [{ + "name": "component" + ,"title": "组件" + ,"icon": "layui-icon-component" + ,"list": [{ + "name": "grid" + ,"title": "栅格" + ,"list": [{ + "name": "list" + ,"title": "等比例列表排列" + },{ + "name": "mobile" + ,"title": "按移动端排列" + },{ + "name": "mobile-pc" + ,"title": "移动桌面端组合" + },{ + "name": "all" + ,"title": "全端复杂组合" + },{ + "name": "stack" + ,"title": "低于桌面堆叠排列" + },{ + "name": "speed-dial" + ,"title": "九宫格" + }] + }, { + "name": "button" + ,"title": "按钮" + }, { + "name": "form" + ,"title": "表单" + ,"list": [{ + "name": "element" + ,"title": "表单元素" + },{ + "name": "group" + ,"title": "表单组合" + }] + }, { + "name": "nav" + ,"title": "导航" + }, { + "name": "tabs" + ,"title": "选项卡" + }, { + "name": "progress" + ,"title": "进度条" + }, { + "name": "panel" + ,"title": "面板" + }, { + "name": "badge" + ,"title": "徽章" + }, { + "name": "timeline" + ,"title": "时间线" + }, { + "name": "anim" + ,"title": "动画" + }, { + "name": "auxiliar" + ,"title": "辅助" + }, { + "name": "layer" + ,"title": "通用弹层" + ,"list": [{ + "name": "list" + ,"title": "功能演示" + },{ + "name": "special-demo" + ,"title": "特殊示例" + },{ + "name": "theme" + ,"title": "风格定制" + }] + }, { + "name": "laydate" + ,"title": "日期时间" + }, { + "name": "table" + ,"title": "表格" + }, { + "name": "laypage" + ,"title": "分页" + }, { + "name": "upload" + ,"title": "上传" + }, { + "name": "carousel" + ,"title": "轮播" + }, { + "name": "laytpl" + ,"title": "模板引擎" + }, { + "name": "flow" + ,"title": "流加载" + }, { + "name": "util" + ,"title": "工具" + }, { + "name": "code" + ,"title": "代码修饰" + }, { + "name": "layim" + ,"title": "即时聊天" + ,"jump": "senior/im/" + }] + }, { + "name": "template" + ,"title": "模板" + ,"icon": "layui-icon-template" + ,"list": [{ + "name": "user" + ,"title": "用户相关" + ,"spread": true + ,"list": [{ + "name": "reg" + ,"title": "注册" + ,"jump": "user/reg" + },{ + "name": "login" + ,"title": "登入" + ,"jump": "user/login" + },{ + "name": "forget" + ,"title": "忘记密码" + ,"jump": "user/forget" + }] + }, { + "name": "tips" + ,"title": "提示页面" + ,"spread": true + ,"list": [{ + "name": "404" + ,"title": "404" + },{ + "name": "error" + ,"title": "错误提示" + }] + }, { + "name": "" + ,"title": "内嵌页面" + ,"spread": true + ,"list": [{ + "name": "" + ,"title": "百度一下" + ,"jump": "/iframe/link/baidu" + }, { + "name": "" + ,"title": "layui官网" + ,"jump": "/iframe/link/layui" + }, { + "name": "" + ,"title": "layuiAdmin官网" + ,"jump": "/iframe/link/layuiAdmin" + }] + }] + }, { + "name": "app" + ,"title": "应用" + ,"icon": "layui-icon-app" + ,"list": [{ + "name": "message" + ,"title": "消息中心" + }] + }, { + "name": "senior" + ,"title": "高级" + ,"icon": "layui-icon-senior" + ,"list": [{ + "name": "im" + ,"title": "通讯系统" + }] + }, { + "name": "user" + ,"title": "用户" + ,"icon": "layui-icon-user" + ,"list": [{ + "name": "user" + ,"title": "用户" + ,"spread": true + ,"list": [{ + "name": "list" + ,"title": "用户列表" + }] + },{ + "name": "administrators" + ,"title": "后台管理组" + ,"spread": true + ,"list": [{ + "name": "list" + ,"title": "管理员列表" + },{ + "name": "role" + ,"title": "角色管理" + }] + }] + }, { + "name": "set" + ,"title": "设置" + ,"icon": "layui-icon-set" + ,"list": [{ + "name": "base" + ,"title": "基本设置" + ,"spread": true + ,"list": [{ + "name": "website" + ,"title": "系统设置" + },{ + "name": "email" + ,"title": "邮件服务" + }] + },{ + "name": "security" + ,"title": "安全设置" + }] + }, { + "name": "get" + ,"title": "授权" + ,"icon": "layui-icon-auz" + ,"jump": "system/get" + }] +} \ No newline at end of file diff --git a/public/static/admin/json/menu1.js b/public/static/admin/json/menu1.js new file mode 100644 index 0000000..0cfd0c0 --- /dev/null +++ b/public/static/admin/json/menu1.js @@ -0,0 +1,271 @@ +{ + "code": 0 + ,"msg": "" + ,"data": [{ + "name": "component" + ,"title": "组件" + ,"icon": "layui-icon-component" + ,"list": [{ + "name": "grid" + ,"title": "栅格" + ,"list": [{ + "name": "list" + ,"title": "等比例列表排列" + },{ + "name": "mobile" + ,"title": "按移动端排列" + },{ + "name": "mobile-pc" + ,"title": "移动桌面端组合" + },{ + "name": "all" + ,"title": "全端复杂组合" + },{ + "name": "stack" + ,"title": "低于桌面堆叠排列" + },{ + "name": "speed-dial" + ,"title": "九宫格" + }] + }, { + "name": "button" + ,"title": "按钮" + }, { + "name": "form" + ,"title": "表单" + ,"list": [{ + "name": "element" + ,"title": "表单元素" + },{ + "name": "group" + ,"title": "表单组合" + }] + }, { + "name": "nav" + ,"title": "导航" + }, { + "name": "tabs" + ,"title": "选项卡" + }, { + "name": "progress" + ,"title": "进度条" + }, { + "name": "panel" + ,"title": "面板" + }, { + "name": "badge" + ,"title": "徽章" + }, { + "name": "timeline" + ,"title": "时间线" + }, { + "name": "anim" + ,"title": "动画" + }, { + "name": "auxiliar" + ,"title": "辅助" + }, { + "name": "layer" + ,"title": "通用弹层" + ,"list": [{ + "name": "list" + ,"title": "功能演示" + },{ + "name": "special-demo" + ,"title": "特殊示例" + },{ + "name": "theme" + ,"title": "风格定制" + }] + }, { + "name": "laydate" + ,"title": "日期时间" + }, { + "name": "table" + ,"title": "表格" + }, { + "name": "laypage" + ,"title": "分页" + }, { + "name": "upload" + ,"title": "上传" + }, { + "name": "carousel" + ,"title": "轮播" + }, { + "name": "laytpl" + ,"title": "模板引擎" + }, { + "name": "flow" + ,"title": "流加载" + }, { + "name": "util" + ,"title": "工具" + }, { + "name": "code" + ,"title": "代码修饰" + }, { + "name": "layim" + ,"title": "即时聊天" + ,"jump": "senior/im/chat" + }] + }, { + "name": "template" + ,"title": "模板" + ,"icon": "layui-icon-template" + ,"list": [{ + "name": "user" + ,"title": "用户相关" + ,"spread": true + ,"list": [{ + "name": "reg" + ,"title": "注册" + ,"jump": "user/reg" + },{ + "name": "login" + ,"title": "登入" + ,"jump": "user/login" + },{ + "name": "forget" + ,"title": "忘记密码" + ,"jump": "user/forget" + }] + }, { + "name": "tips" + ,"title": "提示页面" + ,"spread": true + ,"list": [{ + "name": "404" + ,"title": "404" + },{ + "name": "error" + ,"title": "错误提示" + }] + }] + }, { + "name": "app" + ,"title": "应用" + ,"icon": "layui-icon-app" + ,"list": [{ + "name": "message" + ,"title": "消息中心" + },{ + "name": "content" + ,"title": "内容系统" + ,"spread": true + ,"list": [{ + "name": "list" + ,"title": "所有文章" + },{ + "name": "comment" + ,"title": "评论管理" + },{ + "name": "tags" + ,"title": "标签管理" + }] + },{ + "name": "forum" + ,"title": "社区系统" + ,"spread": true + ,"list": [{ + "name": "list" + ,"title": "全部帖子" + },{ + "name": "replys" + ,"title": "所有回帖" + }] + },{ + "name": "mall" + ,"title": "商城管理" + ,"spread": true + ,"list": [{ + "name": "list" + ,"title": "商品列表" + },{ + "name": "category" + ,"title": "分类管理" + },{ + "name": "specs" + ,"title": "规格管理" + }] + }] + }, { + "name": "senior" + ,"title": "高级" + ,"icon": "layui-icon-senior" + ,"list": [{ + "name": "im" + ,"title": "通讯系统" + ,"spread": true + ,"list": [{ + "name": "chat" + ,"title": "社交聊天" + },{ + "name": "kefu" + ,"title": "客服系统" + }] + },{ + "name": "echarts" + ,"title": "Echarts 集成" + ,"spread": true + ,"list": [{ + "name": "line" + ,"title": "折线图" + },{ + "name": "bar" + ,"title": "柱状图" + },{ + "name": "map" + ,"title": "地图" + }] + }] + }, { + "name": "user" + ,"title": "用户" + ,"icon": "layui-icon-user" + ,"list": [{ + "name": "user" + ,"title": "用户" + ,"spread": true + ,"list": [{ + "name": "list" + ,"title": "用户列表" + }] + },{ + "name": "administrators" + ,"title": "后台管理组" + ,"spread": true + ,"list": [{ + "name": "list" + ,"title": "管理员列表" + },{ + "name": "role" + ,"title": "角色管理" + }] + }] + }, { + "name": "set" + ,"title": "设置" + ,"icon": "layui-icon-set" + ,"list": [{ + "name": "base" + ,"title": "基本设置" + ,"spread": true + ,"list": [{ + "name": "website" + ,"title": "系统设置" + },{ + "name": "email" + ,"title": "邮件服务" + }] + },{ + "name": "security" + ,"title": "安全设置" + }] + }, { + "name": "get" + ,"title": "授权" + ,"icon": "layui-icon-auz" + ,"jump": "system/get" + }] +} \ No newline at end of file diff --git a/public/static/admin/json/message/all.js b/public/static/admin/json/message/all.js new file mode 100644 index 0000000..da50293 --- /dev/null +++ b/public/static/admin/json/message/all.js @@ -0,0 +1,46 @@ +{ + "code": 0 + ,"msg": "" + ,"count": 60 + ,"data": [{ + "id": 123 + ,"title": "你好新朋友,感谢使用 layuiAdmin" + ,"time": 1510363800000 + }, { + "id": 111 + ,"title": "贤心发来了一段私信" + ,"time": 1510212370000 + }, { + "id": 111 + ,"title": "贤心发来了一段私信" + ,"time": 1510212370000 + }, { + "id": 111 + ,"title": "贤心发来了一段私信" + ,"time": 1510212370000 + }, { + "id": 111 + ,"title": "贤心发来了一段私信" + ,"time": 1510212370000 + }, { + "id": 111 + ,"title": "贤心发来了一段私信" + ,"time": 1510212370000 + }, { + "id": 111 + ,"title": "贤心发来了一段私信" + ,"time": 1510212370000 + }, { + "id": 111 + ,"title": "贤心发来了一段私信" + ,"time": 1510212370000 + }, { + "id": 111 + ,"title": "贤心发来了一段私信" + ,"time": 1510212370000 + }, { + "id": 111 + ,"title": "贤心发来了一段私信" + ,"time": 1507447570000 + }] +} \ No newline at end of file diff --git a/public/static/admin/json/message/detail.js b/public/static/admin/json/message/detail.js new file mode 100644 index 0000000..010b950 --- /dev/null +++ b/public/static/admin/json/message/detail.js @@ -0,0 +1,10 @@ +{ + "code": 0 + ,"msg": "" + ,"data": { + "id": 111 + ,"title": "你好新朋友,感谢使用 layuiAdmin" + ,"content": "

    一直以来,layui 秉承无偿开源的初心,虔诚致力于服务各层次前后端 Web 开发者,在商业横飞的当今时代,这一信念从未动摇。即便身单力薄,仍然重拾决心,埋头造轮,以尽可能地填补产品本身的缺口。在过去的一段的时间,我一直在寻求持久之道,已维持你眼前所见的一切。而 layuiAdmin 是我们尝试解决的手段之一。我相信真正有爱于 layui 生态的你,定然不会错过这一拥抱吧。

    子曰:君子不用防,小人防不住。请务必通过官网正规渠道,获得 layuiAdmin

    —— 贤心(layui.com

    " + ,"time": 1510363800000 + } +} \ No newline at end of file diff --git a/public/static/admin/json/message/direct.js b/public/static/admin/json/message/direct.js new file mode 100644 index 0000000..8f0ddbe --- /dev/null +++ b/public/static/admin/json/message/direct.js @@ -0,0 +1,46 @@ +{ + "code": 0 + ,"msg": "" + ,"count": 60 + ,"data": [{ + "id": 123 + ,"title": "贤心发来了一段私信" + ,"time": 1510363800000 + }, { + "id": 111 + ,"title": "贤心发来了一段私信" + ,"time": 1510212370000 + }, { + "id": 111 + ,"title": "贤心发来了一段私信" + ,"time": 1510212370000 + }, { + "id": 111 + ,"title": "贤心发来了一段私信" + ,"time": 1510212370000 + }, { + "id": 111 + ,"title": "贤心发来了一段私信" + ,"time": 1510212370000 + }, { + "id": 111 + ,"title": "贤心发来了一段私信" + ,"time": 1510212370000 + }, { + "id": 111 + ,"title": "贤心发来了一段私信" + ,"time": 1510212370000 + }, { + "id": 111 + ,"title": "贤心发来了一段私信" + ,"time": 1510212370000 + }, { + "id": 111 + ,"title": "贤心发来了一段私信" + ,"time": 1510212370000 + }, { + "id": 111 + ,"title": "贤心发来了一段私信" + ,"time": 1507447570000 + }] +} \ No newline at end of file diff --git a/public/static/admin/json/message/new.js b/public/static/admin/json/message/new.js new file mode 100644 index 0000000..668f4b5 --- /dev/null +++ b/public/static/admin/json/message/new.js @@ -0,0 +1,7 @@ +{ + "code": 0 + ,"msg": "" + ,"data": { + "newmsg": 3 + } +} \ No newline at end of file diff --git a/public/static/admin/json/message/notice.js b/public/static/admin/json/message/notice.js new file mode 100644 index 0000000..665f677 --- /dev/null +++ b/public/static/admin/json/message/notice.js @@ -0,0 +1,46 @@ +{ + "code": 0 + ,"msg": "" + ,"count": 60 + ,"data": [{ + "id": 123 + ,"title": "你好新朋友,感谢使用 layuiAdmin" + ,"time": 1510363800000 + }, { + "id": 111 + ,"title": "你好新朋友,感谢使用 layuiAdmin" + ,"time": 1510212370000 + }, { + "id": 111 + ,"title": "你好新朋友,感谢使用 layuiAdmin" + ,"time": 1510212370000 + }, { + "id": 111 + ,"title": "你好新朋友,感谢使用 layuiAdmin" + ,"time": 1510212370000 + }, { + "id": 111 + ,"title": "你好新朋友,感谢使用 layuiAdmin" + ,"time": 1510212370000 + }, { + "id": 111 + ,"title": "你好新朋友,感谢使用 layuiAdmin" + ,"time": 1510212370000 + }, { + "id": 111 + ,"title": "你好新朋友,感谢使用 layuiAdmin" + ,"time": 1510212370000 + }, { + "id": 111 + ,"title": "你好新朋友,感谢使用 layuiAdmin" + ,"time": 1510212370000 + }, { + "id": 111 + ,"title": "你好新朋友,感谢使用 layuiAdmin" + ,"time": 1510212370000 + }, { + "id": 111 + ,"title": "你好新朋友,感谢使用 layuiAdmin" + ,"time": 1507447570000 + }] +} \ No newline at end of file diff --git a/public/static/admin/json/table/demo.js b/public/static/admin/json/table/demo.js new file mode 100644 index 0000000..8f90d90 --- /dev/null +++ b/public/static/admin/json/table/demo.js @@ -0,0 +1,96 @@ + +{ + "code": 0 + ,"msg": "" + ,"count": 3000000 + ,"data": [{ + "id": "10001" + ,"username": "杜甫" + ,"email": "xianxin@layui.com" + ,"sex": "男" + ,"city": "浙江杭州" + ,"sign": "点击此处,显示更多。当内容超出时,点击单元格会自动显示更多内容。" + ,"experience": "116" + ,"ip": "192.168.0.8" + ,"logins": "108" + ,"joinTime": "2016-10-14" + }, { + "id": "10002" + ,"username": "李白" + ,"email": "xianxin@layui.com" + ,"sex": "男" + ,"city": "浙江杭州" + ,"sign": "君不见,黄河之水天上来,奔流到海不复回。 君不见,高堂明镜悲白发,朝如青丝暮成雪。 人生得意须尽欢,莫使金樽空对月。 天生我材必有用,千金散尽还复来。 烹羊宰牛且为乐,会须一饮三百杯。 岑夫子,丹丘生,将进酒,杯莫停。 与君歌一曲,请君为我倾耳听。(倾耳听 一作:侧耳听) 钟鼓馔玉不足贵,但愿长醉不复醒。(不足贵 一作:何足贵;不复醒 一作:不愿醒/不用醒) 古来圣贤皆寂寞,惟有饮者留其名。(古来 一作:自古;惟 通:唯) 陈王昔时宴平乐,斗酒十千恣欢谑。 主人何为言少钱,径须沽取对君酌。 五花马,千金裘,呼儿将出换美酒,与尔同销万古愁。" + ,"experience": "12" + ,"ip": "192.168.0.8" + ,"logins": "106" + ,"joinTime": "2016-10-14" + ,"LAY_CHECKED": true + }, { + "id": "10003" + ,"username": "王勃" + ,"email": "xianxin@layui.com" + ,"sex": "男" + ,"city": "浙江杭州" + ,"sign": "人生恰似一场修行" + ,"experience": "65" + ,"ip": "192.168.0.8" + ,"logins": "106" + ,"joinTime": "2016-10-14" + }, { + "id": "10004" + ,"username": "李清照" + ,"email": "xianxin@layui.com" + ,"sex": "女" + ,"city": "浙江杭州" + ,"sign": "人生恰似一场修行" + ,"experience": "666" + ,"ip": "192.168.0.8" + ,"logins": "106" + ,"joinTime": "2016-10-14" + }, { + "id": "10005" + ,"username": "冰心" + ,"email": "xianxin@layui.com" + ,"sex": "女" + ,"city": "浙江杭州" + ,"sign": "人生恰似一场修行" + ,"experience": "86" + ,"ip": "192.168.0.8" + ,"logins": "106" + ,"joinTime": "2016-10-14" + }, { + "id": "10006" + ,"username": "贤心" + ,"email": "xianxin@layui.com" + ,"sex": "男" + ,"city": "浙江杭州" + ,"sign": "人生恰似一场修行" + ,"experience": "12" + ,"ip": "192.168.0.8" + ,"logins": "106" + ,"joinTime": "2016-10-14" + }, { + "id": "10007" + ,"username": "贤心" + ,"email": "xianxin@layui.com" + ,"sex": "男" + ,"city": "浙江杭州" + ,"sign": "人生恰似一场修行" + ,"experience": "16" + ,"ip": "192.168.0.8" + ,"logins": "106" + ,"joinTime": "2016-10-14" + }, { + "id": "10008" + ,"username": "贤心" + ,"email": "xianxin@layui.com" + ,"sex": "男" + ,"city": "浙江杭州" + ,"sign": "人生恰似一场修行" + ,"experience": "106" + ,"ip": "192.168.0.8" + ,"logins": "106" + ,"joinTime": "2016-10-14" + }] +} \ No newline at end of file diff --git a/public/static/admin/json/table/demo2.js b/public/static/admin/json/table/demo2.js new file mode 100644 index 0000000..f6fae59 --- /dev/null +++ b/public/static/admin/json/table/demo2.js @@ -0,0 +1,61 @@ + +{ + "code": 0 + ,"msg": "" + ,"count": 66 + ,"data": [{ + "username": "张小三" + ,"amount": 18 + ,"province": "浙江" + ,"city": "杭州" + ,"zone": "西湖区" + ,"street": "西溪街道" + ,"address": "西溪花园" + ,"house": "30栋1单元" + }, { + "username": "李小四" + ,"amount": 39 + ,"province": "江苏" + ,"city": "苏州" + ,"zone": "姑苏区" + ,"street": "丝绸路" + ,"address": "天墅之城" + ,"house": "9幢2单元" + }, { + "username": "王小五" + ,"amount": 8 + ,"province": "江西" + ,"city": "南昌" + ,"zone": "青山湖区" + ,"street": "艾溪湖办事处" + ,"address": "中兴和园" + ,"house": "1幢3单元" + }, { + "username": "赵小六" + ,"amount": 16 + ,"province": "福建" + ,"city": "泉州" + ,"zone": "丰泽区" + ,"street": "南洋街道" + ,"address": "南洋村" + ,"house": "6幢1单元" + }, { + "username": "孙小七" + ,"amount": 12 + ,"province": "湖北" + ,"city": "武汉" + ,"zone": "武昌区" + ,"street": "武昌大道" + ,"address": "两湖花园" + ,"house": "16幢2单元" + }, { + "username": "周小八" + ,"amount": 11 + ,"province": "安徽" + ,"city": "黄山" + ,"zone": "黄山区" + ,"street": "汤口镇" + ,"address": "温泉村" + ,"house": "21号" + }] +} \ No newline at end of file diff --git a/public/static/admin/json/table/demo3.js b/public/static/admin/json/table/demo3.js new file mode 100644 index 0000000..93d0e65 --- /dev/null +++ b/public/static/admin/json/table/demo3.js @@ -0,0 +1,96 @@ +{ + "status": 200 + ,"message": "" + ,"total": 8 + ,"rows": { + "item": [{ + "id": "10001" + ,"username": "杜甫" + ,"email": "xianxin@layui.com" + ,"sex": "男" + ,"city": "浙江杭州" + ,"sign": "点击此处,显示更多。当内容超出时,点击单元格会自动显示更多内容。" + ,"experience": "116" + ,"ip": "192.168.0.8" + ,"logins": "108" + ,"joinTime": "2016-10-14" + }, { + "id": "10002" + ,"username": "李白" + ,"email": "xianxin@layui.com" + ,"sex": "男" + ,"city": "浙江杭州" + ,"sign": "君不见,黄河之水天上来,奔流到海不复回。 君不见,高堂明镜悲白发,朝如青丝暮成雪。 人生得意须尽欢,莫使金樽空对月。 天生我材必有用,千金散尽还复来。 烹羊宰牛且为乐,会须一饮三百杯。 岑夫子,丹丘生,将进酒,杯莫停。 与君歌一曲,请君为我倾耳听。(倾耳听 一作:侧耳听) 钟鼓馔玉不足贵,但愿长醉不复醒。(不足贵 一作:何足贵;不复醒 一作:不愿醒/不用醒) 古来圣贤皆寂寞,惟有饮者留其名。(古来 一作:自古;惟 通:唯) 陈王昔时宴平乐,斗酒十千恣欢谑。 主人何为言少钱,径须沽取对君酌。 五花马,千金裘,呼儿将出换美酒,与尔同销万古愁。" + ,"experience": "12" + ,"ip": "192.168.0.8" + ,"logins": "106" + ,"joinTime": "2016-10-14" + }, { + "id": "10003" + ,"username": "王勃" + ,"email": "xianxin@layui.com" + ,"sex": "男" + ,"city": "浙江杭州" + ,"sign": "人生恰似一场修行" + ,"experience": "65" + ,"ip": "192.168.0.8" + ,"logins": "106" + ,"joinTime": "2016-10-14" + }, { + "id": "10004" + ,"username": "李清照" + ,"email": "xianxin@layui.com" + ,"sex": "女" + ,"city": "浙江杭州" + ,"sign": "人生恰似一场修行" + ,"experience": "666" + ,"ip": "192.168.0.8" + ,"logins": "106" + ,"joinTime": "2016-10-14" + }, { + "id": "10005" + ,"username": "冰心" + ,"email": "xianxin@layui.com" + ,"sex": "女" + ,"city": "浙江杭州" + ,"sign": "人生恰似一场修行" + ,"experience": "86" + ,"ip": "192.168.0.8" + ,"logins": "106" + ,"joinTime": "2016-10-14" + }, { + "id": "10006" + ,"username": "贤心" + ,"email": "xianxin@layui.com" + ,"sex": "男" + ,"city": "浙江杭州" + ,"sign": "人生恰似一场修行" + ,"experience": "12" + ,"ip": "192.168.0.8" + ,"logins": "106" + ,"joinTime": "2016-10-14" + }, { + "id": "10007" + ,"username": "贤心" + ,"email": "xianxin@layui.com" + ,"sex": "男" + ,"city": "浙江杭州" + ,"sign": "人生恰似一场修行" + ,"experience": "16" + ,"ip": "192.168.0.8" + ,"logins": "106" + ,"joinTime": "2016-10-14" + }, { + "id": "10008" + ,"username": "贤心" + ,"email": "xianxin@layui.com" + ,"sex": "男" + ,"city": "浙江杭州" + ,"sign": "人生恰似一场修行" + ,"experience": "106" + ,"ip": "192.168.0.8" + ,"logins": "106" + ,"joinTime": "2016-10-14" + }] + } +} \ No newline at end of file diff --git a/public/static/admin/json/table/user.js b/public/static/admin/json/table/user.js new file mode 100644 index 0000000..240c7aa --- /dev/null +++ b/public/static/admin/json/table/user.js @@ -0,0 +1,2 @@ + +{"code":0,"msg":"","count":1000,"data":[{"id":10000,"username":"user-0","sex":"女","city":"城市-0","sign":"签名-0","experience":255,"logins":24,"wealth":82830700,"classify":"作家","score":57},{"id":10001,"username":"user-1","sex":"男","city":"城市-1","sign":"签名-1","experience":884,"logins":58,"wealth":64928690,"classify":"词人","score":27},{"id":10002,"username":"user-2","sex":"女","city":"城市-2","sign":"签名-2","experience":650,"logins":77,"wealth":6298078,"classify":"酱油","score":31},{"id":10003,"username":"user-3","sex":"女","city":"城市-3","sign":"签名-3","experience":362,"logins":157,"wealth":37117017,"classify":"诗人","score":68},{"id":10004,"username":"user-4","sex":"男","city":"城市-4","sign":"签名-4","experience":807,"logins":51,"wealth":76263262,"classify":"作家","score":6},{"id":10005,"username":"user-5","sex":"女","city":"城市-5","sign":"签名-5","experience":173,"logins":68,"wealth":60344147,"classify":"作家","score":87},{"id":10006,"username":"user-6","sex":"女","city":"城市-6","sign":"签名-6","experience":982,"logins":37,"wealth":57768166,"classify":"作家","score":34},{"id":10007,"username":"user-7","sex":"男","city":"城市-7","sign":"签名-7","experience":727,"logins":150,"wealth":82030578,"classify":"作家","score":28},{"id":10008,"username":"user-8","sex":"男","city":"城市-8","sign":"签名-8","experience":951,"logins":133,"wealth":16503371,"classify":"词人","score":14},{"id":10009,"username":"user-9","sex":"女","city":"城市-9","sign":"签名-9","experience":484,"logins":25,"wealth":86801934,"classify":"词人","score":75}]} \ No newline at end of file diff --git a/public/static/admin/json/table/user30.js b/public/static/admin/json/table/user30.js new file mode 100644 index 0000000..0246bbd --- /dev/null +++ b/public/static/admin/json/table/user30.js @@ -0,0 +1,2 @@ + +{"code":0,"msg":"","count":1000,"data":[{"id":10000,"username":"user-0","sex":"女","city":"城市-0","sign":"签名-0","experience":255,"logins":24,"wealth":82830700,"classify":"作家","score":57},{"id":10001,"username":"user-1","sex":"男","city":"城市-1","sign":"签名-1","experience":884,"logins":58,"wealth":64928690,"classify":"词人","score":27},{"id":10002,"username":"user-2","sex":"女","city":"城市-2","sign":"签名-2","experience":650,"logins":77,"wealth":6298078,"classify":"酱油","score":31},{"id":10003,"username":"user-3","sex":"女","city":"城市-3","sign":"签名-3","experience":362,"logins":157,"wealth":37117017,"classify":"诗人","score":68},{"id":10004,"username":"user-4","sex":"男","city":"城市-4","sign":"签名-4","experience":807,"logins":51,"wealth":76263262,"classify":"作家","score":6},{"id":10005,"username":"user-5","sex":"女","city":"城市-5","sign":"签名-5","experience":173,"logins":68,"wealth":60344147,"classify":"作家","score":87},{"id":10006,"username":"user-6","sex":"女","city":"城市-6","sign":"签名-6","experience":982,"logins":37,"wealth":57768166,"classify":"作家","score":34},{"id":10007,"username":"user-7","sex":"男","city":"城市-7","sign":"签名-7","experience":727,"logins":150,"wealth":82030578,"classify":"作家","score":28},{"id":10008,"username":"user-8","sex":"男","city":"城市-8","sign":"签名-8","experience":951,"logins":133,"wealth":16503371,"classify":"词人","score":14},{"id":10009,"username":"user-9","sex":"女","city":"城市-9","sign":"签名-9","experience":484,"logins":25,"wealth":86801934,"classify":"词人","score":75},{"id":10010,"username":"user-10","sex":"女","city":"城市-10","sign":"签名-10","experience":1016,"logins":182,"wealth":71294671,"classify":"诗人","score":34},{"id":10011,"username":"user-11","sex":"女","city":"城市-11","sign":"签名-11","experience":492,"logins":107,"wealth":8062783,"classify":"诗人","score":6},{"id":10012,"username":"user-12","sex":"女","city":"城市-12","sign":"签名-12","experience":106,"logins":176,"wealth":42622704,"classify":"词人","score":54},{"id":10013,"username":"user-13","sex":"男","city":"城市-13","sign":"签名-13","experience":1047,"logins":94,"wealth":59508583,"classify":"诗人","score":63},{"id":10014,"username":"user-14","sex":"男","city":"城市-14","sign":"签名-14","experience":873,"logins":116,"wealth":72549912,"classify":"词人","score":8},{"id":10015,"username":"user-15","sex":"女","city":"城市-15","sign":"签名-15","experience":1068,"logins":27,"wealth":52737025,"classify":"作家","score":28},{"id":10016,"username":"user-16","sex":"女","city":"城市-16","sign":"签名-16","experience":862,"logins":168,"wealth":37069775,"classify":"酱油","score":86},{"id":10017,"username":"user-17","sex":"女","city":"城市-17","sign":"签名-17","experience":1060,"logins":187,"wealth":66099525,"classify":"作家","score":69},{"id":10018,"username":"user-18","sex":"女","city":"城市-18","sign":"签名-18","experience":866,"logins":88,"wealth":81722326,"classify":"词人","score":74},{"id":10019,"username":"user-19","sex":"女","city":"城市-19","sign":"签名-19","experience":682,"logins":106,"wealth":68647362,"classify":"词人","score":51},{"id":10020,"username":"user-20","sex":"男","city":"城市-20","sign":"签名-20","experience":770,"logins":24,"wealth":92420248,"classify":"诗人","score":87},{"id":10021,"username":"user-21","sex":"男","city":"城市-21","sign":"签名-21","experience":184,"logins":131,"wealth":71566045,"classify":"词人","score":99},{"id":10022,"username":"user-22","sex":"男","city":"城市-22","sign":"签名-22","experience":739,"logins":152,"wealth":60907929,"classify":"作家","score":18},{"id":10023,"username":"user-23","sex":"女","city":"城市-23","sign":"签名-23","experience":127,"logins":82,"wealth":14765943,"classify":"作家","score":30},{"id":10024,"username":"user-24","sex":"女","city":"城市-24","sign":"签名-24","experience":212,"logins":133,"wealth":59011052,"classify":"词人","score":76},{"id":10025,"username":"user-25","sex":"女","city":"城市-25","sign":"签名-25","experience":938,"logins":182,"wealth":91183097,"classify":"作家","score":69},{"id":10026,"username":"user-26","sex":"男","city":"城市-26","sign":"签名-26","experience":978,"logins":7,"wealth":48008413,"classify":"作家","score":65},{"id":10027,"username":"user-27","sex":"女","city":"城市-27","sign":"签名-27","experience":371,"logins":44,"wealth":64419691,"classify":"诗人","score":60},{"id":10028,"username":"user-28","sex":"女","city":"城市-28","sign":"签名-28","experience":977,"logins":21,"wealth":75935022,"classify":"作家","score":37},{"id":10029,"username":"user-29","sex":"男","city":"城市-29","sign":"签名-29","experience":647,"logins":107,"wealth":97450636,"classify":"酱油","score":27}]} \ No newline at end of file diff --git a/public/static/admin/json/upload/demo.js b/public/static/admin/json/upload/demo.js new file mode 100644 index 0000000..77674fe --- /dev/null +++ b/public/static/admin/json/upload/demo.js @@ -0,0 +1,7 @@ +{ + "code": 0, + "msg": "", + "data": { + "src": "https://wx2.sinaimg.cn/mw690/5db11ff4gy1fmx4kec5bvj20eb0h3mxh.jpg" + } +} \ No newline at end of file diff --git a/public/static/admin/json/user/forget.js b/public/static/admin/json/user/forget.js new file mode 100644 index 0000000..836bba4 --- /dev/null +++ b/public/static/admin/json/user/forget.js @@ -0,0 +1,7 @@ +{ + "code": 0 + ,"msg": "注册成功" + ,"data": { + + } +} \ No newline at end of file diff --git a/public/static/admin/json/user/login.js b/public/static/admin/json/user/login.js new file mode 100644 index 0000000..ff906d5 --- /dev/null +++ b/public/static/admin/json/user/login.js @@ -0,0 +1,7 @@ +{ + "code": 0 + ,"msg": "登入成功" + ,"data": { + "access_token": "c262e61cd13ad99fc650e6908c7e5e65b63d2f32185ecfed6b801ee3fbdd5c0a" + } +} \ No newline at end of file diff --git a/public/static/admin/json/user/logout.js b/public/static/admin/json/user/logout.js new file mode 100644 index 0000000..9fd1ff2 --- /dev/null +++ b/public/static/admin/json/user/logout.js @@ -0,0 +1,5 @@ +{ + "code": 0 + ,"msg": "退出成功" + ,"data": null +} \ No newline at end of file diff --git a/public/static/admin/json/user/reg.js b/public/static/admin/json/user/reg.js new file mode 100644 index 0000000..836bba4 --- /dev/null +++ b/public/static/admin/json/user/reg.js @@ -0,0 +1,7 @@ +{ + "code": 0 + ,"msg": "注册成功" + ,"data": { + + } +} \ No newline at end of file diff --git a/public/static/admin/json/user/resetpass.js b/public/static/admin/json/user/resetpass.js new file mode 100644 index 0000000..836bba4 --- /dev/null +++ b/public/static/admin/json/user/resetpass.js @@ -0,0 +1,7 @@ +{ + "code": 0 + ,"msg": "注册成功" + ,"data": { + + } +} \ No newline at end of file diff --git a/public/static/admin/json/user/session.js b/public/static/admin/json/user/session.js new file mode 100644 index 0000000..54ce1ef --- /dev/null +++ b/public/static/admin/json/user/session.js @@ -0,0 +1,9 @@ +{ + "code": 0 + ,"msg": "" + ,"data": { + "username": "贤心" + ,"sex": "男" + ,"role": 1 + } +} \ No newline at end of file diff --git a/public/static/admin/json/user/sms.js b/public/static/admin/json/user/sms.js new file mode 100644 index 0000000..836bba4 --- /dev/null +++ b/public/static/admin/json/user/sms.js @@ -0,0 +1,7 @@ +{ + "code": 0 + ,"msg": "注册成功" + ,"data": { + + } +} \ No newline at end of file diff --git a/public/static/admin/json/useradmin/mangadmin.js b/public/static/admin/json/useradmin/mangadmin.js new file mode 100644 index 0000000..50d3e28 --- /dev/null +++ b/public/static/admin/json/useradmin/mangadmin.js @@ -0,0 +1,78 @@ +{ + "code": 0 + ,"msg": "" + ,"count": "100" + ,"data": [{ + "id": "1001" + ,"loginname": "admin" + ,"telphone": "11111111111" + ,"email": "111@qq.com" + ,"role": "超级管理员" + ,"jointime": "20150217" + ,"check": true + },{ + "id": "1002" + ,"loginname": "common-1" + ,"telphone": "22222222222" + ,"email": "222@qq.com" + ,"role": "管理员" + ,"jointime": "20160217" + ,"check": false + },{ + "id": "1003" + ,"loginname": "common-2" + ,"telphone": "33333333333" + ,"email": "333@qq.com" + ,"role": "管理员" + ,"jointime": "20161012" + ,"check": false + },{ + "id": "1004" + ,"loginname": "common-3" + ,"telphone": "44444444444" + ,"email": "444@qq.com" + ,"role": "管理员" + ,"jointime": "20170518" + ,"check": true + },{ + "id": "1005" + ,"loginname": "common-4" + ,"telphone": "55555555555" + ,"email": "555@qq.com" + ,"role": "管理员" + ,"jointime": "20180101" + ,"check": false + },{ + "id": "1006" + ,"loginname": "common-5" + ,"telphone": "66666666666" + ,"email": "666@qq.com" + ,"role": "管理员" + ,"jointime": "20160217" + ,"check": false + },{ + "id": "1007" + ,"loginname": "common-6" + ,"telphone": "77777777777" + ,"email": "777@qq.com" + ,"role": "管理员" + ,"jointime": "20161012" + ,"check": false + },{ + "id": "1008" + ,"loginname": "common-7" + ,"telphone": "88888888888" + ,"email": "888@qq.com" + ,"role": "管理员" + ,"jointime": "20170518" + ,"check": true + },{ + "id": "1009" + ,"loginname": "common-8" + ,"telphone": "99999999999" + ,"email": "999@qq.com" + ,"role": "管理员" + ,"jointime": "20180101" + ,"check": false + }] +} diff --git a/public/static/admin/json/useradmin/role.js b/public/static/admin/json/useradmin/role.js new file mode 100644 index 0000000..6d5ba5d --- /dev/null +++ b/public/static/admin/json/useradmin/role.js @@ -0,0 +1,54 @@ +{ + "code": 0 + ,"msg": "" + ,"count": "100" + ,"data": [{ + "id": "1" + ,"rolename": "超级管理员" + ,"limits": "管理所有的管理员" + ,"descr": "拥有至高无上的权利" + ,"check": true + },{ + "id": "2" + ,"rolename": "管理员" + ,"limits": "所有列表的管理" + ,"descr": "事情很多,权力很大" + ,"check": true + },{ + "id": "3" + ,"rolename": "文章撰写员" + ,"limits": "负责文章的编写" + ,"descr": "文采第一的人才集合" + ,"check": false + },{ + "id": "4" + ,"rolename": "纠错员" + ,"limits": "负责文章内容的修改" + ,"descr": "暂无" + ,"check": false + },{ + "id": "5" + ,"rolename": "统计人员" + ,"limits": "对数据进行统计" + ,"descr": "暂无" + ,"check": false + },{ + "id": "6" + ,"rolename": "评估员" + ,"limits": "对统计数据进行评估" + ,"descr": "及时捕捉市场发展动态" + ,"check": false + },{ + "id": "7" + ,"rolename": "采购员" + ,"limits": "负责员工的伙食" + ,"descr": "暂无" + ,"check": false + },{ + "id": "8" + ,"rolename": "推销员" + ,"limits": "介绍销售公司产品" + ,"descr": "暂无" + ,"check": false + }] +} \ No newline at end of file diff --git a/public/static/admin/json/useradmin/webuser.js b/public/static/admin/json/useradmin/webuser.js new file mode 100644 index 0000000..02a7b41 --- /dev/null +++ b/public/static/admin/json/useradmin/webuser.js @@ -0,0 +1,143 @@ +{ + "code": 0 + ,"msg": "" + ,"count": "100" + ,"data": [{ + "id": "001" + ,"username": "用户-1" + ,"avatar": "https://wx4.sinaimg.cn/mw1024/5db11ff4gy1fmx4keaw9pj20dw08caa4.jpg" + ,"phone": 12345678901 + ,"email": "11111@qq.com" + ,"sex": "男" + ,"ip": "1111111" + ,"jointime": 20171204 + },{ + "id": "002" + ,"username": "用户-2" + ,"avatar": "https://wx4.sinaimg.cn/mw1024/5db11ff4gy1fmx4keaw9pj20dw08caa4.jpg" + ,"phone": 12345678901 + ,"email": "11111@qq.com" + ,"sex": "男" + ,"ip": "1111111" + ,"jointime": 20171204 + },{ + "id": "003" + ,"username": "用户-3" + ,"avatar": "https://wx2.sinaimg.cn/mw690/5db11ff4gy1fmx4kec5bvj20eb0h3mxh.jpg" + ,"phone": 12345678901 + ,"email": "11111@qq.com" + ,"sex": "女" + ,"ip": "1111111" + ,"jointime": 20171011 + ,"LAY_CHECKED": true + },{ + "id": "004" + ,"username": "用户-4" + ,"avatar": "https://wx4.sinaimg.cn/mw1024/5db11ff4gy1fmx4keaw9pj20dw08caa4.jpg" + ,"phone": 12345678901 + ,"email": "11111@qq.com" + ,"sex": "男" + ,"ip": "1111111" + ,"jointime": 20160505 + },{ + "id": "005" + ,"username": "用户-5" + ,"avatar": "https://wx2.sinaimg.cn/mw690/5db11ff4gy1fmx4kec5bvj20eb0h3mxh.jpg" + ,"phone": 12345678901 + ,"email": "11111@qq.com" + ,"sex": "男" + ,"ip": "1111111" + ,"jointime": 20171204 + },{ + "id": "006" + ,"username": "用户-6" + ,"avatar": "https://wx2.sinaimg.cn/mw690/5db11ff4gy1fmx4kec5bvj20eb0h3mxh.jpg" + ,"phone": 12345678901 + ,"email": "11111@qq.com" + ,"sex": "男" + ,"ip": "1111111" + ,"jointime": 20171204 + },{ + "id": "007" + ,"username": "用户-7" + ,"avatar": "https://wx3.sinaimg.cn/mw690/5db11ff4gy1fmx4keca8ag208g06iglw.gif" + ,"phone": 12345678901 + ,"email": "11111@qq.com" + ,"sex": "男" + ,"ip": "1111111" + ,"jointime": 20180210 + },{ + "id": "008" + ,"username": "用户-8" + ,"avatar": "https://wx2.sinaimg.cn/mw690/5db11ff4gy1fmx4kec5bvj20eb0h3mxh.jpg" + ,"phone": 12345678901 + ,"email": "11111@qq.com" + ,"sex": "女" + ,"ip": "1111111" + ,"jointime": 20171204 + },{ + "id": "009" + ,"username": "用户-9" + ,"avatar": "https://wx2.sinaimg.cn/mw690/5db11ff4gy1fmx4kec5bvj20eb0h3mxh.jpg" + ,"phone": 12345678901 + ,"email": "11111@qq.com" + ,"sex": "女" + ,"ip": "1111111" + ,"jointime": 20171204 + },{ + "id": "010" + ,"username": "用户-10" + ,"avatar": "https://wx4.sinaimg.cn/mw1024/5db11ff4gy1fmx4keaw9pj20dw08caa4.jpg" + ,"phone": 12345678901 + ,"email": "11111@qq.com" + ,"sex": "男" + ,"ip": "1111111" + ,"jointime": 20170719 + },{ + "id": "011" + ,"username": "用户-11" + ,"avatar": "https://wx2.sinaimg.cn/mw690/5db11ff4gy1fmx4kec5bvj20eb0h3mxh.jpg" + ,"phone": 12345678901 + ,"email": "11111@qq.com" + ,"sex": "男" + ,"ip": "1111111" + ,"jointime": 20171204 + },{ + "id": "012" + ,"username": "用户-12" + ,"avatar": "https://wx2.sinaimg.cn/mw690/5db11ff4gy1fmx4kec5bvj20eb0h3mxh.jpg" + ,"phone": 12345678901 + ,"email": "11111@qq.com" + ,"sex": "女" + ,"ip": "1111111" + ,"jointime": 20171204 + },{ + "id": "013" + ,"username": "用户-13" + ,"avatar": "https://wx2.sinaimg.cn/mw690/5db11ff4gy1fmx4kec5bvj20eb0h3mxh.jpg" + ,"phone": 12345678901 + ,"email": "11111@qq.com" + ,"sex": "女" + ,"ip": "1111111" + ,"jointime": 20171204 + ,"LAY_CHECKED": true + },{ + "id": "014" + ,"username": "用户-14" + ,"avatar": "https://wx3.sinaimg.cn/mw690/5db11ff4gy1fmx4keca8ag208g06iglw.gif" + ,"phone": 12345678901 + ,"email": "11111@qq.com" + ,"sex": "男" + ,"ip": "1111111" + ,"jointime": 20171204 + },{ + "id": "015" + ,"username": "用户-15" + ,"avatar": "https://wx2.sinaimg.cn/mw690/5db11ff4gy1fmx4kec5bvj20eb0h3mxh.jpg" + ,"phone": 12345678901 + ,"email": "11111@qq.com" + ,"sex": "男" + ,"ip": "1111111" + ,"jointime": 20171204 + }] +} \ No newline at end of file diff --git a/public/static/admin/json/workorder/demo.js b/public/static/admin/json/workorder/demo.js new file mode 100644 index 0000000..81066c2 --- /dev/null +++ b/public/static/admin/json/workorder/demo.js @@ -0,0 +1,78 @@ +{ + "code": 0 + ,"msg": "" + ,"count": "100" + ,"data": [{ + "orderid": 111 + ,"title": "移动支付踏入马来西亚,聚合支付紧随其后" + ,"attr": "公告" + ,"progress": "25%" + ,"submit": "贤心" + ,"accept": "员工-1" + ,"state": "处理中" + },{ + "orderid": 222 + ,"title": "凡科拖拽式免费建站神器,享双重优惠!" + ,"attr": "讨论" + ,"progress": "100%" + ,"submit": "猫吃" + ,"accept": "员工-1" + ,"state": "已处理" + },{ + "orderid": 333 + ,"title": "看着别人的老板给员工送汽车有感" + ,"attr": "分享" + ,"progress": "0%" + ,"submit": "纸飞机" + ,"accept": "" + ,"state": "未分配" + },{ + "orderid": 444 + ,"title": "DISCUZ的云平台应该彻底完了" + ,"attr": "提问" + ,"progress": "0%" + ,"submit": "纸飞机" + ,"accept": "" + ,"state": "未分配" + },{ + "orderid": 555 + ,"title": "现在个人网站还有必要长期坚持下去吗?" + ,"attr": "提问" + ,"progress": "50%" + ,"submit": "纸飞机" + ,"accept": "员工-2" + ,"state": "处理中" + },{ + "orderid": 666 + ,"title": "向北京公安局投诉了京东商城" + ,"attr": "公告" + ,"progress": "25%" + ,"submit": "纸飞机" + ,"accept": "员工-3" + ,"state": "处理中" + },{ + "orderid": 777 + ,"title": "游戏 网页美工,一个月多少工资才正常?" + ,"attr": "提问" + ,"progress": "100%" + ,"submit": "纸飞机" + ,"accept": "员工-1" + ,"state": "已处理" + },{ + "orderid": 888 + ,"title": "几年没来了,蓝色理想帖子这么少了啊" + ,"attr": "提问" + ,"progress": "0%" + ,"submit": "纸飞机" + ,"accept": "" + ,"state": "未分配" + },{ + "orderid": 999 + ,"title": "我的天,求推荐靠谱的学习网站" + ,"attr": "提问" + ,"progress": "50%" + ,"submit": "纸飞机" + ,"accept": "员工-2" + ,"state": "处理中" + }] +} \ No newline at end of file diff --git a/public/static/admin/json/璇存槑.txt b/public/static/admin/json/璇存槑.txt new file mode 100644 index 0000000..ff402e5 --- /dev/null +++ b/public/static/admin/json/璇存槑.txt @@ -0,0 +1,3 @@ + +注意:这里是模拟的数据。 +实际应用时,请在模板文件(.html)中的 lay-url="" 和其它相关接口的 url 设置成你真实的接口地址 \ No newline at end of file diff --git a/public/static/admin/layui/css/layui.css b/public/static/admin/layui/css/layui.css new file mode 100644 index 0000000..0e8508f --- /dev/null +++ b/public/static/admin/layui/css/layui.css @@ -0,0 +1,2 @@ +/** layui-v2.5.5 MIT License By https://www.layui.com */ + .layui-inline,img{display:inline-block;vertical-align:middle}h1,h2,h3,h4,h5,h6{font-weight:400}.layui-edge,.layui-header,.layui-inline,.layui-main{position:relative}.layui-body,.layui-edge,.layui-elip{overflow:hidden}.layui-btn,.layui-edge,.layui-inline,img{vertical-align:middle}.layui-btn,.layui-disabled,.layui-icon,.layui-unselect{-moz-user-select:none;-webkit-user-select:none;-ms-user-select:none}.layui-elip,.layui-form-checkbox span,.layui-form-pane .layui-form-label{text-overflow:ellipsis;white-space:nowrap}.layui-breadcrumb,.layui-tree-btnGroup{visibility:hidden}blockquote,body,button,dd,div,dl,dt,form,h1,h2,h3,h4,h5,h6,input,li,ol,p,pre,td,textarea,th,ul{margin:0;padding:0;-webkit-tap-highlight-color:rgba(0,0,0,0)}a:active,a:hover{outline:0}img{border:none}li{list-style:none}table{border-collapse:collapse;border-spacing:0}h4,h5,h6{font-size:100%}button,input,optgroup,option,select,textarea{font-family:inherit;font-size:inherit;font-style:inherit;font-weight:inherit;outline:0}pre{white-space:pre-wrap;white-space:-moz-pre-wrap;white-space:-pre-wrap;white-space:-o-pre-wrap;word-wrap:break-word}body{line-height:24px;font:14px Helvetica Neue,Helvetica,PingFang SC,Tahoma,Arial,sans-serif}hr{height:1px;margin:10px 0;border:0;clear:both}a{color:#333;text-decoration:none}a:hover{color:#777}a cite{font-style:normal;*cursor:pointer}.layui-border-box,.layui-border-box *{box-sizing:border-box}.layui-box,.layui-box *{box-sizing:content-box}.layui-clear{clear:both;*zoom:1}.layui-clear:after{content:'\20';clear:both;*zoom:1;display:block;height:0}.layui-inline{*display:inline;*zoom:1}.layui-edge{display:inline-block;width:0;height:0;border-width:6px;border-style:dashed;border-color:transparent}.layui-edge-top{top:-4px;border-bottom-color:#999;border-bottom-style:solid}.layui-edge-right{border-left-color:#999;border-left-style:solid}.layui-edge-bottom{top:2px;border-top-color:#999;border-top-style:solid}.layui-edge-left{border-right-color:#999;border-right-style:solid}.layui-disabled,.layui-disabled:hover{color:#d2d2d2!important;cursor:not-allowed!important}.layui-circle{border-radius:100%}.layui-show{display:block!important}.layui-hide{display:none!important}@font-face{font-family:layui-icon;src:url(../font/iconfont.eot?v=250);src:url(../font/iconfont.eot?v=250#iefix) format('embedded-opentype'),url(../font/iconfont.woff2?v=250) format('woff2'),url(../font/iconfont.woff?v=250) format('woff'),url(../font/iconfont.ttf?v=250) format('truetype'),url(../font/iconfont.svg?v=250#layui-icon) format('svg')}.layui-icon{font-family:layui-icon!important;font-size:16px;font-style:normal;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.layui-icon-reply-fill:before{content:"\e611"}.layui-icon-set-fill:before{content:"\e614"}.layui-icon-menu-fill:before{content:"\e60f"}.layui-icon-search:before{content:"\e615"}.layui-icon-share:before{content:"\e641"}.layui-icon-set-sm:before{content:"\e620"}.layui-icon-engine:before{content:"\e628"}.layui-icon-close:before{content:"\1006"}.layui-icon-close-fill:before{content:"\1007"}.layui-icon-chart-screen:before{content:"\e629"}.layui-icon-star:before{content:"\e600"}.layui-icon-circle-dot:before{content:"\e617"}.layui-icon-chat:before{content:"\e606"}.layui-icon-release:before{content:"\e609"}.layui-icon-list:before{content:"\e60a"}.layui-icon-chart:before{content:"\e62c"}.layui-icon-ok-circle:before{content:"\1005"}.layui-icon-layim-theme:before{content:"\e61b"}.layui-icon-table:before{content:"\e62d"}.layui-icon-right:before{content:"\e602"}.layui-icon-left:before{content:"\e603"}.layui-icon-cart-simple:before{content:"\e698"}.layui-icon-face-cry:before{content:"\e69c"}.layui-icon-face-smile:before{content:"\e6af"}.layui-icon-survey:before{content:"\e6b2"}.layui-icon-tree:before{content:"\e62e"}.layui-icon-upload-circle:before{content:"\e62f"}.layui-icon-add-circle:before{content:"\e61f"}.layui-icon-download-circle:before{content:"\e601"}.layui-icon-templeate-1:before{content:"\e630"}.layui-icon-util:before{content:"\e631"}.layui-icon-face-surprised:before{content:"\e664"}.layui-icon-edit:before{content:"\e642"}.layui-icon-speaker:before{content:"\e645"}.layui-icon-down:before{content:"\e61a"}.layui-icon-file:before{content:"\e621"}.layui-icon-layouts:before{content:"\e632"}.layui-icon-rate-half:before{content:"\e6c9"}.layui-icon-add-circle-fine:before{content:"\e608"}.layui-icon-prev-circle:before{content:"\e633"}.layui-icon-read:before{content:"\e705"}.layui-icon-404:before{content:"\e61c"}.layui-icon-carousel:before{content:"\e634"}.layui-icon-help:before{content:"\e607"}.layui-icon-code-circle:before{content:"\e635"}.layui-icon-water:before{content:"\e636"}.layui-icon-username:before{content:"\e66f"}.layui-icon-find-fill:before{content:"\e670"}.layui-icon-about:before{content:"\e60b"}.layui-icon-location:before{content:"\e715"}.layui-icon-up:before{content:"\e619"}.layui-icon-pause:before{content:"\e651"}.layui-icon-date:before{content:"\e637"}.layui-icon-layim-uploadfile:before{content:"\e61d"}.layui-icon-delete:before{content:"\e640"}.layui-icon-play:before{content:"\e652"}.layui-icon-top:before{content:"\e604"}.layui-icon-friends:before{content:"\e612"}.layui-icon-refresh-3:before{content:"\e9aa"}.layui-icon-ok:before{content:"\e605"}.layui-icon-layer:before{content:"\e638"}.layui-icon-face-smile-fine:before{content:"\e60c"}.layui-icon-dollar:before{content:"\e659"}.layui-icon-group:before{content:"\e613"}.layui-icon-layim-download:before{content:"\e61e"}.layui-icon-picture-fine:before{content:"\e60d"}.layui-icon-link:before{content:"\e64c"}.layui-icon-diamond:before{content:"\e735"}.layui-icon-log:before{content:"\e60e"}.layui-icon-rate-solid:before{content:"\e67a"}.layui-icon-fonts-del:before{content:"\e64f"}.layui-icon-unlink:before{content:"\e64d"}.layui-icon-fonts-clear:before{content:"\e639"}.layui-icon-triangle-r:before{content:"\e623"}.layui-icon-circle:before{content:"\e63f"}.layui-icon-radio:before{content:"\e643"}.layui-icon-align-center:before{content:"\e647"}.layui-icon-align-right:before{content:"\e648"}.layui-icon-align-left:before{content:"\e649"}.layui-icon-loading-1:before{content:"\e63e"}.layui-icon-return:before{content:"\e65c"}.layui-icon-fonts-strong:before{content:"\e62b"}.layui-icon-upload:before{content:"\e67c"}.layui-icon-dialogue:before{content:"\e63a"}.layui-icon-video:before{content:"\e6ed"}.layui-icon-headset:before{content:"\e6fc"}.layui-icon-cellphone-fine:before{content:"\e63b"}.layui-icon-add-1:before{content:"\e654"}.layui-icon-face-smile-b:before{content:"\e650"}.layui-icon-fonts-html:before{content:"\e64b"}.layui-icon-form:before{content:"\e63c"}.layui-icon-cart:before{content:"\e657"}.layui-icon-camera-fill:before{content:"\e65d"}.layui-icon-tabs:before{content:"\e62a"}.layui-icon-fonts-code:before{content:"\e64e"}.layui-icon-fire:before{content:"\e756"}.layui-icon-set:before{content:"\e716"}.layui-icon-fonts-u:before{content:"\e646"}.layui-icon-triangle-d:before{content:"\e625"}.layui-icon-tips:before{content:"\e702"}.layui-icon-picture:before{content:"\e64a"}.layui-icon-more-vertical:before{content:"\e671"}.layui-icon-flag:before{content:"\e66c"}.layui-icon-loading:before{content:"\e63d"}.layui-icon-fonts-i:before{content:"\e644"}.layui-icon-refresh-1:before{content:"\e666"}.layui-icon-rmb:before{content:"\e65e"}.layui-icon-home:before{content:"\e68e"}.layui-icon-user:before{content:"\e770"}.layui-icon-notice:before{content:"\e667"}.layui-icon-login-weibo:before{content:"\e675"}.layui-icon-voice:before{content:"\e688"}.layui-icon-upload-drag:before{content:"\e681"}.layui-icon-login-qq:before{content:"\e676"}.layui-icon-snowflake:before{content:"\e6b1"}.layui-icon-file-b:before{content:"\e655"}.layui-icon-template:before{content:"\e663"}.layui-icon-auz:before{content:"\e672"}.layui-icon-console:before{content:"\e665"}.layui-icon-app:before{content:"\e653"}.layui-icon-prev:before{content:"\e65a"}.layui-icon-website:before{content:"\e7ae"}.layui-icon-next:before{content:"\e65b"}.layui-icon-component:before{content:"\e857"}.layui-icon-more:before{content:"\e65f"}.layui-icon-login-wechat:before{content:"\e677"}.layui-icon-shrink-right:before{content:"\e668"}.layui-icon-spread-left:before{content:"\e66b"}.layui-icon-camera:before{content:"\e660"}.layui-icon-note:before{content:"\e66e"}.layui-icon-refresh:before{content:"\e669"}.layui-icon-female:before{content:"\e661"}.layui-icon-male:before{content:"\e662"}.layui-icon-password:before{content:"\e673"}.layui-icon-senior:before{content:"\e674"}.layui-icon-theme:before{content:"\e66a"}.layui-icon-tread:before{content:"\e6c5"}.layui-icon-praise:before{content:"\e6c6"}.layui-icon-star-fill:before{content:"\e658"}.layui-icon-rate:before{content:"\e67b"}.layui-icon-template-1:before{content:"\e656"}.layui-icon-vercode:before{content:"\e679"}.layui-icon-cellphone:before{content:"\e678"}.layui-icon-screen-full:before{content:"\e622"}.layui-icon-screen-restore:before{content:"\e758"}.layui-icon-cols:before{content:"\e610"}.layui-icon-export:before{content:"\e67d"}.layui-icon-print:before{content:"\e66d"}.layui-icon-slider:before{content:"\e714"}.layui-icon-addition:before{content:"\e624"}.layui-icon-subtraction:before{content:"\e67e"}.layui-icon-service:before{content:"\e626"}.layui-icon-transfer:before{content:"\e691"}.layui-main{width:1140px;margin:0 auto}.layui-header{z-index:1000;height:60px}.layui-header a:hover{transition:all .5s;-webkit-transition:all .5s}.layui-side{position:fixed;left:0;top:0;bottom:0;z-index:999;width:200px;overflow-x:hidden}.layui-side-scroll{position:relative;width:220px;height:100%;overflow-x:hidden}.layui-body{position:absolute;left:200px;right:0;top:0;bottom:0;z-index:998;width:auto;overflow-y:auto;box-sizing:border-box}.layui-layout-body{overflow:hidden}.layui-layout-admin .layui-header{background-color:#23262E}.layui-layout-admin .layui-side{top:60px;width:200px;overflow-x:hidden}.layui-layout-admin .layui-body{position:fixed;top:60px;bottom:44px}.layui-layout-admin .layui-main{width:auto;margin:0 15px}.layui-layout-admin .layui-footer{position:fixed;left:200px;right:0;bottom:0;height:44px;line-height:44px;padding:0 15px;background-color:#eee}.layui-layout-admin .layui-logo{position:absolute;left:0;top:0;width:200px;height:100%;line-height:60px;text-align:center;color:#009688;font-size:16px}.layui-layout-admin .layui-header .layui-nav{background:0 0}.layui-layout-left{position:absolute!important;left:200px;top:0}.layui-layout-right{position:absolute!important;right:0;top:0}.layui-container{position:relative;margin:0 auto;padding:0 15px;box-sizing:border-box}.layui-fluid{position:relative;margin:0 auto;padding:0 15px}.layui-row:after,.layui-row:before{content:'';display:block;clear:both}.layui-col-lg1,.layui-col-lg10,.layui-col-lg11,.layui-col-lg12,.layui-col-lg2,.layui-col-lg3,.layui-col-lg4,.layui-col-lg5,.layui-col-lg6,.layui-col-lg7,.layui-col-lg8,.layui-col-lg9,.layui-col-md1,.layui-col-md10,.layui-col-md11,.layui-col-md12,.layui-col-md2,.layui-col-md3,.layui-col-md4,.layui-col-md5,.layui-col-md6,.layui-col-md7,.layui-col-md8,.layui-col-md9,.layui-col-sm1,.layui-col-sm10,.layui-col-sm11,.layui-col-sm12,.layui-col-sm2,.layui-col-sm3,.layui-col-sm4,.layui-col-sm5,.layui-col-sm6,.layui-col-sm7,.layui-col-sm8,.layui-col-sm9,.layui-col-xs1,.layui-col-xs10,.layui-col-xs11,.layui-col-xs12,.layui-col-xs2,.layui-col-xs3,.layui-col-xs4,.layui-col-xs5,.layui-col-xs6,.layui-col-xs7,.layui-col-xs8,.layui-col-xs9{position:relative;display:block;box-sizing:border-box}.layui-col-xs1,.layui-col-xs10,.layui-col-xs11,.layui-col-xs12,.layui-col-xs2,.layui-col-xs3,.layui-col-xs4,.layui-col-xs5,.layui-col-xs6,.layui-col-xs7,.layui-col-xs8,.layui-col-xs9{float:left}.layui-col-xs1{width:8.33333333%}.layui-col-xs2{width:16.66666667%}.layui-col-xs3{width:25%}.layui-col-xs4{width:33.33333333%}.layui-col-xs5{width:41.66666667%}.layui-col-xs6{width:50%}.layui-col-xs7{width:58.33333333%}.layui-col-xs8{width:66.66666667%}.layui-col-xs9{width:75%}.layui-col-xs10{width:83.33333333%}.layui-col-xs11{width:91.66666667%}.layui-col-xs12{width:100%}.layui-col-xs-offset1{margin-left:8.33333333%}.layui-col-xs-offset2{margin-left:16.66666667%}.layui-col-xs-offset3{margin-left:25%}.layui-col-xs-offset4{margin-left:33.33333333%}.layui-col-xs-offset5{margin-left:41.66666667%}.layui-col-xs-offset6{margin-left:50%}.layui-col-xs-offset7{margin-left:58.33333333%}.layui-col-xs-offset8{margin-left:66.66666667%}.layui-col-xs-offset9{margin-left:75%}.layui-col-xs-offset10{margin-left:83.33333333%}.layui-col-xs-offset11{margin-left:91.66666667%}.layui-col-xs-offset12{margin-left:100%}@media screen and (max-width:768px){.layui-hide-xs{display:none!important}.layui-show-xs-block{display:block!important}.layui-show-xs-inline{display:inline!important}.layui-show-xs-inline-block{display:inline-block!important}}@media screen and (min-width:768px){.layui-container{width:750px}.layui-hide-sm{display:none!important}.layui-show-sm-block{display:block!important}.layui-show-sm-inline{display:inline!important}.layui-show-sm-inline-block{display:inline-block!important}.layui-col-sm1,.layui-col-sm10,.layui-col-sm11,.layui-col-sm12,.layui-col-sm2,.layui-col-sm3,.layui-col-sm4,.layui-col-sm5,.layui-col-sm6,.layui-col-sm7,.layui-col-sm8,.layui-col-sm9{float:left}.layui-col-sm1{width:8.33333333%}.layui-col-sm2{width:16.66666667%}.layui-col-sm3{width:25%}.layui-col-sm4{width:33.33333333%}.layui-col-sm5{width:41.66666667%}.layui-col-sm6{width:50%}.layui-col-sm7{width:58.33333333%}.layui-col-sm8{width:66.66666667%}.layui-col-sm9{width:75%}.layui-col-sm10{width:83.33333333%}.layui-col-sm11{width:91.66666667%}.layui-col-sm12{width:100%}.layui-col-sm-offset1{margin-left:8.33333333%}.layui-col-sm-offset2{margin-left:16.66666667%}.layui-col-sm-offset3{margin-left:25%}.layui-col-sm-offset4{margin-left:33.33333333%}.layui-col-sm-offset5{margin-left:41.66666667%}.layui-col-sm-offset6{margin-left:50%}.layui-col-sm-offset7{margin-left:58.33333333%}.layui-col-sm-offset8{margin-left:66.66666667%}.layui-col-sm-offset9{margin-left:75%}.layui-col-sm-offset10{margin-left:83.33333333%}.layui-col-sm-offset11{margin-left:91.66666667%}.layui-col-sm-offset12{margin-left:100%}}@media screen and (min-width:992px){.layui-container{width:970px}.layui-hide-md{display:none!important}.layui-show-md-block{display:block!important}.layui-show-md-inline{display:inline!important}.layui-show-md-inline-block{display:inline-block!important}.layui-col-md1,.layui-col-md10,.layui-col-md11,.layui-col-md12,.layui-col-md2,.layui-col-md3,.layui-col-md4,.layui-col-md5,.layui-col-md6,.layui-col-md7,.layui-col-md8,.layui-col-md9{float:left}.layui-col-md1{width:8.33333333%}.layui-col-md2{width:16.66666667%}.layui-col-md3{width:25%}.layui-col-md4{width:33.33333333%}.layui-col-md5{width:41.66666667%}.layui-col-md6{width:50%}.layui-col-md7{width:58.33333333%}.layui-col-md8{width:66.66666667%}.layui-col-md9{width:75%}.layui-col-md10{width:83.33333333%}.layui-col-md11{width:91.66666667%}.layui-col-md12{width:100%}.layui-col-md-offset1{margin-left:8.33333333%}.layui-col-md-offset2{margin-left:16.66666667%}.layui-col-md-offset3{margin-left:25%}.layui-col-md-offset4{margin-left:33.33333333%}.layui-col-md-offset5{margin-left:41.66666667%}.layui-col-md-offset6{margin-left:50%}.layui-col-md-offset7{margin-left:58.33333333%}.layui-col-md-offset8{margin-left:66.66666667%}.layui-col-md-offset9{margin-left:75%}.layui-col-md-offset10{margin-left:83.33333333%}.layui-col-md-offset11{margin-left:91.66666667%}.layui-col-md-offset12{margin-left:100%}}@media screen and (min-width:1200px){.layui-container{width:1170px}.layui-hide-lg{display:none!important}.layui-show-lg-block{display:block!important}.layui-show-lg-inline{display:inline!important}.layui-show-lg-inline-block{display:inline-block!important}.layui-col-lg1,.layui-col-lg10,.layui-col-lg11,.layui-col-lg12,.layui-col-lg2,.layui-col-lg3,.layui-col-lg4,.layui-col-lg5,.layui-col-lg6,.layui-col-lg7,.layui-col-lg8,.layui-col-lg9{float:left}.layui-col-lg1{width:8.33333333%}.layui-col-lg2{width:16.66666667%}.layui-col-lg3{width:25%}.layui-col-lg4{width:33.33333333%}.layui-col-lg5{width:41.66666667%}.layui-col-lg6{width:50%}.layui-col-lg7{width:58.33333333%}.layui-col-lg8{width:66.66666667%}.layui-col-lg9{width:75%}.layui-col-lg10{width:83.33333333%}.layui-col-lg11{width:91.66666667%}.layui-col-lg12{width:100%}.layui-col-lg-offset1{margin-left:8.33333333%}.layui-col-lg-offset2{margin-left:16.66666667%}.layui-col-lg-offset3{margin-left:25%}.layui-col-lg-offset4{margin-left:33.33333333%}.layui-col-lg-offset5{margin-left:41.66666667%}.layui-col-lg-offset6{margin-left:50%}.layui-col-lg-offset7{margin-left:58.33333333%}.layui-col-lg-offset8{margin-left:66.66666667%}.layui-col-lg-offset9{margin-left:75%}.layui-col-lg-offset10{margin-left:83.33333333%}.layui-col-lg-offset11{margin-left:91.66666667%}.layui-col-lg-offset12{margin-left:100%}}.layui-col-space1{margin:-.5px}.layui-col-space1>*{padding:.5px}.layui-col-space3{margin:-1.5px}.layui-col-space3>*{padding:1.5px}.layui-col-space5{margin:-2.5px}.layui-col-space5>*{padding:2.5px}.layui-col-space8{margin:-3.5px}.layui-col-space8>*{padding:3.5px}.layui-col-space10{margin:-5px}.layui-col-space10>*{padding:5px}.layui-col-space12{margin:-6px}.layui-col-space12>*{padding:6px}.layui-col-space15{margin:-7.5px}.layui-col-space15>*{padding:7.5px}.layui-col-space18{margin:-9px}.layui-col-space18>*{padding:9px}.layui-col-space20{margin:-10px}.layui-col-space20>*{padding:10px}.layui-col-space22{margin:-11px}.layui-col-space22>*{padding:11px}.layui-col-space25{margin:-12.5px}.layui-col-space25>*{padding:12.5px}.layui-col-space30{margin:-15px}.layui-col-space30>*{padding:15px}.layui-btn,.layui-input,.layui-select,.layui-textarea,.layui-upload-button{outline:0;-webkit-appearance:none;transition:all .3s;-webkit-transition:all .3s;box-sizing:border-box}.layui-elem-quote{margin-bottom:10px;padding:15px;line-height:22px;border-left:5px solid #009688;border-radius:0 2px 2px 0;background-color:#f2f2f2}.layui-quote-nm{border-style:solid;border-width:1px 1px 1px 5px;background:0 0}.layui-elem-field{margin-bottom:10px;padding:0;border-width:1px;border-style:solid}.layui-elem-field legend{margin-left:20px;padding:0 10px;font-size:20px;font-weight:300}.layui-field-title{margin:10px 0 20px;border-width:1px 0 0}.layui-field-box{padding:10px 15px}.layui-field-title .layui-field-box{padding:10px 0}.layui-progress{position:relative;height:6px;border-radius:20px;background-color:#e2e2e2}.layui-progress-bar{position:absolute;left:0;top:0;width:0;max-width:100%;height:6px;border-radius:20px;text-align:right;background-color:#5FB878;transition:all .3s;-webkit-transition:all .3s}.layui-progress-big,.layui-progress-big .layui-progress-bar{height:18px;line-height:18px}.layui-progress-text{position:relative;top:-20px;line-height:18px;font-size:12px;color:#666}.layui-progress-big .layui-progress-text{position:static;padding:0 10px;color:#fff}.layui-collapse{border-width:1px;border-style:solid;border-radius:2px}.layui-colla-content,.layui-colla-item{border-top-width:1px;border-top-style:solid}.layui-colla-item:first-child{border-top:none}.layui-colla-title{position:relative;height:42px;line-height:42px;padding:0 15px 0 35px;color:#333;background-color:#f2f2f2;cursor:pointer;font-size:14px;overflow:hidden}.layui-colla-content{display:none;padding:10px 15px;line-height:22px;color:#666}.layui-colla-icon{position:absolute;left:15px;top:0;font-size:14px}.layui-card{margin-bottom:15px;border-radius:2px;background-color:#fff;box-shadow:0 1px 2px 0 rgba(0,0,0,.05)}.layui-card:last-child{margin-bottom:0}.layui-card-header{position:relative;height:42px;line-height:42px;padding:0 15px;border-bottom:1px solid #f6f6f6;color:#333;border-radius:2px 2px 0 0;font-size:14px}.layui-bg-black,.layui-bg-blue,.layui-bg-cyan,.layui-bg-green,.layui-bg-orange,.layui-bg-red{color:#fff!important}.layui-card-body{position:relative;padding:10px 15px;line-height:24px}.layui-card-body[pad15]{padding:15px}.layui-card-body[pad20]{padding:20px}.layui-card-body .layui-table{margin:5px 0}.layui-card .layui-tab{margin:0}.layui-panel-window{position:relative;padding:15px;border-radius:0;border-top:5px solid #E6E6E6;background-color:#fff}.layui-auxiliar-moving{position:fixed;left:0;right:0;top:0;bottom:0;width:100%;height:100%;background:0 0;z-index:9999999999}.layui-form-label,.layui-form-mid,.layui-form-select,.layui-input-block,.layui-input-inline,.layui-textarea{position:relative}.layui-bg-red{background-color:#FF5722!important}.layui-bg-orange{background-color:#FFB800!important}.layui-bg-green{background-color:#009688!important}.layui-bg-cyan{background-color:#2F4056!important}.layui-bg-blue{background-color:#1E9FFF!important}.layui-bg-black{background-color:#393D49!important}.layui-bg-gray{background-color:#eee!important;color:#666!important}.layui-badge-rim,.layui-colla-content,.layui-colla-item,.layui-collapse,.layui-elem-field,.layui-form-pane .layui-form-item[pane],.layui-form-pane .layui-form-label,.layui-input,.layui-layedit,.layui-layedit-tool,.layui-quote-nm,.layui-select,.layui-tab-bar,.layui-tab-card,.layui-tab-title,.layui-tab-title .layui-this:after,.layui-textarea{border-color:#e6e6e6}.layui-timeline-item:before,hr{background-color:#e6e6e6}.layui-text{line-height:22px;font-size:14px;color:#666}.layui-text h1,.layui-text h2,.layui-text h3{font-weight:500;color:#333}.layui-text h1{font-size:30px}.layui-text h2{font-size:24px}.layui-text h3{font-size:18px}.layui-text a:not(.layui-btn){color:#01AAED}.layui-text a:not(.layui-btn):hover{text-decoration:underline}.layui-text ul{padding:5px 0 5px 15px}.layui-text ul li{margin-top:5px;list-style-type:disc}.layui-text em,.layui-word-aux{color:#999!important;padding:0 5px!important}.layui-btn{display:inline-block;height:38px;line-height:38px;padding:0 18px;background-color:#009688;color:#fff;white-space:nowrap;text-align:center;font-size:14px;border:none;border-radius:2px;cursor:pointer}.layui-btn:hover{opacity:.8;filter:alpha(opacity=80);color:#fff}.layui-btn:active{opacity:1;filter:alpha(opacity=100)}.layui-btn+.layui-btn{margin-left:10px}.layui-btn-container{font-size:0}.layui-btn-container .layui-btn{margin-right:10px;margin-bottom:10px}.layui-btn-container .layui-btn+.layui-btn{margin-left:0}.layui-table .layui-btn-container .layui-btn{margin-bottom:9px}.layui-btn-radius{border-radius:100px}.layui-btn .layui-icon{margin-right:3px;font-size:18px;vertical-align:bottom;vertical-align:middle\9}.layui-btn-primary{border:1px solid #C9C9C9;background-color:#fff;color:#555}.layui-btn-primary:hover{border-color:#009688;color:#333}.layui-btn-normal{background-color:#1E9FFF}.layui-btn-warm{background-color:#FFB800}.layui-btn-danger{background-color:#FF5722}.layui-btn-checked{background-color:#5FB878}.layui-btn-disabled,.layui-btn-disabled:active,.layui-btn-disabled:hover{border:1px solid #e6e6e6;background-color:#FBFBFB;color:#C9C9C9;cursor:not-allowed;opacity:1}.layui-btn-lg{height:44px;line-height:44px;padding:0 25px;font-size:16px}.layui-btn-sm{height:30px;line-height:30px;padding:0 10px;font-size:12px}.layui-btn-sm i{font-size:16px!important}.layui-btn-xs{height:22px;line-height:22px;padding:0 5px;font-size:12px}.layui-btn-xs i{font-size:14px!important}.layui-btn-group{display:inline-block;vertical-align:middle;font-size:0}.layui-btn-group .layui-btn{margin-left:0!important;margin-right:0!important;border-left:1px solid rgba(255,255,255,.5);border-radius:0}.layui-btn-group .layui-btn-primary{border-left:none}.layui-btn-group .layui-btn-primary:hover{border-color:#C9C9C9;color:#009688}.layui-btn-group .layui-btn:first-child{border-left:none;border-radius:2px 0 0 2px}.layui-btn-group .layui-btn-primary:first-child{border-left:1px solid #c9c9c9}.layui-btn-group .layui-btn:last-child{border-radius:0 2px 2px 0}.layui-btn-group .layui-btn+.layui-btn{margin-left:0}.layui-btn-group+.layui-btn-group{margin-left:10px}.layui-btn-fluid{width:100%}.layui-input,.layui-select,.layui-textarea{height:38px;line-height:1.3;line-height:38px\9;border-width:1px;border-style:solid;background-color:#fff;border-radius:2px}.layui-input::-webkit-input-placeholder,.layui-select::-webkit-input-placeholder,.layui-textarea::-webkit-input-placeholder{line-height:1.3}.layui-input,.layui-textarea{display:block;width:100%;padding-left:10px}.layui-input:hover,.layui-textarea:hover{border-color:#D2D2D2!important}.layui-input:focus,.layui-textarea:focus{border-color:#C9C9C9!important}.layui-textarea{min-height:100px;height:auto;line-height:20px;padding:6px 10px;resize:vertical}.layui-select{padding:0 10px}.layui-form input[type=checkbox],.layui-form input[type=radio],.layui-form select{display:none}.layui-form [lay-ignore]{display:initial}.layui-form-item{margin-bottom:15px;clear:both;*zoom:1}.layui-form-item:after{content:'\20';clear:both;*zoom:1;display:block;height:0}.layui-form-label{float:left;display:block;padding:9px 15px;width:80px;font-weight:400;line-height:20px;text-align:right}.layui-form-label-col{display:block;float:none;padding:9px 0;line-height:20px;text-align:left}.layui-form-item .layui-inline{margin-bottom:5px;margin-right:10px}.layui-input-block{margin-left:110px;min-height:36px}.layui-input-inline{display:inline-block;vertical-align:middle}.layui-form-item .layui-input-inline{float:left;width:190px;margin-right:10px}.layui-form-text .layui-input-inline{width:auto}.layui-form-mid{float:left;display:block;padding:9px 0!important;line-height:20px;margin-right:10px}.layui-form-danger+.layui-form-select .layui-input,.layui-form-danger:focus{border-color:#FF5722!important}.layui-form-select .layui-input{padding-right:30px;cursor:pointer}.layui-form-select .layui-edge{position:absolute;right:10px;top:50%;margin-top:-3px;cursor:pointer;border-width:6px;border-top-color:#c2c2c2;border-top-style:solid;transition:all .3s;-webkit-transition:all .3s}.layui-form-select dl{display:none;position:absolute;left:0;top:42px;padding:5px 0;z-index:899;min-width:100%;border:1px solid #d2d2d2;max-height:300px;overflow-y:auto;background-color:#fff;border-radius:2px;box-shadow:0 2px 4px rgba(0,0,0,.12);box-sizing:border-box}.layui-form-select dl dd,.layui-form-select dl dt{padding:0 10px;line-height:36px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.layui-form-select dl dt{font-size:12px;color:#999}.layui-form-select dl dd{cursor:pointer}.layui-form-select dl dd:hover{background-color:#f2f2f2;-webkit-transition:.5s all;transition:.5s all}.layui-form-select .layui-select-group dd{padding-left:20px}.layui-form-select dl dd.layui-select-tips{padding-left:10px!important;color:#999}.layui-form-select dl dd.layui-this{background-color:#5FB878;color:#fff}.layui-form-checkbox,.layui-form-select dl dd.layui-disabled{background-color:#fff}.layui-form-selected dl{display:block}.layui-form-checkbox,.layui-form-checkbox *,.layui-form-switch{display:inline-block;vertical-align:middle}.layui-form-selected .layui-edge{margin-top:-9px;-webkit-transform:rotate(180deg);transform:rotate(180deg);margin-top:-3px\9}:root .layui-form-selected .layui-edge{margin-top:-9px\0/IE9}.layui-form-selectup dl{top:auto;bottom:42px}.layui-select-none{margin:5px 0;text-align:center;color:#999}.layui-select-disabled .layui-disabled{border-color:#eee!important}.layui-select-disabled .layui-edge{border-top-color:#d2d2d2}.layui-form-checkbox{position:relative;height:30px;line-height:30px;margin-right:10px;padding-right:30px;cursor:pointer;font-size:0;-webkit-transition:.1s linear;transition:.1s linear;box-sizing:border-box}.layui-form-checkbox span{padding:0 10px;height:100%;font-size:14px;border-radius:2px 0 0 2px;background-color:#d2d2d2;color:#fff;overflow:hidden}.layui-form-checkbox:hover span{background-color:#c2c2c2}.layui-form-checkbox i{position:absolute;right:0;top:0;width:30px;height:28px;border:1px solid #d2d2d2;border-left:none;border-radius:0 2px 2px 0;color:#fff;font-size:20px;text-align:center}.layui-form-checkbox:hover i{border-color:#c2c2c2;color:#c2c2c2}.layui-form-checked,.layui-form-checked:hover{border-color:#5FB878}.layui-form-checked span,.layui-form-checked:hover span{background-color:#5FB878}.layui-form-checked i,.layui-form-checked:hover i{color:#5FB878}.layui-form-item .layui-form-checkbox{margin-top:4px}.layui-form-checkbox[lay-skin=primary]{height:auto!important;line-height:normal!important;min-width:18px;min-height:18px;border:none!important;margin-right:0;padding-left:28px;padding-right:0;background:0 0}.layui-form-checkbox[lay-skin=primary] span{padding-left:0;padding-right:15px;line-height:18px;background:0 0;color:#666}.layui-form-checkbox[lay-skin=primary] i{right:auto;left:0;width:16px;height:16px;line-height:16px;border:1px solid #d2d2d2;font-size:12px;border-radius:2px;background-color:#fff;-webkit-transition:.1s linear;transition:.1s linear}.layui-form-checkbox[lay-skin=primary]:hover i{border-color:#5FB878;color:#fff}.layui-form-checked[lay-skin=primary] i{border-color:#5FB878!important;background-color:#5FB878;color:#fff}.layui-checkbox-disbaled[lay-skin=primary] span{background:0 0!important;color:#c2c2c2}.layui-checkbox-disbaled[lay-skin=primary]:hover i{border-color:#d2d2d2}.layui-form-item .layui-form-checkbox[lay-skin=primary]{margin-top:10px}.layui-form-switch{position:relative;height:22px;line-height:22px;min-width:35px;padding:0 5px;margin-top:8px;border:1px solid #d2d2d2;border-radius:20px;cursor:pointer;background-color:#fff;-webkit-transition:.1s linear;transition:.1s linear}.layui-form-switch i{position:absolute;left:5px;top:3px;width:16px;height:16px;border-radius:20px;background-color:#d2d2d2;-webkit-transition:.1s linear;transition:.1s linear}.layui-form-switch em{position:relative;top:0;width:25px;margin-left:21px;padding:0!important;text-align:center!important;color:#999!important;font-style:normal!important;font-size:12px}.layui-form-onswitch{border-color:#5FB878;background-color:#5FB878}.layui-checkbox-disbaled,.layui-checkbox-disbaled i{border-color:#e2e2e2!important}.layui-form-onswitch i{left:100%;margin-left:-21px;background-color:#fff}.layui-form-onswitch em{margin-left:5px;margin-right:21px;color:#fff!important}.layui-checkbox-disbaled span{background-color:#e2e2e2!important}.layui-checkbox-disbaled:hover i{color:#fff!important}[lay-radio]{display:none}.layui-form-radio,.layui-form-radio *{display:inline-block;vertical-align:middle}.layui-form-radio{line-height:28px;margin:6px 10px 0 0;padding-right:10px;cursor:pointer;font-size:0}.layui-form-radio *{font-size:14px}.layui-form-radio>i{margin-right:8px;font-size:22px;color:#c2c2c2}.layui-form-radio>i:hover,.layui-form-radioed>i{color:#5FB878}.layui-radio-disbaled>i{color:#e2e2e2!important}.layui-form-pane .layui-form-label{width:110px;padding:8px 15px;height:38px;line-height:20px;border-width:1px;border-style:solid;border-radius:2px 0 0 2px;text-align:center;background-color:#FBFBFB;overflow:hidden;box-sizing:border-box}.layui-form-pane .layui-input-inline{margin-left:-1px}.layui-form-pane .layui-input-block{margin-left:110px;left:-1px}.layui-form-pane .layui-input{border-radius:0 2px 2px 0}.layui-form-pane .layui-form-text .layui-form-label{float:none;width:100%;border-radius:2px;box-sizing:border-box;text-align:left}.layui-form-pane .layui-form-text .layui-input-inline{display:block;margin:0;top:-1px;clear:both}.layui-form-pane .layui-form-text .layui-input-block{margin:0;left:0;top:-1px}.layui-form-pane .layui-form-text .layui-textarea{min-height:100px;border-radius:0 0 2px 2px}.layui-form-pane .layui-form-checkbox{margin:4px 0 4px 10px}.layui-form-pane .layui-form-radio,.layui-form-pane .layui-form-switch{margin-top:6px;margin-left:10px}.layui-form-pane .layui-form-item[pane]{position:relative;border-width:1px;border-style:solid}.layui-form-pane .layui-form-item[pane] .layui-form-label{position:absolute;left:0;top:0;height:100%;border-width:0 1px 0 0}.layui-form-pane .layui-form-item[pane] .layui-input-inline{margin-left:110px}@media screen and (max-width:450px){.layui-form-item .layui-form-label{text-overflow:ellipsis;overflow:hidden;white-space:nowrap}.layui-form-item .layui-inline{display:block;margin-right:0;margin-bottom:20px;clear:both}.layui-form-item .layui-inline:after{content:'\20';clear:both;display:block;height:0}.layui-form-item .layui-input-inline{display:block;float:none;left:-3px;width:auto;margin:0 0 10px 112px}.layui-form-item .layui-input-inline+.layui-form-mid{margin-left:110px;top:-5px;padding:0}.layui-form-item .layui-form-checkbox{margin-right:5px;margin-bottom:5px}}.layui-layedit{border-width:1px;border-style:solid;border-radius:2px}.layui-layedit-tool{padding:3px 5px;border-bottom-width:1px;border-bottom-style:solid;font-size:0}.layedit-tool-fixed{position:fixed;top:0;border-top:1px solid #e2e2e2}.layui-layedit-tool .layedit-tool-mid,.layui-layedit-tool .layui-icon{display:inline-block;vertical-align:middle;text-align:center;font-size:14px}.layui-layedit-tool .layui-icon{position:relative;width:32px;height:30px;line-height:30px;margin:3px 5px;color:#777;cursor:pointer;border-radius:2px}.layui-layedit-tool .layui-icon:hover{color:#393D49}.layui-layedit-tool .layui-icon:active{color:#000}.layui-layedit-tool .layedit-tool-active{background-color:#e2e2e2;color:#000}.layui-layedit-tool .layui-disabled,.layui-layedit-tool .layui-disabled:hover{color:#d2d2d2;cursor:not-allowed}.layui-layedit-tool .layedit-tool-mid{width:1px;height:18px;margin:0 10px;background-color:#d2d2d2}.layedit-tool-html{width:50px!important;font-size:30px!important}.layedit-tool-b,.layedit-tool-code,.layedit-tool-help{font-size:16px!important}.layedit-tool-d,.layedit-tool-face,.layedit-tool-image,.layedit-tool-unlink{font-size:18px!important}.layedit-tool-image input{position:absolute;font-size:0;left:0;top:0;width:100%;height:100%;opacity:.01;filter:Alpha(opacity=1);cursor:pointer}.layui-layedit-iframe iframe{display:block;width:100%}#LAY_layedit_code{overflow:hidden}.layui-laypage{display:inline-block;*display:inline;*zoom:1;vertical-align:middle;margin:10px 0;font-size:0}.layui-laypage>a:first-child,.layui-laypage>a:first-child em{border-radius:2px 0 0 2px}.layui-laypage>a:last-child,.layui-laypage>a:last-child em{border-radius:0 2px 2px 0}.layui-laypage>:first-child{margin-left:0!important}.layui-laypage>:last-child{margin-right:0!important}.layui-laypage a,.layui-laypage button,.layui-laypage input,.layui-laypage select,.layui-laypage span{border:1px solid #e2e2e2}.layui-laypage a,.layui-laypage span{display:inline-block;*display:inline;*zoom:1;vertical-align:middle;padding:0 15px;height:28px;line-height:28px;margin:0 -1px 5px 0;background-color:#fff;color:#333;font-size:12px}.layui-flow-more a *,.layui-laypage input,.layui-table-view select[lay-ignore]{display:inline-block}.layui-laypage a:hover{color:#009688}.layui-laypage em{font-style:normal}.layui-laypage .layui-laypage-spr{color:#999;font-weight:700}.layui-laypage a{text-decoration:none}.layui-laypage .layui-laypage-curr{position:relative}.layui-laypage .layui-laypage-curr em{position:relative;color:#fff}.layui-laypage .layui-laypage-curr .layui-laypage-em{position:absolute;left:-1px;top:-1px;padding:1px;width:100%;height:100%;background-color:#009688}.layui-laypage-em{border-radius:2px}.layui-laypage-next em,.layui-laypage-prev em{font-family:Sim sun;font-size:16px}.layui-laypage .layui-laypage-count,.layui-laypage .layui-laypage-limits,.layui-laypage .layui-laypage-refresh,.layui-laypage .layui-laypage-skip{margin-left:10px;margin-right:10px;padding:0;border:none}.layui-laypage .layui-laypage-limits,.layui-laypage .layui-laypage-refresh{vertical-align:top}.layui-laypage .layui-laypage-refresh i{font-size:18px;cursor:pointer}.layui-laypage select{height:22px;padding:3px;border-radius:2px;cursor:pointer}.layui-laypage .layui-laypage-skip{height:30px;line-height:30px;color:#999}.layui-laypage button,.layui-laypage input{height:30px;line-height:30px;border-radius:2px;vertical-align:top;background-color:#fff;box-sizing:border-box}.layui-laypage input{width:40px;margin:0 10px;padding:0 3px;text-align:center}.layui-laypage input:focus,.layui-laypage select:focus{border-color:#009688!important}.layui-laypage button{margin-left:10px;padding:0 10px;cursor:pointer}.layui-table,.layui-table-view{margin:10px 0}.layui-flow-more{margin:10px 0;text-align:center;color:#999;font-size:14px}.layui-flow-more a{height:32px;line-height:32px}.layui-flow-more a *{vertical-align:top}.layui-flow-more a cite{padding:0 20px;border-radius:3px;background-color:#eee;color:#333;font-style:normal}.layui-flow-more a cite:hover{opacity:.8}.layui-flow-more a i{font-size:30px;color:#737383}.layui-table{width:100%;background-color:#fff;color:#666}.layui-table tr{transition:all .3s;-webkit-transition:all .3s}.layui-table th{text-align:left;font-weight:400}.layui-table tbody tr:hover,.layui-table thead tr,.layui-table-click,.layui-table-header,.layui-table-hover,.layui-table-mend,.layui-table-patch,.layui-table-tool,.layui-table-total,.layui-table-total tr,.layui-table[lay-even] tr:nth-child(even){background-color:#f2f2f2}.layui-table td,.layui-table th,.layui-table-col-set,.layui-table-fixed-r,.layui-table-grid-down,.layui-table-header,.layui-table-page,.layui-table-tips-main,.layui-table-tool,.layui-table-total,.layui-table-view,.layui-table[lay-skin=line],.layui-table[lay-skin=row]{border-width:1px;border-style:solid;border-color:#e6e6e6}.layui-table td,.layui-table th{position:relative;padding:9px 15px;min-height:20px;line-height:20px;font-size:14px}.layui-table[lay-skin=line] td,.layui-table[lay-skin=line] th{border-width:0 0 1px}.layui-table[lay-skin=row] td,.layui-table[lay-skin=row] th{border-width:0 1px 0 0}.layui-table[lay-skin=nob] td,.layui-table[lay-skin=nob] th{border:none}.layui-table img{max-width:100px}.layui-table[lay-size=lg] td,.layui-table[lay-size=lg] th{padding:15px 30px}.layui-table-view .layui-table[lay-size=lg] .layui-table-cell{height:40px;line-height:40px}.layui-table[lay-size=sm] td,.layui-table[lay-size=sm] th{font-size:12px;padding:5px 10px}.layui-table-view .layui-table[lay-size=sm] .layui-table-cell{height:20px;line-height:20px}.layui-table[lay-data]{display:none}.layui-table-box{position:relative;overflow:hidden}.layui-table-view .layui-table{position:relative;width:auto;margin:0}.layui-table-view .layui-table[lay-skin=line]{border-width:0 1px 0 0}.layui-table-view .layui-table[lay-skin=row]{border-width:0 0 1px}.layui-table-view .layui-table td,.layui-table-view .layui-table th{padding:5px 0;border-top:none;border-left:none}.layui-table-view .layui-table th.layui-unselect .layui-table-cell span{cursor:pointer}.layui-table-view .layui-table td{cursor:default}.layui-table-view .layui-table td[data-edit=text]{cursor:text}.layui-table-view .layui-form-checkbox[lay-skin=primary] i{width:18px;height:18px}.layui-table-view .layui-form-radio{line-height:0;padding:0}.layui-table-view .layui-form-radio>i{margin:0;font-size:20px}.layui-table-init{position:absolute;left:0;top:0;width:100%;height:100%;text-align:center;z-index:110}.layui-table-init .layui-icon{position:absolute;left:50%;top:50%;margin:-15px 0 0 -15px;font-size:30px;color:#c2c2c2}.layui-table-header{border-width:0 0 1px;overflow:hidden}.layui-table-header .layui-table{margin-bottom:-1px}.layui-table-tool .layui-inline[lay-event]{position:relative;width:26px;height:26px;padding:5px;line-height:16px;margin-right:10px;text-align:center;color:#333;border:1px solid #ccc;cursor:pointer;-webkit-transition:.5s all;transition:.5s all}.layui-table-tool .layui-inline[lay-event]:hover{border:1px solid #999}.layui-table-tool-temp{padding-right:120px}.layui-table-tool-self{position:absolute;right:17px;top:10px}.layui-table-tool .layui-table-tool-self .layui-inline[lay-event]{margin:0 0 0 10px}.layui-table-tool-panel{position:absolute;top:29px;left:-1px;padding:5px 0;min-width:150px;min-height:40px;border:1px solid #d2d2d2;text-align:left;overflow-y:auto;background-color:#fff;box-shadow:0 2px 4px rgba(0,0,0,.12)}.layui-table-cell,.layui-table-tool-panel li{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.layui-table-tool-panel li{padding:0 10px;line-height:30px;-webkit-transition:.5s all;transition:.5s all}.layui-table-tool-panel li .layui-form-checkbox[lay-skin=primary]{width:100%;padding-left:28px}.layui-table-tool-panel li:hover{background-color:#f2f2f2}.layui-table-tool-panel li .layui-form-checkbox[lay-skin=primary] i{position:absolute;left:0;top:0}.layui-table-tool-panel li .layui-form-checkbox[lay-skin=primary] span{padding:0}.layui-table-tool .layui-table-tool-self .layui-table-tool-panel{left:auto;right:-1px}.layui-table-col-set{position:absolute;right:0;top:0;width:20px;height:100%;border-width:0 0 0 1px;background-color:#fff}.layui-table-sort{width:10px;height:20px;margin-left:5px;cursor:pointer!important}.layui-table-sort .layui-edge{position:absolute;left:5px;border-width:5px}.layui-table-sort .layui-table-sort-asc{top:3px;border-top:none;border-bottom-style:solid;border-bottom-color:#b2b2b2}.layui-table-sort .layui-table-sort-asc:hover{border-bottom-color:#666}.layui-table-sort .layui-table-sort-desc{bottom:5px;border-bottom:none;border-top-style:solid;border-top-color:#b2b2b2}.layui-table-sort .layui-table-sort-desc:hover{border-top-color:#666}.layui-table-sort[lay-sort=asc] .layui-table-sort-asc{border-bottom-color:#000}.layui-table-sort[lay-sort=desc] .layui-table-sort-desc{border-top-color:#000}.layui-table-cell{height:28px;line-height:28px;padding:0 15px;position:relative;box-sizing:border-box}.layui-table-cell .layui-form-checkbox[lay-skin=primary]{top:-1px;padding:0}.layui-table-cell .layui-table-link{color:#01AAED}.laytable-cell-checkbox,.laytable-cell-numbers,.laytable-cell-radio,.laytable-cell-space{padding:0;text-align:center}.layui-table-body{position:relative;overflow:auto;margin-right:-1px;margin-bottom:-1px}.layui-table-body .layui-none{line-height:26px;padding:15px;text-align:center;color:#999}.layui-table-fixed{position:absolute;left:0;top:0;z-index:101}.layui-table-fixed .layui-table-body{overflow:hidden}.layui-table-fixed-l{box-shadow:0 -1px 8px rgba(0,0,0,.08)}.layui-table-fixed-r{left:auto;right:-1px;border-width:0 0 0 1px;box-shadow:-1px 0 8px rgba(0,0,0,.08)}.layui-table-fixed-r .layui-table-header{position:relative;overflow:visible}.layui-table-mend{position:absolute;right:-49px;top:0;height:100%;width:50px}.layui-table-tool{position:relative;z-index:890;width:100%;min-height:50px;line-height:30px;padding:10px 15px;border-width:0 0 1px}.layui-table-tool .layui-btn-container{margin-bottom:-10px}.layui-table-page,.layui-table-total{border-width:1px 0 0;margin-bottom:-1px;overflow:hidden}.layui-table-page{position:relative;width:100%;padding:7px 7px 0;height:41px;font-size:12px;white-space:nowrap}.layui-table-page>div{height:26px}.layui-table-page .layui-laypage{margin:0}.layui-table-page .layui-laypage a,.layui-table-page .layui-laypage span{height:26px;line-height:26px;margin-bottom:10px;border:none;background:0 0}.layui-table-page .layui-laypage a,.layui-table-page .layui-laypage span.layui-laypage-curr{padding:0 12px}.layui-table-page .layui-laypage span{margin-left:0;padding:0}.layui-table-page .layui-laypage .layui-laypage-prev{margin-left:-7px!important}.layui-table-page .layui-laypage .layui-laypage-curr .layui-laypage-em{left:0;top:0;padding:0}.layui-table-page .layui-laypage button,.layui-table-page .layui-laypage input{height:26px;line-height:26px}.layui-table-page .layui-laypage input{width:40px}.layui-table-page .layui-laypage button{padding:0 10px}.layui-table-page select{height:18px}.layui-table-patch .layui-table-cell{padding:0;width:30px}.layui-table-edit{position:absolute;left:0;top:0;width:100%;height:100%;padding:0 14px 1px;border-radius:0;box-shadow:1px 1px 20px rgba(0,0,0,.15)}.layui-table-edit:focus{border-color:#5FB878!important}select.layui-table-edit{padding:0 0 0 10px;border-color:#C9C9C9}.layui-table-view .layui-form-checkbox,.layui-table-view .layui-form-radio,.layui-table-view .layui-form-switch{top:0;margin:0;box-sizing:content-box}.layui-table-view .layui-form-checkbox{top:-1px;height:26px;line-height:26px}.layui-table-view .layui-form-checkbox i{height:26px}.layui-table-grid .layui-table-cell{overflow:visible}.layui-table-grid-down{position:absolute;top:0;right:0;width:26px;height:100%;padding:5px 0;border-width:0 0 0 1px;text-align:center;background-color:#fff;color:#999;cursor:pointer}.layui-table-grid-down .layui-icon{position:absolute;top:50%;left:50%;margin:-8px 0 0 -8px}.layui-table-grid-down:hover{background-color:#fbfbfb}body .layui-table-tips .layui-layer-content{background:0 0;padding:0;box-shadow:0 1px 6px rgba(0,0,0,.12)}.layui-table-tips-main{margin:-44px 0 0 -1px;max-height:150px;padding:8px 15px;font-size:14px;overflow-y:scroll;background-color:#fff;color:#666}.layui-table-tips-c{position:absolute;right:-3px;top:-13px;width:20px;height:20px;padding:3px;cursor:pointer;background-color:#666;border-radius:50%;color:#fff}.layui-table-tips-c:hover{background-color:#777}.layui-table-tips-c:before{position:relative;right:-2px}.layui-upload-file{display:none!important;opacity:.01;filter:Alpha(opacity=1)}.layui-upload-drag,.layui-upload-form,.layui-upload-wrap{display:inline-block}.layui-upload-list{margin:10px 0}.layui-upload-choose{padding:0 10px;color:#999}.layui-upload-drag{position:relative;padding:30px;border:1px dashed #e2e2e2;background-color:#fff;text-align:center;cursor:pointer;color:#999}.layui-upload-drag .layui-icon{font-size:50px;color:#009688}.layui-upload-drag[lay-over]{border-color:#009688}.layui-upload-iframe{position:absolute;width:0;height:0;border:0;visibility:hidden}.layui-upload-wrap{position:relative;vertical-align:middle}.layui-upload-wrap .layui-upload-file{display:block!important;position:absolute;left:0;top:0;z-index:10;font-size:100px;width:100%;height:100%;opacity:.01;filter:Alpha(opacity=1);cursor:pointer}.layui-transfer-active,.layui-transfer-box{display:inline-block;vertical-align:middle}.layui-transfer-box,.layui-transfer-header,.layui-transfer-search{border-width:0;border-style:solid;border-color:#e6e6e6}.layui-transfer-box{position:relative;border-width:1px;width:200px;height:360px;border-radius:2px;background-color:#fff}.layui-transfer-box .layui-form-checkbox{width:100%;margin:0!important}.layui-transfer-header{height:38px;line-height:38px;padding:0 10px;border-bottom-width:1px}.layui-transfer-search{position:relative;padding:10px;border-bottom-width:1px}.layui-transfer-search .layui-input{height:32px;padding-left:30px;font-size:12px}.layui-transfer-search .layui-icon-search{position:absolute;left:20px;top:50%;margin-top:-8px;color:#666}.layui-transfer-active{margin:0 15px}.layui-transfer-active .layui-btn{display:block;margin:0;padding:0 15px;background-color:#5FB878;border-color:#5FB878;color:#fff}.layui-transfer-active .layui-btn-disabled{background-color:#FBFBFB;border-color:#e6e6e6;color:#C9C9C9}.layui-transfer-active .layui-btn:first-child{margin-bottom:15px}.layui-transfer-active .layui-btn .layui-icon{margin:0;font-size:14px!important}.layui-transfer-data{padding:5px 0;overflow:auto}.layui-transfer-data li{height:32px;line-height:32px;padding:0 10px}.layui-transfer-data li:hover{background-color:#f2f2f2;transition:.5s all}.layui-transfer-data .layui-none{padding:15px 10px;text-align:center;color:#999}.layui-nav{position:relative;padding:0 20px;background-color:#393D49;color:#fff;border-radius:2px;font-size:0;box-sizing:border-box}.layui-nav *{font-size:14px}.layui-nav .layui-nav-item{position:relative;display:inline-block;*display:inline;*zoom:1;vertical-align:middle;line-height:60px}.layui-nav .layui-nav-item a{display:block;padding:0 20px;color:#fff;color:rgba(255,255,255,.7);transition:all .3s;-webkit-transition:all .3s}.layui-nav .layui-this:after,.layui-nav-bar,.layui-nav-tree .layui-nav-itemed:after{position:absolute;left:0;top:0;width:0;height:5px;background-color:#5FB878;transition:all .2s;-webkit-transition:all .2s}.layui-nav-bar{z-index:1000}.layui-nav .layui-nav-item a:hover,.layui-nav .layui-this a{color:#fff}.layui-nav .layui-this:after{content:'';top:auto;bottom:0;width:100%}.layui-nav-img{width:30px;height:30px;margin-right:10px;border-radius:50%}.layui-nav .layui-nav-more{content:'';width:0;height:0;border-style:solid dashed dashed;border-color:#fff transparent transparent;overflow:hidden;cursor:pointer;transition:all .2s;-webkit-transition:all .2s;position:absolute;top:50%;right:3px;margin-top:-3px;border-width:6px;border-top-color:rgba(255,255,255,.7)}.layui-nav .layui-nav-mored,.layui-nav-itemed>a .layui-nav-more{margin-top:-9px;border-style:dashed dashed solid;border-color:transparent transparent #fff}.layui-nav-child{display:none;position:absolute;left:0;top:65px;min-width:100%;line-height:36px;padding:5px 0;box-shadow:0 2px 4px rgba(0,0,0,.12);border:1px solid #d2d2d2;background-color:#fff;z-index:100;border-radius:2px;white-space:nowrap}.layui-nav .layui-nav-child a{color:#333}.layui-nav .layui-nav-child a:hover{background-color:#f2f2f2;color:#000}.layui-nav-child dd{position:relative}.layui-nav .layui-nav-child dd.layui-this a,.layui-nav-child dd.layui-this{background-color:#5FB878;color:#fff}.layui-nav-child dd.layui-this:after{display:none}.layui-nav-tree{width:200px;padding:0}.layui-nav-tree .layui-nav-item{display:block;width:100%;line-height:45px}.layui-nav-tree .layui-nav-item a{position:relative;height:45px;line-height:45px;text-overflow:ellipsis;overflow:hidden;white-space:nowrap}.layui-nav-tree .layui-nav-item a:hover{background-color:#4E5465}.layui-nav-tree .layui-nav-bar{width:5px;height:0;background-color:#009688}.layui-nav-tree .layui-nav-child dd.layui-this,.layui-nav-tree .layui-nav-child dd.layui-this a,.layui-nav-tree .layui-this,.layui-nav-tree .layui-this>a,.layui-nav-tree .layui-this>a:hover{background-color:#009688;color:#fff}.layui-nav-tree .layui-this:after{display:none}.layui-nav-itemed>a,.layui-nav-tree .layui-nav-title a,.layui-nav-tree .layui-nav-title a:hover{color:#fff!important}.layui-nav-tree .layui-nav-child{position:relative;z-index:0;top:0;border:none;box-shadow:none}.layui-nav-tree .layui-nav-child a{height:40px;line-height:40px;color:#fff;color:rgba(255,255,255,.7)}.layui-nav-tree .layui-nav-child,.layui-nav-tree .layui-nav-child a:hover{background:0 0;color:#fff}.layui-nav-tree .layui-nav-more{right:10px}.layui-nav-itemed>.layui-nav-child{display:block;padding:0;background-color:rgba(0,0,0,.3)!important}.layui-nav-itemed>.layui-nav-child>.layui-this>.layui-nav-child{display:block}.layui-nav-side{position:fixed;top:0;bottom:0;left:0;overflow-x:hidden;z-index:999}.layui-bg-blue .layui-nav-bar,.layui-bg-blue .layui-nav-itemed:after,.layui-bg-blue .layui-this:after{background-color:#93D1FF}.layui-bg-blue .layui-nav-child dd.layui-this{background-color:#1E9FFF}.layui-bg-blue .layui-nav-itemed>a,.layui-nav-tree.layui-bg-blue .layui-nav-title a,.layui-nav-tree.layui-bg-blue .layui-nav-title a:hover{background-color:#007DDB!important}.layui-breadcrumb{font-size:0}.layui-breadcrumb>*{font-size:14px}.layui-breadcrumb a{color:#999!important}.layui-breadcrumb a:hover{color:#5FB878!important}.layui-breadcrumb a cite{color:#666;font-style:normal}.layui-breadcrumb span[lay-separator]{margin:0 10px;color:#999}.layui-tab{margin:10px 0;text-align:left!important}.layui-tab[overflow]>.layui-tab-title{overflow:hidden}.layui-tab-title{position:relative;left:0;height:40px;white-space:nowrap;font-size:0;border-bottom-width:1px;border-bottom-style:solid;transition:all .2s;-webkit-transition:all .2s}.layui-tab-title li{display:inline-block;*display:inline;*zoom:1;vertical-align:middle;font-size:14px;transition:all .2s;-webkit-transition:all .2s;position:relative;line-height:40px;min-width:65px;padding:0 15px;text-align:center;cursor:pointer}.layui-tab-title li a{display:block}.layui-tab-title .layui-this{color:#000}.layui-tab-title .layui-this:after{position:absolute;left:0;top:0;content:'';width:100%;height:41px;border-width:1px;border-style:solid;border-bottom-color:#fff;border-radius:2px 2px 0 0;box-sizing:border-box;pointer-events:none}.layui-tab-bar{position:absolute;right:0;top:0;z-index:10;width:30px;height:39px;line-height:39px;border-width:1px;border-style:solid;border-radius:2px;text-align:center;background-color:#fff;cursor:pointer}.layui-tab-bar .layui-icon{position:relative;display:inline-block;top:3px;transition:all .3s;-webkit-transition:all .3s}.layui-tab-item{display:none}.layui-tab-more{padding-right:30px;height:auto!important;white-space:normal!important}.layui-tab-more li.layui-this:after{border-bottom-color:#e2e2e2;border-radius:2px}.layui-tab-more .layui-tab-bar .layui-icon{top:-2px;top:3px\9;-webkit-transform:rotate(180deg);transform:rotate(180deg)}:root .layui-tab-more .layui-tab-bar .layui-icon{top:-2px\0/IE9}.layui-tab-content{padding:10px}.layui-tab-title li .layui-tab-close{position:relative;display:inline-block;width:18px;height:18px;line-height:20px;margin-left:8px;top:1px;text-align:center;font-size:14px;color:#c2c2c2;transition:all .2s;-webkit-transition:all .2s}.layui-tab-title li .layui-tab-close:hover{border-radius:2px;background-color:#FF5722;color:#fff}.layui-tab-brief>.layui-tab-title .layui-this{color:#009688}.layui-tab-brief>.layui-tab-more li.layui-this:after,.layui-tab-brief>.layui-tab-title .layui-this:after{border:none;border-radius:0;border-bottom:2px solid #5FB878}.layui-tab-brief[overflow]>.layui-tab-title .layui-this:after{top:-1px}.layui-tab-card{border-width:1px;border-style:solid;border-radius:2px;box-shadow:0 2px 5px 0 rgba(0,0,0,.1)}.layui-tab-card>.layui-tab-title{background-color:#f2f2f2}.layui-tab-card>.layui-tab-title li{margin-right:-1px;margin-left:-1px}.layui-tab-card>.layui-tab-title .layui-this{background-color:#fff}.layui-tab-card>.layui-tab-title .layui-this:after{border-top:none;border-width:1px;border-bottom-color:#fff}.layui-tab-card>.layui-tab-title .layui-tab-bar{height:40px;line-height:40px;border-radius:0;border-top:none;border-right:none}.layui-tab-card>.layui-tab-more .layui-this{background:0 0;color:#5FB878}.layui-tab-card>.layui-tab-more .layui-this:after{border:none}.layui-timeline{padding-left:5px}.layui-timeline-item{position:relative;padding-bottom:20px}.layui-timeline-axis{position:absolute;left:-5px;top:0;z-index:10;width:20px;height:20px;line-height:20px;background-color:#fff;color:#5FB878;border-radius:50%;text-align:center;cursor:pointer}.layui-timeline-axis:hover{color:#FF5722}.layui-timeline-item:before{content:'';position:absolute;left:5px;top:0;z-index:0;width:1px;height:100%}.layui-timeline-item:last-child:before{display:none}.layui-timeline-item:first-child:before{display:block}.layui-timeline-content{padding-left:25px}.layui-timeline-title{position:relative;margin-bottom:10px}.layui-badge,.layui-badge-dot,.layui-badge-rim{position:relative;display:inline-block;padding:0 6px;font-size:12px;text-align:center;background-color:#FF5722;color:#fff;border-radius:2px}.layui-badge{height:18px;line-height:18px}.layui-badge-dot{width:8px;height:8px;padding:0;border-radius:50%}.layui-badge-rim{height:18px;line-height:18px;border-width:1px;border-style:solid;background-color:#fff;color:#666}.layui-btn .layui-badge,.layui-btn .layui-badge-dot{margin-left:5px}.layui-nav .layui-badge,.layui-nav .layui-badge-dot{position:absolute;top:50%;margin:-8px 6px 0}.layui-tab-title .layui-badge,.layui-tab-title .layui-badge-dot{left:5px;top:-2px}.layui-carousel{position:relative;left:0;top:0;background-color:#f8f8f8}.layui-carousel>[carousel-item]{position:relative;width:100%;height:100%;overflow:hidden}.layui-carousel>[carousel-item]:before{position:absolute;content:'\e63d';left:50%;top:50%;width:100px;line-height:20px;margin:-10px 0 0 -50px;text-align:center;color:#c2c2c2;font-family:layui-icon!important;font-size:30px;font-style:normal;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.layui-carousel>[carousel-item]>*{display:none;position:absolute;left:0;top:0;width:100%;height:100%;background-color:#f8f8f8;transition-duration:.3s;-webkit-transition-duration:.3s}.layui-carousel-updown>*{-webkit-transition:.3s ease-in-out up;transition:.3s ease-in-out up}.layui-carousel-arrow{display:none\9;opacity:0;position:absolute;left:10px;top:50%;margin-top:-18px;width:36px;height:36px;line-height:36px;text-align:center;font-size:20px;border:0;border-radius:50%;background-color:rgba(0,0,0,.2);color:#fff;-webkit-transition-duration:.3s;transition-duration:.3s;cursor:pointer}.layui-carousel-arrow[lay-type=add]{left:auto!important;right:10px}.layui-carousel:hover .layui-carousel-arrow[lay-type=add],.layui-carousel[lay-arrow=always] .layui-carousel-arrow[lay-type=add]{right:20px}.layui-carousel[lay-arrow=always] .layui-carousel-arrow{opacity:1;left:20px}.layui-carousel[lay-arrow=none] .layui-carousel-arrow{display:none}.layui-carousel-arrow:hover,.layui-carousel-ind ul:hover{background-color:rgba(0,0,0,.35)}.layui-carousel:hover .layui-carousel-arrow{display:block\9;opacity:1;left:20px}.layui-carousel-ind{position:relative;top:-35px;width:100%;line-height:0!important;text-align:center;font-size:0}.layui-carousel[lay-indicator=outside]{margin-bottom:30px}.layui-carousel[lay-indicator=outside] .layui-carousel-ind{top:10px}.layui-carousel[lay-indicator=outside] .layui-carousel-ind ul{background-color:rgba(0,0,0,.5)}.layui-carousel[lay-indicator=none] .layui-carousel-ind{display:none}.layui-carousel-ind ul{display:inline-block;padding:5px;background-color:rgba(0,0,0,.2);border-radius:10px;-webkit-transition-duration:.3s;transition-duration:.3s}.layui-carousel-ind li{display:inline-block;width:10px;height:10px;margin:0 3px;font-size:14px;background-color:#e2e2e2;background-color:rgba(255,255,255,.5);border-radius:50%;cursor:pointer;-webkit-transition-duration:.3s;transition-duration:.3s}.layui-carousel-ind li:hover{background-color:rgba(255,255,255,.7)}.layui-carousel-ind li.layui-this{background-color:#fff}.layui-carousel>[carousel-item]>.layui-carousel-next,.layui-carousel>[carousel-item]>.layui-carousel-prev,.layui-carousel>[carousel-item]>.layui-this{display:block}.layui-carousel>[carousel-item]>.layui-this{left:0}.layui-carousel>[carousel-item]>.layui-carousel-prev{left:-100%}.layui-carousel>[carousel-item]>.layui-carousel-next{left:100%}.layui-carousel>[carousel-item]>.layui-carousel-next.layui-carousel-left,.layui-carousel>[carousel-item]>.layui-carousel-prev.layui-carousel-right{left:0}.layui-carousel>[carousel-item]>.layui-this.layui-carousel-left{left:-100%}.layui-carousel>[carousel-item]>.layui-this.layui-carousel-right{left:100%}.layui-carousel[lay-anim=updown] .layui-carousel-arrow{left:50%!important;top:20px;margin:0 0 0 -18px}.layui-carousel[lay-anim=updown]>[carousel-item]>*,.layui-carousel[lay-anim=fade]>[carousel-item]>*{left:0!important}.layui-carousel[lay-anim=updown] .layui-carousel-arrow[lay-type=add]{top:auto!important;bottom:20px}.layui-carousel[lay-anim=updown] .layui-carousel-ind{position:absolute;top:50%;right:20px;width:auto;height:auto}.layui-carousel[lay-anim=updown] .layui-carousel-ind ul{padding:3px 5px}.layui-carousel[lay-anim=updown] .layui-carousel-ind li{display:block;margin:6px 0}.layui-carousel[lay-anim=updown]>[carousel-item]>.layui-this{top:0}.layui-carousel[lay-anim=updown]>[carousel-item]>.layui-carousel-prev{top:-100%}.layui-carousel[lay-anim=updown]>[carousel-item]>.layui-carousel-next{top:100%}.layui-carousel[lay-anim=updown]>[carousel-item]>.layui-carousel-next.layui-carousel-left,.layui-carousel[lay-anim=updown]>[carousel-item]>.layui-carousel-prev.layui-carousel-right{top:0}.layui-carousel[lay-anim=updown]>[carousel-item]>.layui-this.layui-carousel-left{top:-100%}.layui-carousel[lay-anim=updown]>[carousel-item]>.layui-this.layui-carousel-right{top:100%}.layui-carousel[lay-anim=fade]>[carousel-item]>.layui-carousel-next,.layui-carousel[lay-anim=fade]>[carousel-item]>.layui-carousel-prev{opacity:0}.layui-carousel[lay-anim=fade]>[carousel-item]>.layui-carousel-next.layui-carousel-left,.layui-carousel[lay-anim=fade]>[carousel-item]>.layui-carousel-prev.layui-carousel-right{opacity:1}.layui-carousel[lay-anim=fade]>[carousel-item]>.layui-this.layui-carousel-left,.layui-carousel[lay-anim=fade]>[carousel-item]>.layui-this.layui-carousel-right{opacity:0}.layui-fixbar{position:fixed;right:15px;bottom:15px;z-index:999999}.layui-fixbar li{width:50px;height:50px;line-height:50px;margin-bottom:1px;text-align:center;cursor:pointer;font-size:30px;background-color:#9F9F9F;color:#fff;border-radius:2px;opacity:.95}.layui-fixbar li:hover{opacity:.85}.layui-fixbar li:active{opacity:1}.layui-fixbar .layui-fixbar-top{display:none;font-size:40px}body .layui-util-face{border:none;background:0 0}body .layui-util-face .layui-layer-content{padding:0;background-color:#fff;color:#666;box-shadow:none}.layui-util-face .layui-layer-TipsG{display:none}.layui-util-face ul{position:relative;width:372px;padding:10px;border:1px solid #D9D9D9;background-color:#fff;box-shadow:0 0 20px rgba(0,0,0,.2)}.layui-util-face ul li{cursor:pointer;float:left;border:1px solid #e8e8e8;height:22px;width:26px;overflow:hidden;margin:-1px 0 0 -1px;padding:4px 2px;text-align:center}.layui-util-face ul li:hover{position:relative;z-index:2;border:1px solid #eb7350;background:#fff9ec}.layui-code{position:relative;margin:10px 0;padding:15px;line-height:20px;border:1px solid #ddd;border-left-width:6px;background-color:#F2F2F2;color:#333;font-family:Courier New;font-size:12px}.layui-rate,.layui-rate *{display:inline-block;vertical-align:middle}.layui-rate{padding:10px 5px 10px 0;font-size:0}.layui-rate li i.layui-icon{font-size:20px;color:#FFB800;margin-right:5px;transition:all .3s;-webkit-transition:all .3s}.layui-rate li i:hover{cursor:pointer;transform:scale(1.12);-webkit-transform:scale(1.12)}.layui-rate[readonly] li i:hover{cursor:default;transform:scale(1)}.layui-colorpicker{width:26px;height:26px;border:1px solid #e6e6e6;padding:5px;border-radius:2px;line-height:24px;display:inline-block;cursor:pointer;transition:all .3s;-webkit-transition:all .3s}.layui-colorpicker:hover{border-color:#d2d2d2}.layui-colorpicker.layui-colorpicker-lg{width:34px;height:34px;line-height:32px}.layui-colorpicker.layui-colorpicker-sm{width:24px;height:24px;line-height:22px}.layui-colorpicker.layui-colorpicker-xs{width:22px;height:22px;line-height:20px}.layui-colorpicker-trigger-bgcolor{display:block;background:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAwAAAAMCAIAAADZF8uwAAAAGUlEQVQYV2M4gwH+YwCGIasIUwhT25BVBADtzYNYrHvv4gAAAABJRU5ErkJggg==);border-radius:2px}.layui-colorpicker-trigger-span{display:block;height:100%;box-sizing:border-box;border:1px solid rgba(0,0,0,.15);border-radius:2px;text-align:center}.layui-colorpicker-trigger-i{display:inline-block;color:#FFF;font-size:12px}.layui-colorpicker-trigger-i.layui-icon-close{color:#999}.layui-colorpicker-main{position:absolute;z-index:66666666;width:280px;padding:7px;background:#FFF;border:1px solid #d2d2d2;border-radius:2px;box-shadow:0 2px 4px rgba(0,0,0,.12)}.layui-colorpicker-main-wrapper{height:180px;position:relative}.layui-colorpicker-basis{width:260px;height:100%;position:relative}.layui-colorpicker-basis-white{width:100%;height:100%;position:absolute;top:0;left:0;background:linear-gradient(90deg,#FFF,hsla(0,0%,100%,0))}.layui-colorpicker-basis-black{width:100%;height:100%;position:absolute;top:0;left:0;background:linear-gradient(0deg,#000,transparent)}.layui-colorpicker-basis-cursor{width:10px;height:10px;border:1px solid #FFF;border-radius:50%;position:absolute;top:-3px;right:-3px;cursor:pointer}.layui-colorpicker-side{position:absolute;top:0;right:0;width:12px;height:100%;background:linear-gradient(red,#FF0,#0F0,#0FF,#00F,#F0F,red)}.layui-colorpicker-side-slider{width:100%;height:5px;box-shadow:0 0 1px #888;box-sizing:border-box;background:#FFF;border-radius:1px;border:1px solid #f0f0f0;cursor:pointer;position:absolute;left:0}.layui-colorpicker-main-alpha{display:none;height:12px;margin-top:7px;background:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAwAAAAMCAIAAADZF8uwAAAAGUlEQVQYV2M4gwH+YwCGIasIUwhT25BVBADtzYNYrHvv4gAAAABJRU5ErkJggg==)}.layui-colorpicker-alpha-bgcolor{height:100%;position:relative}.layui-colorpicker-alpha-slider{width:5px;height:100%;box-shadow:0 0 1px #888;box-sizing:border-box;background:#FFF;border-radius:1px;border:1px solid #f0f0f0;cursor:pointer;position:absolute;top:0}.layui-colorpicker-main-pre{padding-top:7px;font-size:0}.layui-colorpicker-pre{width:20px;height:20px;border-radius:2px;display:inline-block;margin-left:6px;margin-bottom:7px;cursor:pointer}.layui-colorpicker-pre:nth-child(11n+1){margin-left:0}.layui-colorpicker-pre-isalpha{background:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAwAAAAMCAIAAADZF8uwAAAAGUlEQVQYV2M4gwH+YwCGIasIUwhT25BVBADtzYNYrHvv4gAAAABJRU5ErkJggg==)}.layui-colorpicker-pre.layui-this{box-shadow:0 0 3px 2px rgba(0,0,0,.15)}.layui-colorpicker-pre>div{height:100%;border-radius:2px}.layui-colorpicker-main-input{text-align:right;padding-top:7px}.layui-colorpicker-main-input .layui-btn-container .layui-btn{margin:0 0 0 10px}.layui-colorpicker-main-input div.layui-inline{float:left;margin-right:10px;font-size:14px}.layui-colorpicker-main-input input.layui-input{width:150px;height:30px;color:#666}.layui-slider{height:4px;background:#e2e2e2;border-radius:3px;position:relative;cursor:pointer}.layui-slider-bar{border-radius:3px;position:absolute;height:100%}.layui-slider-step{position:absolute;top:0;width:4px;height:4px;border-radius:50%;background:#FFF;-webkit-transform:translateX(-50%);transform:translateX(-50%)}.layui-slider-wrap{width:36px;height:36px;position:absolute;top:-16px;-webkit-transform:translateX(-50%);transform:translateX(-50%);z-index:10;text-align:center}.layui-slider-wrap-btn{width:12px;height:12px;border-radius:50%;background:#FFF;display:inline-block;vertical-align:middle;cursor:pointer;transition:.3s}.layui-slider-wrap:after{content:"";height:100%;display:inline-block;vertical-align:middle}.layui-slider-wrap-btn.layui-slider-hover,.layui-slider-wrap-btn:hover{transform:scale(1.2)}.layui-slider-wrap-btn.layui-disabled:hover{transform:scale(1)!important}.layui-slider-tips{position:absolute;top:-42px;z-index:66666666;white-space:nowrap;display:none;-webkit-transform:translateX(-50%);transform:translateX(-50%);color:#FFF;background:#000;border-radius:3px;height:25px;line-height:25px;padding:0 10px}.layui-slider-tips:after{content:'';position:absolute;bottom:-12px;left:50%;margin-left:-6px;width:0;height:0;border-width:6px;border-style:solid;border-color:#000 transparent transparent}.layui-slider-input{width:70px;height:32px;border:1px solid #e6e6e6;border-radius:3px;font-size:16px;line-height:32px;position:absolute;right:0;top:-15px}.layui-slider-input-btn{display:none;position:absolute;top:0;right:0;width:20px;height:100%;border-left:1px solid #d2d2d2}.layui-slider-input-btn i{cursor:pointer;position:absolute;right:0;bottom:0;width:20px;height:50%;font-size:12px;line-height:16px;text-align:center;color:#999}.layui-slider-input-btn i:first-child{top:0;border-bottom:1px solid #d2d2d2}.layui-slider-input-txt{height:100%;font-size:14px}.layui-slider-input-txt input{height:100%;border:none}.layui-slider-input-btn i:hover{color:#009688}.layui-slider-vertical{width:4px;margin-left:34px}.layui-slider-vertical .layui-slider-bar{width:4px}.layui-slider-vertical .layui-slider-step{top:auto;left:0;-webkit-transform:translateY(50%);transform:translateY(50%)}.layui-slider-vertical .layui-slider-wrap{top:auto;left:-16px;-webkit-transform:translateY(50%);transform:translateY(50%)}.layui-slider-vertical .layui-slider-tips{top:auto;left:2px}@media \0screen{.layui-slider-wrap-btn{margin-left:-20px}.layui-slider-vertical .layui-slider-wrap-btn{margin-left:0;margin-bottom:-20px}.layui-slider-vertical .layui-slider-tips{margin-left:-8px}.layui-slider>span{margin-left:8px}}.layui-tree{line-height:22px}.layui-tree .layui-form-checkbox{margin:0!important}.layui-tree-set{width:100%;position:relative}.layui-tree-pack{display:none;padding-left:20px;position:relative}.layui-tree-iconClick,.layui-tree-main{display:inline-block;vertical-align:middle}.layui-tree-line .layui-tree-pack{padding-left:27px}.layui-tree-line .layui-tree-set .layui-tree-set:after{content:'';position:absolute;top:14px;left:-9px;width:17px;height:0;border-top:1px dotted #c0c4cc}.layui-tree-entry{position:relative;padding:3px 0;height:20px;white-space:nowrap}.layui-tree-entry:hover{background-color:#eee}.layui-tree-line .layui-tree-entry:hover{background-color:rgba(0,0,0,0)}.layui-tree-line .layui-tree-entry:hover .layui-tree-txt{color:#999;text-decoration:underline;transition:.3s}.layui-tree-main{cursor:pointer;padding-right:10px}.layui-tree-line .layui-tree-set:before{content:'';position:absolute;top:0;left:-9px;width:0;height:100%;border-left:1px dotted #c0c4cc}.layui-tree-line .layui-tree-set.layui-tree-setLineShort:before{height:13px}.layui-tree-line .layui-tree-set.layui-tree-setHide:before{height:0}.layui-tree-iconClick{position:relative;height:20px;line-height:20px;margin:0 10px;color:#c0c4cc}.layui-tree-icon{height:12px;line-height:12px;width:12px;text-align:center;border:1px solid #c0c4cc}.layui-tree-iconClick .layui-icon{font-size:18px}.layui-tree-icon .layui-icon{font-size:12px;color:#666}.layui-tree-iconArrow{padding:0 5px}.layui-tree-iconArrow:after{content:'';position:absolute;left:4px;top:3px;z-index:100;width:0;height:0;border-width:5px;border-style:solid;border-color:transparent transparent transparent #c0c4cc;transition:.5s}.layui-tree-btnGroup,.layui-tree-editInput{position:relative;vertical-align:middle;display:inline-block}.layui-tree-spread>.layui-tree-entry>.layui-tree-iconClick>.layui-tree-iconArrow:after{transform:rotate(90deg) translate(3px,4px)}.layui-tree-txt{display:inline-block;vertical-align:middle;color:#555}.layui-tree-search{margin-bottom:15px;color:#666}.layui-tree-btnGroup .layui-icon{display:inline-block;vertical-align:middle;padding:0 2px;cursor:pointer}.layui-tree-btnGroup .layui-icon:hover{color:#999;transition:.3s}.layui-tree-entry:hover .layui-tree-btnGroup{visibility:visible}.layui-tree-editInput{height:20px;line-height:20px;padding:0 3px;border:none;background-color:rgba(0,0,0,.05)}.layui-tree-emptyText{text-align:center;color:#999}.layui-anim{-webkit-animation-duration:.3s;animation-duration:.3s;-webkit-animation-fill-mode:both;animation-fill-mode:both}.layui-anim.layui-icon{display:inline-block}.layui-anim-loop{-webkit-animation-iteration-count:infinite;animation-iteration-count:infinite}.layui-trans,.layui-trans a{transition:all .3s;-webkit-transition:all .3s}@-webkit-keyframes layui-rotate{from{-webkit-transform:rotate(0)}to{-webkit-transform:rotate(360deg)}}@keyframes layui-rotate{from{transform:rotate(0)}to{transform:rotate(360deg)}}.layui-anim-rotate{-webkit-animation-name:layui-rotate;animation-name:layui-rotate;-webkit-animation-duration:1s;animation-duration:1s;-webkit-animation-timing-function:linear;animation-timing-function:linear}@-webkit-keyframes layui-up{from{-webkit-transform:translate3d(0,100%,0);opacity:.3}to{-webkit-transform:translate3d(0,0,0);opacity:1}}@keyframes layui-up{from{transform:translate3d(0,100%,0);opacity:.3}to{transform:translate3d(0,0,0);opacity:1}}.layui-anim-up{-webkit-animation-name:layui-up;animation-name:layui-up}@-webkit-keyframes layui-upbit{from{-webkit-transform:translate3d(0,30px,0);opacity:.3}to{-webkit-transform:translate3d(0,0,0);opacity:1}}@keyframes layui-upbit{from{transform:translate3d(0,30px,0);opacity:.3}to{transform:translate3d(0,0,0);opacity:1}}.layui-anim-upbit{-webkit-animation-name:layui-upbit;animation-name:layui-upbit}@-webkit-keyframes layui-scale{0%{opacity:.3;-webkit-transform:scale(.5)}100%{opacity:1;-webkit-transform:scale(1)}}@keyframes layui-scale{0%{opacity:.3;-ms-transform:scale(.5);transform:scale(.5)}100%{opacity:1;-ms-transform:scale(1);transform:scale(1)}}.layui-anim-scale{-webkit-animation-name:layui-scale;animation-name:layui-scale}@-webkit-keyframes layui-scale-spring{0%{opacity:.5;-webkit-transform:scale(.5)}80%{opacity:.8;-webkit-transform:scale(1.1)}100%{opacity:1;-webkit-transform:scale(1)}}@keyframes layui-scale-spring{0%{opacity:.5;transform:scale(.5)}80%{opacity:.8;transform:scale(1.1)}100%{opacity:1;transform:scale(1)}}.layui-anim-scaleSpring{-webkit-animation-name:layui-scale-spring;animation-name:layui-scale-spring}@-webkit-keyframes layui-fadein{0%{opacity:0}100%{opacity:1}}@keyframes layui-fadein{0%{opacity:0}100%{opacity:1}}.layui-anim-fadein{-webkit-animation-name:layui-fadein;animation-name:layui-fadein}@-webkit-keyframes layui-fadeout{0%{opacity:1}100%{opacity:0}}@keyframes layui-fadeout{0%{opacity:1}100%{opacity:0}}.layui-anim-fadeout{-webkit-animation-name:layui-fadeout;animation-name:layui-fadeout} \ No newline at end of file diff --git a/public/static/admin/layui/css/layui.mobile.css b/public/static/admin/layui/css/layui.mobile.css new file mode 100644 index 0000000..0743570 --- /dev/null +++ b/public/static/admin/layui/css/layui.mobile.css @@ -0,0 +1,2 @@ +/** layui-v2.5.5 MIT License By https://www.layui.com */ + blockquote,body,button,dd,div,dl,dt,form,h1,h2,h3,h4,h5,h6,input,legend,li,ol,p,td,textarea,th,ul{margin:0;padding:0;-webkit-tap-highlight-color:rgba(0,0,0,0)}html{font:12px 'Helvetica Neue','PingFang SC',STHeitiSC-Light,Helvetica,Arial,sans-serif;-ms-text-size-adjust:100%;-webkit-text-size-adjust:100%}a,button,input{-webkit-tap-highlight-color:rgba(255,0,0,0)}a{text-decoration:none;background:0 0}a:active,a:hover{outline:0}table{border-collapse:collapse;border-spacing:0}li{list-style:none}b,strong{font-weight:700}h1,h2,h3,h4,h5,h6{font-weight:500}address,cite,dfn,em,var{font-style:normal}dfn{font-style:italic}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}img{border:0;vertical-align:bottom}.layui-inline,input,label{vertical-align:middle}button,input,optgroup,select,textarea{color:inherit;font:inherit;margin:0;outline:0}button,select{text-transform:none}select{-webkit-appearance:none;border:none}input{line-height:normal}input[type=checkbox],input[type=radio]{box-sizing:border-box;padding:0}input[type=number]::-webkit-inner-spin-button,input[type=number]::-webkit-outer-spin-button{height:auto}input[type=search]{-webkit-appearance:textfield;-moz-box-sizing:content-box;-webkit-box-sizing:content-box;box-sizing:content-box}input[type=search]::-webkit-search-cancel-button,input[type=search]::-webkit-search-decoration{-webkit-appearance:none}@font-face{font-family:layui-icon;src:url(../font/iconfont.eot?v=1.0.7);src:url(../font/iconfont.eot?v=1.0.7#iefix) format('embedded-opentype'),url(../font/iconfont.woff?v=1.0.7) format('woff'),url(../font/iconfont.ttf?v=1.0.7) format('truetype'),url(../font/iconfont.svg?v=1.0.7#iconfont) format('svg')}.layui-icon{font-family:layui-icon!important;font-size:16px;font-style:normal;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.layui-box,.layui-box *{-webkit-box-sizing:content-box!important;-moz-box-sizing:content-box!important;box-sizing:content-box!important}.layui-border-box,.layui-border-box *{-webkit-box-sizing:border-box!important;-moz-box-sizing:border-box!important;box-sizing:border-box!important}.layui-inline{position:relative;display:inline-block;*display:inline;*zoom:1}.layui-edge,.layui-upload-iframe{position:absolute;width:0;height:0}.layui-edge{border-style:dashed;border-color:transparent;overflow:hidden}.layui-elip{text-overflow:ellipsis;overflow:hidden;white-space:nowrap}.layui-unselect{-moz-user-select:none;-webkit-user-select:none;-ms-user-select:none}.layui-disabled,.layui-disabled:active{background-color:#d2d2d2!important;color:#fff!important;cursor:not-allowed!important}.layui-circle{border-radius:100%}.layui-show{display:block!important}.layui-hide{display:none!important}.layui-upload-iframe{border:0;visibility:hidden}.layui-upload-enter{border:1px solid #009E94;background-color:#009E94;color:#fff;-webkit-transform:scale(1.1);transform:scale(1.1)}@-webkit-keyframes layui-m-anim-scale{0%{opacity:0;-webkit-transform:scale(.5);transform:scale(.5)}100%{opacity:1;-webkit-transform:scale(1);transform:scale(1)}}@keyframes layui-m-anim-scale{0%{opacity:0;-webkit-transform:scale(.5);transform:scale(.5)}100%{opacity:1;-webkit-transform:scale(1);transform:scale(1)}}.layui-m-anim-scale{animation-name:layui-m-anim-scale;-webkit-animation-name:layui-m-anim-scale}@-webkit-keyframes layui-m-anim-up{0%{opacity:0;-webkit-transform:translateY(800px);transform:translateY(800px)}100%{opacity:1;-webkit-transform:translateY(0);transform:translateY(0)}}@keyframes layui-m-anim-up{0%{opacity:0;-webkit-transform:translateY(800px);transform:translateY(800px)}100%{opacity:1;-webkit-transform:translateY(0);transform:translateY(0)}}.layui-m-anim-up{-webkit-animation-name:layui-m-anim-up;animation-name:layui-m-anim-up}@-webkit-keyframes layui-m-anim-left{0%{-webkit-transform:translateX(100%);transform:translateX(100%)}100%{-webkit-transform:translateX(0);transform:translateX(0)}}@keyframes layui-m-anim-left{0%{-webkit-transform:translateX(100%);transform:translateX(100%)}100%{-webkit-transform:translateX(0);transform:translateX(0)}}.layui-m-anim-left{-webkit-animation-name:layui-m-anim-left;animation-name:layui-m-anim-left}@-webkit-keyframes layui-m-anim-right{0%{-webkit-transform:translateX(-100%);transform:translateX(-100%)}100%{-webkit-transform:translateX(0);transform:translateX(0)}}@keyframes layui-m-anim-right{0%{-webkit-transform:translateX(-100%);transform:translateX(-100%)}100%{-webkit-transform:translateX(0);transform:translateX(0)}}.layui-m-anim-right{-webkit-animation-name:layui-m-anim-right;animation-name:layui-m-anim-right}@-webkit-keyframes layui-m-anim-lout{0%{-webkit-transform:translateX(0);transform:translateX(0)}100%{-webkit-transform:translateX(-100%);transform:translateX(-100%)}}@keyframes layui-m-anim-lout{0%{-webkit-transform:translateX(0);transform:translateX(0)}100%{-webkit-transform:translateX(-100%);transform:translateX(-100%)}}.layui-m-anim-lout{-webkit-animation-name:layui-m-anim-lout;animation-name:layui-m-anim-lout}@-webkit-keyframes layui-m-anim-rout{0%{-webkit-transform:translateX(0);transform:translateX(0)}100%{-webkit-transform:translateX(100%);transform:translateX(100%)}}@keyframes layui-m-anim-rout{0%{-webkit-transform:translateX(0);transform:translateX(0)}100%{-webkit-transform:translateX(100%);transform:translateX(100%)}}.layui-m-anim-rout{-webkit-animation-name:layui-m-anim-rout;animation-name:layui-m-anim-rout}.layui-m-layer{position:relative;z-index:19891014}.layui-m-layer *{-webkit-box-sizing:content-box;-moz-box-sizing:content-box;box-sizing:content-box}.layui-m-layermain,.layui-m-layershade{position:fixed;left:0;top:0;width:100%;height:100%}.layui-m-layershade{background-color:rgba(0,0,0,.7);pointer-events:auto}.layui-m-layermain{display:table;font-family:Helvetica,arial,sans-serif;pointer-events:none}.layui-m-layermain .layui-m-layersection{display:table-cell;vertical-align:middle;text-align:center}.layui-m-layerchild{position:relative;display:inline-block;text-align:left;background-color:#fff;font-size:14px;border-radius:5px;box-shadow:0 0 8px rgba(0,0,0,.1);pointer-events:auto;-webkit-overflow-scrolling:touch;-webkit-animation-fill-mode:both;animation-fill-mode:both;-webkit-animation-duration:.2s;animation-duration:.2s}.layui-m-layer0 .layui-m-layerchild{width:90%;max-width:640px}.layui-m-layer1 .layui-m-layerchild{border:none;border-radius:0}.layui-m-layer2 .layui-m-layerchild{width:auto;max-width:260px;min-width:40px;border:none;background:0 0;box-shadow:none;color:#fff}.layui-m-layerchild h3{padding:0 10px;height:60px;line-height:60px;font-size:16px;font-weight:400;border-radius:5px 5px 0 0;text-align:center}.layui-m-layerbtn span,.layui-m-layerchild h3{text-overflow:ellipsis;overflow:hidden;white-space:nowrap}.layui-m-layercont{padding:50px 30px;line-height:22px;text-align:center}.layui-m-layer1 .layui-m-layercont{padding:0;text-align:left}.layui-m-layer2 .layui-m-layercont{text-align:center;padding:0;line-height:0}.layui-m-layer2 .layui-m-layercont i{width:25px;height:25px;margin-left:8px;display:inline-block;background-color:#fff;border-radius:100%;-webkit-animation:layui-m-anim-loading 1.4s infinite ease-in-out;animation:layui-m-anim-loading 1.4s infinite ease-in-out;-webkit-animation-fill-mode:both;animation-fill-mode:both}.layui-m-layerbtn,.layui-m-layerbtn span{position:relative;text-align:center;border-radius:0 0 5px 5px}.layui-m-layer2 .layui-m-layercont p{margin-top:20px}@-webkit-keyframes layui-m-anim-loading{0%,100%,80%{transform:scale(0);-webkit-transform:scale(0)}40%{transform:scale(1);-webkit-transform:scale(1)}}@keyframes layui-m-anim-loading{0%,100%,80%{transform:scale(0);-webkit-transform:scale(0)}40%{transform:scale(1);-webkit-transform:scale(1)}}.layui-m-layer2 .layui-m-layercont i:first-child{margin-left:0;-webkit-animation-delay:-.32s;animation-delay:-.32s}.layui-m-layer2 .layui-m-layercont i.layui-m-layerload{-webkit-animation-delay:-.16s;animation-delay:-.16s}.layui-m-layer2 .layui-m-layercont>div{line-height:22px;padding-top:7px;margin-bottom:20px;font-size:14px}.layui-m-layerbtn{display:box;display:-moz-box;display:-webkit-box;width:100%;height:50px;line-height:50px;font-size:0;border-top:1px solid #D0D0D0;background-color:#F2F2F2}.layui-m-layerbtn span{display:block;-moz-box-flex:1;box-flex:1;-webkit-box-flex:1;font-size:14px;cursor:pointer}.layui-m-layerbtn span[yes]{color:#40AFFE}.layui-m-layerbtn span[no]{border-right:1px solid #D0D0D0;border-radius:0 0 0 5px}.layui-m-layerbtn span:active{background-color:#F6F6F6}.layui-m-layerend{position:absolute;right:7px;top:10px;width:30px;height:30px;border:0;font-weight:400;background:0 0;cursor:pointer;-webkit-appearance:none;font-size:30px}.layui-m-layerend::after,.layui-m-layerend::before{position:absolute;left:5px;top:15px;content:'';width:18px;height:1px;background-color:#999;transform:rotate(45deg);-webkit-transform:rotate(45deg);border-radius:3px}.layui-m-layerend::after{transform:rotate(-45deg);-webkit-transform:rotate(-45deg)}body .layui-m-layer .layui-m-layer-footer{position:fixed;width:95%;max-width:100%;margin:0 auto;left:0;right:0;bottom:10px;background:0 0}.layui-m-layer-footer .layui-m-layercont{padding:20px;border-radius:5px 5px 0 0;background-color:rgba(255,255,255,.8)}.layui-m-layer-footer .layui-m-layerbtn{display:block;height:auto;background:0 0;border-top:none}.layui-m-layer-footer .layui-m-layerbtn span{background-color:rgba(255,255,255,.8)}.layui-m-layer-footer .layui-m-layerbtn span[no]{color:#FD482C;border-top:1px solid #c2c2c2;border-radius:0 0 5px 5px}.layui-m-layer-footer .layui-m-layerbtn span[yes]{margin-top:10px;border-radius:5px}body .layui-m-layer .layui-m-layer-msg{width:auto;max-width:90%;margin:0 auto;bottom:-150px;background-color:rgba(0,0,0,.7);color:#fff}.layui-m-layer-msg .layui-m-layercont{padding:10px 20px} \ No newline at end of file diff --git a/public/static/admin/layui/css/modules/code.css b/public/static/admin/layui/css/modules/code.css new file mode 100644 index 0000000..d5ecb86 --- /dev/null +++ b/public/static/admin/layui/css/modules/code.css @@ -0,0 +1,2 @@ +/** layui-v2.5.5 MIT License By https://www.layui.com */ + html #layuicss-skincodecss{display:none;position:absolute;width:1989px}.layui-code-h3,.layui-code-view{position:relative;font-size:12px}.layui-code-view{display:block;margin:10px 0;padding:0;border:1px solid #e2e2e2;border-left-width:6px;background-color:#F2F2F2;color:#333;font-family:Courier New}.layui-code-h3{padding:0 10px;height:32px;line-height:32px;border-bottom:1px solid #e2e2e2}.layui-code-h3 a{position:absolute;right:10px;top:0;color:#999}.layui-code-view .layui-code-ol{position:relative;overflow:auto}.layui-code-view .layui-code-ol li{position:relative;margin-left:45px;line-height:20px;padding:0 5px;border-left:1px solid #e2e2e2;list-style-type:decimal-leading-zero;*list-style-type:decimal;background-color:#fff}.layui-code-view pre{margin:0}.layui-code-notepad{border:1px solid #0C0C0C;border-left-color:#3F3F3F;background-color:#0C0C0C;color:#C2BE9E}.layui-code-notepad .layui-code-h3{border-bottom:none}.layui-code-notepad .layui-code-ol li{background-color:#3F3F3F;border-left:none} \ No newline at end of file diff --git a/public/static/admin/layui/css/modules/laydate/default/laydate.css b/public/static/admin/layui/css/modules/laydate/default/laydate.css new file mode 100644 index 0000000..6b10891 --- /dev/null +++ b/public/static/admin/layui/css/modules/laydate/default/laydate.css @@ -0,0 +1,2 @@ +/** layui-v2.5.5 MIT License By https://www.layui.com */ + .laydate-set-ym,.layui-laydate,.layui-laydate *,.layui-laydate-list{box-sizing:border-box}html #layuicss-laydate{display:none;position:absolute;width:1989px}.layui-laydate *{margin:0;padding:0}.layui-laydate{position:absolute;z-index:66666666;margin:5px 0;border-radius:2px;font-size:14px;-webkit-animation-duration:.3s;animation-duration:.3s;-webkit-animation-fill-mode:both;animation-fill-mode:both;-webkit-animation-name:laydate-upbit;animation-name:laydate-upbit}.layui-laydate-main{width:272px}.layui-laydate-content td,.layui-laydate-header *,.layui-laydate-list li{transition-duration:.3s;-webkit-transition-duration:.3s}@-webkit-keyframes laydate-upbit{from{-webkit-transform:translate3d(0,20px,0);opacity:.3}to{-webkit-transform:translate3d(0,0,0);opacity:1}}@keyframes laydate-upbit{from{transform:translate3d(0,20px,0);opacity:.3}to{transform:translate3d(0,0,0);opacity:1}}.layui-laydate-static{position:relative;z-index:0;display:inline-block;margin:0;-webkit-animation:none;animation:none}.laydate-ym-show .laydate-next-m,.laydate-ym-show .laydate-prev-m{display:none!important}.laydate-ym-show .laydate-next-y,.laydate-ym-show .laydate-prev-y{display:inline-block!important}.laydate-time-show .laydate-set-ym span[lay-type=month],.laydate-time-show .laydate-set-ym span[lay-type=year],.laydate-time-show .layui-laydate-header .layui-icon,.laydate-ym-show .laydate-set-ym span[lay-type=month]{display:none!important}.layui-laydate-header{position:relative;line-height:30px;padding:10px 70px 5px}.laydate-set-ym span,.layui-laydate-header i{padding:0 5px;cursor:pointer}.layui-laydate-header *{display:inline-block;vertical-align:bottom}.layui-laydate-header i{position:absolute;top:10px;color:#999;font-size:18px}.layui-laydate-header i.laydate-prev-y{left:15px}.layui-laydate-header i.laydate-prev-m{left:45px}.layui-laydate-header i.laydate-next-y{right:15px}.layui-laydate-header i.laydate-next-m{right:45px}.laydate-set-ym{width:100%;text-align:center;text-overflow:ellipsis;overflow:hidden;white-space:nowrap}.laydate-time-text{cursor:default!important}.layui-laydate-content{position:relative;padding:10px;-moz-user-select:none;-webkit-user-select:none;-ms-user-select:none}.layui-laydate-content table{border-collapse:collapse;border-spacing:0}.layui-laydate-content td,.layui-laydate-content th{width:36px;height:30px;padding:5px;text-align:center}.layui-laydate-content td{position:relative;cursor:pointer}.laydate-day-mark{position:absolute;left:0;top:0;width:100%;height:100%;line-height:30px;font-size:12px;overflow:hidden}.laydate-day-mark::after{position:absolute;content:'';right:2px;top:2px;width:5px;height:5px;border-radius:50%}.layui-laydate-footer{position:relative;height:46px;line-height:26px;padding:10px 20px}.layui-laydate-footer span{margin-right:15px;display:inline-block;cursor:pointer;font-size:12px}.layui-laydate-footer span:hover{color:#5FB878}.laydate-footer-btns{position:absolute;right:10px;top:10px}.laydate-footer-btns span{height:26px;line-height:26px;margin:0 0 0 -1px;padding:0 10px;border:1px solid #C9C9C9;background-color:#fff;white-space:nowrap;vertical-align:top;border-radius:2px}.layui-laydate-list>li,.layui-laydate-range .layui-laydate-main{display:inline-block;vertical-align:middle}.layui-laydate-list{position:absolute;left:0;top:0;width:100%;height:100%;padding:10px;background-color:#fff}.layui-laydate-list>li{position:relative;width:33.3%;height:36px;line-height:36px;margin:3px 0;text-align:center;cursor:pointer}.laydate-month-list>li{width:25%;margin:17px 0}.laydate-time-list>li{height:100%;margin:0;line-height:normal;cursor:default}.laydate-time-list p{position:relative;top:-4px;line-height:29px}.laydate-time-list ol{height:181px;overflow:hidden}.laydate-time-list>li:hover ol{overflow-y:auto}.laydate-time-list ol li{width:130%;padding-left:33px;line-height:30px;text-align:left;cursor:pointer}.layui-laydate-hint{position:absolute;top:115px;left:50%;width:250px;margin-left:-125px;line-height:20px;padding:15px;text-align:center;font-size:12px}.layui-laydate-range{width:546px}.layui-laydate-range .laydate-main-list-0 .laydate-next-m,.layui-laydate-range .laydate-main-list-0 .laydate-next-y,.layui-laydate-range .laydate-main-list-1 .laydate-prev-m,.layui-laydate-range .laydate-main-list-1 .laydate-prev-y{display:none}.layui-laydate-range .laydate-main-list-1 .layui-laydate-content{border-left:1px solid #e2e2e2}.layui-laydate,.layui-laydate-hint{border:1px solid #d2d2d2;box-shadow:0 2px 4px rgba(0,0,0,.12);background-color:#fff;color:#666}.layui-laydate-header{border-bottom:1px solid #e2e2e2}.layui-laydate-header i:hover,.layui-laydate-header span:hover{color:#5FB878}.layui-laydate-content{border-top:none 0;border-bottom:none 0}.layui-laydate-content th{font-weight:400;color:#333}.layui-laydate-content td{color:#666}.layui-laydate-content td.laydate-selected{background-color:#00F7DE}.laydate-selected:hover{background-color:#00F7DE!important}.layui-laydate-content td:hover,.layui-laydate-list li:hover{background-color:#eaeaea;color:#333}.laydate-time-list li ol{margin:0;padding:0;border:1px solid #e2e2e2;border-left-width:0}.laydate-time-list li:first-child ol{border-left-width:1px}.laydate-time-list>li:hover{background:0 0}.layui-laydate-content .laydate-day-next,.layui-laydate-content .laydate-day-prev{color:#d2d2d2}.laydate-selected.laydate-day-next,.laydate-selected.laydate-day-prev{background-color:#f8f8f8!important}.layui-laydate-footer{border-top:1px solid #e2e2e2}.layui-laydate-hint{color:#FF5722}.laydate-day-mark::after{background-color:#5FB878}.layui-laydate-content td.layui-this .laydate-day-mark::after{display:none}.layui-laydate-footer span[lay-type=date]{color:#5FB878}.layui-laydate .layui-this{background-color:#009688!important;color:#fff!important}.layui-laydate .laydate-disabled,.layui-laydate .laydate-disabled:hover{background:0 0!important;color:#d2d2d2!important;cursor:not-allowed!important;-moz-user-select:none;-webkit-user-select:none;-ms-user-select:none}.laydate-theme-molv{border:none}.laydate-theme-molv.layui-laydate-range{width:548px}.laydate-theme-molv .layui-laydate-main{width:274px}.laydate-theme-molv .layui-laydate-header{border:none;background-color:#009688}.laydate-theme-molv .layui-laydate-header i,.laydate-theme-molv .layui-laydate-header span{color:#f6f6f6}.laydate-theme-molv .layui-laydate-header i:hover,.laydate-theme-molv .layui-laydate-header span:hover{color:#fff}.laydate-theme-molv .layui-laydate-content{border:1px solid #e2e2e2;border-top:none;border-bottom:none}.laydate-theme-molv .laydate-main-list-1 .layui-laydate-content{border-left:none}.laydate-theme-grid .laydate-month-list>li,.laydate-theme-grid .laydate-year-list>li,.laydate-theme-grid .layui-laydate-content td,.laydate-theme-grid .layui-laydate-content thead,.laydate-theme-molv .layui-laydate-footer{border:1px solid #e2e2e2}.laydate-theme-grid .laydate-selected,.laydate-theme-grid .laydate-selected:hover{background-color:#f2f2f2!important;color:#009688!important}.laydate-theme-grid .laydate-selected.laydate-day-next,.laydate-theme-grid .laydate-selected.laydate-day-prev{color:#d2d2d2!important}.laydate-theme-grid .laydate-month-list,.laydate-theme-grid .laydate-year-list{margin:1px 0 0 1px}.laydate-theme-grid .laydate-month-list>li,.laydate-theme-grid .laydate-year-list>li{margin:0 -1px -1px 0}.laydate-theme-grid .laydate-year-list>li{height:43px;line-height:43px}.laydate-theme-grid .laydate-month-list>li{height:71px;line-height:71px} \ No newline at end of file diff --git a/public/static/admin/layui/css/modules/layer/default/icon-ext.png b/public/static/admin/layui/css/modules/layer/default/icon-ext.png new file mode 100644 index 0000000000000000000000000000000000000000..bbbb669bb311514baa5db3a6a00b4644d0e280f1 GIT binary patch literal 5911 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 bWW^%>x7XlHV^#Q1uOX^B?ki3(VEg|7!QHuF literal 0 HcmV?d00001 diff --git a/public/static/admin/layui/css/modules/layer/default/loading-1.gif b/public/static/admin/layui/css/modules/layer/default/loading-1.gif new file mode 100644 index 0000000000000000000000000000000000000000..db3a483e4b74971fbfb1cc0fb6499852cedfe650 GIT binary patch literal 701 zcmZ?wbhEHbRAo?Qn8?Ji_w)@mZNLBj|1&T!DE{a6a}5c0b_{Se(lcOY1PT3QVdY|A zV$cDyff`g97?`@J^shYqmS1s(LX_+4yGox$4el*+Jm?ved2^25GBru=T^dGm#<906 za&AQCZ08H8P;Bd&{NT;vl&}c_^L4%p?g_hjBu{YB29{c>Ob}p@z~Ks3xCw+@!HClp xtZ<(QPf3`00FNu+VbOvoEE+h73k#4LIKl$IE8t;)<_eUs!0QU6uz&iJhvXcHF*h)T1OnEW1i^?zgDfop1p?usL*#PMGT;HQkSO{q6FlJyb$PWkPf|h*eTST}7h8z$}MF(XD(aQ)ZLZ zM?v0rT<1C4XHn<6PbNA{XL@>1^)apdD_@tcYDrW#m`k#MmslI7p^P;Az74wGs`!SI zLs$GEZHsafXsu1i-WleMzAL(yw$-LK{0hv;6hrx8kx!!4$``dAyBnY9Jz&DqJo2$A z!(L$H=KqBeY~CF_viHPz^tTglc?D97CqEBjzUwH}7GI zapg8YZM~>2Wk%E$d&r@9ly9b4Q zJpM7T@}r63I(OExUlG%Xcjz3MU+9U^r!SkpjNThDtaP)7>j6L5z%o5|^hlVOyI*uY zt^UU6NTuY?(Lb4ZIU2Zb5Vz}Pb7KF%ivf&j^CL>$cDz?rMNTQQ|NqDVD7mhghUp%h zhIA{gi{S8y9YhIIbSv$`B!JiPi!0#4#Jge0)p&YVPHchWcyAn zQhvb8ggXGXs9;k`u9Uq*YB>O+Q3Rq=2hlLFcG{Q3ORH_}JnY8C+r%@}6|%ySP%bWG zV~mA;?P`Q2L_Ss})nrJ{$TmeA9Tt*4=}X5x%RioM@_?ZsKSEST-f+GBv~Ya)xX3O{ z8!d=YthI-13OI;RN~`>|6u5L{z20oBp%9MIj)n$!Aw{Wpq&Rtr4~*_74Gjo@3el>B zz(Rk;;>2lp73<2;d=r*8z%WkdsG=vRuG_fvxO#uN^El|+5Qoz^X!2MfxJ3m}vyi?> zMLLDi8+${Z6YbUg?8GNR>-+SwHKdFyr%HqWcs|X_l*-DAC^bG&KCqWg7-_`UlwQ`EdOp_LJkr`L$mHHs75uP?fSgVfsDjuE#ft2b8HDt0yFt!+;C zEgL=)G9ZFt4wa+N3Xg7FGc0~`&EEt6_%7tyzmnb9B_h1~7~GD4V-Bhx7~QKRkF>&aT>(-!Us@aJxAY@8E?HW$G8g zSz@7Jcp>iCp;lU1ieF6n7!oAa-1E!rS0 zF1lBFVS%G#ZO}b@*+bIk+7@Q|iG60vIDVpV%4tW8rKyzwRo_<25;8*Ky@n z-sX>W*b;M){5lB_Edc@m1`VHy0@dg$PTR9uE$O2&a?KAe?xRlCj&Z$iZYw + + + + +聊天记录 + + + + + + +
    +
      +
      + +
      + + + + + + + + + + + diff --git a/public/static/admin/layui/css/modules/layim/html/find.html b/public/static/admin/layui/css/modules/layim/html/find.html new file mode 100644 index 0000000..ff5cab1 --- /dev/null +++ b/public/static/admin/layui/css/modules/layim/html/find.html @@ -0,0 +1,38 @@ + + + + + + + +发现 + + + + + + +
      +
      此为自定义的【查找】页面,因需求不一,所以官方暂不提供该模版结构与样式,实际使用时,可移至该文件到你的项目中,对页面自行把控。 +
      文件所在目录(相对于layui.js):/css/modules/layim/html/find.html
      +
      + + + + + + + diff --git a/public/static/admin/layui/css/modules/layim/html/getmsg.json b/public/static/admin/layui/css/modules/layim/html/getmsg.json new file mode 100644 index 0000000..3d9b9d4 --- /dev/null +++ b/public/static/admin/layui/css/modules/layim/html/getmsg.json @@ -0,0 +1,87 @@ +{ + "code": 0, + "pages": 1, + "data": [ + { + "id": 76, + "content": "申请添加你为好友", + "uid": 168, + "from": 166488, + "from_group": 0, + "type": 1, + "remark": "有问题要问", + "href": null, + "read": 1, + "time": "刚刚", + "user": { + "id": 166488, + "avatar": "http://q.qlogo.cn/qqapp/101235792/B704597964F9BD0DB648292D1B09F7E8/100", + "username": "李彦宏", + "sign": null + } + }, + { + "id": 75, + "content": "申请添加你为好友", + "uid": 168, + "from": 347592, + "from_group": 0, + "type": 1, + "remark": "你好啊!", + "href": null, + "read": 1, + "time": "刚刚", + "user": { + "id": 347592, + "avatar": "http://q.qlogo.cn/qqapp/101235792/B78751375E0531675B1272AD994BA875/100", + "username": "麻花疼", + "sign": null + } + }, + { + "id": 62, + "content": "雷军 拒绝了你的好友申请", + "uid": 168, + "from": null, + "from_group": null, + "type": 1, + "remark": null, + "href": null, + "read": 1, + "time": "10天前", + "user": { + "id": null + } + }, + { + "id": 60, + "content": "马小云 已经同意你的好友申请", + "uid": 168, + "from": null, + "from_group": null, + "type": 1, + "remark": null, + "href": null, + "read": 1, + "time": "10天前", + "user": { + "id": null + } + }, + { + "id": 61, + "content": "贤心 已经同意你的好友申请", + "uid": 168, + "from": null, + "from_group": null, + "type": 1, + "remark": null, + "href": null, + "read": 1, + "time": "10天前", + "user": { + "id": null + } + } + ] +} \ No newline at end of file diff --git a/public/static/admin/layui/css/modules/layim/html/msgbox.html b/public/static/admin/layui/css/modules/layim/html/msgbox.html new file mode 100644 index 0000000..0adf002 --- /dev/null +++ b/public/static/admin/layui/css/modules/layim/html/msgbox.html @@ -0,0 +1,208 @@ + + + + + + + +消息盒子 + + + + + + +
        + +
        +
        注意:这些都是模拟数据,实际使用时,需将其中的模拟接口改为你的项目真实接口。 +
        该模版文件所在目录(相对于layui.js):/css/modules/layim/html/msgbox.html
        +
        + + + + + + + + + + diff --git a/public/static/admin/layui/css/modules/layim/layim.css b/public/static/admin/layui/css/modules/layim/layim.css new file mode 100644 index 0000000..69ad58a --- /dev/null +++ b/public/static/admin/layui/css/modules/layim/layim.css @@ -0,0 +1,2 @@ +/** layui-v2.4.5 MIT License By https://www.layui.com */ + html #layuicss-skinlayimcss{display:none;position:absolute;width:1989px}body .layui-layim,body .layui-layim-chat{border:1px solid #D9D9D9;border-color:rgba(0,0,0,.05);background-repeat:no-repeat;background-color:#F6F6F6;color:#333;font-family:\5FAE\8F6F\96C5\9ED1}body .layui-layim-chat{background-size:cover}body .layui-layim .layui-layer-title{height:110px;border-bottom:none;background:0 0}.layui-layim-main{position:relative;top:-98px;left:0}body .layui-layim .layui-layer-content,body .layui-layim-chat .layui-layer-content{overflow:visible}.layui-layim cite,.layui-layim em,.layui-layim-chat cite,.layui-layim-chat em{font-style:normal}.layui-layim-info{height:50px;font-size:0;padding:0 15px}.layui-layim-info *{font-size:14px}.layim-tab-content li h5 *,.layui-layim-info div,.layui-layim-skin li,.layui-layim-tab li,.layui-layim-tool li{display:inline-block;vertical-align:top;*zoom:1;*display:inline}.layim-tab-content li h5 span,.layui-layim-info .layui-layim-user,.layui-layim-list li p,.layui-layim-list li span,.layui-layim-remark{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.layui-layim-info .layui-layim-user{max-width:150px;margin-right:5px;font-size:16px}.layui-layim-status{position:relative;top:2px;line-height:19px;cursor:pointer}.layim-status-online{color:#3FDD86}.layim-status-hide{color:#DD691D}.layim-menu-box{display:none;position:absolute;z-index:100;top:24px;left:-31px;padding:5px 0;width:85px;border:1px solid #E2E2E2;border-radius:2px;background-color:#fff;box-shadow:1px 1px 20px rgba(0,0,0,.1)}.layim-menu-box li{position:relative;line-height:22px;padding-left:30px;font-size:12px}.layim-menu-box li cite{padding-right:5px;font-size:14px}.layim-menu-box li i{display:none;position:absolute;left:8px;top:0;font-weight:700;color:#5FB878}.layim-menu-box .layim-this i{display:block}.layim-menu-box li:hover{background-color:#eee}.layui-layim-remark{position:relative;left:-6px;display:block;width:100%;border:1px solid transparent;margin-top:8px;padding:0 5px;height:26px;line-height:26px;background:0 0;border-radius:2px}.layui-layim-remark:focus,.layui-layim-remark:hover{border:1px solid #d2d2d2;border-color:rgba(0,0,0,.15)}.layui-layim-remark:focus{background-color:#fff}.layui-layim-tab{margin-top:10px;padding:9px 0;font-size:0}.layui-layim-tab li{position:relative;width:33.33%;height:24px;line-height:24px;font-size:22px;text-align:center;color:#666;color:rgba(0,0,0,.6);cursor:pointer}.layim-tab-two li{width:50%}.layui-layim-tab li.layim-this:after{content:'';position:absolute;left:0;bottom:-9px;width:100%;height:3px;background-color:#3FDD86}.layui-layim-tab li.layim-hide{display:none}.layui-layim-tab li:hover{opacity:.8;filter:Alpha(opacity=80)}.layim-tab-content{display:none;padding:10px 0;height:349px;overflow:hidden;background-color:#fff;background-color:rgba(255,255,255,.9)}.layim-tab-content:hover{overflow-y:auto}.layim-tab-content li h5{position:relative;margin-right:15px;padding-left:30px;height:28px;line-height:28px;cursor:pointer;font-size:0;white-space:nowrap;overflow:hidden}.layim-tab-content li h5 *{font-size:14px}.layim-tab-content li h5 span{max-width:125px}.layim-tab-content li h5 i{position:absolute;left:12px;top:0;color:#C9BDBB}.layim-tab-content li h5 em{padding-left:5px;color:#999}.layim-tab-content li h5[lay-type=true] i{top:2px}.layim-tab-content li ul{display:none;margin-bottom:10px}.layui-layim-list li{position:relative;height:42px;padding:5px 15px 5px 60px;font-size:0;cursor:pointer}.layui-layim-list li:hover{background-color:#F2F2F2;background-color:rgba(0,0,0,.05)}.layui-layim-list li.layim-null{height:20px;line-height:20px;padding:0;font-size:14px;color:#999;text-align:center;cursor:default}.layui-layim-list li.layim-null:hover{background:0 0}.layui-layim-list li *{display:inline-block;*display:inline;*zoom:1;vertical-align:top;font-size:14px}.layui-layim-list li span{margin-top:4px;max-width:155px}.layui-layim-list li img{position:absolute;left:15px;top:8px;width:36px;height:36px;border-radius:100%}.layui-layim-list li p{display:block;padding-right:30px;line-height:18px;font-size:12px;color:#999}.layui-layim-list li .layim-msg-status{display:none;position:absolute;right:10px;bottom:7px;padding:0 5px;height:16px;line-height:16px;border-radius:16px;text-align:center;font-size:10px;background-color:#F74C31;color:#fff}.layim-list-gray{-webkit-filter:grayscale(100%);-ms-filter:grayscale(100%);filter:grayscale(100%);filter:gray}.layui-layim-tool{padding:0 10px;font-size:0;background-color:#F6F6F6;border-radius:0 0 2px 2px}.layui-layim-tool li{position:relative;width:48px;height:37px;line-height:40px;text-align:center;font-size:22px;cursor:pointer}.layui-layim-tool li:active{background-color:#e2e2e2}.layui-layim-tool .layim-tool-msgbox{line-height:37px}.layui-layim-tool .layim-tool-find{line-height:38px}.layui-layim-tool .layim-tool-skin{font-size:26px}.layim-tool-msgbox span{display:none;position:absolute;left:12px;top:-12px;height:20px;line-height:20px;padding:0 10px;border-radius:2px;background-color:#33DF83;color:#fff;font-size:12px;-webkit-animation-duration:1s;animation-duration:1s}.layim-tool-msgbox .layer-anim-05{display:block}.layui-layim-search{display:none;position:absolute;bottom:5px;left:5px;height:28px;line-height:28px}.layui-layim-search input{width:210px;padding:0 30px 0 10px;height:30px;line-height:30px;border:none;border-radius:3px;background-color:#ddd}.layui-layim-search label{position:absolute;right:6px;top:4px;font-size:20px;cursor:pointer;color:#333;font-weight:400}.layui-layim-skin{margin:10px 0 0 10px;font-size:0}.layui-layim-skin li{margin:0 10px 10px 0;line-height:60px;text-align:center;background-color:#f6f6f6}.layui-layim-skin li,.layui-layim-skin li img{width:86px;height:60px;cursor:pointer}.layui-layim-skin li img:hover{opacity:.8;filter:Alpha(opacity=80)}.layui-layim-skin li cite{font-size:14px;font-style:normal}body .layui-layim-chat{background-color:#fff}body .layui-layim-chat-list{width:760px}body .layui-layim-chat .layui-layer-title{height:80px;border-bottom:none;background-color:#F8F8F8;background-color:rgba(245,245,245,.7)}body .layui-layim-chat .layui-layer-content{background:0 0}.layim-chat-list li *,.layui-layim-min .layui-layer-content *{display:inline-block;*display:inline;*zoom:1;vertical-align:top;font-size:14px}.layim-chat-list{display:none;position:absolute;z-index:1000;top:-80px;width:200px;height:100%;background-color:#D9D9D9;overflow:hidden;font-size:0}.layim-chat-list:hover{overflow-y:auto}.layim-chat-list li,.layui-layim-min .layui-layer-content{position:relative;margin:5px;padding:5px 30px 5px 5px;line-height:40px;cursor:pointer;border-radius:3px}.layim-chat-list li img,.layui-layim-min .layui-layer-content img{width:40px;height:40px;border-radius:100%}.layui-layim-photos{cursor:crosshair}.layim-chat-list li{white-space:nowrap}.layim-chat-list li span,.layui-layim-min .layui-layer-content span{width:100px;padding-left:10px;font-size:16px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.layim-chat-list li span cite{color:#999;padding-left:10px}.layim-chat-list li:hover{background-color:#E2E2E2}.layim-chat-list li.layim-this{background-color:#F3F3F3}.layim-chat-list li .layui-icon{display:none;position:absolute;right:5px;top:7px;color:#555;font-size:22px}.layim-chat-list li .layui-icon:hover{color:#c00}.layim-chat-list li:hover .layui-icon{display:inline-block}.layim-chat-system{margin:10px 0;text-align:center}.layim-chat-system span{display:inline-block;line-height:30px;padding:0 15px;border-radius:3px;background-color:#e2e2e2;cursor:default;font-size:14px}.layim-chat{display:none;position:relative;background-color:#fff;background-color:rgba(255,255,255,.9)}.layim-chat-title{position:absolute;top:-80px;height:80px}.layim-chat-other{position:relative;top:15px;left:15px;padding-left:60px;cursor:default}.layim-chat-other img{position:absolute;left:0;top:0;width:50px;height:50px;border-radius:100%}.layim-chat-username{position:relative;top:5px;font-size:18px}.layim-chat-status{margin-top:6px;font-size:14px;color:#999}.layim-chat-group .layim-chat-other .layim-chat-username{cursor:pointer}.layim-chat-group .layim-chat-other .layim-chat-username em{padding:0 10px;color:#999}.layim-chat-main{height:262px;padding:15px 15px 5px;overflow-x:hidden;overflow-y:auto}.layim-chat-main ul li{position:relative;font-size:0;margin-bottom:10px;padding-left:60px;min-height:68px}.layim-chat-text,.layim-chat-user{display:inline-block;*display:inline;*zoom:1;vertical-align:top;font-size:14px}.layim-chat-user{position:absolute;left:3px}.layim-chat-user img{width:40px;height:40px;border-radius:100%}.layim-chat-user cite{position:absolute;left:60px;top:-2px;width:500px;line-height:24px;font-size:12px;white-space:nowrap;color:#999;text-align:left;font-style:normal}.layim-chat-user cite i{padding-left:15px;font-style:normal}.layim-chat-text{position:relative;line-height:22px;margin-top:25px;padding:8px 15px;background-color:#e2e2e2;border-radius:3px;color:#333;word-break:break-all;max-width:462px\9}.layim-chat-text:after{content:'';position:absolute;left:-10px;top:13px;width:0;height:0;border-style:solid dashed dashed;border-color:#e2e2e2 transparent transparent;overflow:hidden;border-width:10px}.layim-chat-text a{color:#33DF83}.layim-chat-text img{max-width:100%;vertical-align:middle}.layim-chat-text .layui-layim-file,.layui-layim-file{display:block;text-align:center}.layim-chat-text .layui-layim-file{color:#333}.layui-layim-file:hover{opacity:.9}.layui-layim-file i{font-size:80px;line-height:80px}.layui-layim-file cite{display:block;line-height:20px;font-size:14px}.layui-layim-audio{text-align:center;cursor:pointer}.layui-layim-audio .layui-icon{position:relative;top:5px;font-size:24px}.layui-layim-audio p{margin-top:3px}.layui-layim-video{width:120px;height:80px;line-height:80px;background-color:#333;text-align:center;border-radius:3px}.layui-layim-video .layui-icon{font-size:36px;cursor:pointer;color:#fff}.layim-chat-main ul .layim-chat-system{min-height:0;padding:0}.layim-chat-main ul .layim-chat-mine{text-align:right;padding-left:0;padding-right:60px}.layim-chat-mine .layim-chat-user{left:auto;right:3px}.layim-chat-mine .layim-chat-user cite{left:auto;right:60px;text-align:right}.layim-chat-mine .layim-chat-user cite i{padding-left:0;padding-right:15px}.layim-chat-mine .layim-chat-text{margin-left:0;text-align:left;background-color:#5FB878;color:#fff}.layim-chat-mine .layim-chat-text:after{left:auto;right:-10px;border-top-color:#5FB878}.layim-chat-mine .layim-chat-text a{color:#fff}.layim-chat-footer{border-top:1px solid #F1F1F1}.layim-chat-tool{position:relative;padding:0 8px;height:38px;line-height:38px;font-size:0}.layim-chat-tool span{position:relative;margin:0 10px;display:inline-block;*display:inline;*zoom:1;vertical-align:top;font-size:24px;cursor:pointer}.layim-chat-tool .layim-tool-log{position:absolute;right:5px;font-size:14px}.layim-tool-log i{position:relative;top:2px;margin-right:5px;font-size:20px;color:#999}.layim-tool-image input{position:absolute;font-size:0;left:0;top:0;width:100%;height:100%;opacity:.01;filter:Alpha(opacity=1);cursor:pointer}body .layui-layim-face{margin:10px 0 0 -18px;border:none;background:0 0}body .layui-layim-face .layui-layer-content{padding:0;background-color:#fff;color:#666;box-shadow:none}.layui-layim-face .layui-layer-TipsG{display:none}.layui-layim-face ul{position:relative;width:372px;padding:10px;border:1px solid #D9D9D9;background-color:#fff;box-shadow:0 0 20px rgba(0,0,0,.2)}.layui-layim-face ul li{cursor:pointer;float:left;border:1px solid #e8e8e8;height:22px;width:26px;overflow:hidden;margin:-1px 0 0 -1px;padding:4px 2px;text-align:center}.layui-layim-face ul li:hover{position:relative;z-index:2;border:1px solid #eb7350;background:#fff9ec}.layim-chat-textarea{margin-left:10px}.layim-chat-textarea textarea{display:block;width:100%;padding:5px 0 0;height:68px;line-height:20px;border:none;overflow:auto;resize:none;background:0 0}.layim-chat-textarea textarea:focus{outline:0}.layim-chat-bottom{position:relative;height:46px}.layim-chat-send{position:absolute;right:15px;top:3px;height:32px;line-height:32px;font-size:0;cursor:pointer}.layim-chat-send span{display:inline-block;*display:inline;*zoom:1;vertical-align:top;font-size:14px;line-height:32px;margin-left:5px;padding:0 20px;background-color:#5FB878;color:#fff;border-radius:3px}.layim-chat-send span:hover{background-color:#69BC80}.layim-chat-send span:active{background-color:#59B573}.layim-chat-send .layim-send-btn{border-radius:3px 0 0 3px}.layim-chat-send .layim-send-set{position:relative;width:30px;height:32px;margin-left:0;padding:0;border-left:1px solid #85C998;border-radius:0 3px 3px 0}.layim-send-set .layui-edge{position:absolute;top:14px;left:9px;border-width:6px;border-top-style:solid;border-top-color:#fff}.layim-chat-send .layim-menu-box{left:auto;right:0;top:33px;width:180px;padding:10px 0}.layim-chat-send .layim-menu-box li{padding-right:15px;line-height:28px}body .layui-layim-min{border:1px solid #D9D9D9}.layui-layim-min .layui-layer-content{margin:0 5px;padding:5px 10px;white-space:nowrap}.layui-layim-close .layui-layer-content span{width:auto;max-width:120px}body .layui-layim-members{margin:25px 0 0 -75px;border:none;background:0 0}body .layui-layim-members .layui-layer-content{padding:0;background:0 0;color:#666;box-shadow:none}.layui-layim-members .layui-layer-TipsG{display:none}.layui-layim-members ul{position:relative;width:578px;height:200px;padding:10px 10px 0;border:1px solid #D9D9D9;background-color:#fff;background-color:rgba(255,255,255,.9);box-shadow:none;overflow:hidden;font-size:0}.layui-layim-members ul:hover{overflow:auto}.layim-add-img,.layim-add-remark,.layui-layim-members li{display:inline-block;*display:inline;*zoom:1;vertical-align:top;font-size:14px}.layui-layim-members li{width:112px;margin:10px 0;text-align:center}.layui-layim-members li a{position:relative;display:inline-block;max-width:100%}.layui-layim-members li a:after{content:'';position:absolute;width:46px;height:46px;left:50%;margin-left:-23px;top:0;border:1px solid #eee;border-color:rgba(0,0,0,.1);border-radius:100%}.layui-layim-members li img{width:48px;height:48px;border-radius:100%}.layui-layim-members li:hover{opacity:.9}.layui-layim-members li a cite{display:block;padding:0 3px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}body .layui-layim-contextmenu{margin:70px 0 0 30px;width:200px;padding:5px 0;border:1px solid #ccc;background:#fff;border-radius:0;box-shadow:0 0 5px rgba(0,0,0,.2)}body .layui-layim-contextmenu .layui-layer-content{padding:0;background-color:#fff;color:#333;font-size:14px;box-shadow:none}.layui-layim-contextmenu .layui-layer-TipsG{display:none}.layui-layim-contextmenu li{padding:0 15px 0 35px;cursor:pointer;line-height:30px}.layui-layim-contextmenu li:hover{background-color:#F2F2F2}.layim-add-box{margin:15px;font-size:0}.layim-add-img img,.layim-add-remark p{margin-bottom:10px}.layim-add-img{width:100px;margin-right:20px;text-align:center}.layim-add-img img{width:100px;height:100px}.layim-add-remark{width:280px}.layim-add-remark .layui-select{width:100%;margin-bottom:10px}.layim-add-remark .layui-textarea{height:80px;min-height:80px;resize:none}.layim-tab-content,.layui-layim-face ul,.layui-layim-tab{margin-bottom:0}.layim-tab-content li h5{margin-top:0;margin-bottom:0},.layui-layim-face img{vertical-align:bottom}.layim-chat-other span{color:#444}.layim-chat-other span cite{padding:0 15px;color:#999}.layim-chat-other:hover{text-decoration:none} \ No newline at end of file diff --git a/public/static/admin/layui/css/modules/layim/mobile/layim.css b/public/static/admin/layui/css/modules/layim/mobile/layim.css new file mode 100644 index 0000000..129721b --- /dev/null +++ b/public/static/admin/layui/css/modules/layim/mobile/layim.css @@ -0,0 +1,2 @@ +/** layui-v2.4.5 MIT License By https://www.layui.com */ + .layim-tab-content li h5,.layui-layim-list li{border-bottom:1px solid #f2f2f2;cursor:pointer}html #layuicss-skinlayim-mobilecss{display:none;position:absolute;width:1989px}.layim-tab-content li h5 *,.layui-layim-skin li,.layui-layim-tab li,.layui-layim-tool li{display:inline-block;vertical-align:top;*zoom:1;*display:inline}.layim-tab-content li h5 span,.layui-layim-list li p,.layui-layim-list li span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.layui-layim-tab{position:absolute;bottom:0;left:0;right:0;height:50px;border-top:1px solid #f2f2f2;background-color:#fff}.layui-layim-tab li{position:relative;width:33.33%;height:50px;text-align:center;color:#666;color:rgba(0,0,0,.6);cursor:pointer}.layui-layim-tab li .layui-icon{position:relative;top:7px;font-size:25px}.layui-layim-tab li span{position:relative;bottom:-3px;display:block;font-size:12px}.layui-layim-tab li[lay-type=more] .layui-icon{top:4px;font-size:22px}.layui-layim-tab li.layim-this{color:#3FDD86}.layim-new{display:none;position:absolute;top:5px;left:50%;margin-left:15px;width:10px;height:10px;border-radius:10px;background-color:#F74C31;color:#fff}.layim-list-top .layim-new{position:relative;vertical-align:top;top:10px;left:initial;margin-left:5px}.layim-list-top i.layui-show{display:inline-block!important}.layim-tab-content,.layim-tab-content li ul{display:none}.layui-layim{position:fixed;left:0;right:0;top:50px;bottom:50px;overflow-y:auto;overflow-x:hidden;-webkit-overflow-scrolling:touch}.layim-tab-content li h5{position:relative;padding-left:35px;height:45px;line-height:45px;font-size:0;white-space:nowrap;overflow:hidden}.layim-tab-content li h5 *{font-size:17px}.layim-tab-content li h5 span{max-width:80%}.layim-tab-content li h5 i{position:absolute;left:12px;top:0;color:#C9BDBB}.layim-tab-content li h5 em{padding-left:5px;color:#999}.layim-list-friend,.layim-list-group{background-color:#fff}.layui-layim-list li{position:relative;height:42px;padding:5px 15px 5px 60px;font-size:0}.layui-layim-list li:active{background-color:#F2F2F2;background-color:rgba(0,0,0,.05)}.layui-layim-list li.layim-null{height:20px;line-height:20px;padding:10px 0;color:#999;text-align:center;cursor:default;font-size:14px}.layim-list-history li.layim-null{padding:30px 0;border-bottom:none;background-color:#eee}.layui-layim-list li *{display:inline-block;*display:inline;*zoom:1;vertical-align:top;font-size:17px}.layui-layim-list li span{margin-top:2px;max-width:155px;font-size:17px}.layui-layim-list li img{position:absolute;left:12px;top:8px;width:36px;height:36px;border-radius:100%}.layui-layim-list li p{display:block;padding-right:30px;line-height:18px;font-size:13px;color:#999}.layui-layim-list li .layim-msg-status{display:none;position:absolute;right:10px;bottom:7px;padding:0 5px;height:17px;line-height:17px;border-radius:17px;text-align:center;font-size:10px;background-color:#F74C31;color:#fff}.layim-list-gray{-webkit-filter:grayscale(100%);-ms-filter:grayscale(100%);filter:grayscale(100%);filter:gray}.layim-list-top{background-color:#fff;font-size:17px}.layim-list-top li{position:relative;padding:0 15px 0 50px;line-height:45px;border-bottom:1px solid #f2f2f2;cursor:pointer}.layim-list-top li:last-child{margin-bottom:10px;border-bottom:none}.layim-list-top li .layui-icon{position:absolute;left:12px;top:0;margin-right:10px;color:#36373C;font-size:24px}.layim-list-top li[layim-event=newFriend] .layui-icon{left:15px}.layim-panel,.layim-title{position:fixed;left:0;right:0;top:0}.layim-list-top li[layim-event=group] .layui-icon{font-size:20px}.layim-list-top li[layim-event=about] .layui-icon{font-size:25px}.layim-panel{bottom:0;background-color:#eee;-webkit-animation-fill-mode:both;animation-fill-mode:both;-webkit-animation-duration:.2s;animation-duration:.2s}.layim-title{height:50px;line-height:50px;padding:0 15px;background-color:#36373C;color:#fff;font-size:18px}.layim-chat-status{padding-left:15px;font-size:14px;opacity:.7}.layim-title .layim-chat-back{display:inline-block;vertical-align:middle;position:relative;padding:0 15px;margin-left:-10px;top:0;font-size:24px;cursor:pointer}.layim-chat-detail{position:absolute;right:0;top:0;padding:0 15px;font-size:18px;cursor:pointer}.layim-chat-main,.layim-content{position:fixed;top:50px;left:0;right:0;overflow-y:auto;overflow-x:hidden}.layim-chat-detail:active,.layim-title .layim-chat-back:active{opacity:.8}.layui-layim .layim-title{text-align:left}.layui-layim .layim-title p{padding:0 15px}.layim-content{bottom:0}.layim-chat-main{width:100%;bottom:85px;padding:15px;-webkit-box-sizing:border-box!important;-moz-box-sizing:border-box!important;box-sizing:border-box!important}.layim-chat-main ul{overflow-x:hidden}.layim-chat-main ul li{position:relative;font-size:0;margin-bottom:10px;padding-left:60px;min-height:68px}.layim-chat-text,.layim-chat-user{display:inline-block;*display:inline;*zoom:1;vertical-align:top;font-size:15px}.layim-chat-user{position:absolute;left:3px}.layim-chat-user img{width:40px;height:40px;border-radius:100%}.layim-chat-user cite{position:absolute;left:60px;top:-2px;width:500px;line-height:24px;font-size:12px;white-space:nowrap;color:#999;text-align:left;font-style:normal}.layim-chat-user cite i{padding-left:15px;font-style:normal}.layim-chat-text{position:relative;min-height:22px;line-height:22px;margin-top:25px;padding:8px 15px;background-color:#fff;border-radius:3px;color:#333;word-break:break-all}.layim-chat-text:after{content:'';position:absolute;left:-10px;top:13px;width:0;height:0;border-style:solid dashed dashed;border-color:#fff transparent transparent;overflow:hidden;border-width:10px}.layim-chat-text a{color:#33DF83}.layim-chat-text img{max-width:100%;vertical-align:middle}.layim-chat-text .layui-layim-file,.layui-layim-file{display:block;text-align:center}.layim-chat-text .layui-layim-file{color:#333}.layui-layim-file:active{opacity:.9}.layui-layim-file i{font-size:80px;line-height:80px}.layui-layim-file cite{display:block;line-height:20px;font-size:17px}.layui-layim-audio{text-align:center;cursor:pointer}.layui-layim-audio .layui-icon{position:relative;top:5px;font-size:24px}.layui-layim-audio p{margin-top:3px}.layui-layim-video{width:120px;height:80px;line-height:80px;background-color:#333;text-align:center;border-radius:3px}.layui-layim-video .layui-icon{font-size:36px;cursor:pointer;color:#fff}.layim-chat-main ul .layim-chat-mine{text-align:right;padding-left:0;padding-right:60px}.layim-chat-mine .layim-chat-user{left:auto;right:3px}.layim-chat-mine .layim-chat-user cite{left:auto;right:60px;text-align:right}.layim-chat-mine .layim-chat-user cite i{padding-left:0;padding-right:15px}.layim-chat-mine .layim-chat-text{margin-left:0;text-align:left;background-color:#5FB878;color:#fff}.layim-chat-mine .layim-chat-text:after{left:auto;right:-10px;border-top-color:#5FB878}.layim-chat-mine .layim-chat-text a{color:#fff}.layim-chat-main ul .layim-chat-system{min-height:0;margin:20px 0 5px;padding:0}.layim-chat-system{margin:10px 0;text-align:center}.layim-chat-system span{display:inline-block;line-height:30px;padding:0 15px;border-radius:3px;background-color:#ddd;color:#fff;font-size:14px;cursor:pointer}.layim-chat-footer{position:fixed;bottom:0;left:10px;right:10px;height:80px}.layim-chat-send{display:-webkit-box;display:-webkit-flex;display:flex}.layim-chat-send input{-webkit-box-flex:1;-webkit-flex:1;flex:1;height:40px;padding-left:5px;border:0;background-color:#fff;border-radius:3px}.layim-chat-send button{border-radius:3px;height:40px;padding:0 20px;border:0;margin-left:10px;background-color:#5FB878;color:#fff}.layim-chat-tool{position:relative;width:100%;overflow-x:auto;padding:0;height:38px;line-height:38px;margin-top:3px;font-size:0;white-space:nowrap}.layim-chat-tool span{position:relative;margin:0 15px;display:inline-block;*display:inline;*zoom:1;vertical-align:top;font-size:28px;cursor:pointer}.layim-chat-tool .layim-tool-log{position:absolute;right:5px;font-size:14px}.layim-tool-log i{position:relative;top:2px;margin-right:5px;font-size:20px;color:#999}.layim-tool-image input{position:absolute;font-size:0;left:0;top:0;width:100%;height:100%;opacity:.01;filter:Alpha(opacity=1);cursor:pointer}.layim-layer{position:fixed;bottom:85px;left:10px;right:10px;margin:0 auto}.layui-layim-face{position:relative;max-height:180px;overflow:auto;padding:10px;font-size:0}.layui-layim-face li{cursor:pointer;display:inline-block;vertical-align:bottom;padding:5px 2px;text-align:center;width:10%;-webkit-box-sizing:border-box!important;-moz-box-sizing:border-box!important;box-sizing:border-box!important}.layui-layim-face li img{width:22px;height:22px}.layim-about{font-size:17px}.layim-about .layui-m-layercont{text-align:left}.layim-about .layui-m-layercont p{line-height:30px}.layim-about .layui-m-layercont a{color:#01AAED} \ No newline at end of file diff --git a/public/static/admin/layui/css/modules/layim/skin/1.jpg b/public/static/admin/layui/css/modules/layim/skin/1.jpg new file mode 100644 index 0000000000000000000000000000000000000000..d9f99263d65a31247c966813d155b83f1ebbd1ba GIT binary patch literal 18386 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 literal 0 HcmV?d00001 diff --git a/public/static/admin/layui/css/modules/layim/skin/3.jpg b/public/static/admin/layui/css/modules/layim/skin/3.jpg new file mode 100644 index 0000000000000000000000000000000000000000..53ba9216283a962b6d325965a4a11c7504056e54 GIT binary patch literal 18610 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"+(i.text?''+i.value+"星":"")+"";var c=i.elem,f=c.next("."+t);f[0]&&f.remove(),e.elemTemp=a(n),i.span=e.elemTemp.next("span"),i.setText&&i.setText(i.value),c.html(e.elemTemp),c.addClass("layui-inline"),i.readonly||e.action()},v.prototype.setvalue=function(e){var a=this,i=a.config;i.value=e,a.render()},v.prototype.action=function(){var e=this,i=e.config,l=e.elemTemp,n=l.find("i").width();l.children("li").each(function(e){var t=e+1,v=a(this);v.on("click",function(e){if(i.value=t,i.half){var o=e.pageX-a(this).offset().left;o<=n/2&&(i.value=i.value-.5)}i.text&&l.next("span").text(i.value+"星"),i.choose&&i.choose(i.value),i.setText&&i.setText(i.value)}),v.on("mousemove",function(e){if(l.find("i").each(function(){a(this).addClass(o).removeClass(r)}),l.find("i:lt("+t+")").each(function(){a(this).addClass(s).removeClass(f)}),i.half){var c=e.pageX-a(this).offset().left;c<=n/2&&v.children("i").addClass(u).removeClass(s)}}),v.on("mouseleave",function(){l.find("i").each(function(){a(this).addClass(o).removeClass(r)}),l.find("i:lt("+Math.floor(i.value)+")").each(function(){a(this).addClass(s).removeClass(f)}),i.half&&parseInt(i.value)!==i.value&&l.children("li:eq("+Math.floor(i.value)+")").children("i").addClass(u).removeClass(c)})})},v.prototype.events=function(){var e=this;e.config},i.render=function(e){var a=new v(e);return l.call(a)},e(n,i)});layui.define("jquery",function(t){"use strict";var e=layui.$,i={fixbar:function(t){var i,n,a="layui-fixbar",o="layui-fixbar-top",r=e(document),l=e("body");t=e.extend({showHeight:200},t),t.bar1=t.bar1===!0?"":t.bar1,t.bar2=t.bar2===!0?"":t.bar2,t.bgcolor=t.bgcolor?"background-color:"+t.bgcolor:"";var c=[t.bar1,t.bar2,""],g=e(['
          ',t.bar1?'
        • '+c[0]+"
        • ":"",t.bar2?'
        • '+c[1]+"
        • ":"",'
        • '+c[2]+"
        • ","
        "].join("")),s=g.find("."+o),u=function(){var e=r.scrollTop();e>=t.showHeight?i||(s.show(),i=1):i&&(s.hide(),i=0)};e("."+a)[0]||("object"==typeof t.css&&g.css(t.css),l.append(g),u(),g.find("li").on("click",function(){var i=e(this),n=i.attr("lay-type");"top"===n&&e("html,body").animate({scrollTop:0},200),t.click&&t.click.call(this,n)}),r.on("scroll",function(){clearTimeout(n),n=setTimeout(function(){u()},100)}))},countdown:function(t,e,i){var n=this,a="function"==typeof e,o=new Date(t).getTime(),r=new Date(!e||a?(new Date).getTime():e).getTime(),l=o-r,c=[Math.floor(l/864e5),Math.floor(l/36e5)%24,Math.floor(l/6e4)%60,Math.floor(l/1e3)%60];a&&(i=e);var g=setTimeout(function(){n.countdown(t,r+1e3,i)},1e3);return i&&i(l>0?c:[0,0,0,0],e,g),l<=0&&clearTimeout(g),g},timeAgo:function(t,e){var i=this,n=[[],[]],a=(new Date).getTime()-new Date(t).getTime();return a>6912e5?(a=new Date(t),n[0][0]=i.digit(a.getFullYear(),4),n[0][1]=i.digit(a.getMonth()+1),n[0][2]=i.digit(a.getDate()),e||(n[1][0]=i.digit(a.getHours()),n[1][1]=i.digit(a.getMinutes()),n[1][2]=i.digit(a.getSeconds())),n[0].join("-")+" "+n[1].join(":")):a>=864e5?(a/1e3/60/60/24|0)+"天前":a>=36e5?(a/1e3/60/60|0)+"小时前":a>=12e4?(a/1e3/60|0)+"分钟前":a<0?"未来":"刚刚"},digit:function(t,e){var i="";t=String(t),e=e||2;for(var n=t.length;n/g,">").replace(/'/g,"'").replace(/"/g,""")},event:function(t,n,a){n=i.event[t]=e.extend(!0,i.event[t],n)||{},e("body").on(a||"click","*["+t+"]",function(){var i=e(this),a=i.attr(t);n[a]&&n[a].call(this,i)})}};!function(t,e,i){"$:nomunge";function n(){a=e[l](function(){o.each(function(){var e=t(this),i=e.width(),n=e.height(),a=t.data(this,g);(i!==a.w||n!==a.h)&&e.trigger(c,[a.w=i,a.h=n])}),n()},r[s])}var a,o=t([]),r=t.resize=t.extend(t.resize,{}),l="setTimeout",c="resize",g=c+"-special-event",s="delay",u="throttleWindow";r[s]=250,r[u]=!0,t.event.special[c]={setup:function(){if(!r[u]&&this[l])return!1;var e=t(this);o=o.add(e),t.data(this,g,{w:e.width(),h:e.height()}),1===o.length&&n()},teardown:function(){if(!r[u]&&this[l])return!1;var e=t(this);o=o.not(e),e.removeData(g),o.length||clearTimeout(a)},add:function(e){function n(e,n,o){var r=t(this),l=t.data(this,g)||{};l.w=n!==i?n:r.width(),l.h=o!==i?o:r.height(),a.apply(this,arguments)}if(!r[u]&&this[l])return!1;var a;return t.isFunction(e)?(a=e,n):(a=e.handler,void(e.handler=n))}}}(e,window),t("util",i)});layui.define("jquery",function(e){"use strict";var l=layui.$,o=function(e){},t='';o.prototype.load=function(e){var o,i,n,r,a=this,c=0;e=e||{};var f=l(e.elem);if(f[0]){var m=l(e.scrollElem||document),u=e.mb||50,s=!("isAuto"in e)||e.isAuto,v=e.end||"没有更多了",y=e.scrollElem&&e.scrollElem!==document,d="加载更多",h=l('");f.find(".layui-flow-more")[0]||f.append(h);var p=function(e,t){e=l(e),h.before(e),t=0==t||null,t?h.html(v):h.find("a").html(d),i=t,o=null,n&&n()},g=function(){o=!0,h.find("a").html(t),"function"==typeof e.done&&e.done(++c,p)};if(g(),h.find("a").on("click",function(){l(this);i||o||g()}),e.isLazyimg)var n=a.lazyimg({elem:e.elem+" img",scrollElem:e.scrollElem});return s?(m.on("scroll",function(){var e=l(this),t=e.scrollTop();r&&clearTimeout(r),i||(r=setTimeout(function(){var i=y?e.height():l(window).height(),n=y?e.prop("scrollHeight"):document.documentElement.scrollHeight;n-t-i<=u&&(o||g())},100))}),a):a}},o.prototype.lazyimg=function(e){var o,t=this,i=0;e=e||{};var n=l(e.scrollElem||document),r=e.elem||"img",a=e.scrollElem&&e.scrollElem!==document,c=function(e,l){var o=n.scrollTop(),r=o+l,c=a?function(){return e.offset().top-n.offset().top+o}():e.offset().top;if(c>=o&&c<=r&&!e.attr("src")){var m=e.attr("lay-src");layui.img(m,function(){var l=t.lazyimg.elem.eq(i);e.attr("src",m).removeAttr("lay-src"),l[0]&&f(l),i++})}},f=function(e,o){var f=a?(o||n).height():l(window).height(),m=n.scrollTop(),u=m+f;if(t.lazyimg.elem=l(r),e)c(e,f);else for(var s=0;su)break}};if(f(),!o){var m;n.on("scroll",function(){var e=l(this);m&&clearTimeout(m),m=setTimeout(function(){f(null,e)},50)}),o=!0}return f},e("flow",new o)});layui.define(["layer","form"],function(t){"use strict";var e=layui.$,i=layui.layer,a=layui.form,l=(layui.hint(),layui.device()),n="layedit",o="layui-show",r="layui-disabled",c=function(){var t=this;t.index=0,t.config={tool:["strong","italic","underline","del","|","left","center","right","|","link","unlink","face","image"],hideTool:[],height:280}};c.prototype.set=function(t){var i=this;return e.extend(!0,i.config,t),i},c.prototype.on=function(t,e){return layui.onevent(n,t,e)},c.prototype.build=function(t,i){i=i||{};var a=this,n=a.config,r="layui-layedit",c=e("string"==typeof t?"#"+t:t),u="LAY_layedit_"+ ++a.index,d=c.next("."+r),y=e.extend({},n,i),f=function(){var t=[],e={};return layui.each(y.hideTool,function(t,i){e[i]=!0}),layui.each(y.tool,function(i,a){C[a]&&!e[a]&&t.push(C[a])}),t.join("")}(),m=e(['
        ','
        '+f+"
        ",'
        ','',"
        ","
        "].join(""));return l.ie&&l.ie<8?c.removeClass("layui-hide").addClass(o):(d[0]&&d.remove(),s.call(a,m,c[0],y),c.addClass("layui-hide").after(m),a.index)},c.prototype.getContent=function(t){var e=u(t);if(e[0])return d(e[0].document.body.innerHTML)},c.prototype.getText=function(t){var i=u(t);if(i[0])return e(i[0].document.body).text()},c.prototype.setContent=function(t,i,a){var l=u(t);l[0]&&(a?e(l[0].document.body).append(i):e(l[0].document.body).html(i),layedit.sync(t))},c.prototype.sync=function(t){var i=u(t);if(i[0]){var a=e("#"+i[1].attr("textarea"));a.val(d(i[0].document.body.innerHTML))}},c.prototype.getSelection=function(t){var e=u(t);if(e[0]){var i=m(e[0].document);return document.selection?i.text:i.toString()}};var s=function(t,i,a){var l=this,n=t.find("iframe");n.css({height:a.height}).on("load",function(){var o=n.contents(),r=n.prop("contentWindow"),c=o.find("head"),s=e([""].join("")),u=o.find("body");c.append(s),u.attr("contenteditable","true").css({"min-height":a.height}).html(i.value||""),y.apply(l,[r,n,i,a]),g.call(l,r,t,a)})},u=function(t){var i=e("#LAY_layedit_"+t),a=i.prop("contentWindow");return[a,i]},d=function(t){return 8==l.ie&&(t=t.replace(/<.+>/g,function(t){return t.toLowerCase()})),t},y=function(t,a,n,o){var r=t.document,c=e(r.body);c.on("keydown",function(t){var e=t.keyCode;if(13===e){var a=m(r),l=p(a),n=l.parentNode;if("pre"===n.tagName.toLowerCase()){if(t.shiftKey)return;return i.msg("请暂时用shift+enter"),!1}r.execCommand("formatBlock",!1,"

        ")}}),e(n).parents("form").on("submit",function(){var t=c.html();8==l.ie&&(t=t.replace(/<.+>/g,function(t){return t.toLowerCase()})),n.value=t}),c.on("paste",function(e){r.execCommand("formatBlock",!1,"

        "),setTimeout(function(){f.call(t,c),n.value=c.html()},100)})},f=function(t){var i=this;i.document;t.find("*[style]").each(function(){var t=this.style.textAlign;this.removeAttribute("style"),e(this).css({"text-align":t||""})}),t.find("table").addClass("layui-table"),t.find("script,link").remove()},m=function(t){return t.selection?t.selection.createRange():t.getSelection().getRangeAt(0)},p=function(t){return t.endContainer||t.parentElement().childNodes[0]},v=function(t,i,a){var l=this.document,n=document.createElement(t);for(var o in i)n.setAttribute(o,i[o]);if(n.removeAttribute("text"),l.selection){var r=a.text||i.text;if("a"===t&&!r)return;r&&(n.innerHTML=r),a.pasteHTML(e(n).prop("outerHTML")),a.select()}else{var r=a.toString()||i.text;if("a"===t&&!r)return;r&&(n.innerHTML=r),a.deleteContents(),a.insertNode(n)}},h=function(t,i){var a=this.document,l="layedit-tool-active",n=p(m(a)),o=function(e){return t.find(".layedit-tool-"+e)};i&&i[i.hasClass(l)?"removeClass":"addClass"](l),t.find(">i").removeClass(l),o("unlink").addClass(r),e(n).parents().each(function(){var t=this.tagName.toLowerCase(),e=this.style.textAlign;"b"!==t&&"strong"!==t||o("b").addClass(l),"i"!==t&&"em"!==t||o("i").addClass(l),"u"===t&&o("u").addClass(l),"strike"===t&&o("d").addClass(l),"p"===t&&("center"===e?o("center").addClass(l):"right"===e?o("right").addClass(l):o("left").addClass(l)),"a"===t&&(o("link").addClass(l),o("unlink").removeClass(r))})},g=function(t,a,l){var n=t.document,o=e(n.body),c={link:function(i){var a=p(i),l=e(a).parent();b.call(o,{href:l.attr("href"),target:l.attr("target")},function(e){var a=l[0];"A"===a.tagName?a.href=e.url:v.call(t,"a",{target:e.target,href:e.url,text:e.url},i)})},unlink:function(t){n.execCommand("unlink")},face:function(e){x.call(this,function(i){v.call(t,"img",{src:i.src,alt:i.alt},e)})},image:function(a){var n=this;layui.use("upload",function(o){var r=l.uploadImage||{};o.render({url:r.url,method:r.type,elem:e(n).find("input")[0],done:function(e){0==e.code?(e.data=e.data||{},v.call(t,"img",{src:e.data.src,alt:e.data.title},a)):i.msg(e.msg||"上传失败")}})})},code:function(e){k.call(o,function(i){v.call(t,"pre",{text:i.code,"lay-lang":i.lang},e)})},help:function(){i.open({type:2,title:"帮助",area:["600px","380px"],shadeClose:!0,shade:.1,skin:"layui-layer-msg",content:["http://www.layui.com/about/layedit/help.html","no"]})}},s=a.find(".layui-layedit-tool"),u=function(){var i=e(this),a=i.attr("layedit-event"),l=i.attr("lay-command");if(!i.hasClass(r)){o.focus();var u=m(n);u.commonAncestorContainer;l?(n.execCommand(l),/justifyLeft|justifyCenter|justifyRight/.test(l)&&n.execCommand("formatBlock",!1,"

        "),setTimeout(function(){o.focus()},10)):c[a]&&c[a].call(this,u),h.call(t,s,i)}},d=/image/;s.find(">i").on("mousedown",function(){var t=e(this),i=t.attr("layedit-event");d.test(i)||u.call(this)}).on("click",function(){var t=e(this),i=t.attr("layedit-event");d.test(i)&&u.call(this)}),o.on("click",function(){h.call(t,s),i.close(x.index)})},b=function(t,e){var l=this,n=i.open({type:1,id:"LAY_layedit_link",area:"350px",shade:.05,shadeClose:!0,moveType:1,title:"超链接",skin:"layui-layer-msg",content:['

          ','
        • ','','
          ','',"
          ","
        • ",'
        • ','','
          ','",'","
          ","
        • ",'
        • ','','',"
        • ","
        "].join(""),success:function(t,n){var o="submit(layedit-link-yes)";a.render("radio"),t.find(".layui-btn-primary").on("click",function(){i.close(n),l.focus()}),a.on(o,function(t){i.close(b.index),e&&e(t.field)})}});b.index=n},x=function(t){var a=function(){var t=["[微笑]","[嘻嘻]","[哈哈]","[可爱]","[可怜]","[挖鼻]","[吃惊]","[害羞]","[挤眼]","[闭嘴]","[鄙视]","[爱你]","[泪]","[偷笑]","[亲亲]","[生病]","[太开心]","[白眼]","[右哼哼]","[左哼哼]","[嘘]","[衰]","[委屈]","[吐]","[哈欠]","[抱抱]","[怒]","[疑问]","[馋嘴]","[拜拜]","[思考]","[汗]","[困]","[睡]","[钱]","[失望]","[酷]","[色]","[哼]","[鼓掌]","[晕]","[悲伤]","[抓狂]","[黑线]","[阴险]","[怒骂]","[互粉]","[心]","[伤心]","[猪头]","[熊猫]","[兔子]","[ok]","[耶]","[good]","[NO]","[赞]","[来]","[弱]","[草泥马]","[神马]","[囧]","[浮云]","[给力]","[围观]","[威武]","[奥特曼]","[礼物]","[钟]","[话筒]","[蜡烛]","[蛋糕]"],e={};return layui.each(t,function(t,i){e[i]=layui.cache.dir+"images/face/"+t+".gif"}),e}();return x.hide=x.hide||function(t){"face"!==e(t.target).attr("layedit-event")&&i.close(x.index)},x.index=i.tips(function(){var t=[];return layui.each(a,function(e,i){t.push('
      • '+e+'
      • ')}),'
          '+t.join("")+"
        "}(),this,{tips:1,time:0,skin:"layui-box layui-util-face",maxWidth:500,success:function(l,n){l.css({marginTop:-4,marginLeft:-10}).find(".layui-clear>li").on("click",function(){t&&t({src:a[this.title],alt:this.title}),i.close(n)}),e(document).off("click",x.hide).on("click",x.hide)}})},k=function(t){var e=this,l=i.open({type:1,id:"LAY_layedit_code",area:"550px",shade:.05,shadeClose:!0,moveType:1,title:"插入代码",skin:"layui-layer-msg",content:['
          ','
        • ','','
          ','","
          ","
        • ",'
        • ','','
          ','',"
          ","
        • ",'
        • ','','',"
        • ","
        "].join(""),success:function(l,n){var o="submit(layedit-code-yes)";a.render("select"),l.find(".layui-btn-primary").on("click",function(){i.close(n),e.focus()}),a.on(o,function(e){i.close(k.index),t&&t(e.field)})}});k.index=l},C={html:'',strong:'',italic:'',underline:'',del:'',"|":'',left:'',center:'',right:'',link:'',unlink:'',face:'',image:'',code:'',help:''},w=new c;t(n,w)});layui.define("jquery",function(e){"use strict";var a=layui.$,l="http://www.layui.com/doc/modules/code.html";e("code",function(e){var t=[];e=e||{},e.elem=a(e.elem||".layui-code"),e.about=!("about"in e)||e.about,e.elem.each(function(){t.push(this)}),layui.each(t.reverse(),function(t,i){var c=a(i),o=c.html();(c.attr("lay-encode")||e.encode)&&(o=o.replace(/&(?!#?[a-zA-Z0-9]+;)/g,"&").replace(//g,">").replace(/'/g,"'").replace(/"/g,""")),c.html('
        1. '+o.replace(/[\r\t\n]+/g,"
        2. ")+"
        "),c.find(">.layui-code-h3")[0]||c.prepend('

        '+(c.attr("lay-title")||e.title||"code")+(e.about?'layui.code':"")+"

        ");var d=c.find(">.layui-code-ol");c.addClass("layui-box layui-code-view"),(c.attr("lay-skin")||e.skin)&&c.addClass("layui-code-"+(c.attr("lay-skin")||e.skin)),(d.find("li").length/100|0)>0&&d.css("margin-left",(d.find("li").length/100|0)+"px"),(c.attr("lay-height")||e.height)&&d.css("max-height",c.attr("lay-height")||e.height)})})}).addcss("modules/code.css","skincodecss"); \ No newline at end of file diff --git a/public/static/admin/layui/layui.js b/public/static/admin/layui/layui.js new file mode 100644 index 0000000..4615b57 --- /dev/null +++ b/public/static/admin/layui/layui.js @@ -0,0 +1,2 @@ +/** layui-v2.5.5 MIT License By https://www.layui.com */ + ;!function(e){"use strict";var t=document,o={modules:{},status:{},timeout:10,event:{}},n=function(){this.v="2.5.5"},r=function(){var e=t.currentScript?t.currentScript.src:function(){for(var e,o=t.scripts,n=o.length-1,r=n;r>0;r--)if("interactive"===o[r].readyState){e=o[r].src;break}return e||o[n].src}();return e.substring(0,e.lastIndexOf("/")+1)}(),i=function(t){e.console&&console.error&&console.error("Layui hint: "+t)},a="undefined"!=typeof opera&&"[object Opera]"===opera.toString(),u={layer:"modules/layer",laydate:"modules/laydate",laypage:"modules/laypage",laytpl:"modules/laytpl",layim:"modules/layim",layedit:"modules/layedit",form:"modules/form",upload:"modules/upload",transfer:"modules/transfer",tree:"modules/tree",table:"modules/table",element:"modules/element",rate:"modules/rate",colorpicker:"modules/colorpicker",slider:"modules/slider",carousel:"modules/carousel",flow:"modules/flow",util:"modules/util",code:"modules/code",jquery:"modules/jquery",mobile:"modules/mobile","layui.all":"../layui.all"};n.prototype.cache=o,n.prototype.define=function(e,t){var n=this,r="function"==typeof e,i=function(){var e=function(e,t){layui[e]=t,o.status[e]=!0};return"function"==typeof t&&t(function(n,r){e(n,r),o.callback[n]=function(){t(e)}}),this};return r&&(t=e,e=[]),!layui["layui.all"]&&layui["layui.mobile"]?i.call(n):(n.use(e,i),n)},n.prototype.use=function(e,n,l){function s(e,t){var n="PLaySTATION 3"===navigator.platform?/^complete$/:/^(complete|loaded)$/;("load"===e.type||n.test((e.currentTarget||e.srcElement).readyState))&&(o.modules[f]=t,d.removeChild(v),function r(){return++m>1e3*o.timeout/4?i(f+" is not a valid module"):void(o.status[f]?c():setTimeout(r,4))}())}function c(){l.push(layui[f]),e.length>1?y.use(e.slice(1),n,l):"function"==typeof n&&n.apply(layui,l)}var y=this,p=o.dir=o.dir?o.dir:r,d=t.getElementsByTagName("head")[0];e="string"==typeof e?[e]:e,window.jQuery&&jQuery.fn.on&&(y.each(e,function(t,o){"jquery"===o&&e.splice(t,1)}),layui.jquery=layui.$=jQuery);var f=e[0],m=0;if(l=l||[],o.host=o.host||(p.match(/\/\/([\s\S]+?)\//)||["//"+location.host+"/"])[0],0===e.length||layui["layui.all"]&&u[f]||!layui["layui.all"]&&layui["layui.mobile"]&&u[f])return c(),y;if(o.modules[f])!function g(){return++m>1e3*o.timeout/4?i(f+" is not a valid module"):void("string"==typeof o.modules[f]&&o.status[f]?c():setTimeout(g,4))}();else{var v=t.createElement("script"),h=(u[f]?p+"lay/":/^\{\/\}/.test(y.modules[f])?"":o.base||"")+(y.modules[f]||f)+".js";h=h.replace(/^\{\/\}/,""),v.async=!0,v.charset="utf-8",v.src=h+function(){var e=o.version===!0?o.v||(new Date).getTime():o.version||"";return e?"?v="+e:""}(),d.appendChild(v),!v.attachEvent||v.attachEvent.toString&&v.attachEvent.toString().indexOf("[native code")<0||a?v.addEventListener("load",function(e){s(e,h)},!1):v.attachEvent("onreadystatechange",function(e){s(e,h)}),o.modules[f]=h}return y},n.prototype.getStyle=function(t,o){var n=t.currentStyle?t.currentStyle:e.getComputedStyle(t,null);return n[n.getPropertyValue?"getPropertyValue":"getAttribute"](o)},n.prototype.link=function(e,n,r){var a=this,u=t.createElement("link"),l=t.getElementsByTagName("head")[0];"string"==typeof n&&(r=n);var s=(r||e).replace(/\.|\//g,""),c=u.id="layuicss-"+s,y=0;return u.rel="stylesheet",u.href=e+(o.debug?"?v="+(new Date).getTime():""),u.media="all",t.getElementById(c)||l.appendChild(u),"function"!=typeof n?a:(function p(){return++y>1e3*o.timeout/100?i(e+" timeout"):void(1989===parseInt(a.getStyle(t.getElementById(c),"width"))?function(){n()}():setTimeout(p,100))}(),a)},o.callback={},n.prototype.factory=function(e){if(layui[e])return"function"==typeof o.callback[e]?o.callback[e]:null},n.prototype.addcss=function(e,t,n){return layui.link(o.dir+"css/"+e,t,n)},n.prototype.img=function(e,t,o){var n=new Image;return n.src=e,n.complete?t(n):(n.onload=function(){n.onload=null,"function"==typeof t&&t(n)},void(n.onerror=function(e){n.onerror=null,"function"==typeof o&&o(e)}))},n.prototype.config=function(e){e=e||{};for(var t in e)o[t]=e[t];return this},n.prototype.modules=function(){var e={};for(var t in u)e[t]=u[t];return e}(),n.prototype.extend=function(e){var t=this;e=e||{};for(var o in e)t[o]||t.modules[o]?i("模块名 "+o+" 已被占用"):t.modules[o]=e[o];return t},n.prototype.router=function(e){var t=this,e=e||location.hash,o={path:[],search:{},hash:(e.match(/[^#](#.*$)/)||[])[1]||""};return/^#\//.test(e)?(e=e.replace(/^#\//,""),o.href="/"+e,e=e.replace(/([^#])(#.*$)/,"$1").split("/")||[],t.each(e,function(e,t){/^\w+=/.test(t)?function(){t=t.split("="),o.search[t[0]]=t[1]}():o.path.push(t)}),o):o},n.prototype.data=function(t,o,n){if(t=t||"layui",n=n||localStorage,e.JSON&&e.JSON.parse){if(null===o)return delete n[t];o="object"==typeof o?o:{key:o};try{var r=JSON.parse(n[t])}catch(i){var r={}}return"value"in o&&(r[o.key]=o.value),o.remove&&delete r[o.key],n[t]=JSON.stringify(r),o.key?r[o.key]:r}},n.prototype.sessionData=function(e,t){return this.data(e,t,sessionStorage)},n.prototype.device=function(t){var o=navigator.userAgent.toLowerCase(),n=function(e){var t=new RegExp(e+"/([^\\s\\_\\-]+)");return e=(o.match(t)||[])[1],e||!1},r={os:function(){return/windows/.test(o)?"windows":/linux/.test(o)?"linux":/iphone|ipod|ipad|ios/.test(o)?"ios":/mac/.test(o)?"mac":void 0}(),ie:function(){return!!(e.ActiveXObject||"ActiveXObject"in e)&&((o.match(/msie\s(\d+)/)||[])[1]||"11")}(),weixin:n("micromessenger")};return t&&!r[t]&&(r[t]=n(t)),r.android=/android/.test(o),r.ios="ios"===r.os,r},n.prototype.hint=function(){return{error:i}},n.prototype.each=function(e,t){var o,n=this;if("function"!=typeof t)return n;if(e=e||[],e.constructor===Object){for(o in e)if(t.call(e[o],o,e[o]))break}else for(o=0;oi?1:r/g, '>') + .replace(/'/g, ''').replace(/"/g, '"'); + } + + //事件监听 + ,on: function(events, callback){ + return layui.onevent.call(this, setter.MOD_NAME, events, callback); + } + + //发送验证码 + ,sendAuthCode: function(options){ + options = $.extend({ + seconds: 60 + ,elemPhone: '#LAY_phone' + ,elemVercode: '#LAY_vercode' + }, options); + + var seconds = options.seconds + ,btn = $(options.elem) + ,token = null + ,timer, countDown = function(loop){ + seconds--; + if(seconds < 0){ + btn.removeClass(DISABLED).html('获取验证码'); + seconds = options.seconds; + clearInterval(timer); + } else { + btn.addClass(DISABLED).html(seconds + '秒后重获'); + } + + if(!loop){ + timer = setInterval(function(){ + countDown(true); + }, 1000); + } + }; + + options.elemPhone = $(options.elemPhone); + options.elemVercode = $(options.elemVercode); + + btn.on('click', function(){ + var elemPhone = options.elemPhone + ,value = elemPhone.val(); + + if(seconds !== options.seconds || $(this).hasClass(DISABLED)) return; + + if(!/^1\d{10}$/.test(value)){ + elemPhone.focus(); + return layer.msg('请输入正确的手机号') + }; + + if(typeof options.ajax === 'object'){ + var success = options.ajax.success; + delete options.ajax.success; + } + + admin.req($.extend(true, { + url: '/auth/code' + ,type: 'get' + ,data: { + phone: value + } + ,success: function(res){ + layer.msg('验证码已发送至你的手机,请注意查收', { + icon: 1 + ,shade: 0 + }); + options.elemVercode.focus(); + countDown(); + success && success(res); + } + }, options.ajax)); + }); + } + + //屏幕类型 + ,screen: function(){ + var width = $win.width() + if(width > 1200){ + return 3; //大屏幕 + } else if(width > 992){ + return 2; //中屏幕 + } else if(width > 768){ + return 1; //小屏幕 + } else { + return 0; //超小屏幕 + } + } + + //侧边伸缩 + ,sideFlexible: function(status){ + var app = container + ,iconElem = $('#'+ APP_FLEXIBLE) + ,screen = admin.screen(); + + //设置状态,PC:默认展开、移动:默认收缩 + if(status === 'spread'){ + //切换到展开状态的 icon,箭头:← + iconElem.removeClass(ICON_SPREAD).addClass(ICON_SHRINK); + + //移动:从左到右位移;PC:清除多余选择器恢复默认 + if(screen < 2){ + app.addClass(APP_SPREAD_SM); + } else { + app.removeClass(APP_SPREAD_SM); + } + + app.removeClass(SIDE_SHRINK) + } else { + //切换到搜索状态的 icon,箭头:→ + iconElem.removeClass(ICON_SHRINK).addClass(ICON_SPREAD); + + //移动:清除多余选择器恢复默认;PC:从右往左收缩 + if(screen < 2){ + app.removeClass(SIDE_SHRINK); + } else { + app.addClass(SIDE_SHRINK); + } + + app.removeClass(APP_SPREAD_SM) + } + + layui.event.call(this, setter.MOD_NAME, 'side({*})', { + status: status + }); + } + + //弹出面板 + ,popup: view.popup + + //右侧面板 + ,popupRight: function(options){ + //layer.close(admin.popup.index); + return admin.popup.index = layer.open($.extend({ + type: 1 + ,id: 'LAY_adminPopupR' + ,anim: -1 + ,title: false + ,closeBtn: false + ,offset: 'r' + ,shade: 0.1 + ,shadeClose: true + ,skin: 'layui-anim layui-anim-rl layui-layer-adminRight' + ,area: '300px' + }, options)); + } + + //主题设置 + ,theme: function(options){ + var theme = setter.theme + ,local = layui.data(setter.tableName) + ,id = 'LAY_layadmin_theme' + ,style = document.createElement('style') + ,styleText = laytpl([ + //主题色 + '.layui-side-menu,' + ,'.layadmin-pagetabs .layui-tab-title li:after,' + ,'.layadmin-pagetabs .layui-tab-title li.layui-this:after,' + ,'.layui-layer-admin .layui-layer-title,' + ,'.layadmin-side-shrink .layui-side-menu .layui-nav>.layui-nav-item>.layui-nav-child' + ,'{background-color:{{d.color.main}} !important;}' + + //选中色 + ,'.layui-nav-tree .layui-this,' + ,'.layui-nav-tree .layui-this>a,' + ,'.layui-nav-tree .layui-nav-child dd.layui-this,' + ,'.layui-nav-tree .layui-nav-child dd.layui-this a' + ,'{background-color:{{d.color.selected}} !important;}' + + //logo + ,'.layui-layout-admin .layui-logo{background-color:{{d.color.logo || d.color.main}} !important;}' + + //头部色 + ,'{{# if(d.color.header){ }}' + ,'.layui-layout-admin .layui-header{background-color:{{ d.color.header }};}' + ,'.layui-layout-admin .layui-header a,' + ,'.layui-layout-admin .layui-header a cite{color: #f8f8f8;}' + ,'.layui-layout-admin .layui-header a:hover{color: #fff;}' + ,'.layui-layout-admin .layui-header .layui-nav .layui-nav-more{border-top-color: #fbfbfb;}' + ,'.layui-layout-admin .layui-header .layui-nav .layui-nav-mored{border-color: transparent; border-bottom-color: #fbfbfb;}' + ,'.layui-layout-admin .layui-header .layui-nav .layui-this:after, .layui-layout-admin .layui-header .layui-nav-bar{background-color: #fff; background-color: rgba(255,255,255,.5);}' + ,'.layadmin-pagetabs .layui-tab-title li:after{display: none;}' + ,'{{# } }}' + ].join('')).render(options = $.extend({}, local.theme, options)) + ,styleElem = document.getElementById(id); + + //添加主题样式 + if('styleSheet' in style){ + style.setAttribute('type', 'text/css'); + style.styleSheet.cssText = styleText; + } else { + style.innerHTML = styleText; + } + style.id = id; + + styleElem && $body[0].removeChild(styleElem); + $body[0].appendChild(style); + $body.attr('layadmin-themealias', options.color.alias); + + //本地存储记录 + local.theme = local.theme || {}; + layui.each(options, function(key, value){ + local.theme[key] = value; + }); + layui.data(setter.tableName, { + key: 'theme' + ,value: local.theme + }); + } + + //初始化主题 + ,initTheme: function(index){ + var theme = setter.theme; + index = index || 0; + if(theme.color[index]){ + theme.color[index].index = index; + admin.theme({ + color: theme.color[index] + }); + } + } + + //记录最近一次点击的页面标签数据 + ,tabsPage: {} + + //获取页面标签主体元素 + ,tabsBody: function(index){ + return $(APP_BODY).find('.'+ TABS_BODY).eq(index || 0); + } + + //切换页面标签主体 + ,tabsBodyChange: function(index, options){ + options = options || {}; + + admin.tabsBody(index).addClass(SHOW).siblings().removeClass(SHOW); + events.rollPage('auto', index); + + //执行 {setter.MOD_NAME}.tabsPage 下的事件 + layui.event.call(this, setter.MOD_NAME, 'tabsPage({*})', { + url: options.url + ,text: options.text + }); + } + + //resize事件管理 + ,resize: function(fn){ + var router = layui.router() + ,key = router.path.join('-'); + + if(admin.resizeFn[key]){ + $win.off('resize', admin.resizeFn[key]); + delete admin.resizeFn[key]; + } + + if(fn === 'off') return; //如果是清除 resize 事件,则终止往下执行 + + fn(), admin.resizeFn[key] = fn; + $win.on('resize', admin.resizeFn[key]); + } + ,resizeFn: {} + ,runResize: function(){ + var router = layui.router() + ,key = router.path.join('-'); + admin.resizeFn[key] && admin.resizeFn[key](); + } + ,delResize: function(){ + this.resize('off'); + } + + //关闭当前 pageTabs + ,closeThisTabs: function(){ + if(!admin.tabsPage.index) return; + $(TABS_HEADER).eq(admin.tabsPage.index).find('.layui-tab-close').trigger('click'); + } + + //全屏 + ,fullScreen: function(){ + var ele = document.documentElement + ,reqFullScreen = ele.requestFullScreen || ele.webkitRequestFullScreen + || ele.mozRequestFullScreen || ele.msRequestFullscreen; + if(typeof reqFullScreen !== 'undefined' && reqFullScreen) { + reqFullScreen.call(ele); + }; + } + + //退出全屏 + ,exitScreen: function(){ + var ele = document.documentElement + if (document.exitFullscreen) { + document.exitFullscreen(); + } else if (document.mozCancelFullScreen) { + document.mozCancelFullScreen(); + } else if (document.webkitCancelFullScreen) { + document.webkitCancelFullScreen(); + } else if (document.msExitFullscreen) { + document.msExitFullscreen(); + } + } + + //…… + }; + + //事件 + var events = admin.events = { + //伸缩 + flexible: function(othis){ + var iconElem = othis.find('#'+ APP_FLEXIBLE) + ,isSpread = iconElem.hasClass(ICON_SPREAD); + admin.sideFlexible(isSpread ? 'spread' : null); + } + + //刷新 + ,refresh: function(){ + var ELEM_IFRAME = '.layadmin-iframe' + ,length = $('.'+ TABS_BODY).length; + + if(admin.tabsPage.index >= length){ + admin.tabsPage.index = length - 1; + } + + var iframe = admin.tabsBody(admin.tabsPage.index).find(ELEM_IFRAME); + iframe[0].contentWindow.location.reload(true); + } + + //输入框搜索 + ,serach: function(othis){ + othis.off('keypress').on('keypress',function(e){ + if(!this.value.replace(/\s/g, '')) return; + //回车跳转 + if(e.keyCode === 13){ + var href = othis.attr('lay-action') + ,text = othis.attr('lay-text') || '搜索'; + + href = href + this.value; + text = text + ' '+ admin.escape(this.value) +''; + + //打开标签页 + layui.index.openTabsPage(href, text); + + //如果搜索关键词已经打开,则刷新页面即可 + events.serach.keys || (events.serach.keys = {}); + events.serach.keys[admin.tabsPage.index] = this.value; + if(this.value === events.serach.keys[admin.tabsPage.index]){ + events.refresh(othis); + } + + //清空输入框 + this.value = ''; + } + }); + } + + //点击消息 + ,message: function(othis){ + othis.find('.layui-badge-dot').remove(); + } + + //弹出主题面板 + ,theme: function(){ + admin.popupRight({ + id: 'LAY_adminPopupTheme' + ,success: function(){ + view(this.id).render('system/theme') + } + }); + } + + //便签 + ,note: function(othis){ + var mobile = admin.screen() < 2 + ,note = layui.data(setter.tableName).note; + + events.note.index = admin.popup({ + title: '便签' + ,shade: 0 + ,offset: [ + '41px' + ,(mobile ? null : (othis.offset().left - 250) + 'px') + ] + ,anim: -1 + ,id: 'LAY_adminNote' + ,skin: 'layadmin-note layui-anim layui-anim-upbit' + ,content: '' + ,resize: false + ,success: function(layero, index){ + var textarea = layero.find('textarea') + ,value = note === undefined ? '便签中的内容会存储在本地,这样即便你关掉了浏览器,在下次打开时,依然会读取到上一次的记录。是个非常小巧实用的本地备忘录' : note; + + textarea.val(value).focus().on('keyup', function(){ + layui.data(setter.tableName, { + key: 'note' + ,value: this.value + }); + }); + } + }) + } + + //全屏 + ,fullscreen: function(othis){ + var SCREEN_FULL = 'layui-icon-screen-full' + ,SCREEN_REST = 'layui-icon-screen-restore' + ,iconElem = othis.children("i"); + + if(iconElem.hasClass(SCREEN_FULL)){ + admin.fullScreen(); + iconElem.addClass(SCREEN_REST).removeClass(SCREEN_FULL); + } else { + admin.exitScreen(); + iconElem.addClass(SCREEN_FULL).removeClass(SCREEN_REST); + } + } + + //弹出关于面板 + ,about: function(){ + admin.popupRight({ + id: 'LAY_adminPopupAbout' + ,success: function(){ + view(this.id).render('system/about'); + } + }); + } + + //弹出更多面板 + ,more: function(){ + admin.popupRight({ + id: 'LAY_adminPopupMore' + ,success: function(){ + view(this.id).render('system/more'); + } + }); + } + + //返回上一页 + ,back: function(){ + history.back(); + } + + //主题设置 + ,setTheme: function(othis){ + var index = othis.data('index') + ,nextIndex = othis.siblings('.layui-this').data('index'); + + if(othis.hasClass(THIS)) return; + + othis.addClass(THIS).siblings('.layui-this').removeClass(THIS); + admin.initTheme(index); + } + + //左右滚动页面标签 + ,rollPage: function(type, index){ + var tabsHeader = $('#LAY_app_tabsheader') + ,liItem = tabsHeader.children('li') + ,scrollWidth = tabsHeader.prop('scrollWidth') + ,outerWidth = tabsHeader.outerWidth() + ,tabsLeft = parseFloat(tabsHeader.css('left')); + + //右左往右 + if(type === 'left'){ + if(!tabsLeft && tabsLeft <=0) return; + + //当前的left减去可视宽度,用于与上一轮的页标比较 + var prefLeft = -tabsLeft - outerWidth; + + liItem.each(function(index, item){ + var li = $(item) + ,left = li.position().left; + + if(left >= prefLeft){ + tabsHeader.css('left', -left); + return false; + } + }); + } else if(type === 'auto'){ //自动滚动 + (function(){ + var thisLi = liItem.eq(index), thisLeft; + + if(!thisLi[0]) return; + thisLeft = thisLi.position().left; + + //当目标标签在可视区域左侧时 + if(thisLeft < -tabsLeft){ + return tabsHeader.css('left', -thisLeft); + } + + //当目标标签在可视区域右侧时 + if(thisLeft + thisLi.outerWidth() >= outerWidth - tabsLeft){ + var subLeft = thisLeft + thisLi.outerWidth() - (outerWidth - tabsLeft); + liItem.each(function(i, item){ + var li = $(item) + ,left = li.position().left; + + //从当前可视区域的最左第二个节点遍历,如果减去最左节点的差 > 目标在右侧不可见的宽度,则将该节点放置可视区域最左 + if(left + tabsLeft > 0){ + if(left - tabsLeft > subLeft){ + tabsHeader.css('left', -left); + return false; + } + } + }); + } + }()); + } else { + //默认向左滚动 + liItem.each(function(i, item){ + var li = $(item) + ,left = li.position().left; + + if(left + li.outerWidth() >= outerWidth - tabsLeft){ + tabsHeader.css('left', -left); + return false; + } + }); + } + } + + //向右滚动页面标签 + ,leftPage: function(){ + events.rollPage('left'); + } + + //向左滚动页面标签 + ,rightPage: function(){ + events.rollPage(); + } + + //关闭当前标签页 + ,closeThisTabs: function(){ + var topAdmin = parent === self ? admin : parent.layui.admin; + topAdmin.closeThisTabs(); + } + + //关闭其它标签页 + ,closeOtherTabs: function(type){ + var TABS_REMOVE = 'LAY-system-pagetabs-remove'; + if(type === 'all'){ + $(TABS_HEADER+ ':gt(0)').remove(); + $(APP_BODY).find('.'+ TABS_BODY+ ':gt(0)').remove(); + + $(TABS_HEADER).eq(0).trigger('click'); + } else { + $(TABS_HEADER).each(function(index, item){ + if(index && index != admin.tabsPage.index){ + $(item).addClass(TABS_REMOVE); + admin.tabsBody(index).addClass(TABS_REMOVE); + } + }); + $('.'+ TABS_REMOVE).remove(); + } + } + + //关闭全部标签页 + ,closeAllTabs: function(){ + events.closeOtherTabs('all'); + //location.hash = ''; + } + + //遮罩 + ,shade: function(){ + admin.sideFlexible(); + } + + //呼出IM 示例 + ,im: function(){ + admin.popup({ + id: 'LAY-popup-layim-demo' //定义唯一ID,防止重复弹出 + ,shade: 0 + ,area: ['800px', '300px'] + ,title: '面板外的操作示例' + ,offset: 'lb' + ,success: function(){ + //将 views 目录下的某视图文件内容渲染给该面板 + layui.view(this.id).render('layim/demo').then(function(){ + layui.use('im'); + }); + } + }) + } + }; + + //初始 + !function(){ + //主题初始化,本地主题记录优先,其次为 initColorIndex + var local = layui.data(setter.tableName); + if(local.theme){ + admin.theme(local.theme); + } else if(setter.theme){ + admin.initTheme(setter.theme.initColorIndex); + } + + //常规版默认开启多标签页 + if(!('pageTabs' in layui.setter)) layui.setter.pageTabs = true; + + //不开启页面标签时 + if(!setter.pageTabs){ + $('#LAY_app_tabs').addClass(HIDE); + container.addClass('layadmin-tabspage-none'); + } + + //低版本IE提示 + if(device.ie && device.ie < 10){ + view.error('IE'+ device.ie + '下访问可能不佳,推荐使用:Chrome / Firefox / Edge 等高级浏览器', { + offset: 'auto' + ,id: 'LAY_errorIE' + }); + } + + }(); + + //admin.prevRouter = {}; //上一个路由 + + //监听 tab 组件切换,同步 index + element.on('tab('+ FILTER_TAB_TBAS +')', function(data){ + admin.tabsPage.index = data.index; + }); + + //监听选项卡切换,改变菜单状态 + admin.on('tabsPage(setMenustatus)', function(router){ + var pathURL = router.url, getData = function(item){ + return { + list: item.children('.layui-nav-child') + ,a: item.children('*[lay-href]') + } + } + ,sideMenu = $('#'+ SIDE_MENU) + ,SIDE_NAV_ITEMD = 'layui-nav-itemed' + + //捕获对应菜单 + ,matchMenu = function(list){ + list.each(function(index1, item1){ + var othis1 = $(item1) + ,data1 = getData(othis1) + ,listChildren1 = data1.list.children('dd') + ,matched1 = pathURL === data1.a.attr('lay-href'); + + listChildren1.each(function(index2, item2){ + var othis2 = $(item2) + ,data2 = getData(othis2) + ,listChildren2 = data2.list.children('dd') + ,matched2 = pathURL === data2.a.attr('lay-href'); + + listChildren2.each(function(index3, item3){ + var othis3 = $(item3) + ,data3 = getData(othis3) + ,matched3 = pathURL === data3.a.attr('lay-href'); + + if(matched3){ + var selected = data3.list[0] ? SIDE_NAV_ITEMD : THIS; + othis3.addClass(selected).siblings().removeClass(selected); //标记选择器 + return false; + } + + }); + + if(matched2){ + var selected = data2.list[0] ? SIDE_NAV_ITEMD : THIS; + othis2.addClass(selected).siblings().removeClass(selected); //标记选择器 + return false + } + + }); + + if(matched1){ + var selected = data1.list[0] ? SIDE_NAV_ITEMD : THIS; + othis1.addClass(selected).siblings().removeClass(selected); //标记选择器 + return false; + } + + }); + } + + //重置状态 + sideMenu.find('.'+ THIS).removeClass(THIS); + + //移动端点击菜单时自动收缩 + if(admin.screen() < 2) admin.sideFlexible(); + + //开始捕获 + matchMenu(sideMenu.children('li')); + }); + + //监听侧边导航点击事件 + element.on('nav(layadmin-system-side-menu)', function(elem){ + if(elem.siblings('.layui-nav-child')[0] && container.hasClass(SIDE_SHRINK)){ + admin.sideFlexible('spread'); + layer.close(elem.data('index')); + }; + admin.tabsPage.type = 'nav'; + }); + + //监听选项卡的更多操作 + element.on('nav(layadmin-pagetabs-nav)', function(elem){ + var dd = elem.parent(); + dd.removeClass(THIS); + dd.parent().removeClass(SHOW); + }); + + //同步路由 + var setThisRouter = function(othis){ + var layid = othis.attr('lay-id') + ,attr = othis.attr('lay-attr') + ,index = othis.index(); + + admin.tabsBodyChange(index, { + url: attr + }); + //location.hash = layid === setter.entry ? '/' : attr; + } + ,TABS_HEADER = '#LAY_app_tabsheader>li'; + + //标签页标题点击 + $body.on('click', TABS_HEADER, function(){ + var othis = $(this) + ,index = othis.index(); + + admin.tabsPage.type = 'tab'; + admin.tabsPage.index = index; + + setThisRouter(othis); + }); + + //监听 tabspage 删除 + element.on('tabDelete('+ FILTER_TAB_TBAS +')', function(obj){ + var othis = $(TABS_HEADER+ '.layui-this'); + + obj.index && admin.tabsBody(obj.index).remove(); + setThisRouter(othis); + + //移除resize事件 + admin.delResize(); + }); + + //页面跳转 + $body.on('click', '*[lay-href]', function(){ + var othis = $(this) + ,href = othis.attr('lay-href') + ,text = othis.attr('lay-text') + ,router = layui.router(); + + admin.tabsPage.elem = othis; + //admin.prevRouter[router.path[0]] = router.href; //记录上一次各菜单的路由信息 + + //执行跳转 + var topLayui = parent === self ? layui : top.layui; + topLayui.index.openTabsPage(href, text || othis.text()); + }); + + //点击事件 + $body.on('click', '*[layadmin-event]', function(){ + var othis = $(this) + ,attrEvent = othis.attr('layadmin-event'); + events[attrEvent] && events[attrEvent].call(this, othis); + }); + + //tips + $body.on('mouseenter', '*[lay-tips]', function(){ + var othis = $(this); + + if(othis.parent().hasClass('layui-nav-item') && !container.hasClass(SIDE_SHRINK)) return; + + var tips = othis.attr('lay-tips') + ,offset = othis.attr('lay-offset') + ,direction = othis.attr('lay-direction') + ,index = layer.tips(tips, this, { + tips: direction || 1 + ,time: -1 + ,success: function(layero, index){ + if(offset){ + layero.css('margin-left', offset + 'px'); + } + } + }); + othis.data('index', index); + }).on('mouseleave', '*[lay-tips]', function(){ + layer.close($(this).data('index')); + }); + + //窗口resize事件 + var resizeSystem = layui.data.resizeSystem = function(){ + //layer.close(events.note.index); + layer.closeAll('tips'); + + if(!resizeSystem.lock){ + setTimeout(function(){ + admin.sideFlexible(admin.screen() < 2 ? '' : 'spread'); + delete resizeSystem.lock; + }, 100); + } + + resizeSystem.lock = true; + } + $win.on('resize', layui.data.resizeSystem); + + //接口输出 + exports('admin', admin); +}); \ No newline at end of file diff --git a/public/static/admin/lib/extend/echarts.js b/public/static/admin/lib/extend/echarts.js new file mode 100644 index 0000000..7af448c --- /dev/null +++ b/public/static/admin/lib/extend/echarts.js @@ -0,0 +1,39 @@ +!function(e){var t,i;!function(){function e(e,t){if(!t)return e;if(0===e.indexOf(".")){var i=t.split("/"),n=e.split("/"),a=i.length-1,o=n.length,r=0,s=0;e:for(var l=0;o>l;l++)switch(n[l]){case"..":if(!(a>r))break e;r++,s++;break;case".":s++;break;default:break e}return i.length=a-r,n=n.slice(s),i.concat(n).join("/")}return e}function n(t){function i(i,r){if("string"==typeof i){var s=n[i];return s||(s=o(e(i,t)),n[i]=s),s}i instanceof Array&&(r=r||function(){},r.apply(this,a(i,r,t)))}var n={};return i}function a(i,n,a){for(var s=[],l=r[a],h=0,m=Math.min(i.length,n.length);m>h;h++){var V,U=e(i[h],a);switch(U){case"require":V=l&&l.require||t;break;case"exports":V=l.exports;break;case"module":V=l;break;default:V=o(U)}s.push(V)}return s}function o(e){var t=r[e];if(!t)throw new Error("No "+e);if(!t.defined){var i=t.factory,n=i.apply(this,a(t.deps||[],i,e));"undefined"!=typeof n&&(t.exports=n),t.defined=1}return t.exports}var r={};i=function(e,t,i){r[e]={id:e,deps:t,factory:i,defined:0,exports:{},require:n(e)}},t=n("")}(),i("echarts",["echarts/echarts"],function(e){return e}),i("echarts/echarts",["require","./config","zrender/tool/util","zrender/tool/event","zrender/tool/env","zrender","zrender/config","./chart/island","./component/toolbox","./component","./component/title","./component/tooltip","./component/legend","./util/ecData","./chart","zrender/tool/color","./component/timeline","zrender/shape/Image","zrender/loadingEffect/Bar","zrender/loadingEffect/Bubble","zrender/loadingEffect/DynamicLine","zrender/loadingEffect/Ring","zrender/loadingEffect/Spin","zrender/loadingEffect/Whirling","./theme/macarons","./theme/infographic"],function(e){function t(){r.Dispatcher.call(this)}function i(e){e.innerHTML="",this._themeConfig={},this.dom=e,this._connected=!1,this._status={dragIn:!1,dragOut:!1,needRefresh:!1},this._curEventType=!1,this._chartList=[],this._messageCenter=new t,this._messageCenterOutSide=new t,this.resize=this.resize(),this._init()}function n(e,t,i,n,a){for(var o=e._chartList,r=o.length;r--;){var s=o[r];"function"==typeof s[t]&&s[t](i,n,a)}}var a=e("./config"),o=e("zrender/tool/util"),r=e("zrender/tool/event"),s={},l=e("zrender/tool/env").canvasSupported,h=new Date-0,m={},V="_echarts_instance_";s.version="2.2.7",s.dependencies={zrender:"2.1.1"},s.init=function(t,n){var a=e("zrender");a.version.replace(".","")-0r;r++){var l=d[r],h=U[l];o[h]="_on"+l.toLowerCase(),i.on(h,this._onzrevent)}this.chart={},this.component={};var m=e("./chart/island");this._island=new m(this._themeConfig,this._messageCenter,i,{},this),this.chart.island=this._island;var V=e("./component/toolbox");this._toolbox=new V(this._themeConfig,this._messageCenter,i,{},this),this.component.toolbox=this._toolbox;var p=e("./component");p.define("title",e("./component/title")),p.define("tooltip",e("./component/tooltip")),p.define("legend",e("./component/legend")),(0===i.getWidth()||0===i.getHeight())&&console.error("Dom’s width & height should be ready before init.")},__onevent:function(e){e.__echartsId=e.__echartsId||this.id;var t=e.__echartsId===this.id;switch(this._curEventType||(this._curEventType=e.type),e.type){case a.EVENT.LEGEND_SELECTED:this._onlegendSelected(e);break;case a.EVENT.DATA_ZOOM:if(!t){var i=this.component.dataZoom;i&&(i.silence(!0),i.absoluteZoom(e.zoom),i.silence(!1))}this._ondataZoom(e);break;case a.EVENT.DATA_RANGE:t&&this._ondataRange(e);break;case a.EVENT.MAGIC_TYPE_CHANGED:if(!t){var n=this.component.toolbox;n&&(n.silence(!0),n.setMagicType(e.magicType),n.silence(!1))}this._onmagicTypeChanged(e);break;case a.EVENT.DATA_VIEW_CHANGED:t&&this._ondataViewChanged(e);break;case a.EVENT.TOOLTIP_HOVER:t&&this._tooltipHover(e);break;case a.EVENT.RESTORE:this._onrestore();break;case a.EVENT.REFRESH:t&&this._onrefresh(e);break;case a.EVENT.TOOLTIP_IN_GRID:case a.EVENT.TOOLTIP_OUT_GRID:if(t){if(this._connected){var o=this.component.grid;o&&(e.x=(e.event.zrenderX-o.getX())/o.getWidth(),e.y=(e.event.zrenderY-o.getY())/o.getHeight())}}else{var o=this.component.grid;o&&this._zr.trigger("mousemove",{connectTrigger:!0,zrenderX:o.getX()+e.x*o.getWidth(),zrenderY:o.getY()+e.y*o.getHeight()})}}if(this._connected&&t&&this._curEventType===e.type){for(var r in this._connected)this._connected[r].connectedEventHandler(e);this._curEventType=null}(!t||!this._connected&&t)&&(this._curEventType=null)},_onclick:function(e){if(n(this,"onclick",e),e.target){var t=this._eventPackage(e.target);t&&null!=t.seriesIndex&&this._messageCenter.dispatch(a.EVENT.CLICK,e.event,t,this)}},_ondblclick:function(e){if(n(this,"ondblclick",e),e.target){var t=this._eventPackage(e.target);t&&null!=t.seriesIndex&&this._messageCenter.dispatch(a.EVENT.DBLCLICK,e.event,t,this)}},_onmouseover:function(e){if(e.target){var t=this._eventPackage(e.target);t&&null!=t.seriesIndex&&this._messageCenter.dispatch(a.EVENT.HOVER,e.event,t,this)}},_onmouseout:function(e){if(e.target){var t=this._eventPackage(e.target);t&&null!=t.seriesIndex&&this._messageCenter.dispatch(a.EVENT.MOUSEOUT,e.event,t,this)}},_ondragstart:function(e){this._status={dragIn:!1,dragOut:!1,needRefresh:!1},n(this,"ondragstart",e)},_ondragenter:function(e){n(this,"ondragenter",e)},_ondragover:function(e){n(this,"ondragover",e)},_ondragleave:function(e){n(this,"ondragleave",e)},_ondrop:function(e){n(this,"ondrop",e,this._status),this._island.ondrop(e,this._status)},_ondragend:function(e){if(n(this,"ondragend",e,this._status),this._timeline&&this._timeline.ondragend(e,this._status),this._island.ondragend(e,this._status),this._status.needRefresh){this._syncBackupData(this._option);var t=this._messageCenter;t.dispatch(a.EVENT.DATA_CHANGED,e.event,this._eventPackage(e.target),this),t.dispatch(a.EVENT.REFRESH,null,null,this)}},_onlegendSelected:function(e){this._status.needRefresh=!1,n(this,"onlegendSelected",e,this._status),this._status.needRefresh&&this._messageCenter.dispatch(a.EVENT.REFRESH,null,null,this)},_ondataZoom:function(e){this._status.needRefresh=!1,n(this,"ondataZoom",e,this._status),this._status.needRefresh&&this._messageCenter.dispatch(a.EVENT.REFRESH,null,null,this)},_ondataRange:function(e){this._clearEffect(),this._status.needRefresh=!1,n(this,"ondataRange",e,this._status),this._status.needRefresh&&this._zr.refreshNextFrame()},_onmagicTypeChanged:function(){this._clearEffect(),this._render(this._toolbox.getMagicOption())},_ondataViewChanged:function(e){this._syncBackupData(e.option),this._messageCenter.dispatch(a.EVENT.DATA_CHANGED,null,e,this),this._messageCenter.dispatch(a.EVENT.REFRESH,null,null,this)},_tooltipHover:function(e){var t=[];n(this,"ontooltipHover",e,t)},_onrestore:function(){this.restore()},_onrefresh:function(e){this._refreshInside=!0,this.refresh(e),this._refreshInside=!1},_syncBackupData:function(e){this.component.dataZoom&&this.component.dataZoom.syncBackupData(e)},_eventPackage:function(t){if(t){var i=e("./util/ecData"),n=i.get(t,"seriesIndex"),a=i.get(t,"dataIndex");return a=-1!=n&&this.component.dataZoom?this.component.dataZoom.getRealDataIndex(n,a):a,{seriesIndex:n,seriesName:(i.get(t,"series")||{}).name,dataIndex:a,data:i.get(t,"data"),name:i.get(t,"name"),value:i.get(t,"value"),special:i.get(t,"special")}}},_noDataCheck:function(e){for(var t=e.series,i=0,n=t.length;n>i;i++)if(t[i].type==a.CHART_TYPE_MAP||t[i].data&&t[i].data.length>0||t[i].markPoint&&t[i].markPoint.data&&t[i].markPoint.data.length>0||t[i].markLine&&t[i].markLine.data&&t[i].markLine.data.length>0||t[i].nodes&&t[i].nodes.length>0||t[i].links&&t[i].links.length>0||t[i].matrix&&t[i].matrix.length>0||t[i].eventList&&t[i].eventList.length>0)return!1;var o=this._option&&this._option.noDataLoadingOption||this._themeConfig.noDataLoadingOption||a.noDataLoadingOption||{text:this._option&&this._option.noDataText||this._themeConfig.noDataText||a.noDataText,effect:this._option&&this._option.noDataEffect||this._themeConfig.noDataEffect||a.noDataEffect};return this.clear(),this.showLoading(o),!0},_render:function(t){if(this._mergeGlobalConifg(t),!this._noDataCheck(t)){var i=t.backgroundColor;if(i)if(l||-1==i.indexOf("rgba"))this.dom.style.backgroundColor=i;else{var n=i.split(",");this.dom.style.filter="alpha(opacity="+100*n[3].substring(0,n[3].lastIndexOf(")"))+")",n.length=3,n[0]=n[0].replace("a",""),this.dom.style.backgroundColor=n.join(",")+")"}this._zr.clearAnimation(),this._chartList=[];var o=e("./chart"),r=e("./component");(t.xAxis||t.yAxis)&&(t.grid=t.grid||{},t.dataZoom=t.dataZoom||{});for(var s,h,m,V=["title","legend","tooltip","dataRange","roamController","grid","dataZoom","xAxis","yAxis","polar"],U=0,d=V.length;d>U;U++)h=V[U],m=this.component[h],t[h]?(m?m.refresh&&m.refresh(t):(s=r.get(/^[xy]Axis$/.test(h)?"axis":h),m=new s(this._themeConfig,this._messageCenter,this._zr,t,this,h),this.component[h]=m),this._chartList.push(m)):m&&(m.dispose(),this.component[h]=null,delete this.component[h]);for(var p,c,u,y={},U=0,d=t.series.length;d>U;U++)c=t.series[U].type,c?y[c]||(y[c]=!0,p=o.get(c),p?(this.chart[c]?(u=this.chart[c],u.refresh(t)):u=new p(this._themeConfig,this._messageCenter,this._zr,t,this),this._chartList.push(u),this.chart[c]=u):console.error(c+" has not been required.")):console.error("series["+U+"] chart type has not been defined.");for(c in this.chart)c==a.CHART_TYPE_ISLAND||y[c]||(this.chart[c].dispose(),this.chart[c]=null,delete this.chart[c]);this.component.grid&&this.component.grid.refixAxisShape(this.component),this._island.refresh(t),this._toolbox.refresh(t),t.animation&&!t.renderAsImage?this._zr.refresh():this._zr.render();var g="IMG"+this.id,b=document.getElementById(g);t.renderAsImage&&l?(b?b.src=this.getDataURL(t.renderAsImage):(b=this.getImage(t.renderAsImage),b.id=g,b.style.position="absolute",b.style.left=0,b.style.top=0,this.dom.firstChild.appendChild(b)),this.un(),this._zr.un(),this._disposeChartList(),this._zr.clear()):b&&b.parentNode.removeChild(b),b=null,this._option=t}},restore:function(){this._clearEffect(),this._option=o.clone(this._optionRestore),this._disposeChartList(),this._island.clear(),this._toolbox.reset(this._option,!0),this._render(this._option)},refresh:function(e){this._clearEffect(),e=e||{};var t=e.option;!this._refreshInside&&t&&(t=this.getOption(),o.merge(t,e.option,!0),o.merge(this._optionRestore,e.option,!0),this._toolbox.reset(t)),this._island.refresh(t),this._toolbox.refresh(t),this._zr.clearAnimation();for(var i=0,n=this._chartList.length;n>i;i++)this._chartList[i].refresh&&this._chartList[i].refresh(t);this.component.grid&&this.component.grid.refixAxisShape(this.component),this._zr.refresh()},_disposeChartList:function(){this._clearEffect(),this._zr.clearAnimation();for(var e=this._chartList.length;e--;){var t=this._chartList[e];if(t){var i=t.type;this.chart[i]&&delete this.chart[i],this.component[i]&&delete this.component[i],t.dispose&&t.dispose()}}this._chartList=[]},_mergeGlobalConifg:function(t){for(var i=["backgroundColor","calculable","calculableColor","calculableHolderColor","nameConnector","valueConnector","animation","animationThreshold","animationDuration","animationDurationUpdate","animationEasing","addDataAnimation","symbolList","DRAG_ENABLE_TIME"],n=i.length;n--;){var o=i[n];null==t[o]&&(t[o]=null!=this._themeConfig[o]?this._themeConfig[o]:a[o])}var r=t.color;r&&r.length||(r=this._themeConfig.color||a.color),this._zr.getColor=function(t){var i=e("zrender/tool/color");return i.getColor(t,r)},l||(t.animation=!1,t.addDataAnimation=!1)},setOption:function(e,t){return e.timeline?this._setTimelineOption(e):this._setOption(e,t)},_setOption:function(e,t,i){return!t&&this._option?this._option=o.merge(this.getOption(),o.clone(e),!0):(this._option=o.clone(e),!i&&this._timeline&&this._timeline.dispose()),this._optionRestore=o.clone(this._option),this._option.series&&0!==this._option.series.length?(this.component.dataZoom&&(this._option.dataZoom||this._option.toolbox&&this._option.toolbox.feature&&this._option.toolbox.feature.dataZoom&&this._option.toolbox.feature.dataZoom.show)&&this.component.dataZoom.syncOption(this._option),this._toolbox.reset(this._option),this._render(this._option),this):void this._zr.clear()},getOption:function(){function e(e){var n=i._optionRestore[e];if(n)if(n instanceof Array)for(var a=n.length;a--;)t[e][a].data=o.clone(n[a].data);else t[e].data=o.clone(n.data)}var t=o.clone(this._option),i=this;return e("xAxis"),e("yAxis"),e("series"),t},setSeries:function(e,t){return t?(this._option.series=e,this.setOption(this._option,t)):this.setOption({series:e}),this},getSeries:function(){return this.getOption().series},_setTimelineOption:function(t){this._timeline&&this._timeline.dispose();var i=e("./component/timeline"),n=new i(this._themeConfig,this._messageCenter,this._zr,t,this);return this._timeline=n,this.component.timeline=this._timeline,this},addData:function(e,t,i,n,r){function s(){if(V._zr){V._zr.clearAnimation();for(var e=0,t=X.length;t>e;e++)X[e].motionlessOnce=h.addDataAnimation&&X[e].addDataAnimation;V._messageCenter.dispatch(a.EVENT.REFRESH,null,{option:h},V)}}for(var l=e instanceof Array?e:[[e,t,i,n,r]],h=this.getOption(),m=this._optionRestore,V=this,U=0,d=l.length;d>U;U++){e=l[U][0],t=l[U][1],i=l[U][2],n=l[U][3],r=l[U][4];var p=m.series[e],c=i?"unshift":"push",u=i?"pop":"shift";if(p){var y=p.data,g=h.series[e].data;if(y[c](t),g[c](t),n||(y[u](),t=g[u]()),null!=r){var b,f;if(p.type===a.CHART_TYPE_PIE&&(b=m.legend)&&(f=b.data)){var k=h.legend.data;if(f[c](r),k[c](r),!n){var x=o.indexOf(f,t.name);-1!=x&&f.splice(x,1),x=o.indexOf(k,t.name),-1!=x&&k.splice(x,1)}}else if(null!=m.xAxis&&null!=m.yAxis){var _,L,W=p.xAxisIndex||0;(null==m.xAxis[W].type||"category"===m.xAxis[W].type)&&(_=m.xAxis[W].data,L=h.xAxis[W].data,_[c](r),L[c](r),n||(_[u](),L[u]())),W=p.yAxisIndex||0,"category"===m.yAxis[W].type&&(_=m.yAxis[W].data,L=h.yAxis[W].data,_[c](r),L[c](r),n||(_[u](),L[u]()))}}this._option.series[e].data=h.series[e].data}}this._zr.clearAnimation();for(var X=this._chartList,v=0,w=function(){v--,0===v&&s()},U=0,d=X.length;d>U;U++)h.addDataAnimation&&X[U].addDataAnimation&&(v++,X[U].addDataAnimation(l,w));return this.component.dataZoom&&this.component.dataZoom.syncOption(h),this._option=h,h.addDataAnimation||setTimeout(s,0),this},addMarkPoint:function(e,t){return this._addMark(e,t,"markPoint")},addMarkLine:function(e,t){return this._addMark(e,t,"markLine")},_addMark:function(e,t,i){var n,a=this._option.series;if(a&&(n=a[e])){var r=this._optionRestore.series,s=r[e],l=n[i],h=s[i];l=n[i]=l||{data:[]},h=s[i]=h||{data:[]};for(var m in t)"data"===m?(l.data=l.data.concat(t.data),h.data=h.data.concat(t.data)):"object"!=typeof t[m]||null==l[m]?l[m]=h[m]=t[m]:(o.merge(l[m],t[m],!0),o.merge(h[m],t[m],!0));var V=this.chart[n.type];V&&V.addMark(e,t,i)}return this},delMarkPoint:function(e,t){return this._delMark(e,t,"markPoint")},delMarkLine:function(e,t){return this._delMark(e,t,"markLine")},_delMark:function(e,t,i){var n,a,o,r=this._option.series;if(!(r&&(n=r[e])&&(a=n[i])&&(o=a.data)))return this;t=t.split(" > ");for(var s=-1,l=0,h=o.length;h>l;l++){var m=o[l];if(m instanceof Array){if(m[0].name===t[0]&&m[1].name===t[1]){s=l;break}}else if(m.name===t[0]){s=l;break}}if(s>-1){o.splice(s,1),this._optionRestore.series[e][i].data.splice(s,1);var V=this.chart[n.type];V&&V.delMark(e,t.join(" > "),i)}return this},getDom:function(){return this.dom},getZrender:function(){return this._zr},getDataURL:function(e){if(!l)return"";if(0===this._chartList.length){var t="IMG"+this.id,i=document.getElementById(t);if(i)return i.src}var n=this.component.tooltip;switch(n&&n.hideTip(),e){case"jpeg":break;default:e="png"}var a=this._option.backgroundColor;return a&&"rgba(0,0,0,0)"===a.replace(" ","")&&(a="#fff"),this._zr.toDataURL("image/"+e,a)},getImage:function(e){var t=this._optionRestore.title,i=document.createElement("img");return i.src=this.getDataURL(e),i.title=t&&t.text||"ECharts",i},getConnectedDataURL:function(t){if(!this.isConnected())return this.getDataURL(t);var i=this.dom,n={self:{img:this.getDataURL(t),left:i.offsetLeft,top:i.offsetTop,right:i.offsetLeft+i.offsetWidth,bottom:i.offsetTop+i.offsetHeight}},a=n.self.left,o=n.self.top,r=n.self.right,s=n.self.bottom;for(var l in this._connected)i=this._connected[l].getDom(),n[l]={img:this._connected[l].getDataURL(t),left:i.offsetLeft,top:i.offsetTop,right:i.offsetLeft+i.offsetWidth,bottom:i.offsetTop+i.offsetHeight},a=Math.min(a,n[l].left),o=Math.min(o,n[l].top),r=Math.max(r,n[l].right),s=Math.max(s,n[l].bottom);var h=document.createElement("div");h.style.position="absolute",h.style.left="-4000px",h.style.width=r-a+"px",h.style.height=s-o+"px",document.body.appendChild(h);var m=e("zrender").init(h),V=e("zrender/shape/Image");for(var l in n)m.addShape(new V({style:{x:n[l].left-a,y:n[l].top-o,image:n[l].img}}));m.render();var U=this._option.backgroundColor;U&&"rgba(0,0,0,0)"===U.replace(/ /g,"")&&(U="#fff");var d=m.toDataURL("image/png",U);return setTimeout(function(){m.dispose(),h.parentNode.removeChild(h),h=null},100),d},getConnectedImage:function(e){var t=this._optionRestore.title,i=document.createElement("img");return i.src=this.getConnectedDataURL(e),i.title=t&&t.text||"ECharts",i},on:function(e,t){return this._messageCenterOutSide.bind(e,t,this),this},un:function(e,t){return this._messageCenterOutSide.unbind(e,t),this},connect:function(e){if(!e)return this;if(this._connected||(this._connected={}),e instanceof Array)for(var t=0,i=e.length;i>t;t++)this._connected[e[t].id]=e[t];else this._connected[e.id]=e;return this},disConnect:function(e){if(!e||!this._connected)return this;if(e instanceof Array)for(var t=0,i=e.length;i>t;t++)delete this._connected[e[t].id];else delete this._connected[e.id];for(var n in this._connected)return this;return this._connected=!1,this},connectedEventHandler:function(e){e.__echartsId!=this.id&&this._onevent(e)},isConnected:function(){return!!this._connected},showLoading:function(t){var i={bar:e("zrender/loadingEffect/Bar"),bubble:e("zrender/loadingEffect/Bubble"),dynamicLine:e("zrender/loadingEffect/DynamicLine"),ring:e("zrender/loadingEffect/Ring"),spin:e("zrender/loadingEffect/Spin"),whirling:e("zrender/loadingEffect/Whirling")};this._toolbox.hideDataView(),t=t||{};var n=t.textStyle||{};t.textStyle=n;var r=o.merge(o.merge(o.clone(n),this._themeConfig.textStyle),a.textStyle);n.textFont=r.fontStyle+" "+r.fontWeight+" "+r.fontSize+"px "+r.fontFamily,n.text=t.text||this._option&&this._option.loadingText||this._themeConfig.loadingText||a.loadingText,null!=t.x&&(n.x=t.x),null!=t.y&&(n.y=t.y),t.effectOption=t.effectOption||{},t.effectOption.textStyle=n;var s=t.effect;return("string"==typeof s||null==s)&&(s=i[t.effect||this._option&&this._option.loadingEffect||this._themeConfig.loadingEffect||a.loadingEffect]||i.spin),this._zr.showLoading(new s(t.effectOption)),this},hideLoading:function(){return this._zr.hideLoading(),this},setTheme:function(t){if(t){if("string"==typeof t)switch(t){case"macarons":t=e("./theme/macarons");break;case"infographic":t=e("./theme/infographic");break;default:t={}}else t=t||{};this._themeConfig=t}if(!l){var i=this._themeConfig.textStyle;i&&i.fontFamily&&i.fontFamily2&&(i.fontFamily=i.fontFamily2),i=a.textStyle,i.fontFamily=i.fontFamily2}this._timeline&&this._timeline.setTheme(!0),this._optionRestore&&this.restore()},resize:function(){var e=this;return function(){if(e._clearEffect(),e._zr.resize(),e._option&&e._option.renderAsImage&&l)return e._render(e._option),e;e._zr.clearAnimation(),e._island.resize(),e._toolbox.resize(),e._timeline&&e._timeline.resize();for(var t=0,i=e._chartList.length;i>t;t++)e._chartList[t].resize&&e._chartList[t].resize();return e.component.grid&&e.component.grid.refixAxisShape(e.component),e._zr.refresh(),e._messageCenter.dispatch(a.EVENT.RESIZE,null,null,e),e}},_clearEffect:function(){this._zr.modLayer(a.EFFECT_ZLEVEL,{motionBlur:!1}),this._zr.painter.clearLayer(a.EFFECT_ZLEVEL)},clear:function(){return this._disposeChartList(),this._zr.clear(),this._option={},this._optionRestore={},this.dom.style.backgroundColor=null,this},dispose:function(){var e=this.dom.getAttribute(V);e&&delete m[e],this._island.dispose(),this._toolbox.dispose(),this._timeline&&this._timeline.dispose(),this._messageCenter.unbind(),this.clear(),this._zr.dispose(),this._zr=null}},s}),i("echarts/config",[],function(){var e={CHART_TYPE_LINE:"line",CHART_TYPE_BAR:"bar",CHART_TYPE_SCATTER:"scatter",CHART_TYPE_PIE:"pie",CHART_TYPE_RADAR:"radar",CHART_TYPE_VENN:"venn",CHART_TYPE_TREEMAP:"treemap",CHART_TYPE_TREE:"tree",CHART_TYPE_MAP:"map",CHART_TYPE_K:"k",CHART_TYPE_ISLAND:"island",CHART_TYPE_FORCE:"force",CHART_TYPE_CHORD:"chord",CHART_TYPE_GAUGE:"gauge",CHART_TYPE_FUNNEL:"funnel",CHART_TYPE_EVENTRIVER:"eventRiver",CHART_TYPE_WORDCLOUD:"wordCloud",CHART_TYPE_HEATMAP:"heatmap",COMPONENT_TYPE_TITLE:"title",COMPONENT_TYPE_LEGEND:"legend",COMPONENT_TYPE_DATARANGE:"dataRange",COMPONENT_TYPE_DATAVIEW:"dataView",COMPONENT_TYPE_DATAZOOM:"dataZoom",COMPONENT_TYPE_TOOLBOX:"toolbox",COMPONENT_TYPE_TOOLTIP:"tooltip",COMPONENT_TYPE_GRID:"grid",COMPONENT_TYPE_AXIS:"axis",COMPONENT_TYPE_POLAR:"polar",COMPONENT_TYPE_X_AXIS:"xAxis",COMPONENT_TYPE_Y_AXIS:"yAxis",COMPONENT_TYPE_AXIS_CATEGORY:"categoryAxis",COMPONENT_TYPE_AXIS_VALUE:"valueAxis",COMPONENT_TYPE_TIMELINE:"timeline",COMPONENT_TYPE_ROAMCONTROLLER:"roamController",backgroundColor:"rgba(0,0,0,0)",color:["#ff7f50","#87cefa","#da70d6","#32cd32","#6495ed","#ff69b4","#ba55d3","#cd5c5c","#ffa500","#40e0d0","#1e90ff","#ff6347","#7b68ee","#00fa9a","#ffd700","#6699FF","#ff6666","#3cb371","#b8860b","#30e0e0"],markPoint:{clickable:!0,symbol:"pin",symbolSize:10,large:!1,effect:{show:!1,loop:!0,period:15,type:"scale",scaleSize:2,bounceDistance:10},itemStyle:{normal:{borderWidth:2,label:{show:!0,position:"inside"}},emphasis:{label:{show:!0}}}},markLine:{clickable:!0,symbol:["circle","arrow"],symbolSize:[2,4],smoothness:.2,precision:2,effect:{show:!1,loop:!0,period:15,scaleSize:2},bundling:{enable:!1,maxTurningAngle:45},itemStyle:{normal:{borderWidth:1.5,label:{show:!0,position:"end"},lineStyle:{type:"dashed"}},emphasis:{label:{show:!1},lineStyle:{}}}},textStyle:{decoration:"none",fontFamily:"Arial, Verdana, sans-serif",fontFamily2:"微软雅黑",fontSize:12,fontStyle:"normal",fontWeight:"normal"},EVENT:{REFRESH:"refresh",RESTORE:"restore",RESIZE:"resize",CLICK:"click",DBLCLICK:"dblclick",HOVER:"hover",MOUSEOUT:"mouseout",DATA_CHANGED:"dataChanged",DATA_ZOOM:"dataZoom",DATA_RANGE:"dataRange",DATA_RANGE_SELECTED:"dataRangeSelected",DATA_RANGE_HOVERLINK:"dataRangeHoverLink",LEGEND_SELECTED:"legendSelected",LEGEND_HOVERLINK:"legendHoverLink",MAP_SELECTED:"mapSelected",PIE_SELECTED:"pieSelected",MAGIC_TYPE_CHANGED:"magicTypeChanged",DATA_VIEW_CHANGED:"dataViewChanged",TIMELINE_CHANGED:"timelineChanged",MAP_ROAM:"mapRoam",FORCE_LAYOUT_END:"forceLayoutEnd",TOOLTIP_HOVER:"tooltipHover",TOOLTIP_IN_GRID:"tooltipInGrid",TOOLTIP_OUT_GRID:"tooltipOutGrid",ROAMCONTROLLER:"roamController"},DRAG_ENABLE_TIME:120,EFFECT_ZLEVEL:10,effectBlendAlpha:.95,symbolList:["circle","rectangle","triangle","diamond","emptyCircle","emptyRectangle","emptyTriangle","emptyDiamond"],loadingEffect:"spin",loadingText:"数据读取中...",noDataEffect:"bubble",noDataText:"暂无数据",calculable:!1,calculableColor:"rgba(255,165,0,0.6)",calculableHolderColor:"#ccc",nameConnector:" & ",valueConnector:": ",animation:!0,addDataAnimation:!0,animationThreshold:2e3,animationDuration:2e3,animationDurationUpdate:500,animationEasing:"ExponentialOut"};return e}),i("zrender/tool/util",["require","../dep/excanvas"],function(e){function t(e){return e&&1===e.nodeType&&"string"==typeof e.nodeName}function i(e){if("object"==typeof e&&null!==e){var n=e;if(e instanceof Array){n=[];for(var a=0,o=e.length;o>a;a++)n[a]=i(e[a])}else if(!y[g.call(e)]&&!t(e)){n={};for(var r in e)e.hasOwnProperty(r)&&(n[r]=i(e[r]))}return n}return e}function n(e,i,n,o){if(i.hasOwnProperty(n)){var r=e[n];"object"!=typeof r||y[g.call(r)]||t(r)?!o&&n in e||(e[n]=i[n]):a(e[n],i[n],o)}}function a(e,t,i){for(var a in t)n(e,t,a,i);return e}function o(){if(!U)if(e("../dep/excanvas"),window.G_vmlCanvasManager){var t=document.createElement("div");t.style.position="absolute",t.style.top="-1000px",document.body.appendChild(t),U=G_vmlCanvasManager.initElement(t).getContext("2d")}else U=document.createElement("canvas").getContext("2d");return U}function r(e,t){if(e.indexOf)return e.indexOf(t);for(var i=0,n=e.length;n>i;i++)if(e[i]===t)return i;return-1}function s(e,t){function i(){}var n=e.prototype;i.prototype=t.prototype,e.prototype=new i;for(var a in n)e.prototype[a]=n[a];e.constructor=e}function l(e,t,i){if(e&&t)if(e.forEach&&e.forEach===p)e.forEach(t,i);else if(e.length===+e.length)for(var n=0,a=e.length;a>n;n++)t.call(i,e[n],n,e);else for(var o in e)e.hasOwnProperty(o)&&t.call(i,e[o],o,e)}function h(e,t,i){if(e&&t){if(e.map&&e.map===c)return e.map(t,i);for(var n=[],a=0,o=e.length;o>a;a++)n.push(t.call(i,e[a],a,e));return n}}function m(e,t,i){if(e&&t){if(e.filter&&e.filter===u)return e.filter(t,i);for(var n=[],a=0,o=e.length;o>a;a++)t.call(i,e[a],a,e)&&n.push(e[a]);return n}}function V(e,t){return function(){e.apply(t,arguments)}}var U,d=Array.prototype,p=d.forEach,c=d.map,u=d.filter,y={"[object Function]":1,"[object RegExp]":1,"[object Date]":1,"[object Error]":1,"[object CanvasGradient]":1},g=Object.prototype.toString;return{inherits:s,clone:i,merge:a,getContext:o,indexOf:r,each:l,map:h,filter:m,bind:V}}),i("zrender/tool/event",["require","../mixin/Eventful"],function(e){"use strict";function t(e){return"undefined"!=typeof e.zrenderX&&e.zrenderX||"undefined"!=typeof e.offsetX&&e.offsetX||"undefined"!=typeof e.layerX&&e.layerX||"undefined"!=typeof e.clientX&&e.clientX}function i(e){return"undefined"!=typeof e.zrenderY&&e.zrenderY||"undefined"!=typeof e.offsetY&&e.offsetY||"undefined"!=typeof e.layerY&&e.layerY||"undefined"!=typeof e.clientY&&e.clientY}function n(e){return"undefined"!=typeof e.zrenderDelta&&e.zrenderDelta||"undefined"!=typeof e.wheelDelta&&e.wheelDelta||"undefined"!=typeof e.detail&&-e.detail}var a=e("../mixin/Eventful"),o="function"==typeof window.addEventListener?function(e){e.preventDefault(),e.stopPropagation(),e.cancelBubble=!0}:function(e){e.returnValue=!1,e.cancelBubble=!0};return{getX:t,getY:i,getDelta:n,stop:o,Dispatcher:a}}),i("zrender/tool/env",[],function(){function e(e){var t=this.os={},i=this.browser={},n=e.match(/Web[kK]it[\/]{0,1}([\d.]+)/),a=e.match(/(Android);?[\s\/]+([\d.]+)?/),o=e.match(/(iPad).*OS\s([\d_]+)/),r=e.match(/(iPod)(.*OS\s([\d_]+))?/),s=!o&&e.match(/(iPhone\sOS)\s([\d_]+)/),l=e.match(/(webOS|hpwOS)[\s\/]([\d.]+)/),h=l&&e.match(/TouchPad/),m=e.match(/Kindle\/([\d.]+)/),V=e.match(/Silk\/([\d._]+)/),U=e.match(/(BlackBerry).*Version\/([\d.]+)/),d=e.match(/(BB10).*Version\/([\d.]+)/),p=e.match(/(RIM\sTablet\sOS)\s([\d.]+)/),c=e.match(/PlayBook/),u=e.match(/Chrome\/([\d.]+)/)||e.match(/CriOS\/([\d.]+)/),y=e.match(/Firefox\/([\d.]+)/),g=e.match(/MSIE ([\d.]+)/),b=n&&e.match(/Mobile\//)&&!u,f=e.match(/(iPhone|iPod|iPad).*AppleWebKit(?!.*Safari)/)&&!u,g=e.match(/MSIE\s([\d.]+)/);return(i.webkit=!!n)&&(i.version=n[1]),a&&(t.android=!0,t.version=a[2]),s&&!r&&(t.ios=t.iphone=!0,t.version=s[2].replace(/_/g,".")),o&&(t.ios=t.ipad=!0,t.version=o[2].replace(/_/g,".")),r&&(t.ios=t.ipod=!0,t.version=r[3]?r[3].replace(/_/g,"."):null),l&&(t.webos=!0,t.version=l[2]),h&&(t.touchpad=!0),U&&(t.blackberry=!0,t.version=U[2]),d&&(t.bb10=!0,t.version=d[2]),p&&(t.rimtabletos=!0,t.version=p[2]),c&&(i.playbook=!0),m&&(t.kindle=!0,t.version=m[1]),V&&(i.silk=!0,i.version=V[1]),!V&&t.android&&e.match(/Kindle Fire/)&&(i.silk=!0),u&&(i.chrome=!0,i.version=u[1]),y&&(i.firefox=!0,i.version=y[1]),g&&(i.ie=!0,i.version=g[1]),b&&(e.match(/Safari/)||t.ios)&&(i.safari=!0),f&&(i.webview=!0),g&&(i.ie=!0,i.version=g[1]),t.tablet=!!(o||c||a&&!e.match(/Mobile/)||y&&e.match(/Tablet/)||g&&!e.match(/Phone/)&&e.match(/Touch/)),t.phone=!(t.tablet||t.ipod||!(a||s||l||U||d||u&&e.match(/Android/)||u&&e.match(/CriOS\/([\d.]+)/)||y&&e.match(/Mobile/)||g&&e.match(/Touch/))),{browser:i,os:t,canvasSupported:document.createElement("canvas").getContext?!0:!1}}return e(navigator.userAgent)}),i("zrender",["zrender/zrender"],function(e){return e}),i("zrender/zrender",["require","./dep/excanvas","./tool/util","./tool/log","./tool/guid","./Handler","./Painter","./Storage","./animation/Animation","./tool/env"],function(e){function t(e){return function(){e._needsRefreshNextFrame&&e.refresh()}}e("./dep/excanvas");var i=e("./tool/util"),n=e("./tool/log"),a=e("./tool/guid"),o=e("./Handler"),r=e("./Painter"),s=e("./Storage"),l=e("./animation/Animation"),h={},m={};m.version="2.1.1",m.init=function(e){var t=new V(a(),e);return h[t.id]=t,t},m.dispose=function(e){if(e)e.dispose();else{for(var t in h)h[t].dispose();h={}}return m},m.getInstance=function(e){return h[e]},m.delInstance=function(e){return delete h[e],m};var V=function(i,n){this.id=i,this.env=e("./tool/env"),this.storage=new s,this.painter=new r(n,this.storage),this.handler=new o(n,this.storage,this.painter),this.animation=new l({stage:{update:t(this)}}),this.animation.start();var a=this;this.painter.refreshNextFrame=function(){a.refreshNextFrame()},this._needsRefreshNextFrame=!1;var a=this,h=this.storage,m=h.delFromMap;h.delFromMap=function(e){var t=h.get(e);a.stopAnimation(t),m.call(h,e)}};return V.prototype.getId=function(){return this.id},V.prototype.addShape=function(e){return this.addElement(e),this},V.prototype.addGroup=function(e){return this.addElement(e),this},V.prototype.delShape=function(e){return this.delElement(e),this},V.prototype.delGroup=function(e){return this.delElement(e),this},V.prototype.modShape=function(e,t){return this.modElement(e,t),this},V.prototype.modGroup=function(e,t){return this.modElement(e,t),this},V.prototype.addElement=function(e){return this.storage.addRoot(e),this._needsRefreshNextFrame=!0,this},V.prototype.delElement=function(e){return this.storage.delRoot(e),this._needsRefreshNextFrame=!0,this},V.prototype.modElement=function(e,t){return this.storage.mod(e,t),this._needsRefreshNextFrame=!0,this},V.prototype.modLayer=function(e,t){return this.painter.modLayer(e,t),this._needsRefreshNextFrame=!0,this},V.prototype.addHoverShape=function(e){return this.storage.addHover(e),this},V.prototype.render=function(e){return this.painter.render(e),this._needsRefreshNextFrame=!1,this},V.prototype.refresh=function(e){return this.painter.refresh(e),this._needsRefreshNextFrame=!1,this},V.prototype.refreshNextFrame=function(){return this._needsRefreshNextFrame=!0,this},V.prototype.refreshHover=function(e){return this.painter.refreshHover(e),this},V.prototype.refreshShapes=function(e,t){return this.painter.refreshShapes(e,t),this},V.prototype.resize=function(){return this.painter.resize(),this},V.prototype.animate=function(e,t,a){var o=this;if("string"==typeof e&&(e=this.storage.get(e)),e){var r;if(t){for(var s=t.split("."),l=e,h=0,m=s.length;m>h;h++)l&&(l=l[s[h]]);l&&(r=l)}else r=e;if(!r)return void n('Property "'+t+'" is not existed in element '+e.id); + +null==e.__animators&&(e.__animators=[]);var V=e.__animators,U=this.animation.animate(r,{loop:a}).during(function(){o.modShape(e)}).done(function(){var t=i.indexOf(e.__animators,U);t>=0&&V.splice(t,1)});return V.push(U),U}n("Element not existed")},V.prototype.stopAnimation=function(e){if(e.__animators){for(var t=e.__animators,i=t.length,n=0;i>n;n++)t[n].stop();t.length=0}return this},V.prototype.clearAnimation=function(){return this.animation.clear(),this},V.prototype.showLoading=function(e){return this.painter.showLoading(e),this},V.prototype.hideLoading=function(){return this.painter.hideLoading(),this},V.prototype.getWidth=function(){return this.painter.getWidth()},V.prototype.getHeight=function(){return this.painter.getHeight()},V.prototype.toDataURL=function(e,t,i){return this.painter.toDataURL(e,t,i)},V.prototype.shapeToImage=function(e,t,i){var n=a();return this.painter.shapeToImage(n,e,t,i)},V.prototype.on=function(e,t,i){return this.handler.on(e,t,i),this},V.prototype.un=function(e,t){return this.handler.un(e,t),this},V.prototype.trigger=function(e,t){return this.handler.trigger(e,t),this},V.prototype.clear=function(){return this.storage.delRoot(),this.painter.clear(),this},V.prototype.dispose=function(){this.animation.stop(),this.clear(),this.storage.dispose(),this.painter.dispose(),this.handler.dispose(),this.animation=this.storage=this.painter=this.handler=null,m.delInstance(this.id)},m}),i("zrender/config",[],function(){var e={EVENT:{RESIZE:"resize",CLICK:"click",DBLCLICK:"dblclick",MOUSEWHEEL:"mousewheel",MOUSEMOVE:"mousemove",MOUSEOVER:"mouseover",MOUSEOUT:"mouseout",MOUSEDOWN:"mousedown",MOUSEUP:"mouseup",GLOBALOUT:"globalout",DRAGSTART:"dragstart",DRAGEND:"dragend",DRAGENTER:"dragenter",DRAGOVER:"dragover",DRAGLEAVE:"dragleave",DROP:"drop",touchClickDelay:300},elementClassName:"zr-element",catchBrushException:!1,debugMode:0,devicePixelRatio:Math.max(window.devicePixelRatio||1,1)};return e}),i("echarts/chart/island",["require","./base","zrender/shape/Circle","../config","../util/ecData","zrender/tool/util","zrender/tool/event","zrender/tool/color","../util/accMath","../chart"],function(e){function t(e,t,n,a,r){i.call(this,e,t,n,a,r),this._nameConnector,this._valueConnector,this._zrHeight=this.zr.getHeight(),this._zrWidth=this.zr.getWidth();var l=this;l.shapeHandler.onmousewheel=function(e){var t=e.target,i=e.event,n=s.getDelta(i);n=n>0?-1:1,t.style.r-=n,t.style.r=t.style.r<5?5:t.style.r;var a=o.get(t,"value"),r=a*l.option.island.calculateStep;a=r>1?Math.round(a-r*n):+(a-r*n).toFixed(2);var h=o.get(t,"name");t.style.text=h+":"+a,o.set(t,"value",a),o.set(t,"name",h),l.zr.modShape(t.id),l.zr.refreshNextFrame(),s.stop(i)}}var i=e("./base"),n=e("zrender/shape/Circle"),a=e("../config");a.island={zlevel:0,z:5,r:15,calculateStep:.1};var o=e("../util/ecData"),r=e("zrender/tool/util"),s=e("zrender/tool/event");return t.prototype={type:a.CHART_TYPE_ISLAND,_combine:function(t,i){var n=e("zrender/tool/color"),a=e("../util/accMath"),r=a.accAdd(o.get(t,"value"),o.get(i,"value")),s=o.get(t,"name")+this._nameConnector+o.get(i,"name");t.style.text=s+this._valueConnector+r,o.set(t,"value",r),o.set(t,"name",s),t.style.r=this.option.island.r,t.style.color=n.mix(t.style.color,i.style.color)},refresh:function(e){e&&(e.island=this.reformOption(e.island),this.option=e,this._nameConnector=this.option.nameConnector,this._valueConnector=this.option.valueConnector)},getOption:function(){return this.option},resize:function(){var e=this.zr.getWidth(),t=this.zr.getHeight(),i=e/(this._zrWidth||e),n=t/(this._zrHeight||t);if(1!==i||1!==n){this._zrWidth=e,this._zrHeight=t;for(var a=0,o=this.shapeList.length;o>a;a++)this.zr.modShape(this.shapeList[a].id,{style:{x:Math.round(this.shapeList[a].style.x*i),y:Math.round(this.shapeList[a].style.y*n)}})}},add:function(e){var t=o.get(e,"name"),i=o.get(e,"value"),a=null!=o.get(e,"series")?o.get(e,"series").name:"",r=this.getFont(this.option.island.textStyle),s=this.option.island,l={zlevel:s.zlevel,z:s.z,style:{x:e.style.x,y:e.style.y,r:this.option.island.r,color:e.style.color||e.style.strokeColor,text:t+this._valueConnector+i,textFont:r},draggable:!0,hoverable:!0,onmousewheel:this.shapeHandler.onmousewheel,_type:"island"};"#fff"===l.style.color&&(l.style.color=e.style.strokeColor),this.setCalculable(l),l.dragEnableTime=0,o.pack(l,{name:a},-1,i,-1,t),l=new n(l),this.shapeList.push(l),this.zr.addShape(l)},del:function(e){this.zr.delShape(e.id);for(var t=[],i=0,n=this.shapeList.length;n>i;i++)this.shapeList[i].id!=e.id&&t.push(this.shapeList[i]);this.shapeList=t},ondrop:function(e,t){if(this.isDrop&&e.target){var i=e.target,n=e.dragged;this._combine(i,n),this.zr.modShape(i.id),t.dragIn=!0,this.isDrop=!1}},ondragend:function(e,t){var i=e.target;this.isDragend?t.dragIn&&(this.del(i),t.needRefresh=!0):t.dragIn||(i.style.x=s.getX(e.event),i.style.y=s.getY(e.event),this.add(i),t.needRefresh=!0),this.isDragend=!1}},r.inherits(t,i),e("../chart").define("island",t),t}),i("echarts/component/toolbox",["require","./base","zrender/shape/Line","zrender/shape/Image","zrender/shape/Rectangle","../util/shape/Icon","../config","zrender/tool/util","zrender/config","zrender/tool/event","./dataView","../component"],function(e){function t(e,t,n,a,o){i.call(this,e,t,n,a,o),this.dom=o.dom,this._magicType={},this._magicMap={},this._isSilence=!1,this._iconList,this._iconShapeMap={},this._featureTitle={},this._featureIcon={},this._featureColor={},this._featureOption={},this._enableColor="red",this._disableColor="#ccc",this._markShapeList=[];var r=this;r._onMark=function(e){r.__onMark(e)},r._onMarkUndo=function(e){r.__onMarkUndo(e)},r._onMarkClear=function(e){r.__onMarkClear(e)},r._onDataZoom=function(e){r.__onDataZoom(e)},r._onDataZoomReset=function(e){r.__onDataZoomReset(e)},r._onDataView=function(e){r.__onDataView(e)},r._onRestore=function(e){r.__onRestore(e)},r._onSaveAsImage=function(e){r.__onSaveAsImage(e)},r._onMagicType=function(e){r.__onMagicType(e)},r._onCustomHandler=function(e){r.__onCustomHandler(e)},r._onmousemove=function(e){return r.__onmousemove(e)},r._onmousedown=function(e){return r.__onmousedown(e)},r._onmouseup=function(e){return r.__onmouseup(e)},r._onclick=function(e){return r.__onclick(e)}}var i=e("./base"),n=e("zrender/shape/Line"),a=e("zrender/shape/Image"),o=e("zrender/shape/Rectangle"),r=e("../util/shape/Icon"),s=e("../config");s.toolbox={zlevel:0,z:6,show:!1,orient:"horizontal",x:"right",y:"top",color:["#1e90ff","#22bb22","#4b0082","#d2691e"],disableColor:"#ddd",effectiveColor:"red",backgroundColor:"rgba(0,0,0,0)",borderColor:"#ccc",borderWidth:0,padding:5,itemGap:10,itemSize:16,showTitle:!0,feature:{mark:{show:!1,title:{mark:"辅助线开关",markUndo:"删除辅助线",markClear:"清空辅助线"},lineStyle:{width:1,color:"#1e90ff",type:"dashed"}},dataZoom:{show:!1,title:{dataZoom:"区域缩放",dataZoomReset:"区域缩放后退"}},dataView:{show:!1,title:"数据视图",readOnly:!1,lang:["数据视图","关闭","刷新"]},magicType:{show:!1,title:{line:"折线图切换",bar:"柱形图切换",stack:"堆积",tiled:"平铺",force:"力导向布局图切换",chord:"和弦图切换",pie:"饼图切换",funnel:"漏斗图切换"},type:[]},restore:{show:!1,title:"还原"},saveAsImage:{show:!1,title:"保存为图片",type:"png",lang:["点击保存"]}}};var l=e("zrender/tool/util"),h=e("zrender/config"),m=e("zrender/tool/event"),V="stack",U="tiled";return t.prototype={type:s.COMPONENT_TYPE_TOOLBOX,_buildShape:function(){this._iconList=[];var e=this.option.toolbox;this._enableColor=e.effectiveColor,this._disableColor=e.disableColor;var t=e.feature,i=[];for(var n in t)if(t[n].show)switch(n){case"mark":i.push({key:n,name:"mark"}),i.push({key:n,name:"markUndo"}),i.push({key:n,name:"markClear"});break;case"magicType":for(var a=0,o=t[n].type.length;o>a;a++)t[n].title[t[n].type[a]+"Chart"]=t[n].title[t[n].type[a]],t[n].option&&(t[n].option[t[n].type[a]+"Chart"]=t[n].option[t[n].type[a]]),i.push({key:n,name:t[n].type[a]+"Chart"});break;case"dataZoom":i.push({key:n,name:"dataZoom"}),i.push({key:n,name:"dataZoomReset"});break;case"saveAsImage":this.canvasSupported&&i.push({key:n,name:"saveAsImage"});break;default:i.push({key:n,name:n})}if(i.length>0){for(var r,n,a=0,o=i.length;o>a;a++)r=i[a].name,n=i[a].key,this._iconList.push(r),this._featureTitle[r]=t[n].title[r]||t[n].title,t[n].icon&&(this._featureIcon[r]=t[n].icon[r]||t[n].icon),t[n].color&&(this._featureColor[r]=t[n].color[r]||t[n].color),t[n].option&&(this._featureOption[r]=t[n].option[r]||t[n].option);this._itemGroupLocation=this._getItemGroupLocation(),this._buildBackground(),this._buildItem();for(var a=0,o=this.shapeList.length;o>a;a++)this.zr.addShape(this.shapeList[a]);this._iconShapeMap.mark&&(this._iconDisable(this._iconShapeMap.markUndo),this._iconDisable(this._iconShapeMap.markClear)),this._iconShapeMap.dataZoomReset&&0===this._zoomQueue.length&&this._iconDisable(this._iconShapeMap.dataZoomReset)}},_buildItem:function(){var t,i,n,o,s=this.option.toolbox,l=this._iconList.length,h=this._itemGroupLocation.x,m=this._itemGroupLocation.y,V=s.itemSize,U=s.itemGap,d=s.color instanceof Array?s.color:[s.color],p=this.getFont(s.textStyle);"horizontal"===s.orient?(i=this._itemGroupLocation.y/this.zr.getHeight()<.5?"bottom":"top",n=this._itemGroupLocation.x/this.zr.getWidth()<.5?"left":"right",o=this._itemGroupLocation.y/this.zr.getHeight()<.5?"top":"bottom"):i=this._itemGroupLocation.x/this.zr.getWidth()<.5?"right":"left",this._iconShapeMap={};for(var c=this,u=0;l>u;u++){switch(t={type:"icon",zlevel:this.getZlevelBase(),z:this.getZBase(),style:{x:h,y:m,width:V,height:V,iconType:this._iconList[u],lineWidth:1,strokeColor:this._featureColor[this._iconList[u]]||d[u%d.length],brushType:"stroke"},highlightStyle:{lineWidth:1,text:s.showTitle?this._featureTitle[this._iconList[u]]:void 0,textFont:p,textPosition:i,strokeColor:this._featureColor[this._iconList[u]]||d[u%d.length]},hoverable:!0,clickable:!0},this._featureIcon[this._iconList[u]]&&(t.style.image=this._featureIcon[this._iconList[u]].replace(new RegExp("^image:\\/\\/"),""),t.style.opacity=.8,t.highlightStyle.opacity=1,t.type="image"),"horizontal"===s.orient&&(0===u&&"left"===n&&(t.highlightStyle.textPosition="specific",t.highlightStyle.textAlign=n,t.highlightStyle.textBaseline=o,t.highlightStyle.textX=h,t.highlightStyle.textY="top"===o?m+V+10:m-10),u===l-1&&"right"===n&&(t.highlightStyle.textPosition="specific",t.highlightStyle.textAlign=n,t.highlightStyle.textBaseline=o,t.highlightStyle.textX=h+V,t.highlightStyle.textY="top"===o?m+V+10:m-10)),this._iconList[u]){case"mark":t.onclick=c._onMark;break;case"markUndo":t.onclick=c._onMarkUndo;break;case"markClear":t.onclick=c._onMarkClear;break;case"dataZoom":t.onclick=c._onDataZoom;break;case"dataZoomReset":t.onclick=c._onDataZoomReset;break;case"dataView":if(!this._dataView){var y=e("./dataView");this._dataView=new y(this.ecTheme,this.messageCenter,this.zr,this.option,this.myChart)}t.onclick=c._onDataView;break;case"restore":t.onclick=c._onRestore;break;case"saveAsImage":t.onclick=c._onSaveAsImage;break;default:this._iconList[u].match("Chart")?(t._name=this._iconList[u].replace("Chart",""),t.onclick=c._onMagicType):t.onclick=c._onCustomHandler}"icon"===t.type?t=new r(t):"image"===t.type&&(t=new a(t)),this.shapeList.push(t),this._iconShapeMap[this._iconList[u]]=t,"horizontal"===s.orient?h+=V+U:m+=V+U}},_buildBackground:function(){var e=this.option.toolbox,t=this.reformCssArray(this.option.toolbox.padding);this.shapeList.push(new o({zlevel:this.getZlevelBase(),z:this.getZBase(),hoverable:!1,style:{x:this._itemGroupLocation.x-t[3],y:this._itemGroupLocation.y-t[0],width:this._itemGroupLocation.width+t[3]+t[1],height:this._itemGroupLocation.height+t[0]+t[2],brushType:0===e.borderWidth?"fill":"both",color:e.backgroundColor,strokeColor:e.borderColor,lineWidth:e.borderWidth}}))},_getItemGroupLocation:function(){var e=this.option.toolbox,t=this.reformCssArray(this.option.toolbox.padding),i=this._iconList.length,n=e.itemGap,a=e.itemSize,o=0,r=0;"horizontal"===e.orient?(o=(a+n)*i-n,r=a):(r=(a+n)*i-n,o=a);var s,l=this.zr.getWidth();switch(e.x){case"center":s=Math.floor((l-o)/2);break;case"left":s=t[3]+e.borderWidth;break;case"right":s=l-o-t[1]-e.borderWidth;break;default:s=e.x-0,s=isNaN(s)?0:s}var h,m=this.zr.getHeight();switch(e.y){case"top":h=t[0]+e.borderWidth;break;case"bottom":h=m-r-t[2]-e.borderWidth;break;case"center":h=Math.floor((m-r)/2);break;default:h=e.y-0,h=isNaN(h)?0:h}return{x:s,y:h,width:o,height:r}},__onmousemove:function(e){this._marking&&(this._markShape.style.xEnd=m.getX(e.event),this._markShape.style.yEnd=m.getY(e.event),this.zr.addHoverShape(this._markShape)),this._zooming&&(this._zoomShape.style.width=m.getX(e.event)-this._zoomShape.style.x,this._zoomShape.style.height=m.getY(e.event)-this._zoomShape.style.y,this.zr.addHoverShape(this._zoomShape),this.dom.style.cursor="crosshair",m.stop(e.event)),this._zoomStart&&"pointer"!=this.dom.style.cursor&&"move"!=this.dom.style.cursor&&(this.dom.style.cursor="crosshair")},__onmousedown:function(e){if(!e.target){this._zooming=!0;var t=m.getX(e.event),i=m.getY(e.event),n=this.option.dataZoom||{};return this._zoomShape=new o({zlevel:this.getZlevelBase(),z:this.getZBase(),style:{x:t,y:i,width:1,height:1,brushType:"both"},highlightStyle:{lineWidth:2,color:n.fillerColor||s.dataZoom.fillerColor,strokeColor:n.handleColor||s.dataZoom.handleColor,brushType:"both"}}),this.zr.addHoverShape(this._zoomShape),!0}},__onmouseup:function(){if(!this._zoomShape||Math.abs(this._zoomShape.style.width)<10||Math.abs(this._zoomShape.style.height)<10)return this._zooming=!1,!0;if(this._zooming&&this.component.dataZoom){this._zooming=!1;var e=this.component.dataZoom.rectZoom(this._zoomShape.style);e&&(this._zoomQueue.push({start:e.start,end:e.end,start2:e.start2,end2:e.end2}),this._iconEnable(this._iconShapeMap.dataZoomReset),this.zr.refreshNextFrame())}return!0},__onclick:function(e){if(!e.target)if(this._marking)this._marking=!1,this._markShapeList.push(this._markShape),this._iconEnable(this._iconShapeMap.markUndo),this._iconEnable(this._iconShapeMap.markClear),this.zr.addShape(this._markShape),this.zr.refreshNextFrame();else if(this._markStart){this._marking=!0;var t=m.getX(e.event),i=m.getY(e.event);this._markShape=new n({zlevel:this.getZlevelBase(),z:this.getZBase(),style:{xStart:t,yStart:i,xEnd:t,yEnd:i,lineWidth:this.query(this.option,"toolbox.feature.mark.lineStyle.width"),strokeColor:this.query(this.option,"toolbox.feature.mark.lineStyle.color"),lineType:this.query(this.option,"toolbox.feature.mark.lineStyle.type")}}),this.zr.addHoverShape(this._markShape)}},__onMark:function(e){var t=e.target;if(this._marking||this._markStart)this._resetMark(),this.zr.refreshNextFrame();else{this._resetZoom(),this.zr.modShape(t.id,{style:{strokeColor:this._enableColor}}),this.zr.refreshNextFrame(),this._markStart=!0;var i=this;setTimeout(function(){i.zr&&i.zr.on(h.EVENT.CLICK,i._onclick)&&i.zr.on(h.EVENT.MOUSEMOVE,i._onmousemove)},10)}return!0},__onMarkUndo:function(){if(this._marking)this._marking=!1;else{var e=this._markShapeList.length;if(e>=1){var t=this._markShapeList[e-1];this.zr.delShape(t.id),this.zr.refreshNextFrame(),this._markShapeList.pop(),1===e&&(this._iconDisable(this._iconShapeMap.markUndo),this._iconDisable(this._iconShapeMap.markClear))}}return!0},__onMarkClear:function(){this._marking&&(this._marking=!1);var e=this._markShapeList.length;if(e>0){for(;e--;)this.zr.delShape(this._markShapeList.pop().id);this._iconDisable(this._iconShapeMap.markUndo),this._iconDisable(this._iconShapeMap.markClear),this.zr.refreshNextFrame()}return!0},__onDataZoom:function(e){var t=e.target;if(this._zooming||this._zoomStart)this._resetZoom(),this.zr.refreshNextFrame(),this.dom.style.cursor="default";else{this._resetMark(),this.zr.modShape(t.id,{style:{strokeColor:this._enableColor}}),this.zr.refreshNextFrame(),this._zoomStart=!0;var i=this;setTimeout(function(){i.zr&&i.zr.on(h.EVENT.MOUSEDOWN,i._onmousedown)&&i.zr.on(h.EVENT.MOUSEUP,i._onmouseup)&&i.zr.on(h.EVENT.MOUSEMOVE,i._onmousemove)},10),this.dom.style.cursor="crosshair"}return!0},__onDataZoomReset:function(){return this._zooming&&(this._zooming=!1),this._zoomQueue.pop(),this._zoomQueue.length>0?this.component.dataZoom.absoluteZoom(this._zoomQueue[this._zoomQueue.length-1]):(this.component.dataZoom.rectZoom(),this._iconDisable(this._iconShapeMap.dataZoomReset),this.zr.refreshNextFrame()),!0},_resetMark:function(){this._marking=!1,this._markStart&&(this._markStart=!1,this._iconShapeMap.mark&&this.zr.modShape(this._iconShapeMap.mark.id,{style:{strokeColor:this._iconShapeMap.mark.highlightStyle.strokeColor}}),this.zr.un(h.EVENT.CLICK,this._onclick),this.zr.un(h.EVENT.MOUSEMOVE,this._onmousemove))},_resetZoom:function(){this._zooming=!1,this._zoomStart&&(this._zoomStart=!1,this._iconShapeMap.dataZoom&&this.zr.modShape(this._iconShapeMap.dataZoom.id,{style:{strokeColor:this._iconShapeMap.dataZoom.highlightStyle.strokeColor}}),this.zr.un(h.EVENT.MOUSEDOWN,this._onmousedown),this.zr.un(h.EVENT.MOUSEUP,this._onmouseup),this.zr.un(h.EVENT.MOUSEMOVE,this._onmousemove))},_iconDisable:function(e){"image"!=e.type?this.zr.modShape(e.id,{hoverable:!1,clickable:!1,style:{strokeColor:this._disableColor}}):this.zr.modShape(e.id,{hoverable:!1,clickable:!1,style:{opacity:.3}})},_iconEnable:function(e){"image"!=e.type?this.zr.modShape(e.id,{hoverable:!0,clickable:!0,style:{strokeColor:e.highlightStyle.strokeColor}}):this.zr.modShape(e.id,{hoverable:!0,clickable:!0,style:{opacity:.8}})},__onDataView:function(){return this._dataView.show(this.option),!0},__onRestore:function(){return this._resetMark(),this._resetZoom(),this.messageCenter.dispatch(s.EVENT.RESTORE,null,null,this.myChart),!0},__onSaveAsImage:function(){var e=this.option.toolbox.feature.saveAsImage,t=e.type||"png";"png"!=t&&"jpeg"!=t&&(t="png");var i;i=this.myChart.isConnected()?this.myChart.getConnectedDataURL(t):this.zr.toDataURL("image/"+t,this.option.backgroundColor&&"rgba(0,0,0,0)"===this.option.backgroundColor.replace(" ","")?"#fff":this.option.backgroundColor);var n=document.createElement("div");n.id="__echarts_download_wrap__",n.style.cssText="position:fixed;z-index:99999;display:block;top:0;left:0;background-color:rgba(33,33,33,0.5);text-align:center;width:100%;height:100%;line-height:"+document.documentElement.clientHeight+"px;";var a=document.createElement("a");a.href=i,a.setAttribute("download",(e.name?e.name:this.option.title&&(this.option.title.text||this.option.title.subtext)?this.option.title.text||this.option.title.subtext:"ECharts")+"."+t),a.innerHTML='图片另存为":e.lang?e.lang[0]:"点击保存")+'"/>',n.appendChild(a),document.body.appendChild(n),a=null,n=null,setTimeout(function(){var e=document.getElementById("__echarts_download_wrap__");e&&(e.onclick=function(){var e=document.getElementById("__echarts_download_wrap__");e.onclick=null,e.innerHTML="",document.body.removeChild(e),e=null},e=null)},500)},__onMagicType:function(e){this._resetMark();var t=e.target._name;return this._magicType[t]||(this._magicType[t]=!0,t===s.CHART_TYPE_LINE?this._magicType[s.CHART_TYPE_BAR]=!1:t===s.CHART_TYPE_BAR&&(this._magicType[s.CHART_TYPE_LINE]=!1),t===s.CHART_TYPE_PIE?this._magicType[s.CHART_TYPE_FUNNEL]=!1:t===s.CHART_TYPE_FUNNEL&&(this._magicType[s.CHART_TYPE_PIE]=!1),t===s.CHART_TYPE_FORCE?this._magicType[s.CHART_TYPE_CHORD]=!1:t===s.CHART_TYPE_CHORD&&(this._magicType[s.CHART_TYPE_FORCE]=!1),t===V?this._magicType[U]=!1:t===U&&(this._magicType[V]=!1),this.messageCenter.dispatch(s.EVENT.MAGIC_TYPE_CHANGED,e.event,{magicType:this._magicType},this.myChart)),!0},setMagicType:function(e){this._resetMark(),this._magicType=e,!this._isSilence&&this.messageCenter.dispatch(s.EVENT.MAGIC_TYPE_CHANGED,null,{magicType:this._magicType},this.myChart)},__onCustomHandler:function(e){var t=e.target.style.iconType,i=this.option.toolbox.feature[t].onclick;"function"==typeof i&&i.call(this,this.option)},reset:function(e,t){if(t&&this.clear(),this.query(e,"toolbox.show")&&this.query(e,"toolbox.feature.magicType.show")){var i=e.toolbox.feature.magicType.type,n=i.length;for(this._magicMap={};n--;)this._magicMap[i[n]]=!0;n=e.series.length;for(var a,o;n--;)a=e.series[n].type,this._magicMap[a]&&(o=e.xAxis instanceof Array?e.xAxis[e.series[n].xAxisIndex||0]:e.xAxis,o&&"category"===(o.type||"category")&&(o.__boundaryGap=null!=o.boundaryGap?o.boundaryGap:!0),o=e.yAxis instanceof Array?e.yAxis[e.series[n].yAxisIndex||0]:e.yAxis,o&&"category"===o.type&&(o.__boundaryGap=null!=o.boundaryGap?o.boundaryGap:!0),e.series[n].__type=a,e.series[n].__itemStyle=l.clone(e.series[n].itemStyle||{})),(this._magicMap[V]||this._magicMap[U])&&(e.series[n].__stack=e.series[n].stack)}this._magicType=t?{}:this._magicType||{};for(var r in this._magicType)if(this._magicType[r]){this.option=e,this.getMagicOption();break}var s=e.dataZoom;if(s&&s.show){var h=null!=s.start&&s.start>=0&&s.start<=100?s.start:0,m=null!=s.end&&s.end>=0&&s.end<=100?s.end:100;h>m&&(h+=m,m=h-m,h-=m),this._zoomQueue=[{start:h,end:m,start2:0,end2:100}]}else this._zoomQueue=[]},getMagicOption:function(){var e,t;if(this._magicType[s.CHART_TYPE_LINE]||this._magicType[s.CHART_TYPE_BAR]){for(var i=this._magicType[s.CHART_TYPE_LINE]?!1:!0,n=0,a=this.option.series.length;a>n;n++)t=this.option.series[n].type,(t==s.CHART_TYPE_LINE||t==s.CHART_TYPE_BAR)&&(e=this.option.xAxis instanceof Array?this.option.xAxis[this.option.series[n].xAxisIndex||0]:this.option.xAxis,e&&"category"===(e.type||"category")&&(e.boundaryGap=i?!0:e.__boundaryGap),e=this.option.yAxis instanceof Array?this.option.yAxis[this.option.series[n].yAxisIndex||0]:this.option.yAxis,e&&"category"===e.type&&(e.boundaryGap=i?!0:e.__boundaryGap));this._defaultMagic(s.CHART_TYPE_LINE,s.CHART_TYPE_BAR)}if(this._defaultMagic(s.CHART_TYPE_CHORD,s.CHART_TYPE_FORCE),this._defaultMagic(s.CHART_TYPE_PIE,s.CHART_TYPE_FUNNEL),this._magicType[V]||this._magicType[U])for(var n=0,a=this.option.series.length;a>n;n++)this._magicType[V]?(this.option.series[n].stack="_ECHARTS_STACK_KENER_2014_",t=V):this._magicType[U]&&(this.option.series[n].stack=null,t=U),this._featureOption[t+"Chart"]&&l.merge(this.option.series[n],this._featureOption[t+"Chart"]||{},!0);return this.option},_defaultMagic:function(e,t){if(this._magicType[e]||this._magicType[t])for(var i=0,n=this.option.series.length;n>i;i++){var a=this.option.series[i].type;(a==e||a==t)&&(this.option.series[i].type=this._magicType[e]?e:t,this.option.series[i].itemStyle=l.clone(this.option.series[i].__itemStyle),a=this.option.series[i].type,this._featureOption[a+"Chart"]&&l.merge(this.option.series[i],this._featureOption[a+"Chart"]||{},!0))}},silence:function(e){this._isSilence=e},resize:function(){this._resetMark(),this.clear(),this.option&&this.option.toolbox&&this.option.toolbox.show&&this._buildShape(),this._dataView&&this._dataView.resize()},hideDataView:function(){this._dataView&&this._dataView.hide()},clear:function(e){this.zr&&(this.zr.delShape(this.shapeList),this.shapeList=[],e||(this.zr.delShape(this._markShapeList),this._markShapeList=[]))},onbeforDispose:function(){this._dataView&&(this._dataView.dispose(),this._dataView=null),this._markShapeList=null},refresh:function(e){e&&(this._resetMark(),this._resetZoom(),e.toolbox=this.reformOption(e.toolbox),this.option=e,this.clear(!0),e.toolbox.show&&this._buildShape(),this.hideDataView())}},l.inherits(t,i),e("../component").define("toolbox",t),t}),i("echarts/component",[],function(){var e={},t={};return e.define=function(i,n){return t[i]=n,e},e.get=function(e){return t[e]},e}),i("echarts/component/title",["require","./base","zrender/shape/Text","zrender/shape/Rectangle","../config","zrender/tool/util","zrender/tool/area","zrender/tool/color","../component"],function(e){function t(e,t,n,a,o){i.call(this,e,t,n,a,o),this.refresh(a)}var i=e("./base"),n=e("zrender/shape/Text"),a=e("zrender/shape/Rectangle"),o=e("../config");o.title={zlevel:0,z:6,show:!0,text:"",subtext:"",x:"left",y:"top",backgroundColor:"rgba(0,0,0,0)",borderColor:"#ccc",borderWidth:0,padding:5,itemGap:5,textStyle:{fontSize:18,fontWeight:"bolder",color:"#333"},subtextStyle:{color:"#aaa"}};var r=e("zrender/tool/util"),s=e("zrender/tool/area"),l=e("zrender/tool/color");return t.prototype={type:o.COMPONENT_TYPE_TITLE,_buildShape:function(){if(this.titleOption.show){this._itemGroupLocation=this._getItemGroupLocation(),this._buildBackground(),this._buildItem();for(var e=0,t=this.shapeList.length;t>e;e++)this.zr.addShape(this.shapeList[e])}},_buildItem:function(){var e=this.titleOption.text,t=this.titleOption.link,i=this.titleOption.target,a=this.titleOption.subtext,o=this.titleOption.sublink,r=this.titleOption.subtarget,s=this.getFont(this.titleOption.textStyle),h=this.getFont(this.titleOption.subtextStyle),m=this._itemGroupLocation.x,V=this._itemGroupLocation.y,U=this._itemGroupLocation.width,d=this._itemGroupLocation.height,p={zlevel:this.getZlevelBase(),z:this.getZBase(),style:{y:V,color:this.titleOption.textStyle.color,text:e,textFont:s,textBaseline:"top"},highlightStyle:{color:l.lift(this.titleOption.textStyle.color,1),brushType:"fill"},hoverable:!1};t&&(p.hoverable=!0,p.clickable=!0,p.onclick=function(){i&&"self"==i?window.location=t:window.open(t)});var c={zlevel:this.getZlevelBase(),z:this.getZBase(),style:{y:V+d,color:this.titleOption.subtextStyle.color,text:a,textFont:h,textBaseline:"bottom"},highlightStyle:{color:l.lift(this.titleOption.subtextStyle.color,1),brushType:"fill"},hoverable:!1};switch(o&&(c.hoverable=!0,c.clickable=!0,c.onclick=function(){r&&"self"==r?window.location=o:window.open(o)}),this.titleOption.x){case"center":p.style.x=c.style.x=m+U/2,p.style.textAlign=c.style.textAlign="center";break;case"left":p.style.x=c.style.x=m,p.style.textAlign=c.style.textAlign="left";break;case"right":p.style.x=c.style.x=m+U,p.style.textAlign=c.style.textAlign="right";break;default:m=this.titleOption.x-0,m=isNaN(m)?0:m,p.style.x=c.style.x=m}this.titleOption.textAlign&&(p.style.textAlign=c.style.textAlign=this.titleOption.textAlign),this.shapeList.push(new n(p)),""!==a&&this.shapeList.push(new n(c))},_buildBackground:function(){var e=this.reformCssArray(this.titleOption.padding);this.shapeList.push(new a({zlevel:this.getZlevelBase(),z:this.getZBase(),hoverable:!1,style:{x:this._itemGroupLocation.x-e[3],y:this._itemGroupLocation.y-e[0],width:this._itemGroupLocation.width+e[3]+e[1],height:this._itemGroupLocation.height+e[0]+e[2],brushType:0===this.titleOption.borderWidth?"fill":"both",color:this.titleOption.backgroundColor,strokeColor:this.titleOption.borderColor,lineWidth:this.titleOption.borderWidth}}))},_getItemGroupLocation:function(){var e,t=this.reformCssArray(this.titleOption.padding),i=this.titleOption.text,n=this.titleOption.subtext,a=this.getFont(this.titleOption.textStyle),o=this.getFont(this.titleOption.subtextStyle),r=Math.max(s.getTextWidth(i,a),s.getTextWidth(n,o)),l=s.getTextHeight(i,a)+(""===n?0:this.titleOption.itemGap+s.getTextHeight(n,o)),h=this.zr.getWidth();switch(this.titleOption.x){case"center":e=Math.floor((h-r)/2);break;case"left":e=t[3]+this.titleOption.borderWidth;break;case"right":e=h-r-t[1]-this.titleOption.borderWidth;break;default:e=this.titleOption.x-0,e=isNaN(e)?0:e}var m,V=this.zr.getHeight();switch(this.titleOption.y){case"top":m=t[0]+this.titleOption.borderWidth;break;case"bottom":m=V-l-t[2]-this.titleOption.borderWidth;break;case"center":m=Math.floor((V-l)/2);break;default:m=this.titleOption.y-0,m=isNaN(m)?0:m}return{x:e,y:m,width:r,height:l}},refresh:function(e){e&&(this.option=e,this.option.title=this.reformOption(this.option.title),this.titleOption=this.option.title,this.titleOption.textStyle=this.getTextStyle(this.titleOption.textStyle),this.titleOption.subtextStyle=this.getTextStyle(this.titleOption.subtextStyle)),this.clear(),this._buildShape()}},r.inherits(t,i),e("../component").define("title",t),t}),i("echarts/component/tooltip",["require","./base","../util/shape/Cross","zrender/shape/Line","zrender/shape/Rectangle","../config","../util/ecData","zrender/config","zrender/tool/event","zrender/tool/area","zrender/tool/color","zrender/tool/util","zrender/shape/Base","../component"],function(e){function t(e,t,o,r,s){i.call(this,e,t,o,r,s),this.dom=s.dom;var l=this;l._onmousemove=function(e){return l.__onmousemove(e)},l._onglobalout=function(e){return l.__onglobalout(e)},this.zr.on(h.EVENT.MOUSEMOVE,l._onmousemove),this.zr.on(h.EVENT.GLOBALOUT,l._onglobalout),l._hide=function(e){return l.__hide(e)},l._tryShow=function(e){return l.__tryShow(e)},l._refixed=function(e){return l.__refixed(e)},l._setContent=function(e,t){return l.__setContent(e,t)},this._tDom=this._tDom||document.createElement("div"),this._tDom.onselectstart=function(){return!1},this._tDom.onmouseover=function(){l._mousein=!0},this._tDom.onmouseout=function(){l._mousein=!1},this._tDom.className="echarts-tooltip",this._tDom.style.position="absolute",this.hasAppend=!1,this._axisLineShape&&this.zr.delShape(this._axisLineShape.id),this._axisLineShape=new a({zlevel:this.getZlevelBase(),z:this.getZBase(),invisible:!0,hoverable:!1}),this.shapeList.push(this._axisLineShape),this.zr.addShape(this._axisLineShape),this._axisShadowShape&&this.zr.delShape(this._axisShadowShape.id),this._axisShadowShape=new a({zlevel:this.getZlevelBase(),z:1,invisible:!0,hoverable:!1}),this.shapeList.push(this._axisShadowShape),this.zr.addShape(this._axisShadowShape),this._axisCrossShape&&this.zr.delShape(this._axisCrossShape.id),this._axisCrossShape=new n({zlevel:this.getZlevelBase(),z:this.getZBase(),invisible:!0,hoverable:!1}),this.shapeList.push(this._axisCrossShape),this.zr.addShape(this._axisCrossShape),this.showing=!1,this.refresh(r)}var i=e("./base"),n=e("../util/shape/Cross"),a=e("zrender/shape/Line"),o=e("zrender/shape/Rectangle"),r=new o({}),s=e("../config");s.tooltip={zlevel:1,z:8,show:!0,showContent:!0,trigger:"item",islandFormatter:"{a}
        {b} : {c}",showDelay:20,hideDelay:100,transitionDuration:.4,enterable:!1,backgroundColor:"rgba(0,0,0,0.7)",borderColor:"#333",borderRadius:4,borderWidth:0,padding:5,axisPointer:{type:"line",lineStyle:{color:"#48b",width:2,type:"solid"},crossStyle:{color:"#1e90ff",width:1,type:"dashed"},shadowStyle:{color:"rgba(150,150,150,0.3)",width:"auto",type:"default"}},textStyle:{color:"#fff"}};var l=e("../util/ecData"),h=e("zrender/config"),m=e("zrender/tool/event"),V=e("zrender/tool/area"),U=e("zrender/tool/color"),d=e("zrender/tool/util"),p=e("zrender/shape/Base");return t.prototype={type:s.COMPONENT_TYPE_TOOLTIP,_gCssText:"position:absolute;display:block;border-style:solid;white-space:nowrap;",_style:function(e){if(!e)return"";var t=[];if(e.transitionDuration){var i="left "+e.transitionDuration+"s,top "+e.transitionDuration+"s";t.push("transition:"+i),t.push("-moz-transition:"+i),t.push("-webkit-transition:"+i),t.push("-o-transition:"+i)}e.backgroundColor&&(t.push("background-Color:"+U.toHex(e.backgroundColor)),t.push("filter:alpha(opacity=70)"),t.push("background-Color:"+e.backgroundColor)),null!=e.borderWidth&&t.push("border-width:"+e.borderWidth+"px"),null!=e.borderColor&&t.push("border-color:"+e.borderColor),null!=e.borderRadius&&(t.push("border-radius:"+e.borderRadius+"px"),t.push("-moz-border-radius:"+e.borderRadius+"px"),t.push("-webkit-border-radius:"+e.borderRadius+"px"),t.push("-o-border-radius:"+e.borderRadius+"px"));var n=e.textStyle;n&&(n.color&&t.push("color:"+n.color),n.decoration&&t.push("text-decoration:"+n.decoration),n.align&&t.push("text-align:"+n.align),n.fontFamily&&t.push("font-family:"+n.fontFamily),n.fontSize&&t.push("font-size:"+n.fontSize+"px"),n.fontSize&&t.push("line-height:"+Math.round(3*n.fontSize/2)+"px"),n.fontStyle&&t.push("font-style:"+n.fontStyle),n.fontWeight&&t.push("font-weight:"+n.fontWeight));var a=e.padding;return null!=a&&(a=this.reformCssArray(a),t.push("padding:"+a[0]+"px "+a[1]+"px "+a[2]+"px "+a[3]+"px")),t=t.join(";")+";"},__hide:function(){this._lastDataIndex=-1,this._lastSeriesIndex=-1,this._lastItemTriggerId=-1,this._tDom&&(this._tDom.style.display="none");var e=!1;this._axisLineShape.invisible||(this._axisLineShape.invisible=!0, +this.zr.modShape(this._axisLineShape.id),e=!0),this._axisShadowShape.invisible||(this._axisShadowShape.invisible=!0,this.zr.modShape(this._axisShadowShape.id),e=!0),this._axisCrossShape.invisible||(this._axisCrossShape.invisible=!0,this.zr.modShape(this._axisCrossShape.id),e=!0),this._lastTipShape&&this._lastTipShape.tipShape.length>0&&(this.zr.delShape(this._lastTipShape.tipShape),this._lastTipShape=!1,this.shapeList.length=2),e&&this.zr.refreshNextFrame(),this.showing=!1},_show:function(e,t,i,n){var a=this._tDom.offsetHeight,o=this._tDom.offsetWidth;e&&("function"==typeof e&&(e=e([t,i])),e instanceof Array&&(t=e[0],i=e[1])),t+o>this._zrWidth&&(t-=o+40),i+a>this._zrHeight&&(i-=a-20),20>i&&(i=0),this._tDom.style.cssText=this._gCssText+this._defaultCssText+(n?n:"")+"left:"+t+"px;top:"+i+"px;",(10>a||10>o)&&setTimeout(this._refixed,20),this.showing=!0},__refixed:function(){if(this._tDom){var e="",t=this._tDom.offsetHeight,i=this._tDom.offsetWidth;this._tDom.offsetLeft+i>this._zrWidth&&(e+="left:"+(this._zrWidth-i-20)+"px;"),this._tDom.offsetTop+t>this._zrHeight&&(e+="top:"+(this._zrHeight-t-10)+"px;"),""!==e&&(this._tDom.style.cssText+=e)}},__tryShow:function(){var e,t;if(this._curTarget){if("island"===this._curTarget._type&&this.option.tooltip.show)return void this._showItemTrigger();var i=l.get(this._curTarget,"series"),n=l.get(this._curTarget,"data");e=this.deepQuery([n,i,this.option],"tooltip.show"),null!=i&&null!=n&&e?(t=this.deepQuery([n,i,this.option],"tooltip.trigger"),"axis"===t?this._showAxisTrigger(i.xAxisIndex,i.yAxisIndex,l.get(this._curTarget,"dataIndex")):this._showItemTrigger()):(clearTimeout(this._hidingTicket),clearTimeout(this._showingTicket),this._hidingTicket=setTimeout(this._hide,this._hideDelay))}else this._findPolarTrigger()||this._findAxisTrigger()},_findAxisTrigger:function(){if(!this.component.xAxis||!this.component.yAxis)return void(this._hidingTicket=setTimeout(this._hide,this._hideDelay));for(var e,t,i=this.option.series,n=0,a=i.length;a>n;n++)if("axis"===this.deepQuery([i[n],this.option],"tooltip.trigger"))return e=i[n].xAxisIndex||0,t=i[n].yAxisIndex||0,this.component.xAxis.getAxis(e)&&this.component.xAxis.getAxis(e).type===s.COMPONENT_TYPE_AXIS_CATEGORY?void this._showAxisTrigger(e,t,this._getNearestDataIndex("x",this.component.xAxis.getAxis(e))):this.component.yAxis.getAxis(t)&&this.component.yAxis.getAxis(t).type===s.COMPONENT_TYPE_AXIS_CATEGORY?void this._showAxisTrigger(e,t,this._getNearestDataIndex("y",this.component.yAxis.getAxis(t))):void this._showAxisTrigger(e,t,-1);"cross"===this.option.tooltip.axisPointer.type&&this._showAxisTrigger(-1,-1,-1)},_findPolarTrigger:function(){if(!this.component.polar)return!1;var e,t=m.getX(this._event),i=m.getY(this._event),n=this.component.polar.getNearestIndex([t,i]);return n?(e=n.valueIndex,n=n.polarIndex):n=-1,-1!=n?this._showPolarTrigger(n,e):!1},_getNearestDataIndex:function(e,t){var i=-1,n=m.getX(this._event),a=m.getY(this._event);if("x"===e){for(var o,r,s=this.component.grid.getXend(),l=t.getCoordByIndex(i);s>l&&(r=l,n>=l);)o=l,l=t.getCoordByIndex(++i);return 0>=i?i=0:r-n>=n-o?i-=1:null==t.getNameByIndex(i)&&(i-=1),i}for(var h,V,U=this.component.grid.getY(),l=t.getCoordByIndex(i);l>U&&(h=l,l>=a);)V=l,l=t.getCoordByIndex(++i);return 0>=i?i=0:a-h>=V-a?i-=1:null==t.getNameByIndex(i)&&(i-=1),i},_showAxisTrigger:function(e,t,i){if(!this._event.connectTrigger&&this.messageCenter.dispatch(s.EVENT.TOOLTIP_IN_GRID,this._event,null,this.myChart),null==this.component.xAxis||null==this.component.yAxis||null==e||null==t)return clearTimeout(this._hidingTicket),clearTimeout(this._showingTicket),void(this._hidingTicket=setTimeout(this._hide,this._hideDelay));var n,a,o,r,l=this.option.series,h=[],V=[],U="";if("axis"===this.option.tooltip.trigger){if(!this.option.tooltip.show)return;a=this.option.tooltip.formatter,o=this.option.tooltip.position}var d,p,c=-1!=e&&this.component.xAxis.getAxis(e).type===s.COMPONENT_TYPE_AXIS_CATEGORY?"xAxis":-1!=t&&this.component.yAxis.getAxis(t).type===s.COMPONENT_TYPE_AXIS_CATEGORY?"yAxis":!1;if(c){var u="xAxis"==c?e:t;n=this.component[c].getAxis(u);for(var y=0,g=l.length;g>y;y++)this._isSelected(l[y].name)&&l[y][c+"Index"]===u&&"axis"===this.deepQuery([l[y],this.option],"tooltip.trigger")&&(r=this.query(l[y],"tooltip.showContent")||r,a=this.query(l[y],"tooltip.formatter")||a,o=this.query(l[y],"tooltip.position")||o,U+=this._style(this.query(l[y],"tooltip")),null!=l[y].stack&&"xAxis"==c?(h.unshift(l[y]),V.unshift(y)):(h.push(l[y]),V.push(y)));this.messageCenter.dispatch(s.EVENT.TOOLTIP_HOVER,this._event,{seriesIndex:V,dataIndex:i},this.myChart);var b;"xAxis"==c?(d=this.subPixelOptimize(n.getCoordByIndex(i),this._axisLineWidth),p=m.getY(this._event),b=[d,this.component.grid.getY(),d,this.component.grid.getYend()]):(d=m.getX(this._event),p=this.subPixelOptimize(n.getCoordByIndex(i),this._axisLineWidth),b=[this.component.grid.getX(),p,this.component.grid.getXend(),p]),this._styleAxisPointer(h,b[0],b[1],b[2],b[3],n.getGap(),d,p)}else d=m.getX(this._event),p=m.getY(this._event),this._styleAxisPointer(l,this.component.grid.getX(),p,this.component.grid.getXend(),p,0,d,p),i>=0?this._showItemTrigger(!0):(clearTimeout(this._hidingTicket),clearTimeout(this._showingTicket),this._tDom.style.display="none");if(h.length>0){if(this._lastItemTriggerId=-1,this._lastDataIndex!=i||this._lastSeriesIndex!=V[0]){this._lastDataIndex=i,this._lastSeriesIndex=V[0];var f,k;if("function"==typeof a){for(var x=[],y=0,g=h.length;g>y;y++)f=h[y].data[i],k=this.getDataFromOption(f,"-"),x.push({seriesIndex:V[y],seriesName:h[y].name||"",series:h[y],dataIndex:i,data:f,name:n.getNameByIndex(i),value:k,0:h[y].name||"",1:n.getNameByIndex(i),2:k,3:f});this._curTicket="axis:"+i,this._tDom.innerHTML=a.call(this.myChart,x,this._curTicket,this._setContent)}else if("string"==typeof a){this._curTicket=0/0,a=a.replace("{a}","{a0}").replace("{b}","{b0}").replace("{c}","{c0}");for(var y=0,g=h.length;g>y;y++)a=a.replace("{a"+y+"}",this._encodeHTML(h[y].name||"")),a=a.replace("{b"+y+"}",this._encodeHTML(n.getNameByIndex(i))),f=h[y].data[i],f=this.getDataFromOption(f,"-"),a=a.replace("{c"+y+"}",f instanceof Array?f:this.numAddCommas(f));this._tDom.innerHTML=a}else{this._curTicket=0/0,a=this._encodeHTML(n.getNameByIndex(i));for(var y=0,g=h.length;g>y;y++)a+="
        "+this._encodeHTML(h[y].name||"")+" : ",f=h[y].data[i],f=this.getDataFromOption(f,"-"),a+=f instanceof Array?f:this.numAddCommas(f);this._tDom.innerHTML=a}}if(r===!1||!this.option.tooltip.showContent)return;this.hasAppend||(this._tDom.style.left=this._zrWidth/2+"px",this._tDom.style.top=this._zrHeight/2+"px",this.dom.firstChild.appendChild(this._tDom),this.hasAppend=!0),this._show(o,d+10,p+10,U)}},_showPolarTrigger:function(e,t){if(null==this.component.polar||null==e||null==t||0>t)return!1;var i,n,a,o=this.option.series,r=[],s=[],l="";if("axis"===this.option.tooltip.trigger){if(!this.option.tooltip.show)return!1;i=this.option.tooltip.formatter,n=this.option.tooltip.position}for(var h=this.option.polar[e].indicator[t].text,V=0,U=o.length;U>V;V++)this._isSelected(o[V].name)&&o[V].polarIndex===e&&"axis"===this.deepQuery([o[V],this.option],"tooltip.trigger")&&(a=this.query(o[V],"tooltip.showContent")||a,i=this.query(o[V],"tooltip.formatter")||i,n=this.query(o[V],"tooltip.position")||n,l+=this._style(this.query(o[V],"tooltip")),r.push(o[V]),s.push(V));if(r.length>0){for(var d,p,c,u=[],V=0,U=r.length;U>V;V++){d=r[V].data;for(var y=0,g=d.length;g>y;y++)p=d[y],this._isSelected(p.name)&&(p=null!=p?p:{name:"",value:{dataIndex:"-"}},c=this.getDataFromOption(p.value[t]),u.push({seriesIndex:s[V],seriesName:r[V].name||"",series:r[V],dataIndex:t,data:p,name:p.name,indicator:h,value:c,0:r[V].name||"",1:p.name,2:c,3:h}))}if(u.length<=0)return;if(this._lastItemTriggerId=-1,this._lastDataIndex!=t||this._lastSeriesIndex!=s[0])if(this._lastDataIndex=t,this._lastSeriesIndex=s[0],"function"==typeof i)this._curTicket="axis:"+t,this._tDom.innerHTML=i.call(this.myChart,u,this._curTicket,this._setContent);else if("string"==typeof i){i=i.replace("{a}","{a0}").replace("{b}","{b0}").replace("{c}","{c0}").replace("{d}","{d0}");for(var V=0,U=u.length;U>V;V++)i=i.replace("{a"+V+"}",this._encodeHTML(u[V].seriesName)),i=i.replace("{b"+V+"}",this._encodeHTML(u[V].name)),i=i.replace("{c"+V+"}",this.numAddCommas(u[V].value)),i=i.replace("{d"+V+"}",this._encodeHTML(u[V].indicator));this._tDom.innerHTML=i}else{i=this._encodeHTML(u[0].name)+"
        "+this._encodeHTML(u[0].indicator)+" : "+this.numAddCommas(u[0].value);for(var V=1,U=u.length;U>V;V++)i+="
        "+this._encodeHTML(u[V].name)+"
        ",i+=this._encodeHTML(u[V].indicator)+" : "+this.numAddCommas(u[V].value);this._tDom.innerHTML=i}if(a===!1||!this.option.tooltip.showContent)return;return this.hasAppend||(this._tDom.style.left=this._zrWidth/2+"px",this._tDom.style.top=this._zrHeight/2+"px",this.dom.firstChild.appendChild(this._tDom),this.hasAppend=!0),this._show(n,m.getX(this._event),m.getY(this._event),l),!0}},_showItemTrigger:function(e){if(this._curTarget){var t,i,n,a=l.get(this._curTarget,"series"),o=l.get(this._curTarget,"seriesIndex"),r=l.get(this._curTarget,"data"),h=l.get(this._curTarget,"dataIndex"),V=l.get(this._curTarget,"name"),U=l.get(this._curTarget,"value"),d=l.get(this._curTarget,"special"),p=l.get(this._curTarget,"special2"),c=[r,a,this.option],u="";if("island"!=this._curTarget._type){var y=e?"axis":"item";this.option.tooltip.trigger===y&&(t=this.option.tooltip.formatter,i=this.option.tooltip.position),this.query(a,"tooltip.trigger")===y&&(n=this.query(a,"tooltip.showContent")||n,t=this.query(a,"tooltip.formatter")||t,i=this.query(a,"tooltip.position")||i,u+=this._style(this.query(a,"tooltip"))),n=this.query(r,"tooltip.showContent")||n,t=this.query(r,"tooltip.formatter")||t,i=this.query(r,"tooltip.position")||i,u+=this._style(this.query(r,"tooltip"))}else this._lastItemTriggerId=0/0,n=this.deepQuery(c,"tooltip.showContent"),t=this.deepQuery(c,"tooltip.islandFormatter"),i=this.deepQuery(c,"tooltip.islandPosition");this._lastDataIndex=-1,this._lastSeriesIndex=-1,this._lastItemTriggerId!==this._curTarget.id&&(this._lastItemTriggerId=this._curTarget.id,"function"==typeof t?(this._curTicket=(a.name||"")+":"+h,this._tDom.innerHTML=t.call(this.myChart,{seriesIndex:o,seriesName:a.name||"",series:a,dataIndex:h,data:r,name:V,value:U,percent:d,indicator:d,value2:p,indicator2:p,0:a.name||"",1:V,2:U,3:d,4:p,5:r,6:o,7:h},this._curTicket,this._setContent)):"string"==typeof t?(this._curTicket=0/0,t=t.replace("{a}","{a0}").replace("{b}","{b0}").replace("{c}","{c0}"),t=t.replace("{a0}",this._encodeHTML(a.name||"")).replace("{b0}",this._encodeHTML(V)).replace("{c0}",U instanceof Array?U:this.numAddCommas(U)),t=t.replace("{d}","{d0}").replace("{d0}",d||""),t=t.replace("{e}","{e0}").replace("{e0}",l.get(this._curTarget,"special2")||""),this._tDom.innerHTML=t):(this._curTicket=0/0,this._tDom.innerHTML=a.type===s.CHART_TYPE_RADAR&&d?this._itemFormatter.radar.call(this,a,V,U,d):a.type===s.CHART_TYPE_EVENTRIVER?this._itemFormatter.eventRiver.call(this,a,V,U,r):""+(null!=a.name?this._encodeHTML(a.name)+"
        ":"")+(""===V?"":this._encodeHTML(V)+" : ")+(U instanceof Array?U:this.numAddCommas(U))));var g=m.getX(this._event),b=m.getY(this._event);this.deepQuery(c,"tooltip.axisPointer.show")&&this.component.grid?this._styleAxisPointer([a],this.component.grid.getX(),b,this.component.grid.getXend(),b,0,g,b):this._hide(),n!==!1&&this.option.tooltip.showContent&&(this.hasAppend||(this._tDom.style.left=this._zrWidth/2+"px",this._tDom.style.top=this._zrHeight/2+"px",this.dom.firstChild.appendChild(this._tDom),this.hasAppend=!0),this._show(i,g+20,b-20,u))}},_itemFormatter:{radar:function(e,t,i,n){var a="";a+=this._encodeHTML(""===t?e.name||"":t),a+=""===a?"":"
        ";for(var o=0;o";return a},chord:function(e,t,i,n,a){if(null==a)return this._encodeHTML(t)+" ("+this.numAddCommas(i)+")";var o=this._encodeHTML(t),r=this._encodeHTML(n);return""+(null!=e.name?this._encodeHTML(e.name)+"
        ":"")+o+" -> "+r+" ("+this.numAddCommas(i)+")
        "+r+" -> "+o+" ("+this.numAddCommas(a)+")"},eventRiver:function(e,t,i,n){var a="";a+=this._encodeHTML(""===e.name?"":e.name+" : "),a+=this._encodeHTML(t),a+=""===a?"":"
        ",n=n.evolution;for(var o=0,r=n.length;r>o;o++)a+='
        ',n[o].detail&&(n[o].detail.img&&(a+=''),a+='
        '+n[o].time+"
        ",a+='',a+=n[o].detail.text+"
        ",a+="
        ");return a}},_styleAxisPointer:function(e,t,i,n,a,o,r,s){if(e.length>0){var l,h,m=this.option.tooltip.axisPointer,V=m.type,U={line:{},cross:{},shadow:{}};for(var d in U)U[d].color=m[d+"Style"].color,U[d].width=m[d+"Style"].width,U[d].type=m[d+"Style"].type;for(var p=0,c=e.length;c>p;p++)l=e[p],h=this.query(l,"tooltip.axisPointer.type"),V=h||V,h&&(U[h].color=this.query(l,"tooltip.axisPointer."+h+"Style.color")||U[h].color,U[h].width=this.query(l,"tooltip.axisPointer."+h+"Style.width")||U[h].width,U[h].type=this.query(l,"tooltip.axisPointer."+h+"Style.type")||U[h].type);if("line"===V){var u=U.line.width,y=t==n;this._axisLineShape.style={xStart:y?this.subPixelOptimize(t,u):t,yStart:y?i:this.subPixelOptimize(i,u),xEnd:y?this.subPixelOptimize(n,u):n,yEnd:y?a:this.subPixelOptimize(a,u),strokeColor:U.line.color,lineWidth:u,lineType:U.line.type},this._axisLineShape.invisible=!1,this.zr.modShape(this._axisLineShape.id)}else if("cross"===V){var g=U.cross.width;this._axisCrossShape.style={brushType:"stroke",rect:this.component.grid.getArea(),x:this.subPixelOptimize(r,g),y:this.subPixelOptimize(s,g),text:("( "+this.component.xAxis.getAxis(0).getValueFromCoord(r)+" , "+this.component.yAxis.getAxis(0).getValueFromCoord(s)+" )").replace(" , "," ").replace(" , "," "),textPosition:"specific",strokeColor:U.cross.color,lineWidth:g,lineType:U.cross.type},this.component.grid.getXend()-r>100?(this._axisCrossShape.style.textAlign="left",this._axisCrossShape.style.textX=r+10):(this._axisCrossShape.style.textAlign="right",this._axisCrossShape.style.textX=r-10),s-this.component.grid.getY()>50?(this._axisCrossShape.style.textBaseline="bottom",this._axisCrossShape.style.textY=s-10):(this._axisCrossShape.style.textBaseline="top",this._axisCrossShape.style.textY=s+10),this._axisCrossShape.invisible=!1,this.zr.modShape(this._axisCrossShape.id)}else"shadow"===V&&((null==U.shadow.width||"auto"===U.shadow.width||isNaN(U.shadow.width))&&(U.shadow.width=o),t===n?Math.abs(this.component.grid.getX()-t)<2?(U.shadow.width/=2,t=n+=U.shadow.width/2):Math.abs(this.component.grid.getXend()-t)<2&&(U.shadow.width/=2,t=n-=U.shadow.width/2):i===a&&(Math.abs(this.component.grid.getY()-i)<2?(U.shadow.width/=2,i=a+=U.shadow.width/2):Math.abs(this.component.grid.getYend()-i)<2&&(U.shadow.width/=2,i=a-=U.shadow.width/2)),this._axisShadowShape.style={xStart:t,yStart:i,xEnd:n,yEnd:a,strokeColor:U.shadow.color,lineWidth:U.shadow.width},this._axisShadowShape.invisible=!1,this.zr.modShape(this._axisShadowShape.id));this.zr.refreshNextFrame()}},__onmousemove:function(e){if(clearTimeout(this._hidingTicket),clearTimeout(this._showingTicket),!this._mousein||!this._enterable){var t=e.target,i=m.getX(e.event),n=m.getY(e.event);if(t){this._curTarget=t,this._event=e.event,this._event.zrenderX=i,this._event.zrenderY=n;var a;if(this._needAxisTrigger&&this.component.polar&&-1!=(a=this.component.polar.isInside([i,n])))for(var o=this.option.series,l=0,h=o.length;h>l;l++)if(o[l].polarIndex===a&&"axis"===this.deepQuery([o[l],this.option],"tooltip.trigger")){this._curTarget=null;break}this._showingTicket=setTimeout(this._tryShow,this._showDelay)}else this._curTarget=!1,this._event=e.event,this._event.zrenderX=i,this._event.zrenderY=n,this._needAxisTrigger&&this.component.grid&&V.isInside(r,this.component.grid.getArea(),i,n)?this._showingTicket=setTimeout(this._tryShow,this._showDelay):this._needAxisTrigger&&this.component.polar&&-1!=this.component.polar.isInside([i,n])?this._showingTicket=setTimeout(this._tryShow,this._showDelay):(!this._event.connectTrigger&&this.messageCenter.dispatch(s.EVENT.TOOLTIP_OUT_GRID,this._event,null,this.myChart),this._hidingTicket=setTimeout(this._hide,this._hideDelay))}},__onglobalout:function(){clearTimeout(this._hidingTicket),clearTimeout(this._showingTicket),this._hidingTicket=setTimeout(this._hide,this._hideDelay)},__setContent:function(e,t){this._tDom&&(e===this._curTicket&&(this._tDom.innerHTML=t),setTimeout(this._refixed,20))},ontooltipHover:function(e,t){if(!this._lastTipShape||this._lastTipShape&&this._lastTipShape.dataIndex!=e.dataIndex){this._lastTipShape&&this._lastTipShape.tipShape.length>0&&(this.zr.delShape(this._lastTipShape.tipShape),this.shapeList.length=2);for(var i=0,n=t.length;n>i;i++)t[i].zlevel=this.getZlevelBase(),t[i].z=this.getZBase(),t[i].style=p.prototype.getHighlightStyle(t[i].style,t[i].highlightStyle),t[i].draggable=!1,t[i].hoverable=!1,t[i].clickable=!1,t[i].ondragend=null,t[i].ondragover=null,t[i].ondrop=null,this.shapeList.push(t[i]),this.zr.addShape(t[i]);this._lastTipShape={dataIndex:e.dataIndex,tipShape:t}}},ondragend:function(){this._hide()},onlegendSelected:function(e){this._selectedMap=e.selected},_setSelectedMap:function(){this._selectedMap=this.component.legend?d.clone(this.component.legend.getSelectedMap()):{}},_isSelected:function(e){return null!=this._selectedMap[e]?this._selectedMap[e]:!0},showTip:function(e){if(e){var t,i=this.option.series;if(null!=e.seriesIndex)t=e.seriesIndex;else for(var n=e.seriesName,a=0,o=i.length;o>a;a++)if(i[a].name===n){t=a;break}var r=i[t];if(null!=r){var m=this.myChart.chart[r.type],V="axis"===this.deepQuery([r,this.option],"tooltip.trigger");if(m)if(V){var U=e.dataIndex;switch(m.type){case s.CHART_TYPE_LINE:case s.CHART_TYPE_BAR:case s.CHART_TYPE_K:case s.CHART_TYPE_RADAR:if(null==this.component.polar||r.data[0].value.length<=U)return;var d=r.polarIndex||0,p=this.component.polar.getVector(d,U,"max");this._event={zrenderX:p[0],zrenderY:p[1]},this._showPolarTrigger(d,U)}}else{var c,u,y=m.shapeList;switch(m.type){case s.CHART_TYPE_LINE:case s.CHART_TYPE_BAR:case s.CHART_TYPE_K:case s.CHART_TYPE_TREEMAP:case s.CHART_TYPE_SCATTER:for(var U=e.dataIndex,a=0,o=y.length;o>a;a++)if(null==y[a]._mark&&l.get(y[a],"seriesIndex")==t&&l.get(y[a],"dataIndex")==U){this._curTarget=y[a],c=y[a].style.x,u=m.type!=s.CHART_TYPE_K?y[a].style.y:y[a].style.y[0];break}break;case s.CHART_TYPE_RADAR:for(var U=e.dataIndex,a=0,o=y.length;o>a;a++)if("polygon"===y[a].type&&l.get(y[a],"seriesIndex")==t&&l.get(y[a],"dataIndex")==U){this._curTarget=y[a];var p=this.component.polar.getCenter(r.polarIndex||0);c=p[0],u=p[1];break}break;case s.CHART_TYPE_PIE:for(var g=e.name,a=0,o=y.length;o>a;a++)if("sector"===y[a].type&&l.get(y[a],"seriesIndex")==t&&l.get(y[a],"name")==g){this._curTarget=y[a];var b=this._curTarget.style,f=(b.startAngle+b.endAngle)/2*Math.PI/180;c=this._curTarget.style.x+Math.cos(f)*b.r/1.5,u=this._curTarget.style.y-Math.sin(f)*b.r/1.5;break}break;case s.CHART_TYPE_MAP:for(var g=e.name,k=r.mapType,a=0,o=y.length;o>a;a++)if("text"===y[a].type&&y[a]._mapType===k&&y[a].style._name===g){this._curTarget=y[a],c=this._curTarget.style.x+this._curTarget.position[0],u=this._curTarget.style.y+this._curTarget.position[1];break}break;case s.CHART_TYPE_CHORD:for(var g=e.name,a=0,o=y.length;o>a;a++)if("sector"===y[a].type&&l.get(y[a],"name")==g){this._curTarget=y[a];var b=this._curTarget.style,f=(b.startAngle+b.endAngle)/2*Math.PI/180;return c=this._curTarget.style.x+Math.cos(f)*(b.r-2),u=this._curTarget.style.y-Math.sin(f)*(b.r-2),void this.zr.trigger(h.EVENT.MOUSEMOVE,{zrenderX:c,zrenderY:u})}break;case s.CHART_TYPE_FORCE:for(var g=e.name,a=0,o=y.length;o>a;a++)if("circle"===y[a].type&&l.get(y[a],"name")==g){this._curTarget=y[a],c=this._curTarget.position[0],u=this._curTarget.position[1];break}}null!=c&&null!=u&&(this._event={zrenderX:c,zrenderY:u},this.zr.addHoverShape(this._curTarget),this.zr.refreshHover(),this._showItemTrigger())}}}},hideTip:function(){this._hide()},refresh:function(e){if(this._zrHeight=this.zr.getHeight(),this._zrWidth=this.zr.getWidth(),this._lastTipShape&&this._lastTipShape.tipShape.length>0&&this.zr.delShape(this._lastTipShape.tipShape),this._lastTipShape=!1,this.shapeList.length=2,this._lastDataIndex=-1,this._lastSeriesIndex=-1,this._lastItemTriggerId=-1,e){this.option=e,this.option.tooltip=this.reformOption(this.option.tooltip),this.option.tooltip.textStyle=d.merge(this.option.tooltip.textStyle,this.ecTheme.textStyle),this._needAxisTrigger=!1,"axis"===this.option.tooltip.trigger&&(this._needAxisTrigger=!0);for(var t=this.option.series,i=0,n=t.length;n>i;i++)if("axis"===this.query(t[i],"tooltip.trigger")){this._needAxisTrigger=!0;break}this._showDelay=this.option.tooltip.showDelay,this._hideDelay=this.option.tooltip.hideDelay,this._defaultCssText=this._style(this.option.tooltip),this._setSelectedMap(),this._axisLineWidth=this.option.tooltip.axisPointer.lineStyle.width,this._enterable=this.option.tooltip.enterable,!this._enterable&&this._tDom.className.indexOf(h.elementClassName)<0&&(this._tDom.className+=" "+h.elementClassName)}if(this.showing){var a=this;setTimeout(function(){a.zr.trigger(h.EVENT.MOUSEMOVE,a.zr.handler._event)},50)}},onbeforDispose:function(){this._lastTipShape&&this._lastTipShape.tipShape.length>0&&this.zr.delShape(this._lastTipShape.tipShape),clearTimeout(this._hidingTicket),clearTimeout(this._showingTicket),this.zr.un(h.EVENT.MOUSEMOVE,this._onmousemove),this.zr.un(h.EVENT.GLOBALOUT,this._onglobalout),this.hasAppend&&this.dom.firstChild&&this.dom.firstChild.removeChild(this._tDom),this._tDom=null},_encodeHTML:function(e){return String(e).replace(/&/g,"&").replace(//g,">").replace(/"/g,""").replace(/'/g,"'")}},d.inherits(t,i),e("../component").define("tooltip",t),t}),i("echarts/component/legend",["require","./base","zrender/shape/Text","zrender/shape/Rectangle","zrender/shape/Sector","../util/shape/Icon","../util/shape/Candle","../config","zrender/tool/util","zrender/tool/area","../component"],function(e){function t(e,t,n,a,o){if(!this.query(a,"legend.data"))return void console.error("option.legend.data has not been defined.");i.call(this,e,t,n,a,o);var r=this;r._legendSelected=function(e){r.__legendSelected(e)},r._dispatchHoverLink=function(e){return r.__dispatchHoverLink(e)},this._colorIndex=0,this._colorMap={},this._selectedMap={},this._hasDataMap={},this.refresh(a)}var i=e("./base"),n=e("zrender/shape/Text"),a=e("zrender/shape/Rectangle"),o=e("zrender/shape/Sector"),r=e("../util/shape/Icon"),s=e("../util/shape/Candle"),l=e("../config");l.legend={zlevel:0,z:4,show:!0,orient:"horizontal",x:"center",y:"top",backgroundColor:"rgba(0,0,0,0)",borderColor:"#ccc",borderWidth:0,padding:5,itemGap:10,itemWidth:20,itemHeight:14,textStyle:{color:"#333"},selectedMode:!0};var h=e("zrender/tool/util"),m=e("zrender/tool/area");t.prototype={type:l.COMPONENT_TYPE_LEGEND,_buildShape:function(){if(this.legendOption.show){this._itemGroupLocation=this._getItemGroupLocation(),this._buildBackground(),this._buildItem();for(var e=0,t=this.shapeList.length;t>e;e++)this.zr.addShape(this.shapeList[e])}},_buildItem:function(){var e,t,i,a,o,s,l,V,U=this.legendOption.data,d=U.length,p=this.legendOption.textStyle,c=this.zr.getWidth(),u=this.zr.getHeight(),y=this._itemGroupLocation.x,g=this._itemGroupLocation.y,b=this.legendOption.itemWidth,f=this.legendOption.itemHeight,k=this.legendOption.itemGap;"vertical"===this.legendOption.orient&&"right"===this.legendOption.x&&(y=this._itemGroupLocation.x+this._itemGroupLocation.width-b);for(var x=0;d>x;x++)o=h.merge(U[x].textStyle||{},p),s=this.getFont(o),e=this._getName(U[x]),l=this._getFormatterName(e),""!==e?(t=U[x].icon||this._getSomethingByName(e).type,V=this.getColor(e),"horizontal"===this.legendOption.orient?200>c-y&&b+5+m.getTextWidth(l,s)+(x===d-1||""===U[x+1]?0:k)>=c-y&&(y=this._itemGroupLocation.x,g+=f+k):200>u-g&&f+(x===d-1||""===U[x+1]?0:k)>=u-g&&("right"===this.legendOption.x?y-=this._itemGroupLocation.maxWidth+k:y+=this._itemGroupLocation.maxWidth+k,g=this._itemGroupLocation.y),i=this._getItemShapeByType(y,g,b,f,this._selectedMap[e]&&this._hasDataMap[e]?V:"#ccc",t,V),i._name=e,i=new r(i),a={zlevel:this.getZlevelBase(),z:this.getZBase(),style:{x:y+b+5,y:g+f/2,color:this._selectedMap[e]?"auto"===o.color?V:o.color:"#ccc",text:l,textFont:s,textBaseline:"middle"},highlightStyle:{color:V,brushType:"fill"},hoverable:!!this.legendOption.selectedMode,clickable:!!this.legendOption.selectedMode},"vertical"===this.legendOption.orient&&"right"===this.legendOption.x&&(a.style.x-=b+10,a.style.textAlign="right"),a._name=e,a=new n(a),this.legendOption.selectedMode&&(i.onclick=a.onclick=this._legendSelected,i.onmouseover=a.onmouseover=this._dispatchHoverLink,i.hoverConnect=a.id,a.hoverConnect=i.id),this.shapeList.push(i),this.shapeList.push(a),"horizontal"===this.legendOption.orient?y+=b+5+m.getTextWidth(l,s)+k:g+=f+k):"horizontal"===this.legendOption.orient?(y=this._itemGroupLocation.x,g+=f+k):("right"===this.legendOption.x?y-=this._itemGroupLocation.maxWidth+k:y+=this._itemGroupLocation.maxWidth+k,g=this._itemGroupLocation.y);"horizontal"===this.legendOption.orient&&"center"===this.legendOption.x&&g!=this._itemGroupLocation.y&&this._mLineOptimize()},_getName:function(e){return"undefined"!=typeof e.name?e.name:e},_getFormatterName:function(e){var t,i=this.legendOption.formatter;return t="function"==typeof i?i.call(this.myChart,e):"string"==typeof i?i.replace("{name}",e):e},_getFormatterNameFromData:function(e){var t=this._getName(e);return this._getFormatterName(t)},_mLineOptimize:function(){for(var e=[],t=this._itemGroupLocation.x,i=2,n=this.shapeList.length;n>i;i++)this.shapeList[i].style.x===t?e.push((this._itemGroupLocation.width-(this.shapeList[i-1].style.x+m.getTextWidth(this.shapeList[i-1].style.text,this.shapeList[i-1].style.textFont)-t))/2):i===n-1&&e.push((this._itemGroupLocation.width-(this.shapeList[i].style.x+m.getTextWidth(this.shapeList[i].style.text,this.shapeList[i].style.textFont)-t))/2);for(var a=-1,i=1,n=this.shapeList.length;n>i;i++)this.shapeList[i].style.x===t&&a++,0!==e[a]&&(this.shapeList[i].style.x+=e[a])},_buildBackground:function(){var e=this.reformCssArray(this.legendOption.padding);this.shapeList.push(new a({zlevel:this.getZlevelBase(),z:this.getZBase(),hoverable:!1,style:{x:this._itemGroupLocation.x-e[3],y:this._itemGroupLocation.y-e[0],width:this._itemGroupLocation.width+e[3]+e[1],height:this._itemGroupLocation.height+e[0]+e[2],brushType:0===this.legendOption.borderWidth?"fill":"both",color:this.legendOption.backgroundColor,strokeColor:this.legendOption.borderColor,lineWidth:this.legendOption.borderWidth}}))},_getItemGroupLocation:function(){var e=this.legendOption.data,t=e.length,i=this.legendOption.itemGap,n=this.legendOption.itemWidth+5,a=this.legendOption.itemHeight,o=this.legendOption.textStyle,r=this.getFont(o),s=0,l=0,V=this.reformCssArray(this.legendOption.padding),U=this.zr.getWidth()-V[1]-V[3],d=this.zr.getHeight()-V[0]-V[2],p=0,c=0;if("horizontal"===this.legendOption.orient){l=a;for(var u=0;t>u;u++)if(""!==this._getName(e[u])){var y=m.getTextWidth(this._getFormatterNameFromData(e[u]),e[u].textStyle?this.getFont(h.merge(e[u].textStyle||{},o)):r);p+n+y+i>U?(p-=i,s=Math.max(s,p),l+=a+i,p=0):(p+=n+y+i,s=Math.max(s,p-i))}else p-=i,s=Math.max(s,p),l+=a+i,p=0}else{for(var u=0;t>u;u++)c=Math.max(c,m.getTextWidth(this._getFormatterNameFromData(e[u]),e[u].textStyle?this.getFont(h.merge(e[u].textStyle||{},o)):r));c+=n,s=c;for(var u=0;t>u;u++)""!==this._getName(e[u])?p+a+i>d?(s+=c+i,p-=i,l=Math.max(l,p),p=0):(p+=a+i,l=Math.max(l,p-i)):(s+=c+i,p-=i,l=Math.max(l,p),p=0)}U=this.zr.getWidth(),d=this.zr.getHeight();var g;switch(this.legendOption.x){case"center":g=Math.floor((U-s)/2);break;case"left":g=V[3]+this.legendOption.borderWidth;break;case"right":g=U-s-V[1]-V[3]-2*this.legendOption.borderWidth;break;default:g=this.parsePercent(this.legendOption.x,U)}var b;switch(this.legendOption.y){case"top":b=V[0]+this.legendOption.borderWidth;break;case"bottom":b=d-l-V[0]-V[2]-2*this.legendOption.borderWidth;break;case"center":b=Math.floor((d-l)/2);break;default:b=this.parsePercent(this.legendOption.y,d)}return{x:g,y:b,width:s,height:l,maxWidth:c}},_getSomethingByName:function(e){for(var t,i=this.option.series,n=0,a=i.length;a>n;n++){if(i[n].name===e)return{type:i[n].type,series:i[n],seriesIndex:n,data:null,dataIndex:-1};if(i[n].type===l.CHART_TYPE_PIE||i[n].type===l.CHART_TYPE_RADAR||i[n].type===l.CHART_TYPE_CHORD||i[n].type===l.CHART_TYPE_FORCE||i[n].type===l.CHART_TYPE_FUNNEL||i[n].type===l.CHART_TYPE_TREEMAP){t=i[n].categories||i[n].data||i[n].nodes;for(var o=0,r=t.length;r>o;o++)if(t[o].name===e)return{type:i[n].type,series:i[n],seriesIndex:n,data:t[o],dataIndex:o}}}return{type:"bar",series:null,seriesIndex:-1,data:null,dataIndex:-1}},_getItemShapeByType:function(e,t,i,n,a,o,r){var s,h="#ccc"===a?r:a,m={zlevel:this.getZlevelBase(),z:this.getZBase(),style:{iconType:"legendicon"+o,x:e,y:t,width:i,height:n,color:a,strokeColor:a,lineWidth:2},highlightStyle:{color:h,strokeColor:h,lineWidth:1},hoverable:this.legendOption.selectedMode,clickable:this.legendOption.selectedMode};if(o.match("image")){var s=o.replace(new RegExp("^image:\\/\\/"),"");o="image"}switch(o){case"line":m.style.brushType="stroke",m.highlightStyle.lineWidth=3;break;case"radar":case"venn":case"tree":case"treemap":case"scatter":m.highlightStyle.lineWidth=3;break;case"k":m.style.brushType="both",m.highlightStyle.lineWidth=3,m.highlightStyle.color=m.style.color=this.deepQuery([this.ecTheme,l],"k.itemStyle.normal.color")||"#fff",m.style.strokeColor="#ccc"!=a?this.deepQuery([this.ecTheme,l],"k.itemStyle.normal.lineStyle.color")||"#ff3200":a;break;case"image":m.style.iconType="image",m.style.image=s,"#ccc"===a&&(m.style.opacity=.5)}return m},__legendSelected:function(e){var t=e.target._name;if("single"===this.legendOption.selectedMode)for(var i in this._selectedMap)this._selectedMap[i]=!1;this._selectedMap[t]=!this._selectedMap[t],this.messageCenter.dispatch(l.EVENT.LEGEND_SELECTED,e.event,{selected:this._selectedMap,target:t},this.myChart)},__dispatchHoverLink:function(e){this.messageCenter.dispatch(l.EVENT.LEGEND_HOVERLINK,e.event,{target:e.target._name},this.myChart)},refresh:function(e){if(e){this.option=e||this.option,this.option.legend=this.reformOption(this.option.legend),this.legendOption=this.option.legend;var t,i,n,a,o=this.legendOption.data||[];if(this.legendOption.selected)for(var r in this.legendOption.selected)this._selectedMap[r]="undefined"!=typeof this._selectedMap[r]?this._selectedMap[r]:this.legendOption.selected[r];for(var s=0,h=o.length;h>s;s++)t=this._getName(o[s]),""!==t&&(i=this._getSomethingByName(t),i.series?(this._hasDataMap[t]=!0,a=!i.data||i.type!==l.CHART_TYPE_PIE&&i.type!==l.CHART_TYPE_FORCE&&i.type!==l.CHART_TYPE_FUNNEL?[i.series]:[i.data,i.series],n=this.getItemStyleColor(this.deepQuery(a,"itemStyle.normal.color"),i.seriesIndex,i.dataIndex,i.data),n&&i.type!=l.CHART_TYPE_K&&this.setColor(t,n),this._selectedMap[t]=null!=this._selectedMap[t]?this._selectedMap[t]:!0):this._hasDataMap[t]=!1)}this.clear(),this._buildShape()},getRelatedAmount:function(e){for(var t,i=0,n=this.option.series,a=0,o=n.length;o>a;a++)if(n[a].name===e&&i++,n[a].type===l.CHART_TYPE_PIE||n[a].type===l.CHART_TYPE_RADAR||n[a].type===l.CHART_TYPE_CHORD||n[a].type===l.CHART_TYPE_FORCE||n[a].type===l.CHART_TYPE_FUNNEL){t=n[a].type!=l.CHART_TYPE_FORCE?n[a].data:n[a].categories;for(var r=0,s=t.length;s>r;r++)t[r].name===e&&"-"!=t[r].value&&i++}return i},setColor:function(e,t){this._colorMap[e]=t},getColor:function(e){return this._colorMap[e]||(this._colorMap[e]=this.zr.getColor(this._colorIndex++)),this._colorMap[e]},hasColor:function(e){return this._colorMap[e]?this._colorMap[e]:!1},add:function(e,t){ +for(var i=this.legendOption.data,n=0,a=i.length;a>n;n++)if(this._getName(i[n])===e)return;this.legendOption.data.push(e),this.setColor(e,t),this._selectedMap[e]=!0,this._hasDataMap[e]=!0},del:function(e){for(var t=this.legendOption.data,i=0,n=t.length;n>i;i++)if(this._getName(t[i])===e)return this.legendOption.data.splice(i,1)},getItemShape:function(e){if(null!=e)for(var t,i=0,n=this.shapeList.length;n>i;i++)if(t=this.shapeList[i],t._name===e&&"text"!=t.type)return t},setItemShape:function(e,t){for(var i,n=0,a=this.shapeList.length;a>n;n++)i=this.shapeList[n],i._name===e&&"text"!=i.type&&(this._selectedMap[e]||(t.style.color="#ccc",t.style.strokeColor="#ccc"),this.zr.modShape(i.id,t))},isSelected:function(e){return"undefined"!=typeof this._selectedMap[e]?this._selectedMap[e]:!0},getSelectedMap:function(){return this._selectedMap},setSelected:function(e,t){if("single"===this.legendOption.selectedMode)for(var i in this._selectedMap)this._selectedMap[i]=!1;this._selectedMap[e]=t,this.messageCenter.dispatch(l.EVENT.LEGEND_SELECTED,null,{selected:this._selectedMap,target:e},this.myChart)},onlegendSelected:function(e,t){var i=e.selected;for(var n in i)this._selectedMap[n]!=i[n]&&(t.needRefresh=!0),this._selectedMap[n]=i[n]}};var V={line:function(e,t){var i=t.height/2;e.moveTo(t.x,t.y+i),e.lineTo(t.x+t.width,t.y+i)},pie:function(e,t){var i=t.x,n=t.y,a=t.width,r=t.height;o.prototype.buildPath(e,{x:i+a/2,y:n+r+2,r:r,r0:6,startAngle:45,endAngle:135})},eventRiver:function(e,t){var i=t.x,n=t.y,a=t.width,o=t.height;e.moveTo(i,n+o),e.bezierCurveTo(i+a,n+o,i,n+4,i+a,n+4),e.lineTo(i+a,n),e.bezierCurveTo(i,n,i+a,n+o-4,i,n+o-4),e.lineTo(i,n+o)},k:function(e,t){var i=t.x,n=t.y,a=t.width,o=t.height;s.prototype.buildPath(e,{x:i+a/2,y:[n+1,n+1,n+o-6,n+o],width:a-6})},bar:function(e,t){var i=t.x,n=t.y+1,a=t.width,o=t.height-2,r=3;e.moveTo(i+r,n),e.lineTo(i+a-r,n),e.quadraticCurveTo(i+a,n,i+a,n+r),e.lineTo(i+a,n+o-r),e.quadraticCurveTo(i+a,n+o,i+a-r,n+o),e.lineTo(i+r,n+o),e.quadraticCurveTo(i,n+o,i,n+o-r),e.lineTo(i,n+r),e.quadraticCurveTo(i,n,i+r,n)},force:function(e,t){r.prototype.iconLibrary.circle(e,t)},radar:function(e,t){var i=6,n=t.x+t.width/2,a=t.y+t.height/2,o=t.height/2,r=2*Math.PI/i,s=-Math.PI/2,l=n+o*Math.cos(s),h=a+o*Math.sin(s);e.moveTo(l,h),s+=r;for(var m=0,V=i-1;V>m;m++)e.lineTo(n+o*Math.cos(s),a+o*Math.sin(s)),s+=r;e.lineTo(l,h)}};V.chord=V.pie,V.map=V.bar;for(var U in V)r.prototype.iconLibrary["legendicon"+U]=V[U];return h.inherits(t,i),e("../component").define("legend",t),t}),i("echarts/util/ecData",[],function(){function e(e,t,i,n,a,o,r,s){var l;return"undefined"!=typeof n&&(l=null==n.value?n:n.value),e._echartsData={_series:t,_seriesIndex:i,_data:n,_dataIndex:a,_name:o,_value:l,_special:r,_special2:s},e._echartsData}function t(e,t){var i=e._echartsData;if(!t)return i;switch(t){case"series":case"seriesIndex":case"data":case"dataIndex":case"name":case"value":case"special":case"special2":return i&&i["_"+t]}return null}function i(e,t,i){switch(e._echartsData=e._echartsData||{},t){case"series":case"seriesIndex":case"data":case"dataIndex":case"name":case"value":case"special":case"special2":e._echartsData["_"+t]=i}}function n(e,t){t._echartsData={_series:e._echartsData._series,_seriesIndex:e._echartsData._seriesIndex,_data:e._echartsData._data,_dataIndex:e._echartsData._dataIndex,_name:e._echartsData._name,_value:e._echartsData._value,_special:e._echartsData._special,_special2:e._echartsData._special2}}return{pack:e,set:i,get:t,clone:n}}),i("echarts/chart",[],function(){var e={},t={};return e.define=function(i,n){return t[i]=n,e},e.get=function(e){return t[e]},e}),i("zrender/tool/color",["require","../tool/util"],function(e){function t(e){D=e}function i(){D=N}function n(e,t){return e=0|e,t=t||D,t[e%t.length]}function a(e){B=e}function o(){H=B}function r(){return B}function s(e,t,i,n,a,o,r){O||(O=P.getContext());for(var s=O.createRadialGradient(e,t,i,n,a,o),l=0,h=r.length;h>l;l++)s.addColorStop(r[l][0],r[l][1]);return s.__nonRecursion=!0,s}function l(e,t,i,n,a){O||(O=P.getContext());for(var o=O.createLinearGradient(e,t,i,n),r=0,s=a.length;s>r;r++)o.addColorStop(a[r][0],a[r][1]);return o.__nonRecursion=!0,o}function h(e,t,i){e=p(e),t=p(t),e=I(e),t=I(t);for(var n=[],a=(t[0]-e[0])/i,o=(t[1]-e[1])/i,r=(t[2]-e[2])/i,s=(t[3]-e[3])/i,l=0,h=e[0],m=e[1],U=e[2],d=e[3];i>l;l++)n[l]=V([S(Math.floor(h),[0,255]),S(Math.floor(m),[0,255]),S(Math.floor(U),[0,255]),d.toFixed(4)-0],"rgba"),h+=a,m+=o,U+=r,d+=s;return h=t[0],m=t[1],U=t[2],d=t[3],n[l]=V([h,m,U,d],"rgba"),n}function m(e,t){var i=[],n=e.length;if(void 0===t&&(t=20),1===n)i=h(e[0],e[0],t);else if(n>1)for(var a=0,o=n-1;o>a;a++){var r=h(e[a],e[a+1],t);o-1>a&&r.pop(),i=i.concat(r)}return i}function V(e,t){if(t=t||"rgb",e&&(3===e.length||4===e.length)){if(e=C(e,function(e){return e>1?Math.ceil(e):e}),t.indexOf("hex")>-1)return"#"+((1<<24)+(e[0]<<16)+(e[1]<<8)+ +e[2]).toString(16).slice(1);if(t.indexOf("hs")>-1){var i=C(e.slice(1,3),function(e){return e+"%"});e[1]=i[0],e[2]=i[1]}return t.indexOf("a")>-1?(3===e.length&&e.push(1),e[3]=S(e[3],[0,1]),t+"("+e.slice(0,4).join(",")+")"):t+"("+e.slice(0,3).join(",")+")"}}function U(e){e=L(e),e.indexOf("rgba")<0&&(e=p(e));var t=[],i=0;return e.replace(/[\d.]+/g,function(e){e=3>i?0|e:+e,t[i++]=e}),t}function d(e,t){if(!E(e))return e;var i=I(e),n=i[3];return"undefined"==typeof n&&(n=1),e.indexOf("hsb")>-1?i=F(i):e.indexOf("hsl")>-1&&(i=T(i)),t.indexOf("hsb")>-1||t.indexOf("hsv")>-1?i=A(i):t.indexOf("hsl")>-1&&(i=M(i)),i[3]=n,V(i,t)}function p(e){return d(e,"rgba")}function c(e){return d(e,"rgb")}function u(e){return d(e,"hex")}function y(e){return d(e,"hsva")}function g(e){return d(e,"hsv")}function b(e){return d(e,"hsba")}function f(e){return d(e,"hsb")}function k(e){return d(e,"hsla")}function x(e){return d(e,"hsl")}function _(e){for(var t in G)if(u(G[t])===u(e))return t;return null}function L(e){return String(e).replace(/\s+/g,"")}function W(e){if(G[e]&&(e=G[e]),e=L(e),e=e.replace(/hsv/i,"hsb"),/^#[\da-f]{3}$/i.test(e)){e=parseInt(e.slice(1),16);var t=(3840&e)<<8,i=(240&e)<<4,n=15&e;e="#"+((1<<24)+(t<<4)+t+(i<<4)+i+(n<<4)+n).toString(16).slice(1)}return e}function X(e,t){if(!E(e))return e;var i=t>0?1:-1;"undefined"==typeof t&&(t=0),t=Math.abs(t)>1?1:Math.abs(t),e=c(e);for(var n=I(e),a=0;3>a;a++)n[a]=1===i?n[a]*(1-t)|0:(255-n[a])*t+n[a]|0;return"rgb("+n.join(",")+")"}function v(e){if(!E(e))return e;var t=I(p(e));return t=C(t,function(e){return 255-e}),V(t,"rgb")}function w(e,t,i){if(!E(e)||!E(t))return e;"undefined"==typeof i&&(i=.5),i=1-S(i,[0,1]);for(var n=2*i-1,a=I(p(e)),o=I(p(t)),r=a[3]-o[3],s=((n*r===-1?n:(n+r)/(1+n*r))+1)/2,l=1-s,h=[],m=0;3>m;m++)h[m]=a[m]*s+o[m]*l;var U=a[3]*i+o[3]*(1-i);return U=Math.max(0,Math.min(1,U)),1===a[3]&&1===o[3]?V(h,"rgb"):(h[3]=U,V(h,"rgba"))}function K(){return"#"+(Math.random().toString(16)+"0000").slice(2,8)}function I(e){e=W(e);var t=e.match(R);if(null===t)throw new Error("The color format error");var i,n,a,o=[];if(t[2])i=t[2].replace("#","").split(""),a=[i[0]+i[1],i[2]+i[3],i[4]+i[5]],o=C(a,function(e){return S(parseInt(e,16),[0,255])});else if(t[4]){var r=t[4].split(",");n=r[3],a=r.slice(0,3),o=C(a,function(e){return e=Math.floor(e.indexOf("%")>0?2.55*parseInt(e,0):e),S(e,[0,255])}),"undefined"!=typeof n&&o.push(S(parseFloat(n),[0,1]))}else if(t[5]||t[6]){var s=(t[5]||t[6]).split(","),l=parseInt(s[0],0)/360,h=s[1],m=s[2];n=s[3],o=C([h,m],function(e){return S(parseFloat(e)/100,[0,1])}),o.unshift(l),"undefined"!=typeof n&&o.push(S(parseFloat(n),[0,1]))}return o}function J(e,t){if(!E(e))return e;null===t&&(t=1);var i=I(p(e));return i[3]=S(Number(t).toFixed(4),[0,1]),V(i,"rgba")}function C(e,t){if("function"!=typeof t)throw new TypeError;for(var i=e?e.length:0,n=0;i>n;n++)e[n]=t(e[n]);return e}function S(e,t){return e<=t[0]?e=t[0]:e>=t[1]&&(e=t[1]),e}function E(e){return e instanceof Array||"string"==typeof e}function F(e){var t,i,n,a=e[0],o=e[1],r=e[2];if(0===o)t=255*r,i=255*r,n=255*r;else{var s=6*a;6===s&&(s=0);var l=0|s,h=r*(1-o),m=r*(1-o*(s-l)),V=r*(1-o*(1-(s-l))),U=0,d=0,p=0;0===l?(U=r,d=V,p=h):1===l?(U=m,d=r,p=h):2===l?(U=h,d=r,p=V):3===l?(U=h,d=m,p=r):4===l?(U=V,d=h,p=r):(U=r,d=h,p=m),t=255*U,i=255*d,n=255*p}return[t,i,n]}function T(e){var t,i,n,a=e[0],o=e[1],r=e[2];if(0===o)t=255*r,i=255*r,n=255*r;else{var s;s=.5>r?r*(1+o):r+o-o*r;var l=2*r-s;t=255*z(l,s,a+1/3),i=255*z(l,s,a),n=255*z(l,s,a-1/3)}return[t,i,n]}function z(e,t,i){return 0>i&&(i+=1),i>1&&(i-=1),1>6*i?e+6*(t-e)*i:1>2*i?t:2>3*i?e+(t-e)*(2/3-i)*6:e}function A(e){var t,i,n=e[0]/255,a=e[1]/255,o=e[2]/255,r=Math.min(n,a,o),s=Math.max(n,a,o),l=s-r,h=s;if(0===l)t=0,i=0;else{i=l/s;var m=((s-n)/6+l/2)/l,V=((s-a)/6+l/2)/l,U=((s-o)/6+l/2)/l;n===s?t=U-V:a===s?t=1/3+m-U:o===s&&(t=2/3+V-m),0>t&&(t+=1),t>1&&(t-=1)}return t=360*t,i=100*i,h=100*h,[t,i,h]}function M(e){var t,i,n=e[0]/255,a=e[1]/255,o=e[2]/255,r=Math.min(n,a,o),s=Math.max(n,a,o),l=s-r,h=(s+r)/2;if(0===l)t=0,i=0;else{i=.5>h?l/(s+r):l/(2-s-r);var m=((s-n)/6+l/2)/l,V=((s-a)/6+l/2)/l,U=((s-o)/6+l/2)/l;n===s?t=U-V:a===s?t=1/3+m-U:o===s&&(t=2/3+V-m),0>t&&(t+=1),t>1&&(t-=1)}return t=360*t,i=100*i,h=100*h,[t,i,h]}var O,P=e("../tool/util"),D=["#ff9277"," #dddd00"," #ffc877"," #bbe3ff"," #d5ffbb","#bbbbff"," #ddb000"," #b0dd00"," #e2bbff"," #ffbbe3","#ff7777"," #ff9900"," #83dd00"," #77e3ff"," #778fff","#c877ff"," #ff77ab"," #ff6600"," #aa8800"," #77c7ff","#ad77ff"," #ff77ff"," #dd0083"," #777700"," #00aa00","#0088aa"," #8400dd"," #aa0088"," #dd0000"," #772e00"],N=D,B="rgba(255,255,0,0.5)",H=B,R=/^\s*((#[a-f\d]{6})|(#[a-f\d]{3})|rgba?\(\s*([\d\.]+%?\s*,\s*[\d\.]+%?\s*,\s*[\d\.]+%?(?:\s*,\s*[\d\.]+%?)?)\s*\)|hsba?\(\s*([\d\.]+(?:deg|\xb0|%)?\s*,\s*[\d\.]+%?\s*,\s*[\d\.]+%?(?:\s*,\s*[\d\.]+)?)%?\s*\)|hsla?\(\s*([\d\.]+(?:deg|\xb0|%)?\s*,\s*[\d\.]+%?\s*,\s*[\d\.]+%?(?:\s*,\s*[\d\.]+)?)%?\s*\))\s*$/i,G={aliceblue:"#f0f8ff",antiquewhite:"#faebd7",aqua:"#0ff",aquamarine:"#7fffd4",azure:"#f0ffff",beige:"#f5f5dc",bisque:"#ffe4c4",black:"#000",blanchedalmond:"#ffebcd",blue:"#00f",blueviolet:"#8a2be2",brown:"#a52a2a",burlywood:"#deb887",cadetblue:"#5f9ea0",chartreuse:"#7fff00",chocolate:"#d2691e",coral:"#ff7f50",cornflowerblue:"#6495ed",cornsilk:"#fff8dc",crimson:"#dc143c",cyan:"#0ff",darkblue:"#00008b",darkcyan:"#008b8b",darkgoldenrod:"#b8860b",darkgray:"#a9a9a9",darkgrey:"#a9a9a9",darkgreen:"#006400",darkkhaki:"#bdb76b",darkmagenta:"#8b008b",darkolivegreen:"#556b2f",darkorange:"#ff8c00",darkorchid:"#9932cc",darkred:"#8b0000",darksalmon:"#e9967a",darkseagreen:"#8fbc8f",darkslateblue:"#483d8b",darkslategray:"#2f4f4f",darkslategrey:"#2f4f4f",darkturquoise:"#00ced1",darkviolet:"#9400d3",deeppink:"#ff1493",deepskyblue:"#00bfff",dimgray:"#696969",dimgrey:"#696969",dodgerblue:"#1e90ff",firebrick:"#b22222",floralwhite:"#fffaf0",forestgreen:"#228b22",fuchsia:"#f0f",gainsboro:"#dcdcdc",ghostwhite:"#f8f8ff",gold:"#ffd700",goldenrod:"#daa520",gray:"#808080",grey:"#808080",green:"#008000",greenyellow:"#adff2f",honeydew:"#f0fff0",hotpink:"#ff69b4",indianred:"#cd5c5c",indigo:"#4b0082",ivory:"#fffff0",khaki:"#f0e68c",lavender:"#e6e6fa",lavenderblush:"#fff0f5",lawngreen:"#7cfc00",lemonchiffon:"#fffacd",lightblue:"#add8e6",lightcoral:"#f08080",lightcyan:"#e0ffff",lightgoldenrodyellow:"#fafad2",lightgray:"#d3d3d3",lightgrey:"#d3d3d3",lightgreen:"#90ee90",lightpink:"#ffb6c1",lightsalmon:"#ffa07a",lightseagreen:"#20b2aa",lightskyblue:"#87cefa",lightslategray:"#789",lightslategrey:"#789",lightsteelblue:"#b0c4de",lightyellow:"#ffffe0",lime:"#0f0",limegreen:"#32cd32",linen:"#faf0e6",magenta:"#f0f",maroon:"#800000",mediumaquamarine:"#66cdaa",mediumblue:"#0000cd",mediumorchid:"#ba55d3",mediumpurple:"#9370d8",mediumseagreen:"#3cb371",mediumslateblue:"#7b68ee",mediumspringgreen:"#00fa9a",mediumturquoise:"#48d1cc",mediumvioletred:"#c71585",midnightblue:"#191970",mintcream:"#f5fffa",mistyrose:"#ffe4e1",moccasin:"#ffe4b5",navajowhite:"#ffdead",navy:"#000080",oldlace:"#fdf5e6",olive:"#808000",olivedrab:"#6b8e23",orange:"#ffa500",orangered:"#ff4500",orchid:"#da70d6",palegoldenrod:"#eee8aa",palegreen:"#98fb98",paleturquoise:"#afeeee",palevioletred:"#d87093",papayawhip:"#ffefd5",peachpuff:"#ffdab9",peru:"#cd853f",pink:"#ffc0cb",plum:"#dda0dd",powderblue:"#b0e0e6",purple:"#800080",red:"#f00",rosybrown:"#bc8f8f",royalblue:"#4169e1",saddlebrown:"#8b4513",salmon:"#fa8072",sandybrown:"#f4a460",seagreen:"#2e8b57",seashell:"#fff5ee",sienna:"#a0522d",silver:"#c0c0c0",skyblue:"#87ceeb",slateblue:"#6a5acd",slategray:"#708090",slategrey:"#708090",snow:"#fffafa",springgreen:"#00ff7f",steelblue:"#4682b4",tan:"#d2b48c",teal:"#008080",thistle:"#d8bfd8",tomato:"#ff6347",turquoise:"#40e0d0",violet:"#ee82ee",wheat:"#f5deb3",white:"#fff",whitesmoke:"#f5f5f5",yellow:"#ff0",yellowgreen:"#9acd32"};return{customPalette:t,resetPalette:i,getColor:n,getHighlightColor:r,customHighlight:a,resetHighlight:o,getRadialGradient:s,getLinearGradient:l,getGradientColors:m,getStepColors:h,reverse:v,mix:w,lift:X,trim:L,random:K,toRGB:c,toRGBA:p,toHex:u,toHSL:x,toHSLA:k,toHSB:f,toHSBA:b,toHSV:g,toHSVA:y,toName:_,toColor:V,toArray:U,alpha:J,getData:I}}),i("echarts/component/timeline",["require","./base","zrender/shape/Rectangle","../util/shape/Icon","../util/shape/Chain","../config","zrender/tool/util","zrender/tool/area","zrender/tool/event","../component"],function(e){function t(e,t,i,a,o){n.call(this,e,t,i,a,o);var r=this;if(r._onclick=function(e){return r.__onclick(e)},r._ondrift=function(e,t){return r.__ondrift(this,e,t)},r._ondragend=function(){return r.__ondragend()},r._setCurrentOption=function(){var e=r.timelineOption;r.currentIndex%=e.data.length;var t=r.options[r.currentIndex]||{};r.myChart._setOption(t,e.notMerge,!0),r.messageCenter.dispatch(s.EVENT.TIMELINE_CHANGED,null,{currentIndex:r.currentIndex,data:null!=e.data[r.currentIndex].name?e.data[r.currentIndex].name:e.data[r.currentIndex]},r.myChart)},r._onFrame=function(){r._setCurrentOption(),r._syncHandleShape(),r.timelineOption.autoPlay&&(r.playTicket=setTimeout(function(){return r.currentIndex+=1,!r.timelineOption.loop&&r.currentIndex>=r.timelineOption.data.length?(r.currentIndex=r.timelineOption.data.length-1,void r.stop()):void r._onFrame()},r.timelineOption.playInterval))},this.setTheme(!1),this.options=this.option.options,this.currentIndex=this.timelineOption.currentIndex%this.timelineOption.data.length,this.timelineOption.notMerge||0===this.currentIndex||(this.options[this.currentIndex]=l.merge(this.options[this.currentIndex],this.options[0])),this.timelineOption.show&&(this._buildShape(),this._syncHandleShape()),this._setCurrentOption(),this.timelineOption.autoPlay){var r=this;this.playTicket=setTimeout(function(){r.play()},null!=this.ecTheme.animationDuration?this.ecTheme.animationDuration:s.animationDuration)}}function i(e,t){var i=2,n=t.x+i,a=t.y+i+2,r=t.width-i,s=t.height-i,l=t.symbol;if("last"===l)e.moveTo(n+r-2,a+s/3),e.lineTo(n+r-2,a),e.lineTo(n+2,a+s/2),e.lineTo(n+r-2,a+s),e.lineTo(n+r-2,a+s/3*2),e.moveTo(n,a),e.lineTo(n,a);else if("next"===l)e.moveTo(n+2,a+s/3),e.lineTo(n+2,a),e.lineTo(n+r-2,a+s/2),e.lineTo(n+2,a+s),e.lineTo(n+2,a+s/3*2),e.moveTo(n,a),e.lineTo(n,a);else if("play"===l)if("stop"===t.status)e.moveTo(n+2,a),e.lineTo(n+r-2,a+s/2),e.lineTo(n+2,a+s),e.lineTo(n+2,a);else{var h="both"===t.brushType?2:3;e.rect(n+2,a,h,s),e.rect(n+r-h-2,a,h,s)}else if(l.match("image")){var m="";m=l.replace(new RegExp("^image:\\/\\/"),""),l=o.prototype.iconLibrary.image,l(e,{x:n,y:a,width:r,height:s,image:m})}}var n=e("./base"),a=e("zrender/shape/Rectangle"),o=e("../util/shape/Icon"),r=e("../util/shape/Chain"),s=e("../config");s.timeline={zlevel:0,z:4,show:!0,type:"time",notMerge:!1,realtime:!0,x:80,x2:80,y2:0,height:50,backgroundColor:"rgba(0,0,0,0)",borderColor:"#ccc",borderWidth:0,padding:5,controlPosition:"left",autoPlay:!1,loop:!0,playInterval:2e3,lineStyle:{width:1,color:"#666",type:"dashed"},label:{show:!0,interval:"auto",rotate:0,textStyle:{color:"#333"}},checkpointStyle:{symbol:"auto",symbolSize:"auto",color:"auto",borderColor:"auto",borderWidth:"auto",label:{show:!1,textStyle:{color:"auto"}}},controlStyle:{itemSize:15,itemGap:5,normal:{color:"#333"},emphasis:{color:"#1e90ff"}},symbol:"emptyDiamond",symbolSize:4,currentIndex:0};var l=e("zrender/tool/util"),h=e("zrender/tool/area"),m=e("zrender/tool/event");return t.prototype={type:s.COMPONENT_TYPE_TIMELINE,_buildShape:function(){if(this._location=this._getLocation(),this._buildBackground(),this._buildControl(),this._chainPoint=this._getChainPoint(),this.timelineOption.label.show)for(var e=this._getInterval(),t=0,i=this._chainPoint.length;i>t;t+=e)this._chainPoint[t].showLabel=!0;this._buildChain(),this._buildHandle();for(var t=0,n=this.shapeList.length;n>t;t++)this.zr.addShape(this.shapeList[t])},_getLocation:function(){var e,t=this.timelineOption,i=this.reformCssArray(this.timelineOption.padding),n=this.zr.getWidth(),a=this.parsePercent(t.x,n),o=this.parsePercent(t.x2,n);null==t.width?(e=n-a-o,o=n-o):(e=this.parsePercent(t.width,n),o=a+e);var r,s,l=this.zr.getHeight(),h=this.parsePercent(t.height,l);return null!=t.y?(r=this.parsePercent(t.y,l),s=r+h):(s=l-this.parsePercent(t.y2,l),r=s-h),{x:a+i[3],y:r+i[0],x2:o-i[1],y2:s-i[2],width:e-i[1]-i[3],height:h-i[0]-i[2]}},_getReformedLabel:function(e){var t=this.timelineOption,i=null!=t.data[e].name?t.data[e].name:t.data[e],n=t.data[e].formatter||t.label.formatter;return n&&("function"==typeof n?i=n.call(this.myChart,i):"string"==typeof n&&(i=n.replace("{value}",i))),i},_getInterval:function(){var e=this._chainPoint,t=this.timelineOption,i=t.label.interval;if("auto"===i){var n=t.label.textStyle.fontSize,a=t.data,o=t.data.length;if(o>3){var r,s,l=!1;for(i=0;!l&&o>i;){i++,l=!0;for(var m=i;o>m;m+=i){if(r=e[m].x-e[m-i].x,0!==t.label.rotate)s=n;else if(a[m].textStyle)s=h.getTextWidth(e[m].name,e[m].textFont);else{var V=e[m].name+"",U=(V.match(/\w/g)||"").length,d=V.length-U;s=U*n*2/3+d*n}if(s>r){l=!1;break}}}}else i=1}else i=i-0+1;return i},_getChainPoint:function(){function e(e){return null!=h[e].name?h[e].name:h[e]+""}var t,i=this.timelineOption,n=i.symbol.toLowerCase(),a=i.symbolSize,o=i.label.rotate,r=i.label.textStyle,s=this.getFont(r),h=i.data,m=this._location.x,V=this._location.y+this._location.height/4*3,U=this._location.x2-this._location.x,d=h.length,p=[];if(d>1){var c=U/d;if(c=c>50?50:20>c?5:c,U-=2*c,"number"===i.type)for(var u=0;d>u;u++)p.push(m+c+U/(d-1)*u);else{p[0]=new Date(e(0).replace(/-/g,"/")),p[d-1]=new Date(e(d-1).replace(/-/g,"/"))-p[0];for(var u=1;d>u;u++)p[u]=m+c+U*(new Date(e(u).replace(/-/g,"/"))-p[0])/p[d-1];p[0]=m+c}}else p.push(m+U/2);for(var y,g,b,f,k,x=[],u=0;d>u;u++)m=p[u],y=h[u].symbol&&h[u].symbol.toLowerCase()||n,y.match("empty")?(y=y.replace("empty",""),b=!0):b=!1,y.match("star")&&(g=y.replace("star","")-0||5,y="star"),t=h[u].textStyle?l.merge(h[u].textStyle||{},r):r,f=t.align||"center",o?(f=o>0?"right":"left",k=[o*Math.PI/180,m,V-5]):k=!1,x.push({x:m,n:g,isEmpty:b,symbol:y,symbolSize:h[u].symbolSize||a,color:h[u].color,borderColor:h[u].borderColor,borderWidth:h[u].borderWidth,name:this._getReformedLabel(u),textColor:t.color,textAlign:f,textBaseline:t.baseline||"middle",textX:m,textY:V-(o?5:0),textFont:h[u].textStyle?this.getFont(t):s,rotation:k,showLabel:!1});return x},_buildBackground:function(){var e=this.timelineOption,t=this.reformCssArray(this.timelineOption.padding),i=this._location.width,n=this._location.height;(0!==e.borderWidth||"rgba(0,0,0,0)"!=e.backgroundColor.replace(/\s/g,""))&&this.shapeList.push(new a({zlevel:this.getZlevelBase(),z:this.getZBase(),hoverable:!1,style:{x:this._location.x-t[3],y:this._location.y-t[0],width:i+t[1]+t[3],height:n+t[0]+t[2],brushType:0===e.borderWidth?"fill":"both",color:e.backgroundColor,strokeColor:e.borderColor,lineWidth:e.borderWidth}}))},_buildControl:function(){var e=this,t=this.timelineOption,i=t.lineStyle,n=t.controlStyle;if("none"!==t.controlPosition){var a,r=n.itemSize,s=n.itemGap;"left"===t.controlPosition?(a=this._location.x,this._location.x+=3*(r+s)):(a=this._location.x2-(3*(r+s)-s),this._location.x2-=3*(r+s));var h=this._location.y,m={zlevel:this.getZlevelBase(),z:this.getZBase()+1,style:{iconType:"timelineControl",symbol:"last",x:a,y:h,width:r,height:r,brushType:"stroke",color:n.normal.color,strokeColor:n.normal.color,lineWidth:i.width},highlightStyle:{color:n.emphasis.color,strokeColor:n.emphasis.color,lineWidth:i.width+1},clickable:!0};this._ctrLastShape=new o(m),this._ctrLastShape.onclick=function(){e.last()},this.shapeList.push(this._ctrLastShape),a+=r+s,this._ctrPlayShape=new o(l.clone(m)),this._ctrPlayShape.style.brushType="fill",this._ctrPlayShape.style.symbol="play",this._ctrPlayShape.style.status=this.timelineOption.autoPlay?"playing":"stop",this._ctrPlayShape.style.x=a,this._ctrPlayShape.onclick=function(){"stop"===e._ctrPlayShape.style.status?e.play():e.stop()},this.shapeList.push(this._ctrPlayShape),a+=r+s,this._ctrNextShape=new o(l.clone(m)),this._ctrNextShape.style.symbol="next",this._ctrNextShape.style.x=a,this._ctrNextShape.onclick=function(){e.next()},this.shapeList.push(this._ctrNextShape)}},_buildChain:function(){var e=this.timelineOption,t=e.lineStyle;this._timelineShae={zlevel:this.getZlevelBase(),z:this.getZBase(),style:{x:this._location.x,y:this.subPixelOptimize(this._location.y,t.width),width:this._location.x2-this._location.x,height:this._location.height,chainPoint:this._chainPoint,brushType:"both",strokeColor:t.color,lineWidth:t.width,lineType:t.type},hoverable:!1,clickable:!0,onclick:this._onclick},this._timelineShae=new r(this._timelineShae),this.shapeList.push(this._timelineShae)},_buildHandle:function(){var e=this._chainPoint[this.currentIndex],t=e.symbolSize+1;t=5>t?5:t,this._handleShape={zlevel:this.getZlevelBase(),z:this.getZBase()+1,hoverable:!1,draggable:!0,style:{iconType:"diamond",n:e.n,x:e.x-t,y:this._location.y+this._location.height/4-t,width:2*t,height:2*t,brushType:"both",textPosition:"specific",textX:e.x,textY:this._location.y-this._location.height/4,textAlign:"center",textBaseline:"middle"},highlightStyle:{},ondrift:this._ondrift,ondragend:this._ondragend},this._handleShape=new o(this._handleShape),this.shapeList.push(this._handleShape)},_syncHandleShape:function(){if(this.timelineOption.show){var e=this.timelineOption,t=e.checkpointStyle,i=this._chainPoint[this.currentIndex];this._handleShape.style.text=t.label.show?i.name:"",this._handleShape.style.textFont=i.textFont,this._handleShape.style.n=i.n,"auto"===t.symbol?this._handleShape.style.iconType="none"!=i.symbol?i.symbol:"diamond":(this._handleShape.style.iconType=t.symbol,t.symbol.match("star")&&(this._handleShape.style.n=t.symbol.replace("star","")-0||5,this._handleShape.style.iconType="star"));var n;"auto"===t.symbolSize?(n=i.symbolSize+2,n=5>n?5:n):n=t.symbolSize-0,this._handleShape.style.color="auto"===t.color?i.color?i.color:e.controlStyle.emphasis.color:t.color,this._handleShape.style.textColor="auto"===t.label.textStyle.color?this._handleShape.style.color:t.label.textStyle.color,this._handleShape.highlightStyle.strokeColor=this._handleShape.style.strokeColor="auto"===t.borderColor?i.borderColor?i.borderColor:"#fff":t.borderColor,this._handleShape.style.lineWidth="auto"===t.borderWidth?i.borderWidth?i.borderWidth:0:t.borderWidth-0,this._handleShape.highlightStyle.lineWidth=this._handleShape.style.lineWidth+1,this.zr.animate(this._handleShape.id,"style").when(500,{x:i.x-n,textX:i.x,y:this._location.y+this._location.height/4-n,width:2*n,height:2*n}).start("ExponentialOut")}},_findChainIndex:function(e){var t=this._chainPoint,i=t.length;if(e<=t[0].x)return 0;if(e>=t[i-1].x)return i-1;for(var n=0;i-1>n;n++)if(e>=t[n].x&&e<=t[n+1].x)return Math.abs(e-t[n].x)=n[a-1].x-n[a-1].symbolSize?(e.style.x=n[a-1].x-n[a-1].symbolSize,i=a-1):(e.style.x+=t,i=this._findChainIndex(e.style.x));var o=n[i],r=o.symbolSize+2;if(e.style.iconType=o.symbol,e.style.n=o.n,e.style.textX=e.style.x+r/2,e.style.y=this._location.y+this._location.height/4-r,e.style.width=2*r,e.style.height=2*r,e.style.text=o.name,i===this.currentIndex)return!0;if(this.currentIndex=i,this.timelineOption.realtime){clearTimeout(this.playTicket);var s=this;this.playTicket=setTimeout(function(){s._setCurrentOption()},200)}return!0},__ondragend:function(){this.isDragend=!0},ondragend:function(e,t){this.isDragend&&e.target&&(!this.timelineOption.realtime&&this._setCurrentOption(),t.dragOut=!0,t.dragIn=!0,t.needRefresh=!1,this.isDragend=!1,this._syncHandleShape())},last:function(){return this.timelineOption.autoPlay&&this.stop(),this.currentIndex-=1,this.currentIndex<0&&(this.currentIndex=this.timelineOption.data.length-1),this._onFrame(),this.currentIndex},next:function(){return this.timelineOption.autoPlay&&this.stop(),this.currentIndex+=1,this.currentIndex>=this.timelineOption.data.length&&(this.currentIndex=0),this._onFrame(),this.currentIndex},play:function(e,t){return this._ctrPlayShape&&"playing"!=this._ctrPlayShape.style.status&&(this._ctrPlayShape.style.status="playing",this.zr.modShape(this._ctrPlayShape.id),this.zr.refreshNextFrame()),this.timelineOption.autoPlay=null!=t?t:!0,this.timelineOption.autoPlay||clearTimeout(this.playTicket),this.currentIndex=null!=e?e:this.currentIndex+1,this.currentIndex>=this.timelineOption.data.length&&(this.currentIndex=0),this._onFrame(),this.currentIndex},stop:function(){return this._ctrPlayShape&&"stop"!=this._ctrPlayShape.style.status&&(this._ctrPlayShape.style.status="stop",this.zr.modShape(this._ctrPlayShape.id),this.zr.refreshNextFrame()),this.timelineOption.autoPlay=!1,clearTimeout(this.playTicket),this.currentIndex},resize:function(){this.timelineOption.show&&(this.clear(),this._buildShape(),this._syncHandleShape())},setTheme:function(e){this.timelineOption=this.reformOption(l.clone(this.option.timeline)),this.timelineOption.label.textStyle=this.getTextStyle(this.timelineOption.label.textStyle),this.timelineOption.checkpointStyle.label.textStyle=this.getTextStyle(this.timelineOption.checkpointStyle.label.textStyle),this.myChart.canvasSupported||(this.timelineOption.realtime=!1),this.timelineOption.show&&e&&(this.clear(),this._buildShape(),this._syncHandleShape())},onbeforDispose:function(){clearTimeout(this.playTicket)}},o.prototype.iconLibrary.timelineControl=i,l.inherits(t,n),e("../component").define("timeline",t),t}),i("zrender/shape/Image",["require","./Base","../tool/util"],function(e){var t=e("./Base"),i=function(e){t.call(this,e)};return i.prototype={type:"image",brush:function(e,t,i){var n=this.style||{};t&&(n=this.getHighlightStyle(n,this.highlightStyle||{}));var a=n.image,o=this;if(this._imageCache||(this._imageCache={}),"string"==typeof a){var r=a;this._imageCache[r]?a=this._imageCache[r]:(a=new Image,a.onload=function(){a.onload=null,o.modSelf(),i()},a.src=r,this._imageCache[r]=a)}if(a){if("IMG"==a.nodeName.toUpperCase())if(window.ActiveXObject){if("complete"!=a.readyState)return}else if(!a.complete)return;var s=n.width||a.width,l=n.height||a.height,h=n.x,m=n.y;if(!a.width||!a.height)return;if(e.save(),this.doClip(e),this.setContext(e,n),this.setTransform(e),n.sWidth&&n.sHeight){var V=n.sx||0,U=n.sy||0;e.drawImage(a,V,U,n.sWidth,n.sHeight,h,m,s,l)}else if(n.sx&&n.sy){var V=n.sx,U=n.sy,d=s-V,p=l-U;e.drawImage(a,V,U,d,p,h,m,s,l)}else e.drawImage(a,h,m,s,l);n.width||(n.width=s),n.height||(n.height=l),this.style.width||(this.style.width=s),this.style.height||(this.style.height=l),this.drawText(e,n,this.style),e.restore()}},getRect:function(e){return{x:e.x,y:e.y,width:e.width,height:e.height}},clearCache:function(){this._imageCache={}}},e("../tool/util").inherits(i,t),i}),i("zrender/loadingEffect/Bar",["require","./Base","../tool/util","../tool/color","../shape/Rectangle"],function(e){function t(e){i.call(this,e)}var i=e("./Base"),n=e("../tool/util"),a=e("../tool/color"),o=e("../shape/Rectangle");return n.inherits(t,i),t.prototype._start=function(e,t){var i=n.merge(this.options,{textStyle:{color:"#888"},backgroundColor:"rgba(250, 250, 250, 0.8)",effectOption:{x:0,y:this.canvasHeight/2-30,width:this.canvasWidth,height:5,brushType:"fill",timeInterval:100}}),r=this.createTextShape(i.textStyle),s=this.createBackgroundShape(i.backgroundColor),l=i.effectOption,h=new o({highlightStyle:n.clone(l)});return h.highlightStyle.color=l.color||a.getLinearGradient(l.x,l.y,l.x+l.width,l.y+l.height,[[0,"#ff6400"],[.5,"#ffe100"],[1,"#b1ff00"]]),null!=i.progress?(e(s),h.highlightStyle.width=this.adjust(i.progress,[0,1])*i.effectOption.width,e(h),e(r),void t()):(h.highlightStyle.width=0,setInterval(function(){e(s),h.highlightStyle.widthc;c++){var u="random"==l.color?a.alpha(a.random(),.3):l.color;U[c]=new o({highlightStyle:{x:Math.ceil(Math.random()*d),y:Math.ceil(Math.random()*p),r:Math.ceil(40*Math.random()),brushType:m,color:u,strokeColor:u,lineWidth:V},animationY:Math.ceil(20*Math.random())})}return setInterval(function(){e(s);for(var i=0;h>i;i++){var n=U[i].highlightStyle;n.y-U[i].animationY+n.r<=0&&(U[i].highlightStyle.y=p+n.r,U[i].highlightStyle.x=Math.ceil(Math.random()*d)),U[i].highlightStyle.y-=U[i].animationY,e(U[i])}e(r),t()},l.timeInterval)},t}),i("zrender/loadingEffect/DynamicLine",["require","./Base","../tool/util","../tool/color","../shape/Line"],function(e){function t(e){i.call(this,e)}var i=e("./Base"),n=e("../tool/util"),a=e("../tool/color"),o=e("../shape/Line");return n.inherits(t,i),t.prototype._start=function(e,t){for(var i=n.merge(this.options,{textStyle:{color:"#fff"},backgroundColor:"rgba(0, 0, 0, 0.8)",effectOption:{n:30,lineWidth:1,color:"random",timeInterval:100}}),r=this.createTextShape(i.textStyle),s=this.createBackgroundShape(i.backgroundColor),l=i.effectOption,h=l.n,m=l.lineWidth,V=[],U=this.canvasWidth,d=this.canvasHeight,p=0;h>p;p++){var c=-Math.ceil(1e3*Math.random()),u=Math.ceil(400*Math.random()),y=Math.ceil(Math.random()*d),g="random"==l.color?a.random():l.color;V[p]=new o({highlightStyle:{xStart:c,yStart:y,xEnd:c+u,yEnd:y,strokeColor:g,lineWidth:m},animationX:Math.ceil(100*Math.random()),len:u})}return setInterval(function(){e(s);for(var i=0;h>i;i++){var n=V[i].highlightStyle;n.xStart>=U&&(V[i].len=Math.ceil(400*Math.random()),n.xStart=-400,n.xEnd=-400+V[i].len,n.yStart=Math.ceil(Math.random()*d),n.yEnd=n.yStart),n.xStart+=V[i].animationX,n.xEnd+=V[i].animationX,e(V[i])}e(r),t()},l.timeInterval)},t}),i("zrender/loadingEffect/Ring",["require","./Base","../tool/util","../tool/color","../shape/Ring","../shape/Sector"],function(e){function t(e){i.call(this,e)}var i=e("./Base"),n=e("../tool/util"),a=e("../tool/color"),o=e("../shape/Ring"),r=e("../shape/Sector");return n.inherits(t,i),t.prototype._start=function(e,t){var i=n.merge(this.options,{textStyle:{color:"#07a"},backgroundColor:"rgba(250, 250, 250, 0.8)",effect:{x:this.canvasWidth/2,y:this.canvasHeight/2,r0:60,r:100,color:"#bbdcff",brushType:"fill",textPosition:"inside",textFont:"normal 30px verdana",textColor:"rgba(30, 144, 255, 0.6)",timeInterval:100}}),s=i.effect,l=i.textStyle; + +null==l.x&&(l.x=s.x),null==l.y&&(l.y=s.y+(s.r0+s.r)/2-5);for(var h=this.createTextShape(i.textStyle),m=this.createBackgroundShape(i.backgroundColor),V=s.x,U=s.y,d=s.r0+6,p=s.r-6,c=s.color,u=a.lift(c,.1),y=new o({highlightStyle:n.clone(s)}),g=[],b=a.getGradientColors(["#ff6400","#ffe100","#97ff00"],25),f=15,k=240,x=0;16>x;x++)g.push(new r({highlightStyle:{x:V,y:U,r0:d,r:p,startAngle:k-f,endAngle:k,brushType:"fill",color:u},_color:a.getLinearGradient(V+d*Math.cos(k,!0),U-d*Math.sin(k,!0),V+d*Math.cos(k-f,!0),U-d*Math.sin(k-f,!0),[[0,b[2*x]],[1,b[2*x+1]]])})),k-=f;k=360;for(var x=0;4>x;x++)g.push(new r({highlightStyle:{x:V,y:U,r0:d,r:p,startAngle:k-f,endAngle:k,brushType:"fill",color:u},_color:a.getLinearGradient(V+d*Math.cos(k,!0),U-d*Math.sin(k,!0),V+d*Math.cos(k-f,!0),U-d*Math.sin(k-f,!0),[[0,b[2*x+32]],[1,b[2*x+33]]])})),k-=f;var _=0;if(null!=i.progress){e(m),_=100*this.adjust(i.progress,[0,1]).toFixed(2)/5,y.highlightStyle.text=5*_+"%",e(y);for(var x=0;20>x;x++)g[x].highlightStyle.color=_>x?g[x]._color:u,e(g[x]);return e(h),void t()}return setInterval(function(){e(m),_+=_>=20?-20:1,e(y);for(var i=0;20>i;i++)g[i].highlightStyle.color=_>i?g[i]._color:u,e(g[i]);e(h),t()},s.timeInterval)},t}),i("zrender/loadingEffect/Spin",["require","./Base","../tool/util","../tool/color","../tool/area","../shape/Sector"],function(e){function t(e){i.call(this,e)}var i=e("./Base"),n=e("../tool/util"),a=e("../tool/color"),o=e("../tool/area"),r=e("../shape/Sector");return n.inherits(t,i),t.prototype._start=function(e,t){var i=n.merge(this.options,{textStyle:{color:"#fff",textAlign:"start"},backgroundColor:"rgba(0, 0, 0, 0.8)"}),s=this.createTextShape(i.textStyle),l=10,h=o.getTextWidth(s.highlightStyle.text,s.highlightStyle.textFont),m=o.getTextHeight(s.highlightStyle.text,s.highlightStyle.textFont),V=n.merge(this.options.effect||{},{r0:9,r:15,n:18,color:"#fff",timeInterval:100}),U=this.getLocation(this.options.textStyle,h+l+2*V.r,Math.max(2*V.r,m));V.x=U.x+V.r,V.y=s.highlightStyle.y=U.y+U.height/2,s.highlightStyle.x=V.x+V.r+l;for(var d=this.createBackgroundShape(i.backgroundColor),p=V.n,c=V.x,u=V.y,y=V.r0,g=V.r,b=V.color,f=[],k=Math.round(180/p),x=0;p>x;x++)f[x]=new r({highlightStyle:{x:c,y:u,r0:y,r:g,startAngle:k*x*2,endAngle:k*x*2+k,color:a.alpha(b,(x+1)/p),brushType:"fill"}});var _=[0,c,u];return setInterval(function(){e(d),_[0]-=.3;for(var i=0;p>i;i++)f[i].rotation=_,e(f[i]);e(s),t()},V.timeInterval)},t}),i("zrender/loadingEffect/Whirling",["require","./Base","../tool/util","../tool/area","../shape/Ring","../shape/Droplet","../shape/Circle"],function(e){function t(e){i.call(this,e)}var i=e("./Base"),n=e("../tool/util"),a=e("../tool/area"),o=e("../shape/Ring"),r=e("../shape/Droplet"),s=e("../shape/Circle");return n.inherits(t,i),t.prototype._start=function(e,t){var i=n.merge(this.options,{textStyle:{color:"#888",textAlign:"start"},backgroundColor:"rgba(250, 250, 250, 0.8)"}),l=this.createTextShape(i.textStyle),h=10,m=a.getTextWidth(l.highlightStyle.text,l.highlightStyle.textFont),V=a.getTextHeight(l.highlightStyle.text,l.highlightStyle.textFont),U=n.merge(this.options.effect||{},{r:18,colorIn:"#fff",colorOut:"#555",colorWhirl:"#6cf",timeInterval:50}),d=this.getLocation(this.options.textStyle,m+h+2*U.r,Math.max(2*U.r,V));U.x=d.x+U.r,U.y=l.highlightStyle.y=d.y+d.height/2,l.highlightStyle.x=U.x+U.r+h;var p=this.createBackgroundShape(i.backgroundColor),c=new r({highlightStyle:{a:Math.round(U.r/2),b:Math.round(U.r-U.r/6),brushType:"fill",color:U.colorWhirl}}),u=new s({highlightStyle:{r:Math.round(U.r/6),brushType:"fill",color:U.colorIn}}),y=new o({highlightStyle:{r0:Math.round(U.r-U.r/3),r:U.r,brushType:"fill",color:U.colorOut}}),g=[0,U.x,U.y];return c.highlightStyle.x=u.highlightStyle.x=y.highlightStyle.x=g[1],c.highlightStyle.y=u.highlightStyle.y=y.highlightStyle.y=g[2],setInterval(function(){e(p),e(y),g[0]-=.3,c.rotation=g,e(c),e(u),e(l),t()},U.timeInterval)},t}),i("echarts/theme/macarons",[],function(){var e={color:["#2ec7c9","#b6a2de","#5ab1ef","#ffb980","#d87a80","#8d98b3","#e5cf0d","#97b552","#95706d","#dc69aa","#07a2a4","#9a7fd1","#588dd5","#f5994e","#c05050","#59678c","#c9ab00","#7eb00a","#6f5553","#c14089"],title:{textStyle:{fontWeight:"normal",color:"#008acd"}},dataRange:{itemWidth:15,color:["#5ab1ef","#e0ffff"]},toolbox:{color:["#1e90ff","#1e90ff","#1e90ff","#1e90ff"],effectiveColor:"#ff4500"},tooltip:{backgroundColor:"rgba(50,50,50,0.5)",axisPointer:{type:"line",lineStyle:{color:"#008acd"},crossStyle:{color:"#008acd"},shadowStyle:{color:"rgba(200,200,200,0.2)"}}},dataZoom:{dataBackgroundColor:"#efefff",fillerColor:"rgba(182,162,222,0.2)",handleColor:"#008acd"},grid:{borderColor:"#eee"},categoryAxis:{axisLine:{lineStyle:{color:"#008acd"}},splitLine:{lineStyle:{color:["#eee"]}}},valueAxis:{axisLine:{lineStyle:{color:"#008acd"}},splitArea:{show:!0,areaStyle:{color:["rgba(250,250,250,0.1)","rgba(200,200,200,0.1)"]}},splitLine:{lineStyle:{color:["#eee"]}}},polar:{axisLine:{lineStyle:{color:"#ddd"}},splitArea:{show:!0,areaStyle:{color:["rgba(250,250,250,0.2)","rgba(200,200,200,0.2)"]}},splitLine:{lineStyle:{color:"#ddd"}}},timeline:{lineStyle:{color:"#008acd"},controlStyle:{normal:{color:"#008acd"},emphasis:{color:"#008acd"}},symbol:"emptyCircle",symbolSize:3},bar:{itemStyle:{normal:{barBorderRadius:5},emphasis:{barBorderRadius:5}}},line:{smooth:!0,symbol:"emptyCircle",symbolSize:3},k:{itemStyle:{normal:{color:"#d87a80",color0:"#2ec7c9",lineStyle:{color:"#d87a80",color0:"#2ec7c9"}}}},scatter:{symbol:"circle",symbolSize:4},radar:{symbol:"emptyCircle",symbolSize:3},map:{itemStyle:{normal:{areaStyle:{color:"#ddd"},label:{textStyle:{color:"#d87a80"}}},emphasis:{areaStyle:{color:"#fe994e"}}}},force:{itemStyle:{normal:{linkStyle:{color:"#1e90ff"}}}},chord:{itemStyle:{normal:{borderWidth:1,borderColor:"rgba(128, 128, 128, 0.5)",chordStyle:{lineStyle:{color:"rgba(128, 128, 128, 0.5)"}}},emphasis:{borderWidth:1,borderColor:"rgba(128, 128, 128, 0.5)",chordStyle:{lineStyle:{color:"rgba(128, 128, 128, 0.5)"}}}}},gauge:{axisLine:{lineStyle:{color:[[.2,"#2ec7c9"],[.8,"#5ab1ef"],[1,"#d87a80"]],width:10}},axisTick:{splitNumber:10,length:15,lineStyle:{color:"auto"}},splitLine:{length:22,lineStyle:{color:"auto"}},pointer:{width:5}},textStyle:{fontFamily:"微软雅黑, Arial, Verdana, sans-serif"}};return e}),i("echarts/theme/infographic",[],function(){var e={color:["#C1232B","#B5C334","#FCCE10","#E87C25","#27727B","#FE8463","#9BCA63","#FAD860","#F3A43B","#60C0DD","#D7504B","#C6E579","#F4E001","#F0805A","#26C0C0"],title:{textStyle:{fontWeight:"normal",color:"#27727B"}},dataRange:{x:"right",y:"center",itemWidth:5,itemHeight:25,color:["#C1232B","#FCCE10"]},toolbox:{color:["#C1232B","#B5C334","#FCCE10","#E87C25","#27727B","#FE8463","#9BCA63","#FAD860","#F3A43B","#60C0DD"],effectiveColor:"#ff4500"},tooltip:{backgroundColor:"rgba(50,50,50,0.5)",axisPointer:{type:"line",lineStyle:{color:"#27727B",type:"dashed"},crossStyle:{color:"#27727B"},shadowStyle:{color:"rgba(200,200,200,0.3)"}}},dataZoom:{dataBackgroundColor:"rgba(181,195,52,0.3)",fillerColor:"rgba(181,195,52,0.2)",handleColor:"#27727B"},grid:{borderWidth:0},categoryAxis:{axisLine:{lineStyle:{color:"#27727B"}},splitLine:{show:!1}},valueAxis:{axisLine:{show:!1},splitArea:{show:!1},splitLine:{lineStyle:{color:["#ccc"],type:"dashed"}}},polar:{axisLine:{lineStyle:{color:"#ddd"}},splitArea:{show:!0,areaStyle:{color:["rgba(250,250,250,0.2)","rgba(200,200,200,0.2)"]}},splitLine:{lineStyle:{color:"#ddd"}}},timeline:{lineStyle:{color:"#27727B"},controlStyle:{normal:{color:"#27727B"},emphasis:{color:"#27727B"}},symbol:"emptyCircle",symbolSize:3},line:{itemStyle:{normal:{borderWidth:2,borderColor:"#fff",lineStyle:{width:3}},emphasis:{borderWidth:0}},symbol:"circle",symbolSize:3.5},k:{itemStyle:{normal:{color:"#C1232B",color0:"#B5C334",lineStyle:{width:1,color:"#C1232B",color0:"#B5C334"}}}},scatter:{itemStyle:{normal:{borderWidth:1,borderColor:"rgba(200,200,200,0.5)"},emphasis:{borderWidth:0}},symbol:"star4",symbolSize:4},radar:{symbol:"emptyCircle",symbolSize:3},map:{itemStyle:{normal:{areaStyle:{color:"#ddd"},label:{textStyle:{color:"#C1232B"}}},emphasis:{areaStyle:{color:"#fe994e"},label:{textStyle:{color:"rgb(100,0,0)"}}}}},force:{itemStyle:{normal:{linkStyle:{color:"#27727B"}}}},chord:{itemStyle:{normal:{borderWidth:1,borderColor:"rgba(128, 128, 128, 0.5)",chordStyle:{lineStyle:{color:"rgba(128, 128, 128, 0.5)"}}},emphasis:{borderWidth:1,borderColor:"rgba(128, 128, 128, 0.5)",chordStyle:{lineStyle:{color:"rgba(128, 128, 128, 0.5)"}}}}},gauge:{center:["50%","80%"],radius:"100%",startAngle:180,endAngle:0,axisLine:{show:!0,lineStyle:{color:[[.2,"#B5C334"],[.8,"#27727B"],[1,"#C1232B"]],width:"40%"}},axisTick:{splitNumber:2,length:5,lineStyle:{color:"#fff"}},axisLabel:{textStyle:{color:"#fff",fontWeight:"bolder"}},splitLine:{length:"5%",lineStyle:{color:"#fff"}},pointer:{width:"40%",length:"80%",color:"#fff"},title:{offsetCenter:[0,-20],textStyle:{color:"auto",fontSize:20}},detail:{offsetCenter:[0,0],textStyle:{color:"auto",fontSize:40}}},textStyle:{fontFamily:"微软雅黑, Arial, Verdana, sans-serif"}};return e}),i("zrender/dep/excanvas",["require"],function(){return document.createElement("canvas").getContext?G_vmlCanvasManager=!1:!function(){function e(){return this.context_||(this.context_=new f(this))}function t(e,t){var i=O.call(arguments,2);return function(){return e.apply(t,i.concat(O.call(arguments)))}}function i(e){return String(e).replace(/&/g,"&").replace(/"/g,""")}function n(e,t,i){e.namespaces[t]||e.namespaces.add(t,i,"#default#VML")}function a(e){if(n(e,"g_vml_","urn:schemas-microsoft-com:vml"),n(e,"g_o_","urn:schemas-microsoft-com:office:office"),!e.styleSheets.ex_canvas_){var t=e.createStyleSheet();t.owningElement.id="ex_canvas_",t.cssText="canvas{display:inline-block;overflow:hidden;text-align:left;width:300px;height:150px}"}}function o(e){var t=e.srcElement;switch(e.propertyName){case"width":t.getContext().clearRect(),t.style.width=t.attributes.width.nodeValue+"px",t.firstChild.style.width=t.clientWidth+"px";break;case"height":t.getContext().clearRect(),t.style.height=t.attributes.height.nodeValue+"px",t.firstChild.style.height=t.clientHeight+"px"}}function r(e){var t=e.srcElement;t.firstChild&&(t.firstChild.style.width=t.clientWidth+"px",t.firstChild.style.height=t.clientHeight+"px")}function s(){return[[1,0,0],[0,1,0],[0,0,1]]}function l(e,t){for(var i=s(),n=0;3>n;n++)for(var a=0;3>a;a++){for(var o=0,r=0;3>r;r++)o+=e[n][r]*t[r][a];i[n][a]=o}return i}function h(e,t){t.fillStyle=e.fillStyle,t.lineCap=e.lineCap,t.lineJoin=e.lineJoin,t.lineWidth=e.lineWidth,t.miterLimit=e.miterLimit,t.shadowBlur=e.shadowBlur,t.shadowColor=e.shadowColor,t.shadowOffsetX=e.shadowOffsetX,t.shadowOffsetY=e.shadowOffsetY,t.strokeStyle=e.strokeStyle,t.globalAlpha=e.globalAlpha,t.font=e.font,t.textAlign=e.textAlign,t.textBaseline=e.textBaseline,t.scaleX_=e.scaleX_,t.scaleY_=e.scaleY_,t.lineScale_=e.lineScale_}function m(e){var t=e.indexOf("(",3),i=e.indexOf(")",t+1),n=e.substring(t+1,i).split(",");return(4!=n.length||"a"!=e.charAt(3))&&(n[3]=1),n}function V(e){return parseFloat(e)/100}function U(e,t,i){return Math.min(i,Math.max(t,e))}function d(e){var t,i,n,a,o,r;if(a=parseFloat(e[0])/360%360,0>a&&a++,o=U(V(e[1]),0,1),r=U(V(e[2]),0,1),0==o)t=i=n=r;else{var s=.5>r?r*(1+o):r+o-r*o,l=2*r-s;t=p(l,s,a+1/3),i=p(l,s,a),n=p(l,s,a-1/3)}return"#"+D[Math.floor(255*t)]+D[Math.floor(255*i)]+D[Math.floor(255*n)]}function p(e,t,i){return 0>i&&i++,i>1&&i--,1>6*i?e+6*(t-e)*i:1>2*i?t:2>3*i?e+(t-e)*(2/3-i)*6:e}function c(e){if(e in R)return R[e];var t,i=1;if(e=String(e),"#"==e.charAt(0))t=e;else if(/^rgb/.test(e)){for(var n,a=m(e),t="#",o=0;3>o;o++)n=-1!=a[o].indexOf("%")?Math.floor(255*V(a[o])):+a[o],t+=D[U(n,0,255)];i=+a[3]}else if(/^hsl/.test(e)){var a=m(e);t=d(a),i=a[3]}else t=H[e]||e;return R[e]={color:t,alpha:i}}function u(e){if(Y[e])return Y[e];var t,i=document.createElement("div"),n=i.style;try{n.font=e,t=n.fontFamily.split(",")[0]}catch(a){}return Y[e]={style:n.fontStyle||G.style,variant:n.fontVariant||G.variant,weight:n.fontWeight||G.weight,size:n.fontSize||G.size,family:t||G.family}}function y(e,t){var i={};for(var n in e)i[n]=e[n];var a=parseFloat(t.currentStyle.fontSize),o=parseFloat(e.size);return i.size="number"==typeof e.size?e.size:-1!=e.size.indexOf("px")?o:-1!=e.size.indexOf("em")?a*o:-1!=e.size.indexOf("%")?a/100*o:-1!=e.size.indexOf("pt")?o/.75:a,i}function g(e){return e.style+" "+e.variant+" "+e.weight+" "+e.size+"px '"+e.family+"'"}function b(e){return Q[e]||"square"}function f(e){this.m_=s(),this.mStack_=[],this.aStack_=[],this.currentPath_=[],this.strokeStyle="#000",this.fillStyle="#000",this.lineWidth=1,this.lineJoin="miter",this.lineCap="butt",this.miterLimit=1*A,this.globalAlpha=1,this.font="12px 微软雅黑",this.textAlign="left",this.textBaseline="alphabetic",this.canvas=e;var t="width:"+e.clientWidth+"px;height:"+e.clientHeight+"px;overflow:hidden;position:absolute",i=e.ownerDocument.createElement("div");i.style.cssText=t,e.appendChild(i);var n=i.cloneNode(!1);n.style.backgroundColor="#fff",n.style.filter="alpha(opacity=0)",e.appendChild(n),this.element_=i,this.scaleX_=1,this.scaleY_=1,this.lineScale_=1}function k(e,t,i,n){e.currentPath_.push({type:"bezierCurveTo",cp1x:t.x,cp1y:t.y,cp2x:i.x,cp2y:i.y,x:n.x,y:n.y}),e.currentX_=n.x,e.currentY_=n.y}function x(e,t){var i=c(e.strokeStyle),n=i.color,a=i.alpha*e.globalAlpha,o=e.lineScale_*e.lineWidth;1>o&&(a*=o),t.push("')}function _(e,t,i,n){var a=e.fillStyle,o=e.scaleX_,r=e.scaleY_,s=n.x-i.x,l=n.y-i.y;if(a instanceof v){var h=0,m={x:0,y:0},V=0,U=1;if("gradient"==a.type_){var d=a.x0_/o,p=a.y0_/r,u=a.x1_/o,y=a.y1_/r,g=L(e,d,p),b=L(e,u,y),f=b.x-g.x,k=b.y-g.y;h=180*Math.atan2(f,k)/Math.PI,0>h&&(h+=360),1e-6>h&&(h=0)}else{var g=L(e,a.x0_,a.y0_);m={x:(g.x-i.x)/s,y:(g.y-i.y)/l},s/=o*A,l/=r*A;var x=C.max(s,l);V=2*a.r0_/x,U=2*a.r1_/x-V}var _=a.colors_;_.sort(function(e,t){return e.offset-t.offset});for(var W=_.length,X=_[0].color,K=_[W-1].color,I=_[0].alpha*e.globalAlpha,J=_[W-1].alpha*e.globalAlpha,S=[],E=0;W>E;E++){var F=_[E];S.push(F.offset*U+V+" "+F.color)}t.push('')}else if(a instanceof w){if(s&&l){var T=-i.x,z=-i.y;t.push("')}}else{var M=c(e.fillStyle),O=M.color,P=M.alpha*e.globalAlpha;t.push('')}}function L(e,t,i){var n=e.m_;return{x:A*(t*n[0][0]+i*n[1][0]+n[2][0])-M,y:A*(t*n[0][1]+i*n[1][1]+n[2][1])-M}}function W(e){return isFinite(e[0][0])&&isFinite(e[0][1])&&isFinite(e[1][0])&&isFinite(e[1][1])&&isFinite(e[2][0])&&isFinite(e[2][1])}function X(e,t,i){if(W(t)&&(e.m_=t,e.scaleX_=Math.sqrt(t[0][0]*t[0][0]+t[0][1]*t[0][1]),e.scaleY_=Math.sqrt(t[1][0]*t[1][0]+t[1][1]*t[1][1]),i)){var n=t[0][0]*t[1][1]-t[0][1]*t[1][0];e.lineScale_=z(T(n))}}function v(e){this.type_=e,this.x0_=0,this.y0_=0,this.r0_=0,this.x1_=0,this.y1_=0,this.r1_=0,this.colors_=[]}function w(e,t){switch(I(e),t){case"repeat":case null:case"":this.repetition_="repeat";break;case"repeat-x":case"repeat-y":case"no-repeat":this.repetition_=t;break;default:K("SYNTAX_ERR")}this.src_=e.src,this.width_=e.width,this.height_=e.height}function K(e){throw new J(e)}function I(e){e&&1==e.nodeType&&"IMG"==e.tagName||K("TYPE_MISMATCH_ERR"),"complete"!=e.readyState&&K("INVALID_STATE_ERR")}function J(e){this.code=this[e],this.message=e+": DOM Exception "+this.code}var C=Math,S=C.round,E=C.sin,F=C.cos,T=C.abs,z=C.sqrt,A=10,M=A/2,O=(+navigator.userAgent.match(/MSIE ([\d.]+)?/)[1],Array.prototype.slice);a(document);var P={init:function(e){var i=e||document;i.createElement("canvas"),i.attachEvent("onreadystatechange",t(this.init_,this,i))},init_:function(e){for(var t=e.getElementsByTagName("canvas"),i=0;iN;N++)for(var B=0;16>B;B++)D[16*N+B]=N.toString(16)+B.toString(16);var H={aliceblue:"#F0F8FF",antiquewhite:"#FAEBD7",aquamarine:"#7FFFD4",azure:"#F0FFFF",beige:"#F5F5DC",bisque:"#FFE4C4",black:"#000000",blanchedalmond:"#FFEBCD",blueviolet:"#8A2BE2",brown:"#A52A2A",burlywood:"#DEB887",cadetblue:"#5F9EA0",chartreuse:"#7FFF00",chocolate:"#D2691E",coral:"#FF7F50",cornflowerblue:"#6495ED",cornsilk:"#FFF8DC",crimson:"#DC143C",cyan:"#00FFFF",darkblue:"#00008B",darkcyan:"#008B8B",darkgoldenrod:"#B8860B",darkgray:"#A9A9A9",darkgreen:"#006400",darkgrey:"#A9A9A9",darkkhaki:"#BDB76B",darkmagenta:"#8B008B",darkolivegreen:"#556B2F",darkorange:"#FF8C00",darkorchid:"#9932CC",darkred:"#8B0000",darksalmon:"#E9967A",darkseagreen:"#8FBC8F",darkslateblue:"#483D8B",darkslategray:"#2F4F4F",darkslategrey:"#2F4F4F",darkturquoise:"#00CED1",darkviolet:"#9400D3",deeppink:"#FF1493",deepskyblue:"#00BFFF",dimgray:"#696969",dimgrey:"#696969",dodgerblue:"#1E90FF",firebrick:"#B22222",floralwhite:"#FFFAF0",forestgreen:"#228B22",gainsboro:"#DCDCDC",ghostwhite:"#F8F8FF",gold:"#FFD700",goldenrod:"#DAA520",grey:"#808080",greenyellow:"#ADFF2F",honeydew:"#F0FFF0",hotpink:"#FF69B4",indianred:"#CD5C5C",indigo:"#4B0082",ivory:"#FFFFF0",khaki:"#F0E68C",lavender:"#E6E6FA",lavenderblush:"#FFF0F5",lawngreen:"#7CFC00",lemonchiffon:"#FFFACD",lightblue:"#ADD8E6",lightcoral:"#F08080",lightcyan:"#E0FFFF",lightgoldenrodyellow:"#FAFAD2",lightgreen:"#90EE90",lightgrey:"#D3D3D3",lightpink:"#FFB6C1",lightsalmon:"#FFA07A",lightseagreen:"#20B2AA",lightskyblue:"#87CEFA",lightslategray:"#778899",lightslategrey:"#778899",lightsteelblue:"#B0C4DE",lightyellow:"#FFFFE0",limegreen:"#32CD32",linen:"#FAF0E6",magenta:"#FF00FF",mediumaquamarine:"#66CDAA",mediumblue:"#0000CD",mediumorchid:"#BA55D3",mediumpurple:"#9370DB",mediumseagreen:"#3CB371",mediumslateblue:"#7B68EE",mediumspringgreen:"#00FA9A",mediumturquoise:"#48D1CC",mediumvioletred:"#C71585",midnightblue:"#191970",mintcream:"#F5FFFA",mistyrose:"#FFE4E1",moccasin:"#FFE4B5",navajowhite:"#FFDEAD",oldlace:"#FDF5E6",olivedrab:"#6B8E23",orange:"#FFA500",orangered:"#FF4500",orchid:"#DA70D6",palegoldenrod:"#EEE8AA",palegreen:"#98FB98",paleturquoise:"#AFEEEE",palevioletred:"#DB7093",papayawhip:"#FFEFD5",peachpuff:"#FFDAB9",peru:"#CD853F",pink:"#FFC0CB",plum:"#DDA0DD",powderblue:"#B0E0E6",rosybrown:"#BC8F8F",royalblue:"#4169E1",saddlebrown:"#8B4513",salmon:"#FA8072",sandybrown:"#F4A460",seagreen:"#2E8B57",seashell:"#FFF5EE",sienna:"#A0522D",skyblue:"#87CEEB",slateblue:"#6A5ACD",slategray:"#708090",slategrey:"#708090",snow:"#FFFAFA",springgreen:"#00FF7F",steelblue:"#4682B4",tan:"#D2B48C",thistle:"#D8BFD8",tomato:"#FF6347",turquoise:"#40E0D0",violet:"#EE82EE",wheat:"#F5DEB3",whitesmoke:"#F5F5F5",yellowgreen:"#9ACD32"},R={},G={style:"normal",variant:"normal",weight:"normal",size:12,family:"微软雅黑"},Y={},Q={butt:"flat",round:"round"},Z=f.prototype;Z.clearRect=function(){this.textMeasureEl_&&(this.textMeasureEl_.removeNode(!0),this.textMeasureEl_=null),this.element_.innerHTML=""},Z.beginPath=function(){this.currentPath_=[]},Z.moveTo=function(e,t){var i=L(this,e,t);this.currentPath_.push({type:"moveTo",x:i.x,y:i.y}),this.currentX_=i.x,this.currentY_=i.y},Z.lineTo=function(e,t){var i=L(this,e,t);this.currentPath_.push({type:"lineTo",x:i.x,y:i.y}),this.currentX_=i.x,this.currentY_=i.y},Z.bezierCurveTo=function(e,t,i,n,a,o){var r=L(this,a,o),s=L(this,e,t),l=L(this,i,n);k(this,s,l,r)},Z.quadraticCurveTo=function(e,t,i,n){var a=L(this,e,t),o=L(this,i,n),r={x:this.currentX_+2/3*(a.x-this.currentX_),y:this.currentY_+2/3*(a.y-this.currentY_)},s={x:r.x+(o.x-this.currentX_)/3,y:r.y+(o.y-this.currentY_)/3};k(this,r,s,o)},Z.arc=function(e,t,i,n,a,o){i*=A;var r=o?"at":"wa",s=e+F(n)*i-M,l=t+E(n)*i-M,h=e+F(a)*i-M,m=t+E(a)*i-M;s!=h||o||(s+=.125);var V=L(this,e,t),U=L(this,s,l),d=L(this,h,m);this.currentPath_.push({type:r,x:V.x,y:V.y,radius:i,xStart:U.x,yStart:U.y,xEnd:d.x,yEnd:d.y})},Z.rect=function(e,t,i,n){this.moveTo(e,t),this.lineTo(e+i,t),this.lineTo(e+i,t+n),this.lineTo(e,t+n),this.closePath()},Z.strokeRect=function(e,t,i,n){var a=this.currentPath_;this.beginPath(),this.moveTo(e,t),this.lineTo(e+i,t),this.lineTo(e+i,t+n),this.lineTo(e,t+n),this.closePath(),this.stroke(),this.currentPath_=a},Z.fillRect=function(e,t,i,n){var a=this.currentPath_;this.beginPath(),this.moveTo(e,t),this.lineTo(e+i,t),this.lineTo(e+i,t+n),this.lineTo(e,t+n),this.closePath(),this.fill(),this.currentPath_=a},Z.createLinearGradient=function(e,t,i,n){var a=new v("gradient");return a.x0_=e,a.y0_=t,a.x1_=i,a.y1_=n,a},Z.createRadialGradient=function(e,t,i,n,a,o){var r=new v("gradientradial");return r.x0_=e,r.y0_=t,r.r0_=i,r.x1_=n,r.y1_=a,r.r1_=o,r},Z.drawImage=function(e){var t,i,n,a,o,r,s,l,h=e.runtimeStyle.width,m=e.runtimeStyle.height;e.runtimeStyle.width="auto",e.runtimeStyle.height="auto";var V=e.width,U=e.height;if(e.runtimeStyle.width=h,e.runtimeStyle.height=m,3==arguments.length)t=arguments[1],i=arguments[2],o=r=0,s=n=V,l=a=U;else if(5==arguments.length)t=arguments[1],i=arguments[2],n=arguments[3],a=arguments[4],o=r=0,s=V,l=U;else{if(9!=arguments.length)throw Error("Invalid number of arguments");o=arguments[1],r=arguments[2],s=arguments[3],l=arguments[4],t=arguments[5],i=arguments[6],n=arguments[7],a=arguments[8]}var d=L(this,t,i),p=[],c=10,u=10,y=b=1;if(p.push(" '),(o||r)&&p.push('
        '),p.push('
        '),(o||r)&&p.push("
        "),p.push("
        "),this.element_.insertAdjacentHTML("BeforeEnd",p.join(""))},Z.stroke=function(e){var t=[],i=10,n=10;t.push("o.x)&&(o.x=l.x),(null==a.y||l.yo.y)&&(o.y=l.y))}t.push(' ">'),e?_(this,t,a,o):x(this,t),t.push(""),this.element_.insertAdjacentHTML("beforeEnd",t.join(""))},Z.fill=function(){this.stroke(!0)},Z.closePath=function(){this.currentPath_.push({type:"close"})},Z.save=function(){var e={};h(this,e),this.aStack_.push(e),this.mStack_.push(this.m_),this.m_=l(s(),this.m_)},Z.restore=function(){this.aStack_.length&&(h(this.aStack_.pop(),this),this.m_=this.mStack_.pop())},Z.translate=function(e,t){var i=[[1,0,0],[0,1,0],[e,t,1]];X(this,l(i,this.m_),!1)},Z.rotate=function(e){var t=F(e),i=E(e),n=[[t,i,0],[-i,t,0],[0,0,1]];X(this,l(n,this.m_),!1)},Z.scale=function(e,t){var i=[[e,0,0],[0,t,0],[0,0,1]];X(this,l(i,this.m_),!0)},Z.transform=function(e,t,i,n,a,o){var r=[[e,t,0],[i,n,0],[a,o,1]];X(this,l(r,this.m_),!0)},Z.setTransform=function(e,t,i,n,a,o){var r=[[e,t,0],[i,n,0],[a,o,1]];X(this,r,!0)},Z.drawText_=function(e,t,n,a,o){var r=this.m_,s=1e3,l=0,h=s,m={x:0,y:0},V=[],U=y(u(this.font),this.element_),d=g(U),p=this.element_.currentStyle,c=this.textAlign.toLowerCase();switch(c){case"left":case"center":case"right":break;case"end":c="ltr"==p.direction?"right":"left";break;case"start":c="rtl"==p.direction?"right":"left";break;default:c="left"}switch(this.textBaseline){case"hanging":case"top":m.y=U.size/1.75;break;case"middle":break;default:case null:case"alphabetic":case"ideographic":case"bottom":m.y=-U.size/2.25}switch(c){case"right":l=s,h=.05;break;case"center":l=h=s/2}var b=L(this,t+m.x,n+m.y);V.push(''),o?x(this,V):_(this,V,{x:-l,y:0},{x:h,y:U.size});var f=r[0][0].toFixed(3)+","+r[1][0].toFixed(3)+","+r[0][1].toFixed(3)+","+r[1][1].toFixed(3)+",0,0",k=S(b.x/A)+","+S(b.y/A);V.push('','',''),this.element_.insertAdjacentHTML("beforeEnd",V.join(""))},Z.fillText=function(e,t,i,n){this.drawText_(e,t,i,n,!1)},Z.strokeText=function(e,t,i,n){this.drawText_(e,t,i,n,!0)},Z.measureText=function(e){if(!this.textMeasureEl_){var t='';this.element_.insertAdjacentHTML("beforeEnd",t),this.textMeasureEl_=this.element_.lastChild}var i=this.element_.ownerDocument;this.textMeasureEl_.innerHTML="";try{this.textMeasureEl_.style.font=this.font}catch(n){}return this.textMeasureEl_.appendChild(i.createTextNode(e)),{width:this.textMeasureEl_.offsetWidth}},Z.clip=function(){},Z.arcTo=function(){},Z.createPattern=function(e,t){return new w(e,t)},v.prototype.addColorStop=function(e,t){t=c(t),this.colors_.push({offset:e,color:t.color,alpha:t.alpha})};var q=J.prototype=new Error;q.INDEX_SIZE_ERR=1,q.DOMSTRING_SIZE_ERR=2,q.HIERARCHY_REQUEST_ERR=3,q.WRONG_DOCUMENT_ERR=4,q.INVALID_CHARACTER_ERR=5,q.NO_DATA_ALLOWED_ERR=6,q.NO_MODIFICATION_ALLOWED_ERR=7,q.NOT_FOUND_ERR=8,q.NOT_SUPPORTED_ERR=9,q.INUSE_ATTRIBUTE_ERR=10,q.INVALID_STATE_ERR=11,q.SYNTAX_ERR=12,q.INVALID_MODIFICATION_ERR=13,q.NAMESPACE_ERR=14,q.INVALID_ACCESS_ERR=15,q.VALIDATION_ERR=16,q.TYPE_MISMATCH_ERR=17,G_vmlCanvasManager=P,CanvasRenderingContext2D=f,CanvasGradient=v,CanvasPattern=w,DOMException=J}(),G_vmlCanvasManager}),i("zrender/mixin/Eventful",["require"],function(){var e=function(){this._handlers={}};return e.prototype.one=function(e,t,i){var n=this._handlers;return t&&e?(n[e]||(n[e]=[]),n[e].push({h:t,one:!0,ctx:i||this}),this):this},e.prototype.bind=function(e,t,i){var n=this._handlers;return t&&e?(n[e]||(n[e]=[]),n[e].push({h:t,one:!1,ctx:i||this}),this):this},e.prototype.unbind=function(e,t){var i=this._handlers;if(!e)return this._handlers={},this;if(t){if(i[e]){for(var n=[],a=0,o=i[e].length;o>a;a++)i[e][a].h!=t&&n.push(i[e][a]);i[e]=n}i[e]&&0===i[e].length&&delete i[e]}else delete i[e];return this},e.prototype.dispatch=function(e){if(this._handlers[e]){var t=arguments,i=t.length;i>3&&(t=Array.prototype.slice.call(t,1));for(var n=this._handlers[e],a=n.length,o=0;a>o;){switch(i){case 1:n[o].h.call(n[o].ctx);break;case 2:n[o].h.call(n[o].ctx,t[1]);break;case 3:n[o].h.call(n[o].ctx,t[1],t[2]);break;default:n[o].h.apply(n[o].ctx,t)}n[o].one?(n.splice(o,1),a--):o++}}return this},e.prototype.dispatchWithContext=function(e){if(this._handlers[e]){var t=arguments,i=t.length;i>4&&(t=Array.prototype.slice.call(t,1,t.length-1));for(var n=t[t.length-1],a=this._handlers[e],o=a.length,r=0;o>r;){switch(i){case 1:a[r].h.call(n);break;case 2:a[r].h.call(n,t[1]);break;case 3:a[r].h.call(n,t[1],t[2]);break;default:a[r].h.apply(n,t)}a[r].one?(a.splice(r,1),o--):r++}}return this},e}),i("zrender/tool/log",["require","../config"],function(e){var t=e("../config");return function(){if(0!==t.debugMode)if(1==t.debugMode)for(var e in arguments)throw new Error(arguments[e]);else if(t.debugMode>1)for(var e in arguments)console.log(arguments[e])}}),i("zrender/tool/guid",[],function(){var e=2311;return function(){return"zrender__"+e++}}),i("zrender/Handler",["require","./config","./tool/env","./tool/event","./tool/util","./tool/vector","./tool/matrix","./mixin/Eventful"],function(e){"use strict";function t(e,t){return function(i,n){return e.call(t,i,n)}}function i(e,t){return function(i,n,a){return e.call(t,i,n,a)}}function n(e){for(var i=d.length;i--;){var n=d[i];e["_"+n+"Handler"]=t(c[n],e)}}function a(e,t,i){if(this._draggingTarget&&this._draggingTarget.id==e.id||e.isSilent())return!1;var n=this._event;if(e.isCover(t,i)){e.hoverable&&this.storage.addHover(e);for(var a=e.parent;a;){if(a.clipShape&&!a.clipShape.isCover(this._mouseX,this._mouseY))return!1;a=a.parent}return this._lastHover!=e&&(this._processOutShape(n),this._processDragLeave(n),this._lastHover=e,this._processDragEnter(n)),this._processOverShape(n),this._processDragOver(n),this._hasfound=1,!0}return!1}var o=e("./config"),r=e("./tool/env"),s=e("./tool/event"),l=e("./tool/util"),h=e("./tool/vector"),m=e("./tool/matrix"),V=o.EVENT,U=e("./mixin/Eventful"),d=["resize","click","dblclick","mousewheel","mousemove","mouseout","mouseup","mousedown","touchstart","touchend","touchmove"],p=function(e){if(window.G_vmlCanvasManager)return!0;e=e||window.event;var t=e.toElement||e.relatedTarget||e.srcElement||e.target;return t&&t.className.match(o.elementClassName)},c={resize:function(e){e=e||window.event,this._lastHover=null,this._isMouseDown=0,this.dispatch(V.RESIZE,e)},click:function(e,t){if(p(e)||t){e=this._zrenderEventFixed(e);var i=this._lastHover;(i&&i.clickable||!i)&&this._clickThreshold<5&&this._dispatchAgency(i,V.CLICK,e),this._mousemoveHandler(e)}},dblclick:function(e,t){if(p(e)||t){e=e||window.event,e=this._zrenderEventFixed(e);var i=this._lastHover;(i&&i.clickable||!i)&&this._clickThreshold<5&&this._dispatchAgency(i,V.DBLCLICK,e),this._mousemoveHandler(e)}},mousewheel:function(e,t){if(p(e)||t){e=this._zrenderEventFixed(e);var i=e.wheelDelta||-e.detail,n=i>0?1.1:1/1.1,a=!1,o=this._mouseX,r=this._mouseY;this.painter.eachBuildinLayer(function(t){var i=t.position;if(t.zoomable){t.__zoom=t.__zoom||1;var l=t.__zoom;l*=n,l=Math.max(Math.min(t.maxZoom,l),t.minZoom),n=l/t.__zoom,t.__zoom=l,i[0]-=(o-i[0])*(n-1),i[1]-=(r-i[1])*(n-1),t.scale[0]*=n,t.scale[1]*=n,t.dirty=!0,a=!0,s.stop(e)}}),a&&this.painter.refresh(),this._dispatchAgency(this._lastHover,V.MOUSEWHEEL,e),this._mousemoveHandler(e)}},mousemove:function(e,t){if((p(e)||t)&&!this.painter.isLoading()){e=this._zrenderEventFixed(e),this._lastX=this._mouseX,this._lastY=this._mouseY,this._mouseX=s.getX(e),this._mouseY=s.getY(e);var i=this._mouseX-this._lastX,n=this._mouseY-this._lastY;this._processDragStart(e),this._hasfound=0,this._event=e,this._iterateAndFindHover(),this._hasfound||((!this._draggingTarget||this._lastHover&&this._lastHover!=this._draggingTarget)&&(this._processOutShape(e), +this._processDragLeave(e)),this._lastHover=null,this.storage.delHover(),this.painter.clearHover());var a="default";if(this._draggingTarget)this.storage.drift(this._draggingTarget.id,i,n),this._draggingTarget.modSelf(),this.storage.addHover(this._draggingTarget),this._clickThreshold++;else if(this._isMouseDown){var o=!1;this.painter.eachBuildinLayer(function(e){e.panable&&(a="move",e.position[0]+=i,e.position[1]+=n,o=!0,e.dirty=!0)}),o&&this.painter.refresh()}this._draggingTarget||this._hasfound&&this._lastHover.draggable?a="move":this._hasfound&&this._lastHover.clickable&&(a="pointer"),this.root.style.cursor=a,this._dispatchAgency(this._lastHover,V.MOUSEMOVE,e),(this._draggingTarget||this._hasfound||this.storage.hasHoverShape())&&this.painter.refreshHover()}},mouseout:function(e,t){if(p(e)||t){e=this._zrenderEventFixed(e);var i=e.toElement||e.relatedTarget;if(i!=this.root)for(;i&&9!=i.nodeType;){if(i==this.root)return void this._mousemoveHandler(e);i=i.parentNode}e.zrenderX=this._lastX,e.zrenderY=this._lastY,this.root.style.cursor="default",this._isMouseDown=0,this._processOutShape(e),this._processDrop(e),this._processDragEnd(e),this.painter.isLoading()||this.painter.refreshHover(),this.dispatch(V.GLOBALOUT,e)}},mousedown:function(e,t){if(p(e)||t){if(this._clickThreshold=0,2==this._lastDownButton)return this._lastDownButton=e.button,void(this._mouseDownTarget=null);this._lastMouseDownMoment=new Date,e=this._zrenderEventFixed(e),this._isMouseDown=1,this._mouseDownTarget=this._lastHover,this._dispatchAgency(this._lastHover,V.MOUSEDOWN,e),this._lastDownButton=e.button}},mouseup:function(e,t){(p(e)||t)&&(e=this._zrenderEventFixed(e),this.root.style.cursor="default",this._isMouseDown=0,this._mouseDownTarget=null,this._dispatchAgency(this._lastHover,V.MOUSEUP,e),this._processDrop(e),this._processDragEnd(e))},touchstart:function(e,t){(p(e)||t)&&(e=this._zrenderEventFixed(e,!0),this._lastTouchMoment=new Date,this._mobileFindFixed(e),this._mousedownHandler(e))},touchmove:function(e,t){(p(e)||t)&&(e=this._zrenderEventFixed(e,!0),this._mousemoveHandler(e),this._isDragging&&s.stop(e))},touchend:function(e,t){if(p(e)||t){e=this._zrenderEventFixed(e,!0),this._mouseupHandler(e);var i=new Date;i-this._lastTouchMoment=0;o--){var r=n[o];if(t!==r.zlevel&&(i=this.painter.getLayer(r.zlevel,i),a[0]=this._mouseX,a[1]=this._mouseY,i.needTransform&&(m.invert(e,i.transform),h.applyTransform(a,a,e))),this._findHover(r,a[0],a[1]))break}}}();var y=[{x:10},{x:-20},{x:10,y:10},{y:-20}];return u.prototype._mobileFindFixed=function(e){this._lastHover=null,this._mouseX=e.zrenderX,this._mouseY=e.zrenderY,this._event=e,this._iterateAndFindHover();for(var t=0;!this._lastHover&&ts;s++){var h=e[s];if(n!==h.zlevel&&(i&&(i.needTransform&&o.restore(),o.flush&&o.flush()),n=h.zlevel,i=this.getLayer(n),i.isBuildin||r("ZLevel "+n+" has been used by unkown layer "+i.id),o=i.ctx,i.unusedCount=0,(i.dirty||t)&&i.clear(),i.needTransform&&(o.save(),i.setTransform(o))),(i.dirty||t)&&!h.invisible&&(!h.onbrush||h.onbrush&&!h.onbrush(o,!1)))if(a.catchBrushException)try{h.brush(o,!1,this.refreshNextFrame)}catch(m){r(m,"brush error of "+h.type,h)}else h.brush(o,!1,this.refreshNextFrame);h.__dirty=!1}i&&(i.needTransform&&o.restore(),o.flush&&o.flush()),this.eachBuildinLayer(this._postProcessLayer)},h.prototype.getLayer=function(e){var t=this._layers[e];return t||(t=new l(e,this),t.isBuildin=!0,this._layerConfig[e]&&o.merge(t,this._layerConfig[e],!0),t.updateTransform(),this.insertLayer(e,t),t.initContext()),t},h.prototype.insertLayer=function(e,t){if(this._layers[e])return void r("ZLevel "+e+" has been used already");if(!n(t))return void r("Layer of zlevel "+e+" is not valid");var i=this._zlevelList.length,a=null,o=-1;if(i>0&&e>this._zlevelList[0]){for(o=0;i-1>o&&!(this._zlevelList[o]e);o++);a=this._layers[this._zlevelList[o]]}this._zlevelList.splice(o+1,0,e);var s=a?a.dom:this._bgDom;s.nextSibling?s.parentNode.insertBefore(t.dom,s.nextSibling):s.parentNode.appendChild(t.dom),this._layers[e]=t},h.prototype.eachLayer=function(e,t){for(var i=0;in;n++){var o=e[n],r=o.zlevel,s=t[r];if(s){if(s.elCount++,s.dirty)continue;s.dirty=o.__dirty}}this.eachBuildinLayer(function(e,t){i[t]!==e.elCount&&(e.dirty=!0)})},h.prototype.refreshShapes=function(e,t){for(var i=0,n=e.length;n>i;i++){var a=e[i];a.modSelf()}return this.refresh(t),this},h.prototype.setLoadingEffect=function(e){return this._loadingEffect=e,this},h.prototype.clear=function(){return this.eachBuildinLayer(this._clearLayer),this},h.prototype._clearLayer=function(e){e.clear()},h.prototype.modLayer=function(e,t){if(t){this._layerConfig[e]?o.merge(this._layerConfig[e],t,!0):this._layerConfig[e]=t;var i=this._layers[e];i&&o.merge(i,this._layerConfig[e],!0)}},h.prototype.delLayer=function(e){var t=this._layers[e];t&&(this.modLayer(e,{position:t.position,rotation:t.rotation,scale:t.scale}),t.dom.parentNode.removeChild(t.dom),delete this._layers[e],this._zlevelList.splice(o.indexOf(this._zlevelList,e),1))},h.prototype.refreshHover=function(){this.clearHover();for(var e=this.storage.getHoverShapes(!0),t=0,i=e.length;i>t;t++)this._brushHover(e[t]);var n=this._layers.hover.ctx;return n.flush&&n.flush(),this.storage.delHover(),this},h.prototype.clearHover=function(){var e=this._layers.hover;return e&&e.clear(),this},h.prototype.showLoading=function(e){return this._loadingEffect&&this._loadingEffect.stop(),e&&this.setLoadingEffect(e),this._loadingEffect.start(this),this.loading=!0,this},h.prototype.hideLoading=function(){return this._loadingEffect.stop(),this.clearHover(),this.loading=!1,this},h.prototype.isLoading=function(){return this.loading},h.prototype.resize=function(){var e=this._domRoot;e.style.display="none";var t=this._getWidth(),i=this._getHeight();if(e.style.display="",this._width!=t||i!=this._height){this._width=t,this._height=i,e.style.width=t+"px",e.style.height=i+"px";for(var n in this._layers)this._layers[n].resize(t,i);this.refresh(null,!0)}return this},h.prototype.clearLayer=function(e){var t=this._layers[e];t&&t.clear()},h.prototype.dispose=function(){this.isLoading()&&this.hideLoading(),this.root.innerHTML="",this.root=this.storage=this._domRoot=this._layers=null},h.prototype.getDomHover=function(){return this._layers.hover.dom},h.prototype.toDataURL=function(e,t,i){if(window.G_vmlCanvasManager)return null;var n=new l("image",this);this._bgDom.appendChild(n.dom),n.initContext();var o=n.ctx;n.clearColor=t||"#fff",n.clear();var s=this;this.storage.iterShape(function(e){if(!e.invisible&&(!e.onbrush||e.onbrush&&!e.onbrush(o,!1)))if(a.catchBrushException)try{e.brush(o,!1,s.refreshNextFrame)}catch(t){r(t,"brush error of "+e.type,e)}else e.brush(o,!1,s.refreshNextFrame)},{normal:"up",update:!0});var h=n.dom.toDataURL(e,i);return o=null,this._bgDom.removeChild(n.dom),h},h.prototype.getWidth=function(){return this._width},h.prototype.getHeight=function(){return this._height},h.prototype._getWidth=function(){var e=this.root,t=e.currentStyle||document.defaultView.getComputedStyle(e);return((e.clientWidth||parseInt(t.width,10))-parseInt(t.paddingLeft,10)-parseInt(t.paddingRight,10)).toFixed(0)-0},h.prototype._getHeight=function(){var e=this.root,t=e.currentStyle||document.defaultView.getComputedStyle(e);return((e.clientHeight||parseInt(t.height,10))-parseInt(t.paddingTop,10)-parseInt(t.paddingBottom,10)).toFixed(0)-0},h.prototype._brushHover=function(e){var t=this._layers.hover.ctx;if(!e.onbrush||e.onbrush&&!e.onbrush(t,!0)){var i=this.getLayer(e.zlevel);if(i.needTransform&&(t.save(),i.setTransform(t)),a.catchBrushException)try{e.brush(t,!0,this.refreshNextFrame)}catch(n){r(n,"hoverBrush error of "+e.type,e)}else e.brush(t,!0,this.refreshNextFrame);i.needTransform&&t.restore()}},h.prototype._shapeToImage=function(t,i,n,a,o){var r=document.createElement("canvas"),s=r.getContext("2d");r.style.width=n+"px",r.style.height=a+"px",r.setAttribute("width",n*o),r.setAttribute("height",a*o),s.clearRect(0,0,n*o,a*o);var l={position:i.position,rotation:i.rotation,scale:i.scale};i.position=[0,0,0],i.rotation=0,i.scale=[1,1],i&&i.brush(s,!1);var h=e("./shape/Image"),m=new h({id:t,style:{x:0,y:0,image:r}});return null!=l.position&&(m.position=i.position=l.position),null!=l.rotation&&(m.rotation=i.rotation=l.rotation),null!=l.scale&&(m.scale=i.scale=l.scale),m},h.prototype._createShapeToImageProcessor=function(){if(window.G_vmlCanvasManager)return i;var e=this;return function(t,i,n,o){return e._shapeToImage(t,i,n,o,a.devicePixelRatio)}},h}),i("zrender/Storage",["require","./tool/util","./Group"],function(e){"use strict";function t(e,t){return e.zlevel==t.zlevel?e.z==t.z?e.__renderidx-t.__renderidx:e.z-t.z:e.zlevel-t.zlevel}var i=e("./tool/util"),n=e("./Group"),a={hover:!1,normal:"down",update:!1},o=function(){this._elements={},this._hoverElements=[],this._roots=[],this._shapeList=[],this._shapeListOffset=0};return o.prototype.iterShape=function(e,t){if(t||(t=a),t.hover)for(var i=0,n=this._hoverElements.length;n>i;i++){var o=this._hoverElements[i];if(o.updateTransform(),e(o))return this}switch(t.update&&this.updateShapeList(),t.normal){case"down":for(var n=this._shapeList.length;n--;)if(e(this._shapeList[n]))return this;break;default:for(var i=0,n=this._shapeList.length;n>i;i++)if(e(this._shapeList[i]))return this}return this},o.prototype.getHoverShapes=function(e){for(var i=[],n=0,a=this._hoverElements.length;a>n;n++){i.push(this._hoverElements[n]);var o=this._hoverElements[n].hoverConnect;if(o){var r;o=o instanceof Array?o:[o];for(var s=0,l=o.length;l>s;s++)r=o[s].id?o[s]:this.get(o[s]),r&&i.push(r)}}if(i.sort(t),e)for(var n=0,a=i.length;a>n;n++)i[n].updateTransform();return i},o.prototype.getShapeList=function(e){return e&&this.updateShapeList(),this._shapeList},o.prototype.updateShapeList=function(){this._shapeListOffset=0;for(var e=0,i=this._roots.length;i>e;e++){var n=this._roots[e];this._updateAndAddShape(n)}this._shapeList.length=this._shapeListOffset;for(var e=0,i=this._shapeList.length;i>e;e++)this._shapeList[e].__renderidx=e;this._shapeList.sort(t)},o.prototype._updateAndAddShape=function(e,t){if(!e.ignore)if(e.updateTransform(),e.clipShape&&(e.clipShape.parent=e,e.clipShape.updateTransform(),t?(t=t.slice(),t.push(e.clipShape)):t=[e.clipShape]),"group"==e.type){for(var i=0;i0},o.prototype.addRoot=function(e){this._elements[e.id]||(e instanceof n&&e.addChildrenToStorage(this),this.addToMap(e),this._roots.push(e))},o.prototype.delRoot=function(e){if("undefined"==typeof e){for(var t=0;tt;t++)this.delRoot(e[t]);else{var r;r="string"==typeof e?this._elements[e]:e;var s=i.indexOf(this._roots,r);s>=0&&(this.delFromMap(r.id),this._roots.splice(s,1),r instanceof n&&r.delChildrenFromStorage(this))}},o.prototype.addToMap=function(e){return e instanceof n&&(e._storage=this),e.modSelf(),this._elements[e.id]=e,this},o.prototype.get=function(e){return this._elements[e]},o.prototype.delFromMap=function(e){var t=this._elements[e];return t&&(delete this._elements[e],t instanceof n&&(t._storage=null)),this},o.prototype.dispose=function(){this._elements=this._renderList=this._roots=this._hoverElements=null},o}),i("zrender/animation/Animation",["require","./Clip","../tool/color","../tool/util","../tool/event"],function(e){"use strict";function t(e,t){return e[t]}function i(e,t,i){e[t]=i}function n(e,t,i){return(t-e)*i+e}function a(e,t,i,a,o){var r=e.length;if(1==o)for(var s=0;r>s;s++)a[s]=n(e[s],t[s],i);else for(var l=e[0].length,s=0;r>s;s++)for(var h=0;l>h;h++)a[s][h]=n(e[s][h],t[s][h],i)}function o(e){switch(typeof e){case"undefined":case"string":return!1}return"undefined"!=typeof e.length}function r(e,t,i,n,a,o,r,l,h){var m=e.length;if(1==h)for(var V=0;m>V;V++)l[V]=s(e[V],t[V],i[V],n[V],a,o,r);else for(var U=e[0].length,V=0;m>V;V++)for(var d=0;U>d;d++)l[V][d]=s(e[V][d],t[V][d],i[V][d],n[V][d],a,o,r)}function s(e,t,i,n,a,o,r){var s=.5*(i-e),l=.5*(n-t);return(2*(t-i)+s+l)*r+(-3*(t-i)-2*s-l)*o+s*a+t}function l(e){if(o(e)){var t=e.length;if(o(e[0])){for(var i=[],n=0;t>n;n++)i.push(c.call(e[n]));return i}return c.call(e)}return e}function h(e){return e[0]=Math.floor(e[0]),e[1]=Math.floor(e[1]),e[2]=Math.floor(e[2]),"rgba("+e.join(",")+")"}var m=e("./Clip"),V=e("../tool/color"),U=e("../tool/util"),d=e("../tool/event").Dispatcher,p=window.requestAnimationFrame||window.msRequestAnimationFrame||window.mozRequestAnimationFrame||window.webkitRequestAnimationFrame||function(e){setTimeout(e,16)},c=Array.prototype.slice,u=function(e){e=e||{},this.stage=e.stage||{},this.onframe=e.onframe||function(){},this._clips=[],this._running=!1,this._time=0,d.call(this)};u.prototype={add:function(e){this._clips.push(e)},remove:function(e){if(e.__inStep)e.__needsRemove=!0;else{var t=U.indexOf(this._clips,e);t>=0&&this._clips.splice(t,1)}},_update:function(){for(var e=(new Date).getTime(),t=e-this._time,i=this._clips,n=i.length,a=[],o=[],r=0;n>r;r++){var s=i[r];s.__inStep=!0;var l=s.step(e);s.__inStep=!1,l&&(a.push(l),o.push(s))}for(var r=0;n>r;)i[r].__needsRemove?(i[r]=i[n-1],i.pop(),n--):r++;n=a.length;for(var r=0;n>r;r++)o[r].fire(a[r]);this._time=e,this.onframe(t),this.dispatch("frame",t),this.stage.update&&this.stage.update()},start:function(){function e(){t._running&&(p(e),t._update())}var t=this;this._running=!0,this._time=(new Date).getTime(),p(e)},stop:function(){this._running=!1},clear:function(){this._clips=[]},animate:function(e,t){t=t||{};var i=new y(e,t.loop,t.getter,t.setter);return i.animation=this,i},constructor:u},U.merge(u.prototype,d.prototype,!0);var y=function(e,n,a,o){this._tracks={},this._target=e,this._loop=n||!1,this._getter=a||t,this._setter=o||i,this._clipCount=0,this._delay=0,this._doneList=[],this._onframeList=[],this._clipList=[]};return y.prototype={when:function(e,t){for(var i in t)this._tracks[i]||(this._tracks[i]=[],0!==e&&this._tracks[i].push({time:0,value:l(this._getter(this._target,i))})),this._tracks[i].push({time:parseInt(e,10),value:t[i]});return this},during:function(e){return this._onframeList.push(e),this},start:function(e){var t=this,i=this._setter,l=this._getter,U="spline"===e,d=function(){if(t._clipCount--,0===t._clipCount){t._tracks={};for(var e=t._doneList.length,i=0;e>i;i++)t._doneList[i].call(t)}},p=function(p,c){var u=p.length;if(u){var y=p[0].value,g=o(y),b=!1,f=g&&o(y[0])?2:1;p.sort(function(e,t){return e.time-t.time});var k;if(u){k=p[u-1].time;for(var x=[],_=[],L=0;u>L;L++){x.push(p[L].time/k);var W=p[L].value;"string"==typeof W&&(W=V.toArray(W),0===W.length&&(W[0]=W[1]=W[2]=0,W[3]=1),b=!0),_.push(W)}var X,L,v,w,K,I,J,C=0,S=0;if(b)var E=[0,0,0,0];var F=function(e,o){if(S>o){for(X=Math.min(C+1,u-1),L=X;L>=0&&!(x[L]<=o);L--);L=Math.min(L,u-2)}else{for(L=C;u>L&&!(x[L]>o);L++);L=Math.min(L-1,u-2)}C=L,S=o;var m=x[L+1]-x[L];if(0!==m){if(v=(o-x[L])/m,U)if(K=_[L],w=_[0===L?L:L-1],I=_[L>u-2?u-1:L+1],J=_[L>u-3?u-1:L+2],g)r(w,K,I,J,v,v*v,v*v*v,l(e,c),f);else{var V;b?(V=r(w,K,I,J,v,v*v,v*v*v,E,1),V=h(E)):V=s(w,K,I,J,v,v*v,v*v*v),i(e,c,V)}else if(g)a(_[L],_[L+1],v,l(e,c),f);else{var V;b?(a(_[L],_[L+1],v,E,1),V=h(E)):V=n(_[L],_[L+1],v),i(e,c,V)}for(L=0;L=t[1]&&(e=t[1]),e},t.prototype.getLocation=function(e,t,i){var n=null!=e.x?e.x:"center";switch(n){case"center":n=Math.floor((this.canvasWidth-t)/2);break;case"left":n=0;break;case"right":n=this.canvasWidth-t}var a=null!=e.y?e.y:"center";switch(a){case"center":a=Math.floor((this.canvasHeight-i)/2);break;case"top":a=0;break;case"bottom":a=this.canvasHeight-i}return{x:n,y:a,width:t,height:i}},t}),i("zrender/Layer",["require","./mixin/Transformable","./tool/util","./config"],function(e){function t(){return!1}function i(e,t,i){var n=document.createElement(t),a=i.getWidth(),o=i.getHeight();return n.style.position="absolute",n.style.left=0,n.style.top=0,n.style.width=a+"px",n.style.height=o+"px",n.width=a*r.devicePixelRatio,n.height=o*r.devicePixelRatio,n.setAttribute("data-zr-dom-id",e),n}var n=e("./mixin/Transformable"),a=e("./tool/util"),o=window.G_vmlCanvasManager,r=e("./config"),s=function(e,a){this.id=e,this.dom=i(e,"canvas",a),this.dom.onselectstart=t,this.dom.style["-webkit-user-select"]="none",this.dom.style["user-select"]="none",this.dom.style["-webkit-touch-callout"]="none",this.dom.style["-webkit-tap-highlight-color"]="rgba(0,0,0,0)",this.dom.className=r.elementClassName,o&&o.initElement(this.dom),this.domBack=null,this.ctxBack=null,this.painter=a,this.unusedCount=0,this.config=null,this.dirty=!0,this.elCount=0,this.clearColor=0,this.motionBlur=!1,this.lastFrameAlpha=.7,this.zoomable=!1,this.panable=!1,this.maxZoom=1/0,this.minZoom=0,n.call(this)};return s.prototype.initContext=function(){this.ctx=this.dom.getContext("2d");var e=r.devicePixelRatio;1!=e&&this.ctx.scale(e,e)},s.prototype.createBackBuffer=function(){if(!o){this.domBack=i("back-"+this.id,"canvas",this.painter),this.ctxBack=this.domBack.getContext("2d");var e=r.devicePixelRatio;1!=e&&this.ctxBack.scale(e,e)}},s.prototype.resize=function(e,t){var i=r.devicePixelRatio;this.dom.style.width=e+"px",this.dom.style.height=t+"px",this.dom.setAttribute("width",e*i),this.dom.setAttribute("height",t*i),1!=i&&this.ctx.scale(i,i),this.domBack&&(this.domBack.setAttribute("width",e*i),this.domBack.setAttribute("height",t*i),1!=i&&this.ctxBack.scale(i,i))},s.prototype.clear=function(){var e=this.dom,t=this.ctx,i=e.width,n=e.height,a=this.clearColor&&!o,s=this.motionBlur&&!o,l=this.lastFrameAlpha,h=r.devicePixelRatio;if(s&&(this.domBack||this.createBackBuffer(),this.ctxBack.globalCompositeOperation="copy",this.ctxBack.drawImage(e,0,0,i/h,n/h)),t.clearRect(0,0,i/h,n/h),a&&(t.save(),t.fillStyle=this.clearColor,t.fillRect(0,0,i/h,n/h),t.restore()),s){var m=this.domBack;t.save(),t.globalAlpha=l,t.drawImage(m,0,0,i/h,n/h),t.restore()}},a.merge(s.prototype,n.prototype),s}),i("zrender/shape/Text",["require","../tool/area","./Base","../tool/util"],function(e){ +var t=e("../tool/area"),i=e("./Base"),n=function(e){i.call(this,e)};return n.prototype={type:"text",brush:function(e,i){var n=this.style;if(i&&(n=this.getHighlightStyle(n,this.highlightStyle||{})),"undefined"!=typeof n.text&&n.text!==!1){e.save(),this.doClip(e),this.setContext(e,n),this.setTransform(e),n.textFont&&(e.font=n.textFont),e.textAlign=n.textAlign||"start",e.textBaseline=n.textBaseline||"middle";var a,o=(n.text+"").split("\n"),r=t.getTextHeight("国",n.textFont),s=this.getRect(n),l=n.x;a="top"==n.textBaseline?s.y:"bottom"==n.textBaseline?s.y+r:s.y+r/2;for(var h=0,m=o.length;m>h;h++){if(n.maxWidth)switch(n.brushType){case"fill":e.fillText(o[h],l,a,n.maxWidth);break;case"stroke":e.strokeText(o[h],l,a,n.maxWidth);break;case"both":e.fillText(o[h],l,a,n.maxWidth),e.strokeText(o[h],l,a,n.maxWidth);break;default:e.fillText(o[h],l,a,n.maxWidth)}else switch(n.brushType){case"fill":e.fillText(o[h],l,a);break;case"stroke":e.strokeText(o[h],l,a);break;case"both":e.fillText(o[h],l,a),e.strokeText(o[h],l,a);break;default:e.fillText(o[h],l,a)}a+=r}e.restore()}},getRect:function(e){if(e.__rect)return e.__rect;var i=t.getTextWidth(e.text,e.textFont),n=t.getTextHeight(e.text,e.textFont),a=e.x;"end"==e.textAlign||"right"==e.textAlign?a-=i:"center"==e.textAlign&&(a-=i/2);var o;return o="top"==e.textBaseline?e.y:"bottom"==e.textBaseline?e.y-n:e.y-n/2,e.__rect={x:a,y:o,width:i,height:n},e.__rect}},e("../tool/util").inherits(n,i),n}),i("zrender/shape/Rectangle",["require","./Base","../tool/util"],function(e){var t=e("./Base"),i=function(e){t.call(this,e)};return i.prototype={type:"rectangle",_buildRadiusPath:function(e,t){var i,n,a,o,r=t.x,s=t.y,l=t.width,h=t.height,m=t.radius;"number"==typeof m?i=n=a=o=m:m instanceof Array?1===m.length?i=n=a=o=m[0]:2===m.length?(i=a=m[0],n=o=m[1]):3===m.length?(i=m[0],n=o=m[1],a=m[2]):(i=m[0],n=m[1],a=m[2],o=m[3]):i=n=a=o=0;var V;i+n>l&&(V=i+n,i*=l/V,n*=l/V),a+o>l&&(V=a+o,a*=l/V,o*=l/V),n+a>h&&(V=n+a,n*=h/V,a*=h/V),i+o>h&&(V=i+o,i*=h/V,o*=h/V),e.moveTo(r+i,s),e.lineTo(r+l-n,s),0!==n&&e.quadraticCurveTo(r+l,s,r+l,s+n),e.lineTo(r+l,s+h-a),0!==a&&e.quadraticCurveTo(r+l,s+h,r+l-a,s+h),e.lineTo(r+o,s+h),0!==o&&e.quadraticCurveTo(r,s+h,r,s+h-o),e.lineTo(r,s+i),0!==i&&e.quadraticCurveTo(r,s,r+i,s)},buildPath:function(e,t){t.radius?this._buildRadiusPath(e,t):(e.moveTo(t.x,t.y),e.lineTo(t.x+t.width,t.y),e.lineTo(t.x+t.width,t.y+t.height),e.lineTo(t.x,t.y+t.height),e.lineTo(t.x,t.y)),e.closePath()},getRect:function(e){if(e.__rect)return e.__rect;var t;return t="stroke"==e.brushType||"fill"==e.brushType?e.lineWidth||1:0,e.__rect={x:Math.round(e.x-t/2),y:Math.round(e.y-t/2),width:e.width+t,height:e.height+t},e.__rect}},e("../tool/util").inherits(i,t),i}),i("zrender/tool/area",["require","./util","./curve"],function(e){"use strict";function t(e){return e%=C,0>e&&(e+=C),e}function i(e,t,i,o){if(!t||!e)return!1;var r=e.type;L=L||W.getContext();var s=n(e,t,i,o);if("undefined"!=typeof s)return s;if(e.buildPath&&L.isPointInPath)return a(e,L,t,i,o);switch(r){case"ellipse":return!0;case"trochoid":var l="out"==t.location?t.r1+t.r2+t.d:t.r1-t.r2+t.d;return d(t,i,o,l);case"rose":return d(t,i,o,t.maxr);default:return!1}}function n(e,t,i,n){var a=e.type;switch(a){case"bezier-curve":return"undefined"==typeof t.cpX2?l(t.xStart,t.yStart,t.cpX1,t.cpY1,t.xEnd,t.yEnd,t.lineWidth,i,n):s(t.xStart,t.yStart,t.cpX1,t.cpY1,t.cpX2,t.cpY2,t.xEnd,t.yEnd,t.lineWidth,i,n);case"line":return r(t.xStart,t.yStart,t.xEnd,t.yEnd,t.lineWidth,i,n);case"polyline":return m(t.pointList,t.lineWidth,i,n);case"ring":return V(t.x,t.y,t.r0,t.r,i,n);case"circle":return d(t.x,t.y,t.r,i,n);case"sector":var o=t.startAngle*Math.PI/180,h=t.endAngle*Math.PI/180;return t.clockWise||(o=-o,h=-h),p(t.x,t.y,t.r0,t.r,o,h,!t.clockWise,i,n);case"path":return t.pathArray&&k(t.pathArray,Math.max(t.lineWidth,5),t.brushType,i,n);case"polygon":case"star":case"isogon":return c(t.pointList,i,n);case"text":var u=t.__rect||e.getRect(t);return U(u.x,u.y,u.width,u.height,i,n);case"rectangle":case"image":return U(t.x,t.y,t.width,t.height,i,n)}}function a(e,t,i,n,a){return t.beginPath(),e.buildPath(t,i),t.closePath(),t.isPointInPath(n,a)}function o(e,t,n,a){return!i(e,t,n,a)}function r(e,t,i,n,a,o,r){if(0===a)return!1;var s=Math.max(a,5),l=0,h=e;if(r>t+s&&r>n+s||t-s>r&&n-s>r||o>e+s&&o>i+s||e-s>o&&i-s>o)return!1;if(e===i)return Math.abs(o-e)<=s/2;l=(t-n)/(e-i),h=(e*n-i*t)/(e-i);var m=l*o-r+h,V=m*m/(l*l+1);return s/2*s/2>=V}function s(e,t,i,n,a,o,r,s,l,h,m){if(0===l)return!1;var V=Math.max(l,5);if(m>t+V&&m>n+V&&m>o+V&&m>s+V||t-V>m&&n-V>m&&o-V>m&&s-V>m||h>e+V&&h>i+V&&h>a+V&&h>r+V||e-V>h&&i-V>h&&a-V>h&&r-V>h)return!1;var U=X.cubicProjectPoint(e,t,i,n,a,o,r,s,h,m,null);return V/2>=U}function l(e,t,i,n,a,o,r,s,l){if(0===r)return!1;var h=Math.max(r,5);if(l>t+h&&l>n+h&&l>o+h||t-h>l&&n-h>l&&o-h>l||s>e+h&&s>i+h&&s>a+h||e-h>s&&i-h>s&&a-h>s)return!1;var m=X.quadraticProjectPoint(e,t,i,n,a,o,s,l,null);return h/2>=m}function h(e,i,n,a,o,r,s,l,h){if(0===s)return!1;var m=Math.max(s,5);l-=e,h-=i;var V=Math.sqrt(l*l+h*h);if(V-m>n||n>V+m)return!1;if(Math.abs(a-o)>=C)return!0;if(r){var U=a;a=t(o),o=t(U)}else a=t(a),o=t(o);a>o&&(o+=C);var d=Math.atan2(h,l);return 0>d&&(d+=C),d>=a&&o>=d||d+C>=a&&o>=d+C}function m(e,t,i,n){for(var t=Math.max(t,10),a=0,o=e.length-1;o>a;a++){var s=e[a][0],l=e[a][1],h=e[a+1][0],m=e[a+1][1];if(r(s,l,h,m,t,i,n))return!0}return!1}function V(e,t,i,n,a,o){var r=(a-e)*(a-e)+(o-t)*(o-t);return n*n>r&&r>i*i}function U(e,t,i,n,a,o){return a>=e&&e+i>=a&&o>=t&&t+n>=o}function d(e,t,i,n,a){return i*i>(n-e)*(n-e)+(a-t)*(a-t)}function p(e,t,i,n,a,o,r,s,l){return h(e,t,(i+n)/2,a,o,r,n-i,s,l)}function c(e,t,i){for(var n=e.length,a=0,o=0,r=n-1;n>o;o++){var s=e[r][0],l=e[r][1],h=e[o][0],m=e[o][1];a+=u(s,l,h,m,t,i),r=o}return 0!==a}function u(e,t,i,n,a,o){if(o>t&&o>n||t>o&&n>o)return 0;if(n==t)return 0;var r=t>n?1:-1,s=(o-t)/(n-t),l=s*(i-e)+e;return l>a?r:0}function y(){var e=E[0];E[0]=E[1],E[1]=e}function g(e,t,i,n,a,o,r,s,l,h){if(h>t&&h>n&&h>o&&h>s||t>h&&n>h&&o>h&&s>h)return 0;var m=X.cubicRootAt(t,n,o,s,h,S);if(0===m)return 0;for(var V,U,d=0,p=-1,c=0;m>c;c++){var u=S[c],g=X.cubicAt(e,i,a,r,u);l>g||(0>p&&(p=X.cubicExtrema(t,n,o,s,E),E[1]1&&y(),V=X.cubicAt(t,n,o,s,E[0]),p>1&&(U=X.cubicAt(t,n,o,s,E[1]))),d+=2==p?uV?1:-1:uU?1:-1:U>s?1:-1:uV?1:-1:V>s?1:-1)}return d}function b(e,t,i,n,a,o,r,s){if(s>t&&s>n&&s>o||t>s&&n>s&&o>s)return 0;var l=X.quadraticRootAt(t,n,o,s,S);if(0===l)return 0;var h=X.quadraticExtremum(t,n,o);if(h>=0&&1>=h){for(var m=0,V=X.quadraticAt(t,n,o,h),U=0;l>U;U++){var d=X.quadraticAt(e,i,a,S[U]);r>d||(m+=S[U]V?1:-1:V>o?1:-1)}return m}var d=X.quadraticAt(e,i,a,S[0]);return r>d?0:t>o?1:-1}function f(e,i,n,a,o,r,s,l){if(l-=i,l>n||-n>l)return 0;var h=Math.sqrt(n*n-l*l);if(S[0]=-h,S[1]=h,Math.abs(a-o)>=C){a=0,o=C;var m=r?1:-1;return s>=S[0]+e&&s<=S[1]+e?m:0}if(r){var h=a;a=t(o),o=t(h)}else a=t(a),o=t(o);a>o&&(o+=C);for(var V=0,U=0;2>U;U++){var d=S[U];if(d+e>s){var p=Math.atan2(l,d),m=r?1:-1;0>p&&(p=C+p),(p>=a&&o>=p||p+C>=a&&o>=p+C)&&(p>Math.PI/2&&p<1.5*Math.PI&&(m=-m),V+=m)}}return V}function k(e,t,i,n,a){var o=0,m=0,V=0,U=0,d=0,p=!0,c=!0;i=i||"fill";for(var y="stroke"===i||"both"===i,k="fill"===i||"both"===i,x=0;x0&&(k&&(o+=u(m,V,U,d,n,a)),0!==o))return!0;U=L[L.length-2],d=L[L.length-1],p=!1,c&&"A"!==_.command&&(c=!1,m=U,V=d)}switch(_.command){case"M":m=L[0],V=L[1];break;case"L":if(y&&r(m,V,L[0],L[1],t,n,a))return!0;k&&(o+=u(m,V,L[0],L[1],n,a)),m=L[0],V=L[1];break;case"C":if(y&&s(m,V,L[0],L[1],L[2],L[3],L[4],L[5],t,n,a))return!0;k&&(o+=g(m,V,L[0],L[1],L[2],L[3],L[4],L[5],n,a)),m=L[4],V=L[5];break;case"Q":if(y&&l(m,V,L[0],L[1],L[2],L[3],t,n,a))return!0;k&&(o+=b(m,V,L[0],L[1],L[2],L[3],n,a)),m=L[2],V=L[3];break;case"A":var W=L[0],X=L[1],v=L[2],w=L[3],K=L[4],I=L[5],J=Math.cos(K)*v+W,C=Math.sin(K)*w+X;c?(c=!1,U=J,d=C):o+=u(m,V,J,C);var S=(n-W)*w/v+W;if(y&&h(W,X,w,K,K+I,1-L[7],t,S,a))return!0;k&&(o+=f(W,X,w,K,K+I,1-L[7],S,a)),m=Math.cos(K+I)*v+W,V=Math.sin(K+I)*w+X;break;case"z":if(y&&r(m,V,U,d,t,n,a))return!0;p=!0}}return k&&(o+=u(m,V,U,d,n,a)),0!==o}function x(e,t){var i=e+":"+t;if(v[i])return v[i];L=L||W.getContext(),L.save(),t&&(L.font=t),e=(e+"").split("\n");for(var n=0,a=0,o=e.length;o>a;a++)n=Math.max(L.measureText(e[a]).width,n);return L.restore(),v[i]=n,++K>J&&(K=0,v={}),n}function _(e,t){var i=e+":"+t;if(w[i])return w[i];L=L||W.getContext(),L.save(),t&&(L.font=t),e=(e+"").split("\n");var n=(L.measureText("国").width+2)*e.length;return L.restore(),w[i]=n,++I>J&&(I=0,w={}),n}var L,W=e("./util"),X=e("./curve"),v={},w={},K=0,I=0,J=5e3,C=2*Math.PI,S=[-1,-1,-1],E=[-1,-1];return{isInside:i,isOutside:o,getTextWidth:x,getTextHeight:_,isInsidePath:k,isInsidePolygon:c,isInsideSector:p,isInsideCircle:d,isInsideLine:r,isInsideRect:U,isInsidePolyline:m,isInsideCubicStroke:s,isInsideQuadraticStroke:l}}),i("zrender/shape/Base",["require","../tool/matrix","../tool/guid","../tool/util","../tool/log","../mixin/Transformable","../mixin/Eventful","../tool/area","../tool/color"],function(e){function t(t,n,a,o,r,s,l){r&&(t.font=r),t.textAlign=s,t.textBaseline=l;var h=i(n,a,o,r,s,l);n=(n+"").split("\n");var m=e("../tool/area").getTextHeight("国",r);switch(l){case"top":o=h.y;break;case"bottom":o=h.y+m;break;default:o=h.y+m/2}for(var V=0,U=n.length;U>V;V++)t.fillText(n[V],a,o),o+=m}function i(t,i,n,a,o,r){var s=e("../tool/area"),l=s.getTextWidth(t,a),h=s.getTextHeight("国",a);switch(t=(t+"").split("\n"),o){case"end":case"right":i-=l;break;case"center":i-=l/2}switch(r){case"top":break;case"bottom":n-=h*t.length;break;default:n-=h*t.length/2}return{x:i,y:n,width:l,height:h*t.length}}var n=window.G_vmlCanvasManager,a=e("../tool/matrix"),o=e("../tool/guid"),r=e("../tool/util"),s=e("../tool/log"),l=e("../mixin/Transformable"),h=e("../mixin/Eventful"),m=function(e){e=e||{},this.id=e.id||o();for(var t in e)this[t]=e[t];this.style=this.style||{},this.highlightStyle=this.highlightStyle||null,this.parent=null,this.__dirty=!0,this.__clipShapes=[],l.call(this),h.call(this)};m.prototype.invisible=!1,m.prototype.ignore=!1,m.prototype.zlevel=0,m.prototype.draggable=!1,m.prototype.clickable=!1,m.prototype.hoverable=!0,m.prototype.z=0,m.prototype.brush=function(e,t){var i=this.beforeBrush(e,t);switch(e.beginPath(),this.buildPath(e,i),i.brushType){case"both":e.fill();case"stroke":i.lineWidth>0&&e.stroke();break;default:e.fill()}this.drawText(e,i,this.style),this.afterBrush(e)},m.prototype.beforeBrush=function(e,t){var i=this.style;return this.brushTypeOnly&&(i.brushType=this.brushTypeOnly),t&&(i=this.getHighlightStyle(i,this.highlightStyle||{},this.brushTypeOnly)),"stroke"==this.brushTypeOnly&&(i.strokeColor=i.strokeColor||i.color),e.save(),this.doClip(e),this.setContext(e,i),this.setTransform(e),i},m.prototype.afterBrush=function(e){e.restore()};var V=[["color","fillStyle"],["strokeColor","strokeStyle"],["opacity","globalAlpha"],["lineCap","lineCap"],["lineJoin","lineJoin"],["miterLimit","miterLimit"],["lineWidth","lineWidth"],["shadowBlur","shadowBlur"],["shadowColor","shadowColor"],["shadowOffsetX","shadowOffsetX"],["shadowOffsetY","shadowOffsetY"]];m.prototype.setContext=function(e,t){for(var i=0,n=V.length;n>i;i++){var a=V[i][0],o=t[a],r=V[i][1];"undefined"!=typeof o&&(e[r]=o)}};var U=a.create();return m.prototype.doClip=function(e){if(this.__clipShapes&&!n)for(var t=0;t=i.x&&e<=i.x+i.width&&t>=i.y&&t<=i.y+i.height},m.prototype.drawText=function(e,i,n){if("undefined"!=typeof i.text&&i.text!==!1){var a=i.textColor||i.color||i.strokeColor;e.fillStyle=a;var o,r,s,l,h=10,m=i.textPosition||this.textPosition||"top";switch(m){case"inside":case"top":case"bottom":case"left":case"right":if(this.getRect){var V=(n||i).__rect||this.getRect(n||i);switch(m){case"inside":s=V.x+V.width/2,l=V.y+V.height/2,o="center",r="middle","stroke"!=i.brushType&&a==i.color&&(e.fillStyle="#fff");break;case"left":s=V.x-h,l=V.y+V.height/2,o="end",r="middle";break;case"right":s=V.x+V.width+h,l=V.y+V.height/2,o="start",r="middle";break;case"top":s=V.x+V.width/2,l=V.y-h,o="center",r="bottom";break;case"bottom":s=V.x+V.width/2,l=V.y+V.height+h,o="center",r="top"}}break;case"start":case"end":var U=i.pointList||[[i.xStart||0,i.yStart||0],[i.xEnd||0,i.yEnd||0]],d=U.length;if(2>d)return;var p,c,u,y;switch(m){case"start":p=U[1][0],c=U[0][0],u=U[1][1],y=U[0][1];break;case"end":p=U[d-2][0],c=U[d-1][0],u=U[d-2][1],y=U[d-1][1]}s=c,l=y;var g=Math.atan((u-y)/(c-p))/Math.PI*180;0>c-p?g+=180:0>u-y&&(g+=360),h=5,g>=30&&150>=g?(o="center",r="bottom",l-=h):g>150&&210>g?(o="right",r="middle",s-=h):g>=210&&330>=g?(o="center",r="top",l+=h):(o="left",r="middle",s+=h);break;case"specific":s=i.textX||0,l=i.textY||0,o="start",r="middle"}null!=s&&null!=l&&t(e,i.text,s,l,i.textFont,i.textAlign||o,i.textBaseline||r)}},m.prototype.modSelf=function(){this.__dirty=!0,this.style&&(this.style.__rect=null),this.highlightStyle&&(this.highlightStyle.__rect=null)},m.prototype.isSilent=function(){return!(this.hoverable||this.draggable||this.clickable||this.onmousemove||this.onmouseover||this.onmouseout||this.onmousedown||this.onmouseup||this.onclick||this.ondragenter||this.ondragover||this.ondragleave||this.ondrop)},r.merge(m.prototype,l.prototype,!0),r.merge(m.prototype,h.prototype,!0),m}),i("zrender/tool/curve",["require","./vector"],function(e){function t(e){return e>-u&&u>e}function i(e){return e>u||-u>e}function n(e,t,i,n,a){var o=1-a;return o*o*(o*e+3*a*t)+a*a*(a*n+3*o*i)}function a(e,t,i,n,a){var o=1-a;return 3*(((t-e)*o+2*(i-t)*a)*o+(n-i)*a*a)}function o(e,i,n,a,o,r){var s=a+3*(i-n)-e,l=3*(n-2*i+e),h=3*(i-e),m=e-o,V=l*l-3*s*h,U=l*h-9*s*m,d=h*h-3*l*m,p=0;if(t(V)&&t(U))if(t(l))r[0]=0;else{var c=-h/l;c>=0&&1>=c&&(r[p++]=c)}else{var u=U*U-4*V*d;if(t(u)){var b=U/V,c=-l/s+b,f=-b/2;c>=0&&1>=c&&(r[p++]=c),f>=0&&1>=f&&(r[p++]=f)}else if(u>0){var k=Math.sqrt(u),x=V*l+1.5*s*(-U+k),_=V*l+1.5*s*(-U-k);x=0>x?-Math.pow(-x,g):Math.pow(x,g),_=0>_?-Math.pow(-_,g):Math.pow(_,g);var c=(-l-(x+_))/(3*s);c>=0&&1>=c&&(r[p++]=c)}else{var L=(2*V*l-3*s*U)/(2*Math.sqrt(V*V*V)),W=Math.acos(L)/3,X=Math.sqrt(V),v=Math.cos(W),c=(-l-2*X*v)/(3*s),f=(-l+X*(v+y*Math.sin(W)))/(3*s),w=(-l+X*(v-y*Math.sin(W)))/(3*s);c>=0&&1>=c&&(r[p++]=c),f>=0&&1>=f&&(r[p++]=f),w>=0&&1>=w&&(r[p++]=w)}}return p}function r(e,n,a,o,r){var s=6*a-12*n+6*e,l=9*n+3*o-3*e-9*a,h=3*n-3*e,m=0;if(t(l)){if(i(s)){var V=-h/s;V>=0&&1>=V&&(r[m++]=V)}}else{var U=s*s-4*l*h;if(t(U))r[0]=-s/(2*l);else if(U>0){var d=Math.sqrt(U),V=(-s+d)/(2*l),p=(-s-d)/(2*l);V>=0&&1>=V&&(r[m++]=V),p>=0&&1>=p&&(r[m++]=p)}}return m}function s(e,t,i,n,a,o){var r=(t-e)*a+e,s=(i-t)*a+t,l=(n-i)*a+i,h=(s-r)*a+r,m=(l-s)*a+s,V=(m-h)*a+h;o[0]=e,o[1]=r,o[2]=h,o[3]=V,o[4]=V,o[5]=m,o[6]=l,o[7]=n}function l(e,t,i,a,o,r,s,l,h,m,V){var U,d=.005,p=1/0;b[0]=h,b[1]=m;for(var y=0;1>y;y+=.05){f[0]=n(e,i,o,s,y),f[1]=n(t,a,r,l,y);var g=c.distSquare(b,f);p>g&&(U=y,p=g)}p=1/0;for(var x=0;32>x&&!(u>d);x++){var _=U-d,L=U+d;f[0]=n(e,i,o,s,_),f[1]=n(t,a,r,l,_);var g=c.distSquare(f,b);if(_>=0&&p>g)U=_,p=g;else{k[0]=n(e,i,o,s,L),k[1]=n(t,a,r,l,L);var W=c.distSquare(k,b);1>=L&&p>W?(U=L,p=W):d*=.5}}return V&&(V[0]=n(e,i,o,s,U),V[1]=n(t,a,r,l,U)),Math.sqrt(p)}function h(e,t,i,n){var a=1-n;return a*(a*e+2*n*t)+n*n*i}function m(e,t,i,n){return 2*((1-n)*(t-e)+n*(i-t))}function V(e,n,a,o,r){var s=e-2*n+a,l=2*(n-e),h=e-o,m=0;if(t(s)){if(i(l)){var V=-h/l;V>=0&&1>=V&&(r[m++]=V)}}else{var U=l*l-4*s*h;if(t(U)){var V=-l/(2*s);V>=0&&1>=V&&(r[m++]=V)}else if(U>0){var d=Math.sqrt(U),V=(-l+d)/(2*s),p=(-l-d)/(2*s);V>=0&&1>=V&&(r[m++]=V),p>=0&&1>=p&&(r[m++]=p)}}return m}function U(e,t,i){var n=e+i-2*t;return 0===n?.5:(e-t)/n}function d(e,t,i,n,a){var o=(t-e)*n+e,r=(i-t)*n+t,s=(r-o)*n+o;a[0]=e,a[1]=o,a[2]=s,a[3]=s,a[4]=r,a[5]=i}function p(e,t,i,n,a,o,r,s,l){var m,V=.005,U=1/0;b[0]=r,b[1]=s;for(var d=0;1>d;d+=.05){f[0]=h(e,i,a,d),f[1]=h(t,n,o,d);var p=c.distSquare(b,f);U>p&&(m=d,U=p)}U=1/0;for(var y=0;32>y&&!(u>V);y++){var g=m-V,x=m+V;f[0]=h(e,i,a,g),f[1]=h(t,n,o,g);var p=c.distSquare(f,b);if(g>=0&&U>p)m=g,U=p;else{k[0]=h(e,i,a,x),k[1]=h(t,n,o,x);var _=c.distSquare(k,b);1>=x&&U>_?(m=x,U=_):V*=.5}}return l&&(l[0]=h(e,i,a,m),l[1]=h(t,n,o,m)),Math.sqrt(U)}var c=e("./vector"),u=1e-4,y=Math.sqrt(3),g=1/3,b=c.create(),f=c.create(),k=c.create();return{cubicAt:n,cubicDerivativeAt:a,cubicRootAt:o,cubicExtrema:r,cubicSubdivide:s,cubicProjectPoint:l,quadraticAt:h,quadraticDerivativeAt:m,quadraticRootAt:V,quadraticExtremum:U,quadraticSubdivide:d,quadraticProjectPoint:p}}),i("zrender/mixin/Transformable",["require","../tool/matrix","../tool/vector"],function(e){"use strict";function t(e){return e>-s&&s>e}function i(e){return e>s||-s>e}var n=e("../tool/matrix"),a=e("../tool/vector"),o=[0,0],r=n.translate,s=5e-5,l=function(){this.position||(this.position=[0,0]),"undefined"==typeof this.rotation&&(this.rotation=[0,0,0]),this.scale||(this.scale=[1,1,0,0]),this.needLocalTransform=!1,this.needTransform=!1};return l.prototype={constructor:l,updateNeedTransform:function(){this.needLocalTransform=i(this.rotation[0])||i(this.position[0])||i(this.position[1])||i(this.scale[0]-1)||i(this.scale[1]-1)},updateTransform:function(){this.updateNeedTransform();var e=this.parent&&this.parent.needTransform;if(this.needTransform=this.needLocalTransform||e,this.needTransform){var t=this.transform||n.create();if(n.identity(t),this.needLocalTransform){var a=this.scale;if(i(a[0])||i(a[1])){o[0]=-a[2]||0,o[1]=-a[3]||0;var s=i(o[0])||i(o[1]);s&&r(t,t,o),n.scale(t,t,a),s&&(o[0]=-o[0],o[1]=-o[1],r(t,t,o))}if(this.rotation instanceof Array){if(0!==this.rotation[0]){o[0]=-this.rotation[1]||0,o[1]=-this.rotation[2]||0;var s=i(o[0])||i(o[1]);s&&r(t,t,o),n.rotate(t,t,this.rotation[0]),s&&(o[0]=-o[0],o[1]=-o[1],r(t,t,o))}}else 0!==this.rotation&&n.rotate(t,t,this.rotation);(i(this.position[0])||i(this.position[1]))&&r(t,t,this.position)}e&&(this.needLocalTransform?n.mul(t,this.parent.transform,t):n.copy(t,this.parent.transform)),this.transform=t,this.invTransform=this.invTransform||n.create(),n.invert(this.invTransform,t)}},setTransform:function(e){if(this.needTransform){var t=this.transform;e.transform(t[0],t[1],t[2],t[3],t[4],t[5])}},lookAt:function(){var e=a.create();return function(i){this.transform||(this.transform=n.create());var o=this.transform;if(a.sub(e,i,this.position),!t(e[0])||!t(e[1])){a.normalize(e,e);var r=this.scale;o[2]=e[0]*r[1],o[3]=e[1]*r[1],o[0]=e[1]*r[0],o[1]=-e[0]*r[0],o[4]=this.position[0],o[5]=this.position[1],this.decomposeTransform()}}}(),decomposeTransform:function(){if(this.transform){var e=this.transform,t=e[0]*e[0]+e[1]*e[1],n=this.position,a=this.scale,o=this.rotation;i(t-1)&&(t=Math.sqrt(t));var r=e[2]*e[2]+e[3]*e[3];i(r-1)&&(r=Math.sqrt(r)),n[0]=e[4],n[1]=e[5],a[0]=t,a[1]=r,a[2]=a[3]=0,o[0]=Math.atan2(-e[1]/r,e[0]/t),o[1]=o[2]=0}},transformCoordToLocal:function(e,t){var i=[e,t];return this.needTransform&&this.invTransform&&a.applyTransform(i,i,this.invTransform),i}},l}),i("zrender/Group",["require","./tool/guid","./tool/util","./mixin/Transformable","./mixin/Eventful"],function(e){var t=e("./tool/guid"),i=e("./tool/util"),n=e("./mixin/Transformable"),a=e("./mixin/Eventful"),o=function(e){e=e||{},this.id=e.id||t();for(var i in e)this[i]=e[i];this.type="group",this.clipShape=null,this._children=[],this._storage=null,this.__dirty=!0,n.call(this),a.call(this)};return o.prototype.ignore=!1,o.prototype.children=function(){return this._children.slice()},o.prototype.childAt=function(e){return this._children[e]},o.prototype.addChild=function(e){e!=this&&e.parent!=this&&(e.parent&&e.parent.removeChild(e),this._children.push(e),e.parent=this,this._storage&&this._storage!==e._storage&&(this._storage.addToMap(e),e instanceof o&&e.addChildrenToStorage(this._storage)))},o.prototype.removeChild=function(e){var t=i.indexOf(this._children,e);t>=0&&this._children.splice(t,1),e.parent=null,this._storage&&(this._storage.delFromMap(e.id),e instanceof o&&e.delChildrenFromStorage(this._storage))},o.prototype.clearChildren=function(){for(var e=0;et)){t=Math.min(t,1);var n="string"==typeof this.easing?i[this.easing]:this.easing,a="function"==typeof n?n(t):t;return this.fire("frame",a),1==t?this.loop?(this.restart(),"restart"):(this.__needsRemove=!0,"destroy"):null}},restart:function(){var e=(new Date).getTime(),t=(e-this._startTime)%this._life;this._startTime=(new Date).getTime()-t+this.gap,this.__needsRemove=!1},fire:function(e,t){for(var i=0,n=this._targetPool.length;n>i;i++)this["on"+e]&&this["on"+e](this._targetPool[i],t)},constructor:t},t}),i("zrender/animation/easing",[],function(){var e={Linear:function(e){return e},QuadraticIn:function(e){return e*e},QuadraticOut:function(e){return e*(2-e)},QuadraticInOut:function(e){return(e*=2)<1?.5*e*e:-.5*(--e*(e-2)-1)},CubicIn:function(e){return e*e*e},CubicOut:function(e){return--e*e*e+1},CubicInOut:function(e){return(e*=2)<1?.5*e*e*e:.5*((e-=2)*e*e+2)},QuarticIn:function(e){return e*e*e*e},QuarticOut:function(e){return 1- --e*e*e*e},QuarticInOut:function(e){return(e*=2)<1?.5*e*e*e*e:-.5*((e-=2)*e*e*e-2)},QuinticIn:function(e){return e*e*e*e*e},QuinticOut:function(e){return--e*e*e*e*e+1},QuinticInOut:function(e){return(e*=2)<1?.5*e*e*e*e*e:.5*((e-=2)*e*e*e*e+2)},SinusoidalIn:function(e){return 1-Math.cos(e*Math.PI/2)},SinusoidalOut:function(e){return Math.sin(e*Math.PI/2)},SinusoidalInOut:function(e){return.5*(1-Math.cos(Math.PI*e))},ExponentialIn:function(e){return 0===e?0:Math.pow(1024,e-1)},ExponentialOut:function(e){return 1===e?1:1-Math.pow(2,-10*e)},ExponentialInOut:function(e){return 0===e?0:1===e?1:(e*=2)<1?.5*Math.pow(1024,e-1):.5*(-Math.pow(2,-10*(e-1))+2)},CircularIn:function(e){return 1-Math.sqrt(1-e*e)},CircularOut:function(e){return Math.sqrt(1- --e*e)},CircularInOut:function(e){return(e*=2)<1?-.5*(Math.sqrt(1-e*e)-1):.5*(Math.sqrt(1-(e-=2)*e)+1)},ElasticIn:function(e){var t,i=.1,n=.4;return 0===e?0:1===e?1:(!i||1>i?(i=1,t=n/4):t=n*Math.asin(1/i)/(2*Math.PI),-(i*Math.pow(2,10*(e-=1))*Math.sin(2*(e-t)*Math.PI/n)))},ElasticOut:function(e){var t,i=.1,n=.4;return 0===e?0:1===e?1:(!i||1>i?(i=1,t=n/4):t=n*Math.asin(1/i)/(2*Math.PI),i*Math.pow(2,-10*e)*Math.sin(2*(e-t)*Math.PI/n)+1)},ElasticInOut:function(e){var t,i=.1,n=.4;return 0===e?0:1===e?1:(!i||1>i?(i=1,t=n/4):t=n*Math.asin(1/i)/(2*Math.PI),(e*=2)<1?-.5*i*Math.pow(2,10*(e-=1))*Math.sin(2*(e-t)*Math.PI/n):i*Math.pow(2,-10*(e-=1))*Math.sin(2*(e-t)*Math.PI/n)*.5+1)},BackIn:function(e){var t=1.70158;return e*e*((t+1)*e-t)},BackOut:function(e){var t=1.70158;return--e*e*((t+1)*e+t)+1},BackInOut:function(e){var t=2.5949095;return(e*=2)<1?.5*e*e*((t+1)*e-t):.5*((e-=2)*e*((t+1)*e+t)+2)},BounceIn:function(t){return 1-e.BounceOut(1-t)},BounceOut:function(e){return 1/2.75>e?7.5625*e*e:2/2.75>e?7.5625*(e-=1.5/2.75)*e+.75:2.5/2.75>e?7.5625*(e-=2.25/2.75)*e+.9375:7.5625*(e-=2.625/2.75)*e+.984375},BounceInOut:function(t){return.5>t?.5*e.BounceIn(2*t):.5*e.BounceOut(2*t-1)+.5}};return e}),i("echarts/chart/base",["require","zrender/shape/Image","../util/shape/Icon","../util/shape/MarkLine","../util/shape/Symbol","zrender/shape/Polyline","zrender/shape/ShapeBundle","../config","../util/ecData","../util/ecAnimation","../util/ecEffect","../util/accMath","../component/base","../layout/EdgeBundling","zrender/tool/util","zrender/tool/area"],function(e){function t(e){return null!=e.x&&null!=e.y}function i(e,t,i,n,a){p.call(this,e,t,i,n,a);var o=this;this.selectedMap={},this.lastShapeList=[],this.shapeHandler={onclick:function(){o.isClick=!0},ondragover:function(e){var t=e.target;t.highlightStyle=t.highlightStyle||{};var i=t.highlightStyle,n=i.brushTyep,a=i.strokeColor,r=i.lineWidth;i.brushType="stroke",i.strokeColor=o.ecTheme.calculableColor||h.calculableColor,i.lineWidth="icon"===t.type?30:10,o.zr.addHoverShape(t),setTimeout(function(){i&&(i.brushType=n,i.strokeColor=a,i.lineWidth=r)},20)},ondrop:function(e){null!=m.get(e.dragged,"data")&&(o.isDrop=!0)},ondragend:function(){o.isDragend=!0}}}var n=e("zrender/shape/Image"),a=e("../util/shape/Icon"),o=e("../util/shape/MarkLine"),r=e("../util/shape/Symbol"),s=e("zrender/shape/Polyline"),l=e("zrender/shape/ShapeBundle"),h=e("../config"),m=e("../util/ecData"),V=e("../util/ecAnimation"),U=e("../util/ecEffect"),d=e("../util/accMath"),p=e("../component/base"),c=e("../layout/EdgeBundling"),u=e("zrender/tool/util"),y=e("zrender/tool/area");return i.prototype={setCalculable:function(e){return e.dragEnableTime=this.ecTheme.DRAG_ENABLE_TIME||h.DRAG_ENABLE_TIME,e.ondragover=this.shapeHandler.ondragover,e.ondragend=this.shapeHandler.ondragend,e.ondrop=this.shapeHandler.ondrop,e},ondrop:function(e,t){if(this.isDrop&&e.target&&!t.dragIn){var i,n=e.target,a=e.dragged,o=m.get(n,"seriesIndex"),r=m.get(n,"dataIndex"),s=this.series,l=this.component.legend;if(-1===r){if(m.get(a,"seriesIndex")==o)return t.dragOut=t.dragIn=t.needRefresh=!0,void(this.isDrop=!1);i={value:m.get(a,"value"),name:m.get(a,"name")},this.type===h.CHART_TYPE_PIE&&i.value<0&&(i.value=0);for(var V=!1,U=s[o].data,p=0,c=U.length;c>p;p++)U[p].name===i.name&&"-"===U[p].value&&(s[o].data[p].value=i.value,V=!0);!V&&s[o].data.push(i),l&&l.add(i.name,a.style.color||a.style.strokeColor)}else i=s[o].data[r]||"-",null!=i.value?(s[o].data[r].value="-"!=i.value?d.accAdd(s[o].data[r].value,m.get(a,"value")):m.get(a,"value"),(this.type===h.CHART_TYPE_FUNNEL||this.type===h.CHART_TYPE_PIE)&&(l&&1===l.getRelatedAmount(i.name)&&this.component.legend.del(i.name),i.name+=this.option.nameConnector+m.get(a,"name"),l&&l.add(i.name,a.style.color||a.style.strokeColor))):s[o].data[r]="-"!=i?d.accAdd(s[o].data[r],m.get(a,"value")):m.get(a,"value");t.dragIn=t.dragIn||!0,this.isDrop=!1;var u=this;setTimeout(function(){u.zr.trigger("mousemove",e.event)},300)}},ondragend:function(e,t){if(this.isDragend&&e.target&&!t.dragOut){var i=e.target,n=m.get(i,"seriesIndex"),a=m.get(i,"dataIndex"),o=this.series;if(null!=o[n].data[a].value){o[n].data[a].value="-";var r=o[n].data[a].name,s=this.component.legend;s&&0===s.getRelatedAmount(r)&&s.del(r)}else o[n].data[a]="-";t.dragOut=!0,t.needRefresh=!0,this.isDragend=!1}},onlegendSelected:function(e,t){var i=e.selected;for(var n in this.selectedMap)this.selectedMap[n]!=i[n]&&(t.needRefresh=!0),this.selectedMap[n]=i[n]},_buildPosition:function(){this._symbol=this.option.symbolList,this._sIndex2ShapeMap={},this._sIndex2ColorMap={},this.selectedMap={},this.xMarkMap={};for(var e,t,i,n,a=this.series,o={top:[],bottom:[],left:[],right:[],other:[]},r=0,s=a.length;s>r;r++)a[r].type===this.type&&(a[r]=this.reformOption(a[r]),this.legendHoverLink=a[r].legendHoverLink||this.legendHoverLink,e=a[r].xAxisIndex,t=a[r].yAxisIndex,i=this.component.xAxis.getAxis(e),n=this.component.yAxis.getAxis(t),i.type===h.COMPONENT_TYPE_AXIS_CATEGORY?o[i.getPosition()].push(r):n.type===h.COMPONENT_TYPE_AXIS_CATEGORY?o[n.getPosition()].push(r):o.other.push(r));for(var l in o)o[l].length>0&&this._buildSinglePosition(l,o[l]);this.addShapeList()},_buildSinglePosition:function(e,t){var i=this._mapData(t),n=i.locationMap,a=i.maxDataLength;if(0!==a&&0!==n.length){switch(e){case"bottom":case"top":this._buildHorizontal(t,a,n,this.xMarkMap);break;case"left":case"right":this._buildVertical(t,a,n,this.xMarkMap);break;case"other":this._buildOther(t,a,n,this.xMarkMap)}for(var o=0,r=t.length;r>o;o++)this.buildMark(t[o])}},_mapData:function(e){for(var t,i,n,a,o=this.series,r=0,s={},l="__kener__stack__",m=this.component.legend,V=[],U=0,d=0,p=e.length;p>d;d++){if(t=o[e[d]],n=t.name,this._sIndex2ShapeMap[e[d]]=this._sIndex2ShapeMap[e[d]]||this.query(t,"symbol")||this._symbol[d%this._symbol.length],m){if(this.selectedMap[n]=m.isSelected(n),this._sIndex2ColorMap[e[d]]=m.getColor(n),a=m.getItemShape(n)){var c=a.style;if(this.type==h.CHART_TYPE_LINE)c.iconType="legendLineIcon",c.symbol=this._sIndex2ShapeMap[e[d]];else if(t.itemStyle.normal.barBorderWidth>0){var u=a.highlightStyle;c.brushType="both",c.x+=1,c.y+=1,c.width-=2,c.height-=2,c.strokeColor=u.strokeColor=t.itemStyle.normal.barBorderColor,u.lineWidth=3}m.setItemShape(n,a)}}else this.selectedMap[n]=!0,this._sIndex2ColorMap[e[d]]=this.zr.getColor(e[d]);this.selectedMap[n]&&(i=t.stack||l+e[d],null==s[i]?(s[i]=r,V[r]=[e[d]],r++):V[s[i]].push(e[d])),U=Math.max(U,t.data.length)}return{locationMap:V,maxDataLength:U}},_calculMarkMapXY:function(e,t,i){for(var n=this.series,a=0,o=t.length;o>a;a++)for(var r=0,s=t[a].length;s>r;r++){var l=t[a][r],h="xy"==i?0:"",m=this.component.grid,V=e[l];if("-1"!=i.indexOf("x")){V["counter"+h]>0&&(V["average"+h]=V["sum"+h]/V["counter"+h]);var U=this.component.xAxis.getAxis(n[l].xAxisIndex||0).getCoord(V["average"+h]);V["averageLine"+h]=[[U,m.getYend()],[U,m.getY()]],V["minLine"+h]=[[V["minX"+h],m.getYend()],[V["minX"+h],m.getY()]],V["maxLine"+h]=[[V["maxX"+h],m.getYend()],[V["maxX"+h],m.getY()]],V.isHorizontal=!1}if(h="xy"==i?1:"","-1"!=i.indexOf("y")){V["counter"+h]>0&&(V["average"+h]=V["sum"+h]/V["counter"+h]);var d=this.component.yAxis.getAxis(n[l].yAxisIndex||0).getCoord(V["average"+h]);V["averageLine"+h]=[[m.getX(),d],[m.getXend(),d]],V["minLine"+h]=[[m.getX(),V["minY"+h]],[m.getXend(),V["minY"+h]]],V["maxLine"+h]=[[m.getX(),V["maxY"+h]],[m.getXend(),V["maxY"+h]]],V.isHorizontal=!0}}},addLabel:function(e,t,i,n,a){var o=[i,t],r=this.deepMerge(o,"itemStyle.normal.label"),s=this.deepMerge(o,"itemStyle.emphasis.label"),l=r.textStyle||{},h=s.textStyle||{}; + +if(r.show){var m=e.style;m.text=this._getLabelText(t,i,n,"normal"),m.textPosition=null==r.position?"horizontal"===a?"right":"top":r.position,m.textColor=l.color,m.textFont=this.getFont(l),m.textAlign=l.align,m.textBaseline=l.baseline}if(s.show){var V=e.highlightStyle;V.text=this._getLabelText(t,i,n,"emphasis"),V.textPosition=r.show?e.style.textPosition:null==s.position?"horizontal"===a?"right":"top":s.position,V.textColor=h.color,V.textFont=this.getFont(h),V.textAlign=h.align,V.textBaseline=h.baseline}return e},_getLabelText:function(e,t,i,n){var a=this.deepQuery([t,e],"itemStyle."+n+".label.formatter");a||"emphasis"!==n||(a=this.deepQuery([t,e],"itemStyle.normal.label.formatter"));var o=this.getDataFromOption(t,"-");return a?"function"==typeof a?a.call(this.myChart,{seriesName:e.name,series:e,name:i,value:o,data:t,status:n}):"string"==typeof a?a=a.replace("{a}","{a0}").replace("{b}","{b0}").replace("{c}","{c0}").replace("{a0}",e.name).replace("{b0}",i).replace("{c0}",this.numAddCommas(o)):void 0:o instanceof Array?null!=o[2]?this.numAddCommas(o[2]):o[0]+" , "+o[1]:this.numAddCommas(o)},buildMark:function(e){var t=this.series[e];this.selectedMap[t.name]&&(t.markLine&&this._buildMarkLine(e),t.markPoint&&this._buildMarkPoint(e))},_buildMarkPoint:function(e){for(var t,i,n=(this.markAttachStyle||{})[e],a=this.series[e],o=u.clone(a.markPoint),r=0,s=o.data.length;s>r;r++)t=o.data[r],i=this.getMarkCoord(e,t),t.x=null!=t.x?t.x:i[0],t.y=null!=t.y?t.y:i[1],!t.type||"max"!==t.type&&"min"!==t.type||(t.value=i[3],t.name=t.name||t.type,t.symbolSize=t.symbolSize||y.getTextWidth(i[3],this.getFont())/2+5);for(var l=this._markPoint(e,o),r=0,s=l.length;s>r;r++){var m=l[r];m.zlevel=a.zlevel,m.z=a.z+1;for(var V in n)m[V]=u.clone(n[V]);this.shapeList.push(m)}if(this.type===h.CHART_TYPE_FORCE||this.type===h.CHART_TYPE_CHORD)for(var r=0,s=l.length;s>r;r++)this.zr.addShape(l[r])},_buildMarkLine:function(e){for(var t,i=(this.markAttachStyle||{})[e],n=this.series[e],a=u.clone(n.markLine),o=0,r=a.data.length;r>o;o++){var s=a.data[o];!s.type||"max"!==s.type&&"min"!==s.type&&"average"!==s.type?t=[this.getMarkCoord(e,s[0]),this.getMarkCoord(e,s[1])]:(t=this.getMarkCoord(e,s),a.data[o]=[u.clone(s),{}],a.data[o][0].name=s.name||s.type,a.data[o][0].value="average"!==s.type?t[3]:+t[3].toFixed(null!=a.precision?a.precision:this.deepQuery([this.ecTheme,h],"markLine.precision")),t=t[2],s=[{},{}]),null!=t&&null!=t[0]&&null!=t[1]&&(a.data[o][0].x=null!=s[0].x?s[0].x:t[0][0],a.data[o][0].y=null!=s[0].y?s[0].y:t[0][1],a.data[o][1].x=null!=s[1].x?s[1].x:t[1][0],a.data[o][1].y=null!=s[1].y?s[1].y:t[1][1])}var m=this._markLine(e,a),V=a.large;if(V){var U=new l({style:{shapeList:m}}),d=m[0];if(d){u.merge(U.style,d.style),u.merge(U.highlightStyle={},d.highlightStyle),U.style.brushType="stroke",U.zlevel=n.zlevel,U.z=n.z+1,U.hoverable=!1;for(var p in i)U[p]=u.clone(i[p])}this.shapeList.push(U),this.zr.addShape(U),U._mark="largeLine";var c=a.effect;c.show&&(U.effect=c)}else{for(var o=0,r=m.length;r>o;o++){var y=m[o];y.zlevel=n.zlevel,y.z=n.z+1;for(var p in i)y[p]=u.clone(i[p]);this.shapeList.push(y)}if(this.type===h.CHART_TYPE_FORCE||this.type===h.CHART_TYPE_CHORD)for(var o=0,r=m.length;r>o;o++)this.zr.addShape(m[o])}},_markPoint:function(e,t){var i=this.series[e],n=this.component;u.merge(u.merge(t,u.clone(this.ecTheme.markPoint||{})),u.clone(h.markPoint)),t.name=i.name;var a,o,r,s,l,V,U,d=[],p=t.data,c=n.dataRange,y=n.legend,g=this.zr.getWidth(),b=this.zr.getHeight();if(t.large)a=this.getLargeMarkPointShape(e,t),a._mark="largePoint",a&&d.push(a);else for(var f=0,k=p.length;k>f;f++)null!=p[f].x&&null!=p[f].y&&(r=null!=p[f].value?p[f].value:"",y&&(o=y.getColor(i.name)),c&&(o=isNaN(r)?o:c.getColor(r),s=[p[f],t],l=this.deepQuery(s,"itemStyle.normal.color")||o,V=this.deepQuery(s,"itemStyle.emphasis.color")||l,null==l&&null==V)||(o=null==o?this.zr.getColor(e):o,p[f].tooltip=p[f].tooltip||t.tooltip||{trigger:"item"},p[f].name=null!=p[f].name?p[f].name:"",p[f].value=r,a=this.getSymbolShape(t,e,p[f],f,p[f].name,this.parsePercent(p[f].x,g),this.parsePercent(p[f].y,b),"pin",o,"rgba(0,0,0,0)","horizontal"),a._mark="point",U=this.deepMerge([p[f],t],"effect"),U.show&&(a.effect=U),i.type===h.CHART_TYPE_MAP&&(a._geo=this.getMarkGeo(p[f])),m.pack(a,i,e,p[f],f,p[f].name,r),d.push(a)));return d},_markLine:function(){function e(e,t){e[t]=e[t]instanceof Array?e[t].length>1?e[t]:[e[t][0],e[t][0]]:[e[t],e[t]]}return function(i,n){var a=this.series[i],o=this.component,r=o.dataRange,s=o.legend;u.merge(u.merge(n,u.clone(this.ecTheme.markLine||{})),u.clone(h.markLine));var l=s?s.getColor(a.name):this.zr.getColor(i);e(n,"symbol"),e(n,"symbolSize"),e(n,"symbolRotate");for(var V=n.data,U=[],d=this.zr.getWidth(),p=this.zr.getHeight(),y=0;yy;y++){var K=U[y],I=K.rawEdge||K,g=I.rawData,x=null!=g.value?g.value:"",J=this.getMarkLineShape(n,i,g,y,K.points,W,I.color);J._mark="line";var C=this.deepMerge([g[0],g[1],n],"effect");C.show&&(J.effect=C,J.effect.large=n.large),a.type===h.CHART_TYPE_MAP&&(J._geo=[this.getMarkGeo(g[0]),this.getMarkGeo(g[1])]),m.pack(J,a,i,g[0],y,g[0].name+(""!==g[1].name?" > "+g[1].name:""),x),v.push(J)}return v}}(),getMarkCoord:function(){return[0,0]},getSymbolShape:function(e,t,i,o,r,s,l,h,V,U,d){var p=[i,e],c=this.getDataFromOption(i,"-");h=this.deepQuery(p,"symbol")||h;var u=this.deepQuery(p,"symbolSize");u="function"==typeof u?u(c):u,"number"==typeof u&&(u=[u,u]);var y=this.deepQuery(p,"symbolRotate"),g=this.deepMerge(p,"itemStyle.normal"),b=this.deepMerge(p,"itemStyle.emphasis"),f=null!=g.borderWidth?g.borderWidth:g.lineStyle&&g.lineStyle.width;null==f&&(f=h.match("empty")?2:0);var k=null!=b.borderWidth?b.borderWidth:b.lineStyle&&b.lineStyle.width;null==k&&(k=f+2);var x=this.getItemStyleColor(g.color,t,o,i),_=this.getItemStyleColor(b.color,t,o,i),L=u[0],W=u[1],X=new a({style:{iconType:h.replace("empty","").toLowerCase(),x:s-L,y:l-W,width:2*L,height:2*W,brushType:"both",color:h.match("empty")?U:x||V,strokeColor:g.borderColor||x||V,lineWidth:f},highlightStyle:{color:h.match("empty")?U:_||x||V,strokeColor:b.borderColor||g.borderColor||_||x||V,lineWidth:k},clickable:this.deepQuery(p,"clickable")});return h.match("image")&&(X.style.image=h.replace(new RegExp("^image:\\/\\/"),""),X=new n({style:X.style,highlightStyle:X.highlightStyle,clickable:this.deepQuery(p,"clickable")})),null!=y&&(X.rotation=[y*Math.PI/180,s,l]),h.match("star")&&(X.style.iconType="star",X.style.n=h.replace("empty","").replace("star","")-0||5),"none"===h&&(X.invisible=!0,X.hoverable=!1),X=this.addLabel(X,e,i,r,d),h.match("empty")&&(null==X.style.textColor&&(X.style.textColor=X.style.strokeColor),null==X.highlightStyle.textColor&&(X.highlightStyle.textColor=X.highlightStyle.strokeColor)),m.pack(X,e,t,i,o,r),X._x=s,X._y=l,X._dataIndex=o,X._seriesIndex=t,X},getMarkLineShape:function(e,t,i,n,a,r,l){var h=null!=i[0].value?i[0].value:"-",m=null!=i[1].value?i[1].value:"-",V=[i[0].symbol||e.symbol[0],i[1].symbol||e.symbol[1]],U=[i[0].symbolSize||e.symbolSize[0],i[1].symbolSize||e.symbolSize[1]];U[0]="function"==typeof U[0]?U[0](h):U[0],U[1]="function"==typeof U[1]?U[1](m):U[1];var d=[this.query(i[0],"symbolRotate")||e.symbolRotate[0],this.query(i[1],"symbolRotate")||e.symbolRotate[1]],p=[i[0],i[1],e],c=this.deepMerge(p,"itemStyle.normal");c.color=this.getItemStyleColor(c.color,t,n,i);var u=this.deepMerge(p,"itemStyle.emphasis");u.color=this.getItemStyleColor(u.color,t,n,i);var y=c.lineStyle,g=u.lineStyle,b=y.width;null==b&&(b=c.borderWidth);var f=g.width;null==f&&(f=null!=u.borderWidth?u.borderWidth:b+2);var k=this.deepQuery(p,"smoothness");this.deepQuery(p,"smooth")||(k=0);var x=r?s:o,_=new x({style:{symbol:V,symbolSize:U,symbolRotate:d,brushType:"both",lineType:y.type,shadowColor:y.shadowColor||y.color||c.borderColor||c.color||l,shadowBlur:y.shadowBlur,shadowOffsetX:y.shadowOffsetX,shadowOffsetY:y.shadowOffsetY,color:c.color||l,strokeColor:y.color||c.borderColor||c.color||l,lineWidth:b,symbolBorderColor:c.borderColor||c.color||l,symbolBorder:c.borderWidth},highlightStyle:{shadowColor:g.shadowColor,shadowBlur:g.shadowBlur,shadowOffsetX:g.shadowOffsetX,shadowOffsetY:g.shadowOffsetY,color:u.color||c.color||l,strokeColor:g.color||y.color||u.borderColor||c.borderColor||u.color||c.color||l,lineWidth:f,symbolBorderColor:u.borderColor||c.borderColor||u.color||c.color||l,symbolBorder:null==u.borderWidth?c.borderWidth+2:u.borderWidth},clickable:this.deepQuery(p,"clickable")}),L=_.style;return r?(L.pointList=a,L.smooth=k):(L.xStart=a[0][0],L.yStart=a[0][1],L.xEnd=a[1][0],L.yEnd=a[1][1],L.curveness=k,_.updatePoints(_.style)),_=this.addLabel(_,e,i[0],i[0].name+" : "+i[1].name)},getLargeMarkPointShape:function(e,t){var i,n,a,o,s,l,h=this.series[e],m=this.component,V=t.data,U=m.dataRange,d=m.legend,p=[V[0],t];if(d&&(n=d.getColor(h.name)),!U||(a=null!=V[0].value?V[0].value:"",n=isNaN(a)?n:U.getColor(a),o=this.deepQuery(p,"itemStyle.normal.color")||n,s=this.deepQuery(p,"itemStyle.emphasis.color")||o,null!=o||null!=s)){n=this.deepMerge(p,"itemStyle.normal").color||n;var c=this.deepQuery(p,"symbol")||"circle";c=c.replace("empty","").replace(/\d/g,""),l=this.deepMerge([V[0],t],"effect");var u=window.devicePixelRatio||1;return i=new r({style:{pointList:V,color:n,strokeColor:n,shadowColor:l.shadowColor||n,shadowBlur:(null!=l.shadowBlur?l.shadowBlur:8)*u,size:this.deepQuery(p,"symbolSize"),iconType:c,brushType:"fill",lineWidth:1},draggable:!1,hoverable:!1}),l.show&&(i.effect=l),i}},backupShapeList:function(){this.shapeList&&this.shapeList.length>0?(this.lastShapeList=this.shapeList,this.shapeList=[]):this.lastShapeList=[]},addShapeList:function(){var e,t,i=this.option.animationThreshold/(this.canvasSupported?2:4),n=this.lastShapeList,a=this.shapeList,o=n.length>0,r=o?this.query(this.option,"animationDurationUpdate"):this.query(this.option,"animationDuration"),s=this.query(this.option,"animationEasing"),l={},m={};if(this.option.animation&&!this.option.renderAsImage&&a.lengthV;V++)t=this._getAnimationKey(n[V]),t.match("undefined")?this.zr.delShape(n[V].id):(t+=n[V].type,l[t]?this.zr.delShape(n[V].id):l[t]=n[V]);for(var V=0,U=a.length;U>V;V++)t=this._getAnimationKey(a[V]),t.match("undefined")?this.zr.addShape(a[V]):(t+=a[V].type,m[t]=a[V]);for(t in l)m[t]||this.zr.delShape(l[t].id);for(t in m)l[t]?(this.zr.delShape(l[t].id),this._animateMod(l[t],m[t],r,s,0,o)):(e=this.type!=h.CHART_TYPE_LINE&&this.type!=h.CHART_TYPE_RADAR||0===t.indexOf("icon")?0:r/2,this._animateMod(!1,m[t],r,s,e,o));this.zr.refresh(),this.animationEffect()}else{this.motionlessOnce=!1,this.zr.delShape(n);for(var V=0,U=a.length;U>V;V++)this.zr.addShape(a[V])}},_getAnimationKey:function(e){return this.type!=h.CHART_TYPE_MAP&&this.type!=h.CHART_TYPE_TREEMAP&&this.type!=h.CHART_TYPE_VENN&&this.type!=h.CHART_TYPE_TREE?m.get(e,"seriesIndex")+"_"+m.get(e,"dataIndex")+(e._mark?e._mark:"")+(this.type===h.CHART_TYPE_RADAR?m.get(e,"special"):""):m.get(e,"seriesIndex")+"_"+m.get(e,"dataIndex")+(e._mark?e._mark:"undefined")},_animateMod:function(e,t,i,n,a,o){switch(t.type){case"polyline":case"half-smooth-polygon":V.pointList(this.zr,e,t,i,n);break;case"rectangle":V.rectangle(this.zr,e,t,i,n);break;case"image":case"icon":V.icon(this.zr,e,t,i,n,a);break;case"candle":o?this.zr.addShape(t):V.candle(this.zr,e,t,i,n);break;case"ring":case"sector":case"circle":o?"sector"===t.type?V.sector(this.zr,e,t,i,n):this.zr.addShape(t):V.ring(this.zr,e,t,i+(m.get(t,"dataIndex")||0)%20*100,n);break;case"text":V.text(this.zr,e,t,i,n);break;case"polygon":o?V.pointList(this.zr,e,t,i,n):V.polygon(this.zr,e,t,i,n);break;case"ribbon":V.ribbon(this.zr,e,t,i,n);break;case"gauge-pointer":V.gaugePointer(this.zr,e,t,i,n);break;case"mark-line":V.markline(this.zr,e,t,i,n);break;case"bezier-curve":case"line":V.line(this.zr,e,t,i,n);break;default:this.zr.addShape(t)}},animationMark:function(e,t,i){for(var i=i||this.shapeList,n=0,a=i.length;a>n;n++)i[n]._mark&&this._animateMod(!1,i[n],e,t,0,!0);this.animationEffect(i)},animationEffect:function(e){if(!e&&this.clearEffectShape(),e=e||this.shapeList,null!=e){var t=h.EFFECT_ZLEVEL;this.canvasSupported&&this.zr.modLayer(t,{motionBlur:!0,lastFrameAlpha:this.option.effectBlendAlpha||h.effectBlendAlpha});for(var i,n=0,a=e.length;a>n;n++)i=e[n],i._mark&&i.effect&&i.effect.show&&U[i._mark]&&(U[i._mark](this.zr,this.effectList,i,t),this.effectList[this.effectList.length-1]._mark=i._mark)}},clearEffectShape:function(e){var t=this.effectList;if(this.zr&&t&&t.length>0){e&&this.zr.modLayer(h.EFFECT_ZLEVEL,{motionBlur:!1}),this.zr.delShape(t);for(var i=0;il;l++)this.zr.addShape(this.shapeList[l]);this.zr.refreshNextFrame()}n[i].data=r}},delMark:function(e,t,i){i=i.replace("mark","").replace("large","").toLowerCase();var n=this.series[e];if(this.selectedMap[n.name]){for(var a=!1,o=[this.shapeList,this.effectList],r=2;r--;)for(var s=0,l=o[r].length;l>s;s++)if(o[r][s]._mark==i&&m.get(o[r][s],"seriesIndex")==e&&m.get(o[r][s],"name")==t){this.zr.delShape(o[r][s].id),o[r].splice(s,1),a=!0;break}a&&this.zr.refreshNextFrame()}}},u.inherits(i,p),i}),i("zrender/shape/Circle",["require","./Base","../tool/util"],function(e){"use strict";var t=e("./Base"),i=function(e){t.call(this,e)};return i.prototype={type:"circle",buildPath:function(e,t){e.moveTo(t.x+t.r,t.y),e.arc(t.x,t.y,t.r,0,2*Math.PI,!0)},getRect:function(e){if(e.__rect)return e.__rect;var t;return t="stroke"==e.brushType||"fill"==e.brushType?e.lineWidth||1:0,e.__rect={x:Math.round(e.x-e.r-t/2),y:Math.round(e.y-e.r-t/2),width:2*e.r+t,height:2*e.r+t},e.__rect}},e("../tool/util").inherits(i,t),i}),i("echarts/util/accMath",[],function(){function e(e,t){var i=e.toString(),n=t.toString(),a=0;try{a=n.split(".")[1].length}catch(o){}try{a-=i.split(".")[1].length}catch(o){}return(i.replace(".","")-0)/(n.replace(".","")-0)*Math.pow(10,a)}function t(e,t){var i=e.toString(),n=t.toString(),a=0;try{a+=i.split(".")[1].length}catch(o){}try{a+=n.split(".")[1].length}catch(o){}return(i.replace(".","")-0)*(n.replace(".","")-0)/Math.pow(10,a)}function i(e,t){var i=0,n=0;try{i=e.toString().split(".")[1].length}catch(a){}try{n=t.toString().split(".")[1].length}catch(a){}var o=Math.pow(10,Math.max(i,n));return(Math.round(e*o)+Math.round(t*o))/o}function n(e,t){return i(e,-t)}return{accDiv:e,accMul:t,accAdd:i,accSub:n}}),i("echarts/util/shape/Icon",["require","zrender/tool/util","zrender/shape/Star","zrender/shape/Heart","zrender/shape/Droplet","zrender/shape/Image","zrender/shape/Base"],function(e){function t(e,t){var i=t.x,n=t.y,a=t.width/16,o=t.height/16;e.moveTo(i,n+t.height),e.lineTo(i+5*a,n+14*o),e.lineTo(i+t.width,n+3*o),e.lineTo(i+13*a,n),e.lineTo(i+2*a,n+11*o),e.lineTo(i,n+t.height),e.moveTo(i+6*a,n+10*o),e.lineTo(i+14*a,n+2*o),e.moveTo(i+10*a,n+13*o),e.lineTo(i+t.width,n+13*o),e.moveTo(i+13*a,n+10*o),e.lineTo(i+13*a,n+t.height)}function i(e,t){var i=t.x,n=t.y,a=t.width/16,o=t.height/16;e.moveTo(i,n+t.height),e.lineTo(i+5*a,n+14*o),e.lineTo(i+t.width,n+3*o),e.lineTo(i+13*a,n),e.lineTo(i+2*a,n+11*o),e.lineTo(i,n+t.height),e.moveTo(i+6*a,n+10*o),e.lineTo(i+14*a,n+2*o),e.moveTo(i+10*a,n+13*o),e.lineTo(i+t.width,n+13*o)}function n(e,t){var i=t.x,n=t.y,a=t.width/16,o=t.height/16;e.moveTo(i+4*a,n+15*o),e.lineTo(i+9*a,n+13*o),e.lineTo(i+14*a,n+8*o),e.lineTo(i+11*a,n+5*o),e.lineTo(i+6*a,n+10*o),e.lineTo(i+4*a,n+15*o),e.moveTo(i+5*a,n),e.lineTo(i+11*a,n),e.moveTo(i+5*a,n+o),e.lineTo(i+11*a,n+o),e.moveTo(i,n+2*o),e.lineTo(i+t.width,n+2*o),e.moveTo(i,n+5*o),e.lineTo(i+3*a,n+t.height),e.lineTo(i+13*a,n+t.height),e.lineTo(i+t.width,n+5*o)}function a(e,t){var i=t.x,n=t.y,a=t.width/16,o=t.height/16;e.moveTo(i,n+3*o),e.lineTo(i+6*a,n+3*o),e.moveTo(i+3*a,n),e.lineTo(i+3*a,n+6*o),e.moveTo(i+3*a,n+8*o),e.lineTo(i+3*a,n+t.height),e.lineTo(i+t.width,n+t.height),e.lineTo(i+t.width,n+3*o),e.lineTo(i+8*a,n+3*o)}function o(e,t){var i=t.x,n=t.y,a=t.width/16,o=t.height/16;e.moveTo(i+6*a,n),e.lineTo(i+2*a,n+3*o),e.lineTo(i+6*a,n+6*o),e.moveTo(i+2*a,n+3*o),e.lineTo(i+14*a,n+3*o),e.lineTo(i+14*a,n+11*o),e.moveTo(i+2*a,n+5*o),e.lineTo(i+2*a,n+13*o),e.lineTo(i+14*a,n+13*o),e.moveTo(i+10*a,n+10*o),e.lineTo(i+14*a,n+13*o),e.lineTo(i+10*a,n+t.height)}function r(e,t){var i=t.x,n=t.y,a=t.width/16,o=t.height/16,r=t.width/2;e.lineWidth=1.5,e.arc(i+r,n+r,r-a,0,2*Math.PI/3),e.moveTo(i+3*a,n+t.height),e.lineTo(i+0*a,n+12*o),e.lineTo(i+5*a,n+11*o),e.moveTo(i,n+8*o),e.arc(i+r,n+r,r-a,Math.PI,5*Math.PI/3),e.moveTo(i+13*a,n),e.lineTo(i+t.width,n+4*o),e.lineTo(i+11*a,n+5*o)}function s(e,t){var i=t.x,n=t.y,a=t.width/16,o=t.height/16;e.moveTo(i,n),e.lineTo(i,n+t.height),e.lineTo(i+t.width,n+t.height),e.moveTo(i+2*a,n+14*o),e.lineTo(i+7*a,n+6*o),e.lineTo(i+11*a,n+11*o),e.lineTo(i+15*a,n+2*o)}function l(e,t){var i=t.x,n=t.y,a=t.width/16,o=t.height/16;e.moveTo(i,n),e.lineTo(i,n+t.height),e.lineTo(i+t.width,n+t.height),e.moveTo(i+3*a,n+14*o),e.lineTo(i+3*a,n+6*o),e.lineTo(i+4*a,n+6*o),e.lineTo(i+4*a,n+14*o),e.moveTo(i+7*a,n+14*o),e.lineTo(i+7*a,n+2*o),e.lineTo(i+8*a,n+2*o),e.lineTo(i+8*a,n+14*o),e.moveTo(i+11*a,n+14*o),e.lineTo(i+11*a,n+9*o),e.lineTo(i+12*a,n+9*o),e.lineTo(i+12*a,n+14*o)}function h(e,t){var i=t.x,n=t.y,a=t.width-2,o=t.height-2,r=Math.min(a,o)/2;n+=2,e.moveTo(i+r+3,n+r-3),e.arc(i+r+3,n+r-3,r-1,0,-Math.PI/2,!0),e.lineTo(i+r+3,n+r-3),e.moveTo(i+r,n),e.lineTo(i+r,n+r),e.arc(i+r,n+r,r,-Math.PI/2,2*Math.PI,!0),e.lineTo(i+r,n+r),e.lineWidth=1.5}function m(e,t){var i=t.x,n=t.y,a=t.width/16,o=t.height/16;n-=o,e.moveTo(i+1*a,n+2*o),e.lineTo(i+15*a,n+2*o),e.lineTo(i+14*a,n+3*o),e.lineTo(i+2*a,n+3*o),e.moveTo(i+3*a,n+6*o),e.lineTo(i+13*a,n+6*o),e.lineTo(i+12*a,n+7*o),e.lineTo(i+4*a,n+7*o),e.moveTo(i+5*a,n+10*o),e.lineTo(i+11*a,n+10*o),e.lineTo(i+10*a,n+11*o),e.lineTo(i+6*a,n+11*o),e.moveTo(i+7*a,n+14*o),e.lineTo(i+9*a,n+14*o),e.lineTo(i+8*a,n+15*o),e.lineTo(i+7*a,n+15*o)}function V(e,t){var i=t.x,n=t.y,a=t.width,o=t.height,r=a/16,s=o/16,l=2*Math.min(r,s);e.moveTo(i+r+l,n+s+l),e.arc(i+r,n+s,l,Math.PI/4,3*Math.PI),e.lineTo(i+7*r-l,n+6*s-l),e.arc(i+7*r,n+6*s,l,Math.PI/4*5,4*Math.PI),e.arc(i+7*r,n+6*s,l/2,Math.PI/4*5,4*Math.PI),e.moveTo(i+7*r-l/2,n+6*s+l),e.lineTo(i+r+l,n+14*s-l),e.arc(i+r,n+14*s,l,-Math.PI/4,2*Math.PI),e.moveTo(i+7*r+l/2,n+6*s),e.lineTo(i+14*r-l,n+10*s-l/2),e.moveTo(i+16*r,n+10*s),e.arc(i+14*r,n+10*s,l,0,3*Math.PI),e.lineWidth=1.5}function U(e,t){var i=t.x,n=t.y,a=t.width,o=t.height,r=Math.min(a,o)/2;e.moveTo(i+a,n+o/2),e.arc(i+r,n+r,r,0,2*Math.PI),e.arc(i+r,n,r,Math.PI/4,Math.PI/5*4),e.arc(i,n+r,r,-Math.PI/3,Math.PI/3),e.arc(i+a,n+o,r,Math.PI,Math.PI/2*3),e.lineWidth=1.5}function d(e,t){for(var i=t.x,n=t.y,a=t.width,o=t.height,r=Math.round(o/3),s=Math.round((r-2)/2),l=3;l--;)e.rect(i,n+r*l+s,a,2)}function p(e,t){for(var i=t.x,n=t.y,a=t.width,o=t.height,r=Math.round(a/3),s=Math.round((r-2)/2),l=3;l--;)e.rect(i+r*l+s,n,2,o)}function c(e,t){var i=t.x,n=t.y,a=t.width/16;e.moveTo(i+a,n),e.lineTo(i+a,n+t.height),e.lineTo(i+15*a,n+t.height),e.lineTo(i+15*a,n),e.lineTo(i+a,n),e.moveTo(i+3*a,n+3*a),e.lineTo(i+13*a,n+3*a),e.moveTo(i+3*a,n+6*a),e.lineTo(i+13*a,n+6*a),e.moveTo(i+3*a,n+9*a),e.lineTo(i+13*a,n+9*a),e.moveTo(i+3*a,n+12*a),e.lineTo(i+9*a,n+12*a)}function u(e,t){var i=t.x,n=t.y,a=t.width/16,o=t.height/16;e.moveTo(i,n),e.lineTo(i,n+t.height),e.lineTo(i+t.width,n+t.height),e.lineTo(i+t.width,n),e.lineTo(i,n),e.moveTo(i+4*a,n),e.lineTo(i+4*a,n+8*o),e.lineTo(i+12*a,n+8*o),e.lineTo(i+12*a,n),e.moveTo(i+6*a,n+11*o),e.lineTo(i+6*a,n+13*o),e.lineTo(i+10*a,n+13*o),e.lineTo(i+10*a,n+11*o),e.lineTo(i+6*a,n+11*o)}function y(e,t){var i=t.x,n=t.y,a=t.width,o=t.height;e.moveTo(i,n+o/2),e.lineTo(i+a,n+o/2),e.moveTo(i+a/2,n),e.lineTo(i+a/2,n+o)}function g(e,t){var i=t.width/2,n=t.height/2,a=Math.min(i,n);e.moveTo(t.x+i+a,t.y+n),e.arc(t.x+i,t.y+n,a,0,2*Math.PI),e.closePath()}function b(e,t){e.rect(t.x,t.y,t.width,t.height),e.closePath()}function f(e,t){var i=t.width/2,n=t.height/2,a=t.x+i,o=t.y+n,r=Math.min(i,n);e.moveTo(a,o-r),e.lineTo(a+r,o+r),e.lineTo(a-r,o+r),e.lineTo(a,o-r),e.closePath()}function k(e,t){var i=t.width/2,n=t.height/2,a=t.x+i,o=t.y+n,r=Math.min(i,n);e.moveTo(a,o-r),e.lineTo(a+r,o),e.lineTo(a,o+r),e.lineTo(a-r,o),e.lineTo(a,o-r),e.closePath()}function x(e,t){var i=t.x,n=t.y,a=t.width/16;e.moveTo(i+8*a,n),e.lineTo(i+a,n+t.height),e.lineTo(i+8*a,n+t.height/4*3),e.lineTo(i+15*a,n+t.height),e.lineTo(i+8*a,n),e.closePath()}function _(t,i){var n=e("zrender/shape/Star"),a=i.width/2,o=i.height/2;n.prototype.buildPath(t,{x:i.x+a,y:i.y+o,r:Math.min(a,o),n:i.n||5})}function L(t,i){var n=e("zrender/shape/Heart");n.prototype.buildPath(t,{x:i.x+i.width/2,y:i.y+.2*i.height,a:i.width/2,b:.8*i.height})}function W(t,i){var n=e("zrender/shape/Droplet");n.prototype.buildPath(t,{x:i.x+.5*i.width,y:i.y+.5*i.height,a:.5*i.width,b:.8*i.height})}function X(e,t){var i=t.x,n=t.y-t.height/2*1.5,a=t.width/2,o=t.height/2,r=Math.min(a,o);e.arc(i+a,n+o,r,Math.PI/5*4,Math.PI/5),e.lineTo(i+a,n+o+1.5*r),e.closePath()}function v(t,i,n){var a=e("zrender/shape/Image");this._imageShape=this._imageShape||new a({style:{}});for(var o in i)this._imageShape.style[o]=i[o];this._imageShape.brush(t,!1,n)}function w(e){I.call(this,e)}var K=e("zrender/tool/util"),I=e("zrender/shape/Base");return w.prototype={type:"icon",iconLibrary:{mark:t,markUndo:i,markClear:n,dataZoom:a,dataZoomReset:o,restore:r,lineChart:s,barChart:l,pieChart:h,funnelChart:m,forceChart:V,chordChart:U,stackChart:d,tiledChart:p,dataView:c,saveAsImage:u,cross:y,circle:g,rectangle:b,triangle:f,diamond:k,arrow:x,star:_,heart:L,droplet:W,pin:X,image:v},brush:function(t,i,n){var a=i?this.highlightStyle:this.style;a=a||{};var o=a.iconType||this.style.iconType;if("image"===o){var r=e("zrender/shape/Image");r.prototype.brush.call(this,t,i,n)}else{var a=this.beforeBrush(t,i);switch(t.beginPath(),this.buildPath(t,a,n),a.brushType){case"both":t.fill();case"stroke":a.lineWidth>0&&t.stroke();break;default:t.fill()}this.drawText(t,a,this.style),this.afterBrush(t)}},buildPath:function(e,t,i){this.iconLibrary[t.iconType]?this.iconLibrary[t.iconType].call(this,e,t,i):(e.moveTo(t.x,t.y),e.lineTo(t.x+t.width,t.y),e.lineTo(t.x+t.width,t.y+t.height),e.lineTo(t.x,t.y+t.height),e.lineTo(t.x,t.y),e.closePath())},getRect:function(e){return e.__rect?e.__rect:(e.__rect={x:Math.round(e.x),y:Math.round(e.y-("pin"==e.iconType?e.height/2*1.5:0)),width:e.width,height:e.height*("pin"===e.iconType?1.25:1)},e.__rect)},isCover:function(e,t){var i=this.transformCoordToLocal(e,t);e=i[0],t=i[1];var n=this.style.__rect;n||(n=this.style.__rect=this.getRect(this.style));var a=n.height<8||n.width<8?4:0;return e>=n.x-a&&e<=n.x+n.width+a&&t>=n.y-a&&t<=n.y+n.height+a}},K.inherits(w,I),w}),i("echarts/util/shape/MarkLine",["require","zrender/shape/Base","./Icon","zrender/shape/Line","zrender/shape/BezierCurve","zrender/tool/area","zrender/shape/util/dashedLineTo","zrender/tool/util","zrender/tool/curve"],function(e){function t(e){i.call(this,e),this.style.curveness>0&&this.updatePoints(this.style),this.highlightStyle.curveness>0&&this.updatePoints(this.highlightStyle)}var i=e("zrender/shape/Base"),n=e("./Icon"),a=e("zrender/shape/Line"),o=new a({}),r=e("zrender/shape/BezierCurve"),s=new r({}),l=e("zrender/tool/area"),h=e("zrender/shape/util/dashedLineTo"),m=e("zrender/tool/util"),V=e("zrender/tool/curve");return t.prototype={type:"mark-line",brush:function(e,t){var i=this.style;t&&(i=this.getHighlightStyle(i,this.highlightStyle||{})),e.save(),this.setContext(e,i),this.setTransform(e),e.save(),e.beginPath(),this.buildPath(e,i),e.stroke(),e.restore(),this.brushSymbol(e,i,0),this.brushSymbol(e,i,1),this.drawText(e,i,this.style),e.restore()},buildPath:function(e,t){var i=t.lineType||"solid";if(e.moveTo(t.xStart,t.yStart),t.curveness>0){var n=null;switch(i){case"dashed":n=[5,5];break;case"dotted":n=[1,1]}n&&e.setLineDash&&e.setLineDash(n),e.quadraticCurveTo(t.cpX1,t.cpY1,t.xEnd,t.yEnd)}else if("solid"==i)e.lineTo(t.xEnd,t.yEnd);else{var a=(t.lineWidth||1)*("dashed"==t.lineType?5:1);h(e,t.xStart,t.yStart,t.xEnd,t.yEnd,a)}},updatePoints:function(e){var t=e.curveness||0,i=1,n=e.xStart,a=e.yStart,o=e.xEnd,r=e.yEnd,s=(n+o)/2-i*(a-r)*t,l=(a+r)/2-i*(o-n)*t;e.cpX1=s,e.cpY1=l},brushSymbol:function(e,t,i){if("none"!=t.symbol[i]){e.save(),e.beginPath(),e.lineWidth=t.symbolBorder,e.strokeStyle=t.symbolBorderColor;var a=t.symbol[i].replace("empty","").toLowerCase();t.symbol[i].match("empty")&&(e.fillStyle="#fff");var o=t.xStart,r=t.yStart,s=t.xEnd,l=t.yEnd,h=0===i?o:s,m=0===i?r:l,U=t.curveness||0,d=null!=t.symbolRotate[i]?t.symbolRotate[i]-0:0;if(d=d/180*Math.PI,"arrow"==a&&0===d)if(0===U){var p=0===i?-1:1;d=Math.PI/2+Math.atan2(p*(l-r),p*(s-o))}else{var c=t.cpX1,u=t.cpY1,y=V.quadraticDerivativeAt,g=y(o,c,s,i),b=y(r,u,l,i);d=Math.PI/2+Math.atan2(b,g)}e.translate(h,m),0!==d&&e.rotate(d);var f=t.symbolSize[i];n.prototype.buildPath(e,{x:-f,y:-f,width:2*f,height:2*f,iconType:a}),e.closePath(),e.fill(),e.stroke(),e.restore()}},getRect:function(e){return e.curveness>0?s.getRect(e):o.getRect(e),e.__rect},isCover:function(e,t){var i=this.transformCoordToLocal(e,t);return e=i[0],t=i[1],this.isCoverRect(e,t)?this.style.curveness>0?l.isInside(s,this.style,e,t):l.isInside(o,this.style,e,t):!1}},m.inherits(t,i),t}),i("echarts/util/shape/Symbol",["require","zrender/shape/Base","zrender/shape/Polygon","zrender/tool/util","./normalIsCover"],function(e){function t(e){i.call(this,e)}var i=e("zrender/shape/Base"),n=e("zrender/shape/Polygon"),a=new n({}),o=e("zrender/tool/util");return t.prototype={type:"symbol",buildPath:function(e,t){var i=t.pointList,n=i.length;if(0!==n)for(var a,o,r,s,l,h=1e4,m=Math.ceil(n/h),V=i[0]instanceof Array,U=t.size?t.size:2,d=U,p=U/2,c=2*Math.PI,u=0;m>u;u++){e.beginPath(),a=u*h,o=a+h,o=o>n?n:o;for(var y=a;o>y;y++)if(t.random&&(r=t["randomMap"+y%20]/100,d=U*r*r,p=d/2),V?(s=i[y][0],l=i[y][1]):(s=i[y].x,l=i[y].y),3>d)e.rect(s-p,l-p,d,d);else switch(t.iconType){case"circle":e.moveTo(s,l),e.arc(s,l,p,0,c,!0);break;case"diamond":e.moveTo(s,l-p),e.lineTo(s+p/3,l-p/3),e.lineTo(s+p,l),e.lineTo(s+p/3,l+p/3),e.lineTo(s,l+p),e.lineTo(s-p/3,l+p/3),e.lineTo(s-p,l),e.lineTo(s-p/3,l-p/3),e.lineTo(s,l-p);break;default:e.rect(s-p,l-p,d,d)}if(e.closePath(),m-1>u)switch(t.brushType){case"both":e.fill(),t.lineWidth>0&&e.stroke();break;case"stroke":t.lineWidth>0&&e.stroke();break;default:e.fill()}}},getRect:function(e){return e.__rect||a.getRect(e)},isCover:e("./normalIsCover")},o.inherits(t,i),t}),i("zrender/shape/Polyline",["require","./Base","./util/smoothSpline","./util/smoothBezier","./util/dashedLineTo","./Polygon","../tool/util"],function(e){var t=e("./Base"),i=e("./util/smoothSpline"),n=e("./util/smoothBezier"),a=e("./util/dashedLineTo"),o=function(e){this.brushTypeOnly="stroke",this.textPosition="end",t.call(this,e)};return o.prototype={type:"polyline",buildPath:function(e,t){var n=t.pointList;if(!(n.length<2)){var o=Math.min(t.pointList.length,Math.round(t.pointListLength||t.pointList.length));if(t.smooth&&"spline"!==t.smooth){t.controlPointList||this.updateControlPoints(t);var r=t.controlPointList;e.moveTo(n[0][0],n[0][1]);for(var s,l,h,m=0;o-1>m;m++)s=r[2*m],l=r[2*m+1],h=n[m+1],e.bezierCurveTo(s[0],s[1],l[0],l[1],h[0],h[1])}else if("spline"===t.smooth&&(n=i(n),o=n.length),t.lineType&&"solid"!=t.lineType){if("dashed"==t.lineType||"dotted"==t.lineType){var V=(t.lineWidth||1)*("dashed"==t.lineType?5:1);e.moveTo(n[0][0],n[0][1]);for(var m=1;o>m;m++)a(e,n[m-1][0],n[m-1][1],n[m][0],n[m][1],V)}}else{e.moveTo(n[0][0],n[0][1]);for(var m=1;o>m;m++)e.lineTo(n[m][0],n[m][1])}}},updateControlPoints:function(e){e.controlPointList=n(e.pointList,e.smooth,!1,e.smoothConstraint)},getRect:function(t){return e("./Polygon").prototype.getRect(t)}},e("../tool/util").inherits(o,t),o}),i("zrender/shape/ShapeBundle",["require","./Base","../tool/util"],function(e){var t=e("./Base"),i=function(e){t.call(this,e)};return i.prototype={constructor:i,type:"shape-bundle",brush:function(e,t){var i=this.beforeBrush(e,t);e.beginPath();for(var n=0;n0&&e.stroke();break;default:e.fill()}this.drawText(e,i,this.style),this.afterBrush(e)},getRect:function(e){if(e.__rect)return e.__rect;for(var t=1/0,i=-(1/0),n=1/0,a=-(1/0),o=0;oh;h++)o[h]=[r[h][0],l];else for(var m=r[0][0],h=0;s>h;h++)o[h]=[m,r[h][1]];"half-smooth-polygon"==i.type&&(o[s-1]=p.clone(r[s-1]),o[s-2]=p.clone(r[s-2])),t={style:{pointList:o}}}o=t.style.pointList;var V=o.length;i.style.pointList=V==s?o:s>V?o.concat(r.slice(V)):o.slice(0,s),e.addShape(i),i.__animating=!0,e.animate(i.id,"style").when(n,{pointList:r}).during(function(){i.updateControlPoints&&i.updateControlPoints(i.style)}).done(function(){i.__animating=!1}).start(a)}function i(e,t){for(var i=arguments.length,n=2;i>n;n++){var a=arguments[n];e.style[a]=t.style[a]}}function n(e,t,n,a,o){var r=n.style;t||(t={position:n.position,style:{x:r.x,y:"vertical"==n._orient?r.y+r.height:r.y,width:"vertical"==n._orient?r.width:0,height:"vertical"!=n._orient?r.height:0}});var s=r.x,l=r.y,h=r.width,m=r.height,V=[n.position[0],n.position[1]];i(n,t,"x","y","width","height"),n.position=t.position,e.addShape(n),(V[0]!=t.position[0]||V[1]!=t.position[1])&&e.animate(n.id,"").when(a,{position:V}).start(o),n.__animating=!0,e.animate(n.id,"style").when(a,{x:s,y:l,width:h,height:m}).done(function(){n.__animating=!1}).start(o)}function a(e,t,i,n,a){if(!t){var o=i.style.y;t={style:{y:[o[0],o[0],o[0],o[0]]}}}var r=i.style.y;i.style.y=t.style.y,e.addShape(i),i.__animating=!0,e.animate(i.id,"style").when(n,{y:r}).done(function(){i.__animating=!1}).start(a)}function o(e,t,i,n,a){var o=i.style.x,r=i.style.y,s=i.style.r0,l=i.style.r;i.__animating=!0,"r"!=i._animationAdd?(i.style.r0=0,i.style.r=0,i.rotation=[2*Math.PI,o,r],e.addShape(i),e.animate(i.id,"style").when(n,{r0:s,r:l}).done(function(){i.__animating=!1}).start(a),e.animate(i.id,"").when(n,{rotation:[0,o,r]}).start(a)):(i.style.r0=i.style.r,e.addShape(i),e.animate(i.id,"style").when(n,{r0:s}).done(function(){i.__animating=!1}).start(a))}function r(e,t,n,a,o){t||(t="r"!=n._animationAdd?{ +style:{startAngle:n.style.startAngle,endAngle:n.style.startAngle}}:{style:{r0:n.style.r}});var r=n.style.startAngle,s=n.style.endAngle;i(n,t,"startAngle","endAngle"),e.addShape(n),n.__animating=!0,e.animate(n.id,"style").when(a,{startAngle:r,endAngle:s}).done(function(){n.__animating=!1}).start(o)}function s(e,t,n,a,o){t||(t={style:{x:"left"==n.style.textAlign?n.style.x+100:n.style.x-100,y:n.style.y}});var r=n.style.x,s=n.style.y;i(n,t,"x","y"),e.addShape(n),n.__animating=!0,e.animate(n.id,"style").when(a,{x:r,y:s}).done(function(){n.__animating=!1}).start(o)}function l(t,i,n,a,o){var r=e("zrender/shape/Polygon").prototype.getRect(n.style),s=r.x+r.width/2,l=r.y+r.height/2;n.scale=[.1,.1,s,l],t.addShape(n),n.__animating=!0,t.animate(n.id,"").when(a,{scale:[1,1,s,l]}).done(function(){n.__animating=!1}).start(o)}function h(e,t,n,a,o){t||(t={style:{source0:0,source1:n.style.source1>0?360:-360,target0:0,target1:n.style.target1>0?360:-360}});var r=n.style.source0,s=n.style.source1,l=n.style.target0,h=n.style.target1;t.style&&i(n,t,"source0","source1","target0","target1"),e.addShape(n),n.__animating=!0,e.animate(n.id,"style").when(a,{source0:r,source1:s,target0:l,target1:h}).done(function(){n.__animating=!1}).start(o)}function m(e,t,i,n,a){t||(t={style:{angle:i.style.startAngle}});var o=i.style.angle;i.style.angle=t.style.angle,e.addShape(i),i.__animating=!0,e.animate(i.id,"style").when(n,{angle:o}).done(function(){i.__animating=!1}).start(a)}function V(e,t,i,a,o,r){if(i.style._x=i.style.x,i.style._y=i.style.y,i.style._width=i.style.width,i.style._height=i.style.height,t)n(e,t,i,a,o);else{var s=i._x||0,l=i._y||0;i.scale=[.01,.01,s,l],e.addShape(i),i.__animating=!0,e.animate(i.id,"").delay(r).when(a,{scale:[1,1,s,l]}).done(function(){i.__animating=!1}).start(o||"QuinticOut")}}function U(e,t,n,a,o){t||(t={style:{xStart:n.style.xStart,yStart:n.style.yStart,xEnd:n.style.xStart,yEnd:n.style.yStart}});var r=n.style.xStart,s=n.style.xEnd,l=n.style.yStart,h=n.style.yEnd;i(n,t,"xStart","xEnd","yStart","yEnd"),e.addShape(n),n.__animating=!0,e.animate(n.id,"style").when(a,{xStart:r,xEnd:s,yStart:l,yEnd:h}).done(function(){n.__animating=!1}).start(o)}function d(e,t,i,n,a){a=a||"QuinticOut",i.__animating=!0,e.addShape(i);var o=i.style,r=function(){i.__animating=!1},s=o.xStart,l=o.yStart,h=o.xEnd,m=o.yEnd;if(o.curveness>0){i.updatePoints(o);var V={p:0},U=o.cpX1,d=o.cpY1,p=[],u=[],y=c.quadraticSubdivide;e.animation.animate(V).when(n,{p:1}).during(function(){y(s,U,h,V.p,p),y(l,d,m,V.p,u),o.cpX1=p[1],o.cpY1=u[1],o.xEnd=p[2],o.yEnd=u[2],e.modShape(i)}).done(r).start(a)}else e.animate(i.id,"style").when(0,{xEnd:s,yEnd:l}).when(n,{xEnd:h,yEnd:m}).done(r).start(a)}var p=e("zrender/tool/util"),c=e("zrender/tool/curve");return{pointList:t,rectangle:n,candle:a,ring:o,sector:r,text:s,polygon:l,ribbon:h,gaugePointer:m,icon:V,line:U,markline:d}}),i("echarts/util/ecEffect",["require","../util/ecData","zrender/shape/Circle","zrender/shape/Image","zrender/tool/curve","../util/shape/Icon","../util/shape/Symbol","zrender/shape/ShapeBundle","zrender/shape/Polyline","zrender/tool/vector","zrender/tool/env"],function(e){function t(e,t,i,n){var a,r=i.effect,l=r.color||i.style.strokeColor||i.style.color,m=r.shadowColor||l,V=r.scaleSize,U=r.bounceDistance,d="undefined"!=typeof r.shadowBlur?r.shadowBlur:V;"image"!==i.type?(a=new h({zlevel:n,style:{brushType:"stroke",iconType:"droplet"!=i.style.iconType?i.style.iconType:"circle",x:d+1,y:d+1,n:i.style.n,width:i.style._width*V,height:i.style._height*V,lineWidth:1,strokeColor:l,shadowColor:m,shadowBlur:d},draggable:!1,hoverable:!1}),"pin"==i.style.iconType&&(a.style.y+=a.style.height/2*1.5),p&&(a.style.image=e.shapeToImage(a,a.style.width+2*d+2,a.style.height+2*d+2).style.image,a=new s({zlevel:a.zlevel,style:a.style,draggable:!1,hoverable:!1}))):a=new s({zlevel:n,style:i.style,draggable:!1,hoverable:!1}),o.clone(i,a),a.position=i.position,t.push(a),e.addShape(a);var c="image"!==i.type?window.devicePixelRatio||1:1,u=(a.style.width/c-i.style._width)/2;a.style.x=i.style._x-u,a.style.y=i.style._y-u,"pin"==i.style.iconType&&(a.style.y-=i.style.height/2*1.5);var y=100*(r.period+10*Math.random());e.modShape(i.id,{invisible:!0});var g=a.style.x+a.style.width/2/c,b=a.style.y+a.style.height/2/c;"scale"===r.type?(e.modShape(a.id,{scale:[.1,.1,g,b]}),e.animate(a.id,"",r.loop).when(y,{scale:[1,1,g,b]}).done(function(){i.effect.show=!1,e.delShape(a.id)}).start()):e.animate(a.id,"style",r.loop).when(y,{y:a.style.y-U}).when(2*y,{y:a.style.y}).done(function(){i.effect.show=!1,e.delShape(a.id)}).start()}function i(e,t,i,n){var a=i.effect,o=a.color||i.style.strokeColor||i.style.color,r=a.scaleSize,s=a.shadowColor||o,l="undefined"!=typeof a.shadowBlur?a.shadowBlur:2*r,h=window.devicePixelRatio||1,V=new m({zlevel:n,position:i.position,scale:i.scale,style:{pointList:i.style.pointList,iconType:i.style.iconType,color:o,strokeColor:o,shadowColor:s,shadowBlur:l*h,random:!0,brushType:"fill",lineWidth:1,size:i.style.size},draggable:!1,hoverable:!1});t.push(V),e.addShape(V),e.modShape(i.id,{invisible:!0});for(var U=Math.round(100*a.period),d={},p={},c=0;20>c;c++)V.style["randomMap"+c]=0,d={},d["randomMap"+c]=100,p={},p["randomMap"+c]=0,V.style["randomMap"+c]=100*Math.random(),e.animate(V.id,"style",!0).when(U,d).when(2*U,p).when(3*U,d).when(4*U,d).delay(Math.random()*U*c).start()}function n(e,t,i,n,a){var s=i.effect,h=i.style,m=s.color||h.strokeColor||h.color,V=s.shadowColor||h.strokeColor||m,c=h.lineWidth*s.scaleSize,u="undefined"!=typeof s.shadowBlur?s.shadowBlur:c,y=new r({zlevel:n,style:{x:u,y:u,r:c,color:m,shadowColor:V,shadowBlur:u},hoverable:!1}),g=0;if(p&&!a){var n=y.zlevel;y=e.shapeToImage(y,2*(c+u),2*(c+u)),y.zlevel=n,y.hoverable=!1,g=u}a||(o.clone(i,y),y.position=i.position,t.push(y),e.addShape(y));var b=function(){a||(i.effect.show=!1,e.delShape(y.id)),y.effectAnimator=null};if(i instanceof U){for(var f=[0],k=0,x=h.pointList,_=h.controlPointList,L=1;L0){var F=h.cpX1-g,T=h.cpY1-g;y.effectAnimator=e.animation.animate(y,{loop:s.loop}).when(E,{p:1}).during(function(t,i){y.style.x=l.quadraticAt(K,F,J,i),y.style.y=l.quadraticAt(I,T,C,i),a||e.modShape(y)}).done(b).start()}else y.effectAnimator=e.animation.animate(y.style,{loop:s.loop}).when(E,{x:J,y:C}).during(function(){a||e.modShape(y)}).done(b).start();y.effectAnimator.duration=E}return y}function a(e,t,i,a){var o=new V({style:{shapeList:[]},zlevel:a,hoverable:!1}),r=i.style.shapeList,s=i.effect;o.position=i.position;for(var l=0,h=[],m=0;ml&&(l=d.duration),0===m&&(o.style.color=U.style.color,o.style.shadowBlur=U.style.shadowBlur,o.style.shadowColor=U.style.shadowColor),h.push(d)}t.push(o),e.addShape(o);var p=function(){for(var e=0;e=0;o--)t=s.type==i.CHART_TYPE_PIE||s.type==i.CHART_TYPE_FUNNEL?n.get(s.shapeList[o],"name"):(n.get(s.shapeList[o],"series")||{}).name,t!=a||s.shapeList[o].invisible||s.shapeList[o].__animating||s.zr.addHoverShape(s.shapeList[o])},t&&t.bind(i.EVENT.LEGEND_HOVERLINK,this._onlegendhoverlink)}var i=e("../config"),n=e("../util/ecData"),a=e("../util/ecQuery"),o=e("../util/number"),r=e("zrender/tool/util");return t.prototype={canvasSupported:e("zrender/tool/env").canvasSupported,_getZ:function(e){if(null!=this[e])return this[e];var t=this.ecTheme[this.type];return t&&null!=t[e]?t[e]:(t=i[this.type],t&&null!=t[e]?t[e]:0)},getZlevelBase:function(){return this._getZ("zlevel")},getZBase:function(){return this._getZ("z")},reformOption:function(e){return e=r.merge(r.merge(e||{},r.clone(this.ecTheme[this.type]||{})),r.clone(i[this.type]||{})),this.z=e.z,this.zlevel=e.zlevel,e},reformCssArray:function(e){if(!(e instanceof Array))return[e,e,e,e];switch(e.length+""){case"4":return e;case"3":return[e[0],e[1],e[2],e[1]];case"2":return[e[0],e[1],e[0],e[1]];case"1":return[e[0],e[0],e[0],e[0]];case"0":return[0,0,0,0]}},getShapeById:function(e){for(var t=0,i=this.shapeList.length;i>t;t++)if(this.shapeList[t].id===e)return this.shapeList[t];return null},getFont:function(e){var t=this.getTextStyle(r.clone(e));return t.fontStyle+" "+t.fontWeight+" "+t.fontSize+"px "+t.fontFamily},getTextStyle:function(e){return r.merge(r.merge(e||{},this.ecTheme.textStyle),i.textStyle)},getItemStyleColor:function(e,t,i,n){return"function"==typeof e?e.call(this.myChart,{seriesIndex:t,series:this.series[t],dataIndex:i,data:n}):e},getDataFromOption:function(e,t){return null!=e?null!=e.value?e.value:e:t},subPixelOptimize:function(e,t){return e=t%2===1?Math.floor(e)+.5:Math.round(e)},resize:function(){this.refresh&&this.refresh(),this.clearEffectShape&&this.clearEffectShape(!0);var e=this;setTimeout(function(){e.animationEffect&&e.animationEffect()},200)},clear:function(){this.clearEffectShape&&this.clearEffectShape(),this.zr&&this.zr.delShape(this.shapeList),this.shapeList=[]},dispose:function(){this.onbeforDispose&&this.onbeforDispose(),this.clear(),this.shapeList=null,this.effectList=null,this.messageCenter&&this.messageCenter.unbind(i.EVENT.LEGEND_HOVERLINK,this._onlegendhoverlink),this.onafterDispose&&this.onafterDispose()},query:a.query,deepQuery:a.deepQuery,deepMerge:a.deepMerge,parsePercent:o.parsePercent,parseCenter:o.parseCenter,parseRadius:o.parseRadius,numAddCommas:o.addCommas,getPrecision:o.getPrecision},t}),i("echarts/layout/EdgeBundling",["require","../data/KDTree","zrender/tool/vector"],function(e){function t(e,t){e=e.array,t=t.array;var i=t[0]-e[0],n=t[1]-e[1],a=t[2]-e[2],o=t[3]-e[3];return i*i+n*n+a*a+o*o}function i(e){this.points=[e.mp0,e.mp1],this.group=e}function n(e){var t=e.points;t[0][1]0&&t(e[o],n[a-1])||(n[a++]=U(e[o]));return i[0]&&!t(n[0],i[0])&&(n=n.reverse()),n}for(var a=this._iterate(e),o=0;o++f&&(f=W,k=L,V(g,c),V(y,p),b=u)}if(k){s+=f;var X;k.group||(X=new a,o.push(X),X.addEdge(k)),X=k.group,V(X.mp0,y),V(X.mp1,g),X.ink=b,k.group.addEdge(m)}else{var X=new a;o.push(X),V(X.mp0,m.getStartPoint()),V(X.mp1,m.getEndPoint()),X.ink=m.ink,X.addEdge(m)}}}return{groups:o,edges:i,savedInk:s}},_calculateEdgeEdgeInk:function(){var e=[],t=[];return function(i,n,a,o){e[0]=i.getStartPoint(),e[1]=n.getStartPoint(),t[0]=i.getEndPoint(),t[1]=n.getEndPoint(),this._calculateMeetPoints(e,t,a,o);var r=m(e[0],a)+m(a,o)+m(o,t[0])+m(e[1],a)+m(o,t[1]);return r}}(),_calculateGroupEdgeInk:function(e,t,i,n){for(var a=[],o=[],r=0;rl;l++)s.add(e,e,i[l]);s.scale(e,e,1/r),r=n.length;for(var l=0;r>l;l++)s.add(t,t,n[l]);s.scale(t,t,1/r),this._limitTurningAngle(i,e,t,a),this._limitTurningAngle(n,t,e,o)}}(),_limitTurningAngle:function(){var e=l(),t=l(),i=l(),n=l();return function(a,o,r,l){var V=Math.cos(this.maxTurningAngle),U=Math.tan(this.maxTurningAngle);s.sub(e,o,r),s.normalize(e,e),s.copy(l,o);for(var d=0,p=0;py){s.scaleAndAdd(i,o,e,u*y);var g=m(i,c),b=g/U;s.scaleAndAdd(n,i,e,-b);var f=h(n,o);f>d&&(d=f,s.copy(l,n))}}}}()},o}),i("zrender/shape/Star",["require","../tool/math","./Base","../tool/util"],function(e){var t=e("../tool/math"),i=t.sin,n=t.cos,a=Math.PI,o=e("./Base"),r=function(e){o.call(this,e)};return r.prototype={type:"star",buildPath:function(e,t){var o=t.n;if(o&&!(2>o)){var r=t.x,s=t.y,l=t.r,h=t.r0;null==h&&(h=o>4?l*n(2*a/o)/n(a/o):l/3);var m=a/o,V=-a/2,U=r+l*n(V),d=s+l*i(V);V+=m;var p=t.pointList=[];p.push([U,d]);for(var c,u=0,y=2*o-1;y>u;u++)c=u%2===0?h:l,p.push([r+c*n(V),s+c*i(V)]),V+=m;p.push([U,d]),e.moveTo(p[0][0],p[0][1]);for(var u=0;ur;r+=2)e[0]=Math.min(e[0],e[0],o[r]),e[1]=Math.min(e[1],e[1],o[r+1]),i[0]=Math.max(i[0],i[0],o[r]),i[1]=Math.max(i[1],i[1],o[r+1]);break;case"Q":for(var r=0;4>r;r+=2)e[0]=Math.min(e[0],e[0],o[r]),e[1]=Math.min(e[1],e[1],o[r+1]),i[0]=Math.max(i[0],i[0],o[r]),i[1]=Math.max(i[1],i[1],o[r+1]);break;case"A":var s=o[0],l=o[1],h=o[2],m=o[3];e[0]=Math.min(e[0],e[0],s-h),e[1]=Math.min(e[1],e[1],l-m),i[0]=Math.max(i[0],i[0],s+h),i[1]=Math.max(i[1],i[1],l+m)}}return{x:e[0],y:e[1],width:i[0]-e[0],height:i[1]-e[1]}},n.prototype.begin=function(e){return this._ctx=e||null,this.pathCommands.length=0,this},n.prototype.moveTo=function(e,t){return this.pathCommands.push(new i("M",[e,t])),this._ctx&&this._ctx.moveTo(e,t),this},n.prototype.lineTo=function(e,t){return this.pathCommands.push(new i("L",[e,t])),this._ctx&&this._ctx.lineTo(e,t),this},n.prototype.bezierCurveTo=function(e,t,n,a,o,r){return this.pathCommands.push(new i("C",[e,t,n,a,o,r])),this._ctx&&this._ctx.bezierCurveTo(e,t,n,a,o,r),this},n.prototype.quadraticCurveTo=function(e,t,n,a){return this.pathCommands.push(new i("Q",[e,t,n,a])),this._ctx&&this._ctx.quadraticCurveTo(e,t,n,a),this},n.prototype.arc=function(e,t,n,a,o,r){return this.pathCommands.push(new i("A",[e,t,n,n,a,o-a,0,r?0:1])),this._ctx&&this._ctx.arc(e,t,n,a,o,r),this},n.prototype.arcTo=function(e,t,i,n,a){return this._ctx&&this._ctx.arcTo(e,t,i,n,a),this},n.prototype.rect=function(e,t,i,n){return this._ctx&&this._ctx.rect(e,t,i,n),this},n.prototype.closePath=function(){return this.pathCommands.push(new i("z")),this._ctx&&this._ctx.closePath(),this},n.prototype.isEmpty=function(){return 0===this.pathCommands.length},n.PathSegment=i,n}),i("zrender/shape/Line",["require","./Base","./util/dashedLineTo","../tool/util"],function(e){var t=e("./Base"),i=e("./util/dashedLineTo"),n=function(e){this.brushTypeOnly="stroke",this.textPosition="end",t.call(this,e)};return n.prototype={type:"line",buildPath:function(e,t){if(t.lineType&&"solid"!=t.lineType){if("dashed"==t.lineType||"dotted"==t.lineType){var n=(t.lineWidth||1)*("dashed"==t.lineType?5:1);i(e,t.xStart,t.yStart,t.xEnd,t.yEnd,n)}}else e.moveTo(t.xStart,t.yStart),e.lineTo(t.xEnd,t.yEnd)},getRect:function(e){if(e.__rect)return e.__rect;var t=e.lineWidth||1;return e.__rect={x:Math.min(e.xStart,e.xEnd)-t,y:Math.min(e.yStart,e.yEnd)-t,width:Math.abs(e.xStart-e.xEnd)+t,height:Math.abs(e.yStart-e.yEnd)+t},e.__rect}},e("../tool/util").inherits(n,t),n}),i("zrender/shape/BezierCurve",["require","./Base","../tool/util"],function(e){"use strict";var t=e("./Base"),i=function(e){this.brushTypeOnly="stroke",this.textPosition="end",t.call(this,e)};return i.prototype={type:"bezier-curve",buildPath:function(e,t){e.moveTo(t.xStart,t.yStart),"undefined"!=typeof t.cpX2&&"undefined"!=typeof t.cpY2?e.bezierCurveTo(t.cpX1,t.cpY1,t.cpX2,t.cpY2,t.xEnd,t.yEnd):e.quadraticCurveTo(t.cpX1,t.cpY1,t.xEnd,t.yEnd)},getRect:function(e){if(e.__rect)return e.__rect;var t=Math.min(e.xStart,e.xEnd,e.cpX1),i=Math.min(e.yStart,e.yEnd,e.cpY1),n=Math.max(e.xStart,e.xEnd,e.cpX1),a=Math.max(e.yStart,e.yEnd,e.cpY1),o=e.cpX2,r=e.cpY2;"undefined"!=typeof o&&"undefined"!=typeof r&&(t=Math.min(t,o),i=Math.min(i,r),n=Math.max(n,o),a=Math.max(a,r));var s=e.lineWidth||1;return e.__rect={x:t-s,y:i-s,width:n-t+s,height:a-i+s},e.__rect}},e("../tool/util").inherits(i,t),i}),i("zrender/shape/util/dashedLineTo",[],function(){var e=[5,5];return function(t,i,n,a,o,r){if(t.setLineDash)return e[0]=e[1]=r,t.setLineDash(e),t.moveTo(i,n),void t.lineTo(a,o);r="number"!=typeof r?5:r;var s=a-i,l=o-n,h=Math.floor(Math.sqrt(s*s+l*l)/r);s/=h,l/=h;for(var m=!0,V=0;h>V;++V)m?t.moveTo(i,n):t.lineTo(i,n),m=!m,i+=s,n+=l;t.lineTo(a,o)}}),i("zrender/shape/Polygon",["require","./Base","./util/smoothSpline","./util/smoothBezier","./util/dashedLineTo","../tool/util"],function(e){var t=e("./Base"),i=e("./util/smoothSpline"),n=e("./util/smoothBezier"),a=e("./util/dashedLineTo"),o=function(e){t.call(this,e)};return o.prototype={type:"polygon",buildPath:function(e,t){var o=t.pointList;if(!(o.length<2)){if(t.smooth&&"spline"!==t.smooth){var r=n(o,t.smooth,!0,t.smoothConstraint);e.moveTo(o[0][0],o[0][1]);for(var s,l,h,m=o.length,V=0;m>V;V++)s=r[2*V],l=r[2*V+1],h=o[(V+1)%m],e.bezierCurveTo(s[0],s[1],l[0],l[1],h[0],h[1])}else if("spline"===t.smooth&&(o=i(o,!0)),t.lineType&&"solid"!=t.lineType){if("dashed"==t.lineType||"dotted"==t.lineType){var U=t._dashLength||(t.lineWidth||1)*("dashed"==t.lineType?5:1);t._dashLength=U,e.moveTo(o[0][0],o[0][1]);for(var V=1,d=o.length;d>V;V++)a(e,o[V-1][0],o[V-1][1],o[V][0],o[V][1],U);a(e,o[o.length-1][0],o[o.length-1][1],o[0][0],o[0][1],U)}}else{e.moveTo(o[0][0],o[0][1]);for(var V=1,d=o.length;d>V;V++)e.lineTo(o[V][0],o[V][1]);e.lineTo(o[0][0],o[0][1])}e.closePath()}},getRect:function(e){if(e.__rect)return e.__rect;for(var t=Number.MAX_VALUE,i=Number.MIN_VALUE,n=Number.MAX_VALUE,a=Number.MIN_VALUE,o=e.pointList,r=0,s=o.length;s>r;r++)o[r][0]i&&(i=o[r][0]),o[r][1]a&&(a=o[r][1]);var l;return l="stroke"==e.brushType||"fill"==e.brushType?e.lineWidth||1:0,e.__rect={x:Math.round(t-l/2),y:Math.round(n-l/2),width:i-t+l,height:a-n+l},e.__rect}},e("../tool/util").inherits(o,t),o}),i("echarts/util/shape/normalIsCover",[],function(){return function(e,t){var i=this.transformCoordToLocal(e,t);return e=i[0],t=i[1],this.isCoverRect(e,t)}}),i("zrender/shape/util/smoothSpline",["require","../../tool/vector"],function(e){function t(e,t,i,n,a,o,r){var s=.5*(i-e),l=.5*(n-t);return(2*(t-i)+s+l)*r+(-3*(t-i)-2*s-l)*o+s*a+t}var i=e("../../tool/vector");return function(e,n){for(var a=e.length,o=[],r=0,s=1;a>s;s++)r+=i.distance(e[s-1],e[s]);var l=r/5;l=a>l?a:l;for(var s=0;l>s;s++){var h,m,V,U=s/(l-1)*(n?a:a-1),d=Math.floor(U),p=U-d,c=e[d%a];n?(h=e[(d-1+a)%a],m=e[(d+1)%a],V=e[(d+2)%a]):(h=e[0===d?d:d-1],m=e[d>a-2?a-1:d+1],V=e[d>a-3?a-1:d+2]);var u=p*p,y=p*u;o.push([t(h[0],c[0],m[0],V[0],p,u,y),t(h[1],c[1],m[1],V[1],p,u,y)])}return o}}),i("zrender/shape/util/smoothBezier",["require","../../tool/vector"],function(e){var t=e("../../tool/vector");return function(e,i,n,a){var o,r,s,l,h=[],m=[],V=[],U=[],d=!!a;if(d){s=[1/0,1/0],l=[-(1/0),-(1/0)];for(var p=0,c=e.length;c>p;p++)t.min(s,s,e[p]),t.max(l,l,e[p]);t.min(s,s,a[0]),t.max(l,l,a[1])}for(var p=0,c=e.length;c>p;p++){var o,r,u=e[p];if(n)o=e[p?p-1:c-1],r=e[(p+1)%c];else{if(0===p||p===c-1){h.push(t.clone(e[p]));continue}o=e[p-1],r=e[p+1]}t.sub(m,r,o),t.scale(m,m,i);var y=t.distance(u,o),g=t.distance(u,r),b=y+g;0!==b&&(y/=b,g/=b),t.scale(V,m,-y),t.scale(U,m,g);var f=t.add([],u,V),k=t.add([],u,U);d&&(t.max(f,f,s),t.min(f,f,l),t.max(k,k,s),t.min(k,k,l)),h.push(f),h.push(k)}return n&&h.push(t.clone(h.shift())),h}}),i("echarts/util/ecQuery",["require","zrender/tool/util"],function(e){function t(e,t){if("undefined"!=typeof e){if(!t)return e;t=t.split(".");for(var i=t.length,n=0;i>n;){if(e=e[t[n]],"undefined"==typeof e)return;n++}return e}}function i(e,i){for(var n,a=0,o=e.length;o>a;a++)if(n=t(e[a],i),"undefined"!=typeof n)return n}function n(e,i){for(var n,o=e.length;o--;){var r=t(e[o],i);"undefined"!=typeof r&&("undefined"==typeof n?n=a.clone(r):a.merge(n,r,!0))}return n}var a=e("zrender/tool/util");return{query:t,deepQuery:i,deepMerge:n}}),i("echarts/util/number",[],function(){function e(e){return e.replace(/^\s+/,"").replace(/\s+$/,"")}function t(t,i){return"string"==typeof t?e(t).match(/%$/)?parseFloat(t)/100*i:parseFloat(t):t}function i(e,i){return[t(i[0],e.getWidth()),t(i[1],e.getHeight())]}function n(e,i){i instanceof Array||(i=[0,i]);var n=Math.min(e.getWidth(),e.getHeight())/2;return[t(i[0],n),t(i[1],n)]}function a(e){return isNaN(e)?"-":(e=(e+"").split("."),e[0].replace(/(\d{1,3})(?=(?:\d{3})+(?!\d))/g,"$1,")+(e.length>1?"."+e[1]:""))}function o(e){for(var t=1,i=0;Math.round(e*t)/t!==e;)t*=10,i++;return i}return{parsePercent:t,parseCenter:i,parseRadius:n,addCommas:a,getPrecision:o}}),i("echarts/data/KDTree",["require","./quickSelect"],function(e){function t(e,t){this.left=null,this.right=null,this.axis=e,this.data=t}var i=e("./quickSelect"),n=function(e,t){e.length&&(t||(t=e[0].array.length),this.dimension=t,this.root=this._buildTree(e,0,e.length-1,0),this._stack=[],this._nearstNList=[])};return n.prototype._buildTree=function(e,n,a,o){if(n>a)return null;var r=Math.floor((n+a)/2);r=i(e,n,a,r,function(e,t){return e.array[o]-t.array[o]});var s=e[r],l=new t(o,s);return o=(o+1)%this.dimension,a>n&&(l.left=this._buildTree(e,n,r-1,o),l.right=this._buildTree(e,r+1,a,o)),l},n.prototype.nearest=function(e,t){var i=this.root,n=this._stack,a=0,o=1/0,r=null;for(i.data!==e&&(o=t(i.data,e),r=i),e.array[i.axis]s,h=!1;s*=s,o>s&&(s=t(i.data,e),o>s&&i.data!==e&&(o=s,r=i),h=!0),l?(h&&i.right&&(n[a++]=i.right),i.left&&(n[a++]=i.left)):(h&&i.left&&(n[a++]=i.left),i.right&&(n[a++]=i.right))}return r.data},n.prototype._addNearest=function(e,t,i){for(var n=this._nearstNList,a=e-1;a>0&&!(t>=n[a-1].dist);a--)n[a].dist=n[a-1].dist,n[a].node=n[a-1].node;n[a].dist=t,n[a].node=i},n.prototype.nearestN=function(e,t,i,n){if(0>=t)return n.length=0,n;for(var a=this.root,o=this._stack,r=0,s=this._nearstNList,l=0;t>l;l++)s[l]||(s[l]={}),s[l].dist=0,s[l].node=null;var h=i(a.data,e),m=0;for(a.data!==e&&(m++,this._addNearest(m,h,a)),e.array[a.axis]h,U=!1;h*=h,(t>m||hm||hm&&m++,this._addNearest(m,h,a)),U=!0),V?(U&&a.right&&(o[r++]=a.right),a.left&&(o[r++]=a.left)):(U&&a.left&&(o[r++]=a.left),a.right&&(o[r++]=a.right))}for(var l=0;m>l;l++)n[l]=s[l].node.data;return n.length=m,n},n}),i("echarts/data/quickSelect",["require"],function(){function e(e,t){return e-t}function t(e,t,i){var n=e[t];e[t]=e[i],e[i]=n}function i(e,i,n,a,o){for(var r=i;n>i;){var r=Math.round((n+i)/2),s=e[r];t(e,r,n),r=i;for(var l=i;n-1>=l;l++)o(s,e[l])>=0&&(t(e,l,r),r++);if(t(e,n,r),r===a)return r;a>r?i=r+1:n=r-1}return i}function n(t,n,a,o,r){return arguments.length<=3&&(o=n,r=2==arguments.length?e:a,n=0,a=t.length-1),i(t,n,a,o,r)}return n}),i("echarts/component/dataView",["require","./base","../config","zrender/tool/util","../component"],function(e){function t(e,t,n,a,o){i.call(this,e,t,n,a,o),this.dom=o.dom,this._tDom=document.createElement("div"),this._textArea=document.createElement("textArea"),this._buttonRefresh=document.createElement("button"),this._buttonRefresh.setAttribute("type","button"),this._buttonClose=document.createElement("button"),this._buttonClose.setAttribute("type","button"),this._hasShow=!1,this._zrHeight=n.getHeight(),this._zrWidth=n.getWidth(),this._tDom.className="echarts-dataview",this.hide(),this.dom.firstChild.appendChild(this._tDom),window.addEventListener?(this._tDom.addEventListener("click",this._stop),this._tDom.addEventListener("mousewheel",this._stop),this._tDom.addEventListener("mousemove",this._stop),this._tDom.addEventListener("mousedown",this._stop),this._tDom.addEventListener("mouseup",this._stop),this._tDom.addEventListener("touchstart",this._stop),this._tDom.addEventListener("touchmove",this._stop),this._tDom.addEventListener("touchend",this._stop)):(this._tDom.attachEvent("onclick",this._stop),this._tDom.attachEvent("onmousewheel",this._stop),this._tDom.attachEvent("onmousemove",this._stop),this._tDom.attachEvent("onmousedown",this._stop),this._tDom.attachEvent("onmouseup",this._stop))}var i=e("./base"),n=e("../config"),a=e("zrender/tool/util");return t.prototype={type:n.COMPONENT_TYPE_DATAVIEW,_lang:["Data View","close","refresh"],_gCssText:"position:absolute;display:block;overflow:hidden;transition:height 0.8s,background-color 1s;-moz-transition:height 0.8s,background-color 1s;-webkit-transition:height 0.8s,background-color 1s;-o-transition:height 0.8s,background-color 1s;z-index:1;left:0;top:0;",hide:function(){this._sizeCssText="width:"+this._zrWidth+"px;height:0px;background-color:#f0ffff;",this._tDom.style.cssText=this._gCssText+this._sizeCssText},show:function(e){this._hasShow=!0;var t=this.query(this.option,"toolbox.feature.dataView.lang")||this._lang;this.option=e,this._tDom.innerHTML='

        '+(t[0]||this._lang[0])+"

        ";var i=this.query(this.option,"toolbox.feature.dataView.optionToContent");"function"!=typeof i?this._textArea.value=this._optionToContent():(this._textArea=document.createElement("div"),this._textArea.innerHTML=i(this.option)),this._textArea.style.cssText="display:block;margin:0 0 8px 0;padding:4px 6px;overflow:auto;width:100%;height:"+(this._zrHeight-100)+"px;",this._tDom.appendChild(this._textArea),this._buttonClose.style.cssText="float:right;padding:1px 6px;",this._buttonClose.innerHTML=t[1]||this._lang[1];var n=this;this._buttonClose.onclick=function(){n.hide()},this._tDom.appendChild(this._buttonClose),this.query(this.option,"toolbox.feature.dataView.readOnly")===!1?(this._buttonRefresh.style.cssText="float:right;margin-right:10px;padding:1px 6px;",this._buttonRefresh.innerHTML=t[2]||this._lang[2],this._buttonRefresh.onclick=function(){n._save()},this._textArea.readOnly=!1,this._textArea.style.cursor="default"):(this._buttonRefresh.style.cssText="display:none", +this._textArea.readOnly=!0,this._textArea.style.cursor="text"),this._tDom.appendChild(this._buttonRefresh),this._sizeCssText="width:"+this._zrWidth+"px;height:"+this._zrHeight+"px;background-color:#fff;",this._tDom.style.cssText=this._gCssText+this._sizeCssText},_optionToContent:function(){var e,t,i,a,o,r,s=[],l="";if(this.option.xAxis)for(s=this.option.xAxis instanceof Array?this.option.xAxis:[this.option.xAxis],e=0,a=s.length;a>e;e++)if("category"==(s[e].type||"category")){for(r=[],t=0,i=s[e].data.length;i>t;t++)r.push(this.getDataFromOption(s[e].data[t]));l+=r.join(", ")+"\n\n"}if(this.option.yAxis)for(s=this.option.yAxis instanceof Array?this.option.yAxis:[this.option.yAxis],e=0,a=s.length;a>e;e++)if("category"==s[e].type){for(r=[],t=0,i=s[e].data.length;i>t;t++)r.push(this.getDataFromOption(s[e].data[t]));l+=r.join(", ")+"\n\n"}var h,m=this.option.series;for(e=0,a=m.length;a>e;e++){for(r=[],t=0,i=m[e].data.length;i>t;t++)o=m[e].data[t],h=m[e].type==n.CHART_TYPE_PIE||m[e].type==n.CHART_TYPE_MAP?(o.name||"-")+":":"",m[e].type==n.CHART_TYPE_SCATTER&&(o=this.getDataFromOption(o).join(", ")),r.push(h+this.getDataFromOption(o));l+=(m[e].name||"-")+" : \n",l+=r.join(m[e].type==n.CHART_TYPE_SCATTER?"\n":", "),l+="\n\n"}return l},_save:function(){var e=this.query(this.option,"toolbox.feature.dataView.contentToOption");if("function"!=typeof e){for(var t=this._textArea.value.split("\n"),i=[],a=0,o=t.length;o>a;a++)t[a]=this._trim(t[a]),""!==t[a]&&i.push(t[a]);this._contentToOption(i)}else e(this._textArea,this.option);this.hide();var r=this;setTimeout(function(){r.messageCenter&&r.messageCenter.dispatch(n.EVENT.DATA_VIEW_CHANGED,null,{option:r.option},r.myChart)},r.canvasSupported?800:100)},_contentToOption:function(e){var t,i,a,o,r,s,l,h=[],m=0;if(this.option.xAxis)for(h=this.option.xAxis instanceof Array?this.option.xAxis:[this.option.xAxis],t=0,o=h.length;o>t;t++)if("category"==(h[t].type||"category")){for(s=e[m].split(","),i=0,a=h[t].data.length;a>i;i++)l=this._trim(s[i]||""),r=h[t].data[i],"undefined"!=typeof h[t].data[i].value?h[t].data[i].value=l:h[t].data[i]=l;m++}if(this.option.yAxis)for(h=this.option.yAxis instanceof Array?this.option.yAxis:[this.option.yAxis],t=0,o=h.length;o>t;t++)if("category"==h[t].type){for(s=e[m].split(","),i=0,a=h[t].data.length;a>i;i++)l=this._trim(s[i]||""),r=h[t].data[i],"undefined"!=typeof h[t].data[i].value?h[t].data[i].value=l:h[t].data[i]=l;m++}var V=this.option.series;for(t=0,o=V.length;o>t;t++)if(m++,V[t].type==n.CHART_TYPE_SCATTER)for(var i=0,a=V[t].data.length;a>i;i++)s=e[m],l=s.replace(" ","").split(","),"undefined"!=typeof V[t].data[i].value?V[t].data[i].value=l:V[t].data[i]=l,m++;else{s=e[m].split(",");for(var i=0,a=V[t].data.length;a>i;i++)l=(s[i]||"").replace(/.*:/,""),l=this._trim(l),l="-"!=l&&""!==l?l-0:"-","undefined"!=typeof V[t].data[i].value?V[t].data[i].value=l:V[t].data[i]=l;m++}},_trim:function(e){var t=new RegExp("(^[\\s\\t\\xa0\\u3000]+)|([\\u3000\\xa0\\s\\t]+$)","g");return e.replace(t,"")},_stop:function(e){e=e||window.event,e.stopPropagation?e.stopPropagation():e.cancelBubble=!0},resize:function(){this._zrHeight=this.zr.getHeight(),this._zrWidth=this.zr.getWidth(),this._tDom.offsetHeight>10&&(this._sizeCssText="width:"+this._zrWidth+"px;height:"+this._zrHeight+"px;background-color:#fff;",this._tDom.style.cssText=this._gCssText+this._sizeCssText,this._textArea.style.cssText="display:block;margin:0 0 8px 0;padding:4px 6px;overflow:auto;width:100%;height:"+(this._zrHeight-100)+"px;")},dispose:function(){window.removeEventListener?(this._tDom.removeEventListener("click",this._stop),this._tDom.removeEventListener("mousewheel",this._stop),this._tDom.removeEventListener("mousemove",this._stop),this._tDom.removeEventListener("mousedown",this._stop),this._tDom.removeEventListener("mouseup",this._stop),this._tDom.removeEventListener("touchstart",this._stop),this._tDom.removeEventListener("touchmove",this._stop),this._tDom.removeEventListener("touchend",this._stop)):(this._tDom.detachEvent("onclick",this._stop),this._tDom.detachEvent("onmousewheel",this._stop),this._tDom.detachEvent("onmousemove",this._stop),this._tDom.detachEvent("onmousedown",this._stop),this._tDom.detachEvent("onmouseup",this._stop)),this._buttonRefresh.onclick=null,this._buttonClose.onclick=null,this._hasShow&&(this._tDom.removeChild(this._textArea),this._tDom.removeChild(this._buttonRefresh),this._tDom.removeChild(this._buttonClose)),this._textArea=null,this._buttonRefresh=null,this._buttonClose=null,this.dom.firstChild.removeChild(this._tDom),this._tDom=null}},a.inherits(t,i),e("../component").define("dataView",t),t}),i("echarts/util/shape/Cross",["require","zrender/shape/Base","zrender/shape/Line","zrender/tool/util","./normalIsCover"],function(e){function t(e){i.call(this,e)}var i=e("zrender/shape/Base"),n=e("zrender/shape/Line"),a=e("zrender/tool/util");return t.prototype={type:"cross",buildPath:function(e,t){var i=t.rect;t.xStart=i.x,t.xEnd=i.x+i.width,t.yStart=t.yEnd=t.y,n.prototype.buildPath(e,t),t.xStart=t.xEnd=t.x,t.yStart=i.y,t.yEnd=i.y+i.height,n.prototype.buildPath(e,t)},getRect:function(e){return e.rect},isCover:e("./normalIsCover")},a.inherits(t,i),t}),i("zrender/shape/Sector",["require","../tool/math","../tool/computeBoundingBox","../tool/vector","./Base","../tool/util"],function(e){var t=e("../tool/math"),i=e("../tool/computeBoundingBox"),n=e("../tool/vector"),a=e("./Base"),o=n.create(),r=n.create(),s=n.create(),l=n.create(),h=function(e){a.call(this,e)};return h.prototype={type:"sector",buildPath:function(e,i){var n=i.x,a=i.y,o=i.r0||0,r=i.r,s=i.startAngle,l=i.endAngle,h=i.clockWise||!1;s=t.degreeToRadian(s),l=t.degreeToRadian(l),h||(s=-s,l=-l);var m=t.cos(s),V=t.sin(s);e.moveTo(m*o+n,V*o+a),e.lineTo(m*r+n,V*r+a),e.arc(n,a,r,s,l,!h),e.lineTo(t.cos(l)*o+n,t.sin(l)*o+a),0!==o&&e.arc(n,a,o,l,s,h),e.closePath()},getRect:function(e){if(e.__rect)return e.__rect;var a=e.x,h=e.y,m=e.r0||0,V=e.r,U=t.degreeToRadian(e.startAngle),d=t.degreeToRadian(e.endAngle),p=e.clockWise;return p||(U=-U,d=-d),m>1?i.arc(a,h,m,U,d,!p,o,s):(o[0]=s[0]=a,o[1]=s[1]=h),i.arc(a,h,V,U,d,!p,r,l),n.min(o,o,r),n.max(s,s,l),e.__rect={x:o[0],y:o[1],width:s[0]-o[0],height:s[1]-o[1]},e.__rect}},e("../tool/util").inherits(h,a),h}),i("echarts/util/shape/Candle",["require","zrender/shape/Base","zrender/tool/util","./normalIsCover"],function(e){function t(e){i.call(this,e)}var i=e("zrender/shape/Base"),n=e("zrender/tool/util");return t.prototype={type:"candle",_numberOrder:function(e,t){return t-e},buildPath:function(e,t){var i=n.clone(t.y).sort(this._numberOrder);e.moveTo(t.x,i[3]),e.lineTo(t.x,i[2]),e.moveTo(t.x-t.width/2,i[2]),e.rect(t.x-t.width/2,i[2],t.width,i[1]-i[2]),e.moveTo(t.x,i[1]),e.lineTo(t.x,i[0])},getRect:function(e){if(!e.__rect){var t=0;("stroke"==e.brushType||"fill"==e.brushType)&&(t=e.lineWidth||1);var i=n.clone(e.y).sort(this._numberOrder);e.__rect={x:Math.round(e.x-e.width/2-t/2),y:Math.round(i[3]-t/2),width:e.width+t,height:i[0]-i[3]+t}}return e.__rect},isCover:e("./normalIsCover")},n.inherits(t,i),t}),i("zrender/tool/computeBoundingBox",["require","./vector","./curve"],function(e){function t(e,t,i){if(0!==e.length){for(var n=e[0][0],a=e[0][0],o=e[0][1],r=e[0][1],s=1;sa&&(a=l[0]),l[1]r&&(r=l[1])}t[0]=n,t[1]=o,i[0]=a,i[1]=r}}function i(e,t,i,n,a,r){var s=[];o.cubicExtrema(e[0],t[0],i[0],n[0],s);for(var l=0;l=2*Math.PI)return m[0]=e-i,m[1]=t-i,V[0]=e+i,void(V[1]=t+i);if(r[0]=Math.cos(n)*i+e,r[1]=Math.sin(n)*i+t,s[0]=Math.cos(o)*i+e,s[1]=Math.sin(o)*i+t,a.min(m,r,s),a.max(V,r,s),n%=2*Math.PI,0>n&&(n+=2*Math.PI),o%=2*Math.PI,0>o&&(o+=2*Math.PI),n>o&&!h?o+=2*Math.PI:o>n&&h&&(n+=2*Math.PI),h){var U=o;o=n,n=U}for(var d=0;o>d;d+=Math.PI/2)d>n&&(l[0]=Math.cos(d)*i+e,l[1]=Math.sin(d)*i+t,a.min(m,l,m),a.max(V,l,V))};return t.cubeBezier=i,t.quadraticBezier=n,t.arc=h,t}),i("echarts/util/shape/Chain",["require","zrender/shape/Base","./Icon","zrender/shape/util/dashedLineTo","zrender/tool/util","zrender/tool/matrix"],function(e){function t(e){i.call(this,e)}var i=e("zrender/shape/Base"),n=e("./Icon"),a=e("zrender/shape/util/dashedLineTo"),o=e("zrender/tool/util"),r=e("zrender/tool/matrix");return t.prototype={type:"chain",brush:function(e,t){var i=this.style;t&&(i=this.getHighlightStyle(i,this.highlightStyle||{})),e.save(),this.setContext(e,i),this.setTransform(e),e.save(),e.beginPath(),this.buildLinePath(e,i),e.stroke(),e.restore(),this.brushSymbol(e,i),e.restore()},buildLinePath:function(e,t){var i=t.x,n=t.y+5,o=t.width,r=t.height/2-10;if(e.moveTo(i,n),e.lineTo(i,n+r),e.moveTo(i+o,n),e.lineTo(i+o,n+r),e.moveTo(i,n+r/2),t.lineType&&"solid"!=t.lineType){if("dashed"==t.lineType||"dotted"==t.lineType){var s=(t.lineWidth||1)*("dashed"==t.lineType?5:1);a(e,i,n+r/2,i+o,n+r/2,s)}}else e.lineTo(i+o,n+r/2)},brushSymbol:function(e,t){var i=t.y+t.height/4;e.save();for(var a,o=t.chainPoint,r=0,s=o.length;s>r;r++){if(a=o[r],"none"!=a.symbol){e.beginPath();var l=a.symbolSize;n.prototype.buildPath(e,{iconType:a.symbol,x:a.x-l,y:i-l,width:2*l,height:2*l,n:a.n}),e.fillStyle=a.isEmpty?"#fff":t.strokeColor,e.closePath(),e.fill(),e.stroke()}a.showLabel&&(e.font=a.textFont,e.fillStyle=a.textColor,e.textAlign=a.textAlign,e.textBaseline=a.textBaseline,a.rotation?(e.save(),this._updateTextTransform(e,a.rotation),e.fillText(a.name,a.textX,a.textY),e.restore()):e.fillText(a.name,a.textX,a.textY))}e.restore()},_updateTextTransform:function(e,t){var i=r.create();if(r.identity(i),0!==t[0]){var n=t[1]||0,a=t[2]||0;(n||a)&&r.translate(i,i,[-n,-a]),r.rotate(i,i,t[0]),(n||a)&&r.translate(i,i,[n,a])}e.transform.apply(e,i)},isCover:function(e,t){var i=this.style;return e>=i.x&&e<=i.x+i.width&&t>=i.y&&t<=i.y+i.height?!0:!1}},o.inherits(t,i),t}),i("zrender/shape/Ring",["require","./Base","../tool/util"],function(e){var t=e("./Base"),i=function(e){t.call(this,e)};return i.prototype={type:"ring",buildPath:function(e,t){e.arc(t.x,t.y,t.r,0,2*Math.PI,!1),e.moveTo(t.x+t.r0,t.y),e.arc(t.x,t.y,t.r0,0,2*Math.PI,!0)},getRect:function(e){if(e.__rect)return e.__rect;var t;return t="stroke"==e.brushType||"fill"==e.brushType?e.lineWidth||1:0,e.__rect={x:Math.round(e.x-e.r-t/2),y:Math.round(e.y-e.r-t/2),width:2*e.r+t,height:2*e.r+t},e.__rect}},e("../tool/util").inherits(i,t),i}),i("echarts/component/axis",["require","./base","zrender/shape/Line","../config","../util/ecData","zrender/tool/util","zrender/tool/color","./categoryAxis","./valueAxis","../component"],function(e){function t(e,t,n,a,o,r){i.call(this,e,t,n,a,o),this.axisType=r,this._axisList=[],this.refresh(a)}var i=e("./base"),n=e("zrender/shape/Line"),a=e("../config"),o=e("../util/ecData"),r=e("zrender/tool/util"),s=e("zrender/tool/color");return t.prototype={type:a.COMPONENT_TYPE_AXIS,axisBase:{_buildAxisLine:function(){var e=this.option.axisLine.lineStyle.width,t=e/2,i={_axisShape:"axisLine",zlevel:this.getZlevelBase(),z:this.getZBase()+3,hoverable:!1},a=this.grid;switch(this.option.position){case"left":i.style={xStart:a.getX()-t,yStart:a.getYend(),xEnd:a.getX()-t,yEnd:a.getY(),lineCap:"round"};break;case"right":i.style={xStart:a.getXend()+t,yStart:a.getYend(),xEnd:a.getXend()+t,yEnd:a.getY(),lineCap:"round"};break;case"bottom":i.style={xStart:a.getX(),yStart:a.getYend()+t,xEnd:a.getXend(),yEnd:a.getYend()+t,lineCap:"round"};break;case"top":i.style={xStart:a.getX(),yStart:a.getY()-t,xEnd:a.getXend(),yEnd:a.getY()-t,lineCap:"round"}}var o=i.style;""!==this.option.name&&(o.text=this.option.name,o.textPosition=this.option.nameLocation,o.textFont=this.getFont(this.option.nameTextStyle),this.option.nameTextStyle.align&&(o.textAlign=this.option.nameTextStyle.align),this.option.nameTextStyle.baseline&&(o.textBaseline=this.option.nameTextStyle.baseline),this.option.nameTextStyle.color&&(o.textColor=this.option.nameTextStyle.color)),o.strokeColor=this.option.axisLine.lineStyle.color,o.lineWidth=e,this.isHorizontal()?o.yStart=o.yEnd=this.subPixelOptimize(o.yEnd,e):o.xStart=o.xEnd=this.subPixelOptimize(o.xEnd,e),o.lineType=this.option.axisLine.lineStyle.type,i=new n(i),this.shapeList.push(i)},_axisLabelClickable:function(e,t){return e?(o.pack(t,void 0,-1,void 0,-1,t.style.text),t.hoverable=!0,t.clickable=!0,t.highlightStyle={color:s.lift(t.style.color,1),brushType:"fill"},t):t},refixAxisShape:function(e,t){if(this.option.axisLine.onZero){var i;if(this.isHorizontal()&&null!=t)for(var n=0,a=this.shapeList.length;a>n;n++)"axisLine"===this.shapeList[n]._axisShape?(this.shapeList[n].style.yStart=this.shapeList[n].style.yEnd=this.subPixelOptimize(t,this.shapeList[n].stylelineWidth),this.zr.modShape(this.shapeList[n].id)):"axisTick"===this.shapeList[n]._axisShape&&(i=this.shapeList[n].style.yEnd-this.shapeList[n].style.yStart,this.shapeList[n].style.yStart=t-i,this.shapeList[n].style.yEnd=t,this.zr.modShape(this.shapeList[n].id));if(!this.isHorizontal()&&null!=e)for(var n=0,a=this.shapeList.length;a>n;n++)"axisLine"===this.shapeList[n]._axisShape?(this.shapeList[n].style.xStart=this.shapeList[n].style.xEnd=this.subPixelOptimize(e,this.shapeList[n].stylelineWidth),this.zr.modShape(this.shapeList[n].id)):"axisTick"===this.shapeList[n]._axisShape&&(i=this.shapeList[n].style.xEnd-this.shapeList[n].style.xStart,this.shapeList[n].style.xStart=e,this.shapeList[n].style.xEnd=e+i,this.zr.modShape(this.shapeList[n].id))}},getPosition:function(){return this.option.position},isHorizontal:function(){return"bottom"===this.option.position||"top"===this.option.position}},reformOption:function(e){if(!e||e instanceof Array&&0===e.length?e=[{type:a.COMPONENT_TYPE_AXIS_VALUE}]:e instanceof Array||(e=[e]),e.length>2&&(e=[e[0],e[1]]),"xAxis"===this.axisType){(!e[0].position||"bottom"!=e[0].position&&"top"!=e[0].position)&&(e[0].position="bottom"),e.length>1&&(e[1].position="bottom"===e[0].position?"top":"bottom");for(var t=0,i=e.length;i>t;t++)e[t].type=e[t].type||"category",e[t].xAxisIndex=t,e[t].yAxisIndex=-1}else{(!e[0].position||"left"!=e[0].position&&"right"!=e[0].position)&&(e[0].position="left"),e.length>1&&(e[1].position="left"===e[0].position?"right":"left");for(var t=0,i=e.length;i>t;t++)e[t].type=e[t].type||"value",e[t].xAxisIndex=-1,e[t].yAxisIndex=t}return e},refresh:function(t){var i;t&&(this.option=t,"xAxis"===this.axisType?(this.option.xAxis=this.reformOption(t.xAxis),i=this.option.xAxis):(this.option.yAxis=this.reformOption(t.yAxis),i=this.option.yAxis),this.series=t.series);for(var n=e("./categoryAxis"),a=e("./valueAxis"),o=Math.max(i&&i.length||0,this._axisList.length),r=0;o>r;r++)!this._axisList[r]||!t||i[r]&&this._axisList[r].type==i[r].type||(this._axisList[r].dispose&&this._axisList[r].dispose(),this._axisList[r]=!1),this._axisList[r]?this._axisList[r].refresh&&this._axisList[r].refresh(i?i[r]:!1,this.series):i&&i[r]&&(this._axisList[r]="category"===i[r].type?new n(this.ecTheme,this.messageCenter,this.zr,i[r],this.myChart,this.axisBase):new a(this.ecTheme,this.messageCenter,this.zr,i[r],this.myChart,this.axisBase,this.series))},getAxis:function(e){return this._axisList[e]},getAxisCount:function(){return this._axisList.length},clear:function(){for(var e=0,t=this._axisList.length;t>e;e++)this._axisList[e].dispose&&this._axisList[e].dispose();this._axisList=[]}},r.inherits(t,i),e("../component").define("axis",t),t}),i("echarts/component/grid",["require","./base","zrender/shape/Rectangle","../config","zrender/tool/util","../component"],function(e){function t(e,t,n,a,o){i.call(this,e,t,n,a,o),this.refresh(a)}var i=e("./base"),n=e("zrender/shape/Rectangle"),a=e("../config");a.grid={zlevel:0,z:0,x:80,y:60,x2:80,y2:60,backgroundColor:"rgba(0,0,0,0)",borderWidth:1,borderColor:"#ccc"};var o=e("zrender/tool/util");return t.prototype={type:a.COMPONENT_TYPE_GRID,getX:function(){return this._x},getY:function(){return this._y},getWidth:function(){return this._width},getHeight:function(){return this._height},getXend:function(){return this._x+this._width},getYend:function(){return this._y+this._height},getArea:function(){return{x:this._x,y:this._y,width:this._width,height:this._height}},getBbox:function(){return[[this._x,this._y],[this.getXend(),this.getYend()]]},refixAxisShape:function(e){for(var t,i,n,o=e.xAxis._axisList.concat(e.yAxis?e.yAxis._axisList:[]),r=o.length;r--;)n=o[r],n.type==a.COMPONENT_TYPE_AXIS_VALUE&&n._min<0&&n._max>=0&&(n.isHorizontal()?t=n.getCoord(0):i=n.getCoord(0));if("undefined"!=typeof t||"undefined"!=typeof i)for(r=o.length;r--;)o[r].refixAxisShape(t,i)},refresh:function(e){if(e||this._zrWidth!=this.zr.getWidth()||this._zrHeight!=this.zr.getHeight()){this.clear(),this.option=e||this.option,this.option.grid=this.reformOption(this.option.grid);var t=this.option.grid;this._zrWidth=this.zr.getWidth(),this._zrHeight=this.zr.getHeight(),this._x=this.parsePercent(t.x,this._zrWidth),this._y=this.parsePercent(t.y,this._zrHeight);var i=this.parsePercent(t.x2,this._zrWidth),a=this.parsePercent(t.y2,this._zrHeight);this._width="undefined"==typeof t.width?this._zrWidth-this._x-i:this.parsePercent(t.width,this._zrWidth),this._width=this._width<=0?10:this._width,this._height="undefined"==typeof t.height?this._zrHeight-this._y-a:this.parsePercent(t.height,this._zrHeight),this._height=this._height<=0?10:this._height,this._x=this.subPixelOptimize(this._x,t.borderWidth),this._y=this.subPixelOptimize(this._y,t.borderWidth),this.shapeList.push(new n({zlevel:this.getZlevelBase(),z:this.getZBase(),hoverable:!1,style:{x:this._x,y:this._y,width:this._width,height:this._height,brushType:t.borderWidth>0?"both":"fill",color:t.backgroundColor,strokeColor:t.borderColor,lineWidth:t.borderWidth}})),this.zr.addShape(this.shapeList[0])}}},o.inherits(t,i),e("../component").define("grid",t),t}),i("echarts/component/dataZoom",["require","./base","zrender/shape/Rectangle","zrender/shape/Polygon","../util/shape/Icon","../config","../util/date","zrender/tool/util","../component"],function(e){function t(e,t,n,a,o){i.call(this,e,t,n,a,o);var r=this;r._ondrift=function(e,t){return r.__ondrift(this,e,t)},r._ondragend=function(){return r.__ondragend()},this._fillerSize=30,this._isSilence=!1,this._zoom={},this.option.dataZoom=this.reformOption(this.option.dataZoom),this.zoomOption=this.option.dataZoom,this._handleSize=this.zoomOption.handleSize,this.myChart.canvasSupported||(this.zoomOption.realtime=!1),this._location=this._getLocation(),this._zoom=this._getZoom(),this._backupData(),this.option.dataZoom.show&&this._buildShape(),this._syncData()}var i=e("./base"),n=e("zrender/shape/Rectangle"),a=e("zrender/shape/Polygon"),o=e("../util/shape/Icon"),r=e("../config");r.dataZoom={zlevel:0,z:4,show:!1,orient:"horizontal",backgroundColor:"rgba(0,0,0,0)",dataBackgroundColor:"#eee",fillerColor:"rgba(144,197,237,0.2)",handleColor:"rgba(70,130,180,0.8)",handleSize:8,showDetail:!0,realtime:!0};var s=e("../util/date"),l=e("zrender/tool/util");return t.prototype={type:r.COMPONENT_TYPE_DATAZOOM,_buildShape:function(){this._buildBackground(),this._buildFiller(),this._buildHandle(),this._buildFrame();for(var e=0,t=this.shapeList.length;t>e;e++)this.zr.addShape(this.shapeList[e]);this._syncFrameShape()},_getLocation:function(){var e,t,i,n,a=this.component.grid;return"horizontal"==this.zoomOption.orient?(i=this.zoomOption.width||a.getWidth(),n=this.zoomOption.height||this._fillerSize,e=null!=this.zoomOption.x?this.zoomOption.x:a.getX(),t=null!=this.zoomOption.y?this.zoomOption.y:this.zr.getHeight()-n-2):(i=this.zoomOption.width||this._fillerSize,n=this.zoomOption.height||a.getHeight(),e=null!=this.zoomOption.x?this.zoomOption.x:2,t=null!=this.zoomOption.y?this.zoomOption.y:a.getY()),{x:e,y:t,width:i,height:n}},_getZoom:function(){var e=this.option.series,t=this.option.xAxis;!t||t instanceof Array||(t=[t],this.option.xAxis=t);var i=this.option.yAxis;!i||i instanceof Array||(i=[i],this.option.yAxis=i);var n,a,o=[],s=this.zoomOption.xAxisIndex;if(t&&null==s){n=[];for(var l=0,h=t.length;h>l;l++)("category"==t[l].type||null==t[l].type)&&n.push(l)}else n=s instanceof Array?s:null!=s?[s]:[];if(s=this.zoomOption.yAxisIndex,i&&null==s){a=[];for(var l=0,h=i.length;h>l;l++)"category"==i[l].type&&a.push(l)}else a=s instanceof Array?s:null!=s?[s]:[];for(var m,l=0,h=e.length;h>l;l++)if(m=e[l],m.type==r.CHART_TYPE_LINE||m.type==r.CHART_TYPE_BAR||m.type==r.CHART_TYPE_SCATTER||m.type==r.CHART_TYPE_K){for(var V=0,U=n.length;U>V;V++)if(n[V]==(m.xAxisIndex||0)){o.push(l);break}for(var V=0,U=a.length;U>V;V++)if(a[V]==(m.yAxisIndex||0)){o.push(l);break}null==this.zoomOption.xAxisIndex&&null==this.zoomOption.yAxisIndex&&m.data&&this.getDataFromOption(m.data[0])instanceof Array&&(m.type==r.CHART_TYPE_SCATTER||m.type==r.CHART_TYPE_LINE||m.type==r.CHART_TYPE_BAR)&&o.push(l)}var d=null!=this._zoom.start?this._zoom.start:null!=this.zoomOption.start?this.zoomOption.start:0,p=null!=this._zoom.end?this._zoom.end:null!=this.zoomOption.end?this.zoomOption.end:100;d>p&&(d+=p,p=d-p,d-=p);var c=Math.round((p-d)/100*("horizontal"==this.zoomOption.orient?this._location.width:this._location.height));return{start:d,end:p,start2:0,end2:100,size:c,xAxisIndex:n,yAxisIndex:a,seriesIndex:o,scatterMap:this._zoom.scatterMap||{}}},_backupData:function(){this._originalData={xAxis:{},yAxis:{},series:{}};for(var e=this.option.xAxis,t=this._zoom.xAxisIndex,i=0,n=t.length;n>i;i++)this._originalData.xAxis[t[i]]=e[t[i]].data;for(var a=this.option.yAxis,o=this._zoom.yAxisIndex,i=0,n=o.length;n>i;i++)this._originalData.yAxis[o[i]]=a[o[i]].data;for(var s,l=this.option.series,h=this._zoom.seriesIndex,i=0,n=h.length;n>i;i++)s=l[h[i]],this._originalData.series[h[i]]=s.data,s.data&&this.getDataFromOption(s.data[0])instanceof Array&&(s.type==r.CHART_TYPE_SCATTER||s.type==r.CHART_TYPE_LINE||s.type==r.CHART_TYPE_BAR)&&(this._backupScale(),this._calculScatterMap(h[i]))},_calculScatterMap:function(t){this._zoom.scatterMap=this._zoom.scatterMap||{},this._zoom.scatterMap[t]=this._zoom.scatterMap[t]||{};var i=e("../component"),n=i.get("axis"),a=l.clone(this.option.xAxis);"category"==a[0].type&&(a[0].type="value"),a[1]&&"category"==a[1].type&&(a[1].type="value");var o=new n(this.ecTheme,null,!1,{xAxis:a,series:this.option.series},this,"xAxis"),r=this.option.series[t].xAxisIndex||0;this._zoom.scatterMap[t].x=o.getAxis(r).getExtremum(),o.dispose(),a=l.clone(this.option.yAxis),"category"==a[0].type&&(a[0].type="value"),a[1]&&"category"==a[1].type&&(a[1].type="value"),o=new n(this.ecTheme,null,!1,{yAxis:a,series:this.option.series},this,"yAxis"),r=this.option.series[t].yAxisIndex||0,this._zoom.scatterMap[t].y=o.getAxis(r).getExtremum(),o.dispose()},_buildBackground:function(){var e=this._location.width,t=this._location.height;this.shapeList.push(new n({zlevel:this.getZlevelBase(),z:this.getZBase(),hoverable:!1,style:{x:this._location.x,y:this._location.y,width:e,height:t,color:this.zoomOption.backgroundColor}}));for(var i=0,o=this._originalData.xAxis,s=this._zoom.xAxisIndex,l=0,h=s.length;h>l;l++)i=Math.max(i,o[s[l]].length);for(var m=this._originalData.yAxis,V=this._zoom.yAxisIndex,l=0,h=V.length;h>l;l++)i=Math.max(i,m[V[l]].length);for(var U,d=this._zoom.seriesIndex[0],p=this._originalData.series[d],c=Number.MIN_VALUE,u=Number.MAX_VALUE,l=0,h=p.length;h>l;l++)U=this.getDataFromOption(p[l],0),this.option.series[d].type==r.CHART_TYPE_K&&(U=U[1]),isNaN(U)&&(U=0),c=Math.max(c,U),u=Math.min(u,U);var y=c-u,g=[],b=e/(i-(i>1?1:0)),f=t/(i-(i>1?1:0)),k=1;"horizontal"==this.zoomOption.orient&&1>b?k=Math.floor(3*i/e):"vertical"==this.zoomOption.orient&&1>f&&(k=Math.floor(3*i/t));for(var l=0,h=i;h>l;l+=k)U=this.getDataFromOption(p[l],0),this.option.series[d].type==r.CHART_TYPE_K&&(U=U[1]),isNaN(U)&&(U=0),g.push("horizontal"==this.zoomOption.orient?[this._location.x+b*l,this._location.y+t-1-Math.round((U-u)/y*(t-10))]:[this._location.x+1+Math.round((U-u)/y*(e-10)),this._location.y+f*(h-l-1)]);"horizontal"==this.zoomOption.orient?(g.push([this._location.x+e,this._location.y+t]),g.push([this._location.x,this._location.y+t])):(g.push([this._location.x,this._location.y]),g.push([this._location.x,this._location.y+t])),this.shapeList.push(new a({zlevel:this.getZlevelBase(),z:this.getZBase(),style:{pointList:g,color:this.zoomOption.dataBackgroundColor},hoverable:!1}))},_buildFiller:function(){this._fillerShae={zlevel:this.getZlevelBase(),z:this.getZBase(),draggable:!0,ondrift:this._ondrift,ondragend:this._ondragend,_type:"filler"},this._fillerShae.style="horizontal"==this.zoomOption.orient?{x:this._location.x+Math.round(this._zoom.start/100*this._location.width)+this._handleSize,y:this._location.y,width:this._zoom.size-2*this._handleSize,height:this._location.height,color:this.zoomOption.fillerColor,text:":::",textPosition:"inside"}:{x:this._location.x,y:this._location.y+Math.round(this._zoom.start/100*this._location.height)+this._handleSize,width:this._location.width,height:this._zoom.size-2*this._handleSize,color:this.zoomOption.fillerColor,text:"::",textPosition:"inside"},this._fillerShae.highlightStyle={brushType:"fill",color:"rgba(0,0,0,0)"},this._fillerShae=new n(this._fillerShae),this.shapeList.push(this._fillerShae)},_buildHandle:function(){var e=this.zoomOption.showDetail?this._getDetail():{start:"",end:""};this._startShape={zlevel:this.getZlevelBase(),z:this.getZBase(),draggable:!0,style:{iconType:"rectangle",x:this._location.x,y:this._location.y,width:this._handleSize,height:this._handleSize,color:this.zoomOption.handleColor,text:"=",textPosition:"inside"},highlightStyle:{text:e.start,brushType:"fill",textPosition:"left"},ondrift:this._ondrift,ondragend:this._ondragend},"horizontal"==this.zoomOption.orient?(this._startShape.style.height=this._location.height,this._endShape=l.clone(this._startShape),this._startShape.style.x=this._fillerShae.style.x-this._handleSize,this._endShape.style.x=this._fillerShae.style.x+this._fillerShae.style.width,this._endShape.highlightStyle.text=e.end,this._endShape.highlightStyle.textPosition="right"):(this._startShape.style.width=this._location.width,this._endShape=l.clone(this._startShape),this._startShape.style.y=this._fillerShae.style.y+this._fillerShae.style.height,this._startShape.highlightStyle.textPosition="bottom",this._endShape.style.y=this._fillerShae.style.y-this._handleSize,this._endShape.highlightStyle.text=e.end,this._endShape.highlightStyle.textPosition="top"),this._startShape=new o(this._startShape),this._endShape=new o(this._endShape),this.shapeList.push(this._startShape),this.shapeList.push(this._endShape)},_buildFrame:function(){var e=this.subPixelOptimize(this._location.x,1),t=this.subPixelOptimize(this._location.y,1);this._startFrameShape={zlevel:this.getZlevelBase(),z:this.getZBase(),hoverable:!1,style:{x:e,y:t,width:this._location.width-(e>this._location.x?1:0),height:this._location.height-(t>this._location.y?1:0),lineWidth:1,brushType:"stroke",strokeColor:this.zoomOption.handleColor}},this._endFrameShape=l.clone(this._startFrameShape),this._startFrameShape=new n(this._startFrameShape),this._endFrameShape=new n(this._endFrameShape),this.shapeList.push(this._startFrameShape),this.shapeList.push(this._endFrameShape)},_syncHandleShape:function(){"horizontal"==this.zoomOption.orient?(this._startShape.style.x=this._fillerShae.style.x-this._handleSize,this._endShape.style.x=this._fillerShae.style.x+this._fillerShae.style.width,this._zoom.start=(this._startShape.style.x-this._location.x)/this._location.width*100,this._zoom.end=(this._endShape.style.x+this._handleSize-this._location.x)/this._location.width*100):(this._startShape.style.y=this._fillerShae.style.y+this._fillerShae.style.height,this._endShape.style.y=this._fillerShae.style.y-this._handleSize,this._zoom.start=(this._location.y+this._location.height-this._startShape.style.y)/this._location.height*100,this._zoom.end=(this._location.y+this._location.height-this._endShape.style.y-this._handleSize)/this._location.height*100),this.zr.modShape(this._startShape.id),this.zr.modShape(this._endShape.id),this._syncFrameShape(),this.zr.refreshNextFrame()},_syncFillerShape:function(){var e,t;"horizontal"==this.zoomOption.orient?(e=this._startShape.style.x,t=this._endShape.style.x,this._fillerShae.style.x=Math.min(e,t)+this._handleSize,this._fillerShae.style.width=Math.abs(e-t)-this._handleSize,this._zoom.start=(Math.min(e,t)-this._location.x)/this._location.width*100,this._zoom.end=(Math.max(e,t)+this._handleSize-this._location.x)/this._location.width*100):(e=this._startShape.style.y,t=this._endShape.style.y,this._fillerShae.style.y=Math.min(e,t)+this._handleSize,this._fillerShae.style.height=Math.abs(e-t)-this._handleSize,this._zoom.start=(this._location.y+this._location.height-Math.max(e,t))/this._location.height*100,this._zoom.end=(this._location.y+this._location.height-Math.min(e,t)-this._handleSize)/this._location.height*100),this.zr.modShape(this._fillerShae.id),this._syncFrameShape(),this.zr.refreshNextFrame()},_syncFrameShape:function(){"horizontal"==this.zoomOption.orient?(this._startFrameShape.style.width=this._fillerShae.style.x-this._location.x,this._endFrameShape.style.x=this._fillerShae.style.x+this._fillerShae.style.width,this._endFrameShape.style.width=this._location.x+this._location.width-this._endFrameShape.style.x):(this._startFrameShape.style.y=this._fillerShae.style.y+this._fillerShae.style.height,this._startFrameShape.style.height=this._location.y+this._location.height-this._startFrameShape.style.y,this._endFrameShape.style.height=this._fillerShae.style.y-this._location.y),this.zr.modShape(this._startFrameShape.id),this.zr.modShape(this._endFrameShape.id)},_syncShape:function(){this.zoomOption.show&&("horizontal"==this.zoomOption.orient?(this._startShape.style.x=this._location.x+this._zoom.start/100*this._location.width,this._endShape.style.x=this._location.x+this._zoom.end/100*this._location.width-this._handleSize,this._fillerShae.style.x=this._startShape.style.x+this._handleSize,this._fillerShae.style.width=this._endShape.style.x-this._startShape.style.x-this._handleSize):(this._startShape.style.y=this._location.y+this._location.height-this._zoom.start/100*this._location.height,this._endShape.style.y=this._location.y+this._location.height-this._zoom.end/100*this._location.height-this._handleSize,this._fillerShae.style.y=this._endShape.style.y+this._handleSize,this._fillerShae.style.height=this._startShape.style.y-this._endShape.style.y-this._handleSize),this.zr.modShape(this._startShape.id),this.zr.modShape(this._endShape.id),this.zr.modShape(this._fillerShae.id),this._syncFrameShape(),this.zr.refresh())},_syncData:function(e){var t,i,n,a,o;for(var s in this._originalData){t=this._originalData[s];for(var l in t)o=t[l],null!=o&&(a=o.length,i=Math.floor(this._zoom.start/100*a),n=Math.ceil(this._zoom.end/100*a),this.getDataFromOption(o[0])instanceof Array&&this.option[s][l].type!=r.CHART_TYPE_K?(this._setScale(),this.option[s][l].data=this._synScatterData(l,o)):this.option[s][l].data=o.slice(i,n))}this._isSilence||!this.zoomOption.realtime&&!e||this.messageCenter.dispatch(r.EVENT.DATA_ZOOM,null,{zoom:this._zoom},this.myChart)},_synScatterData:function(e,t){if(0===this._zoom.start&&100==this._zoom.end&&0===this._zoom.start2&&100==this._zoom.end2)return t;var i,n,a,o,r,s=[],l=this._zoom.scatterMap[e]; + +"horizontal"==this.zoomOption.orient?(i=l.x.max-l.x.min,n=this._zoom.start/100*i+l.x.min,a=this._zoom.end/100*i+l.x.min,i=l.y.max-l.y.min,o=this._zoom.start2/100*i+l.y.min,r=this._zoom.end2/100*i+l.y.min):(i=l.x.max-l.x.min,n=this._zoom.start2/100*i+l.x.min,a=this._zoom.end2/100*i+l.x.min,i=l.y.max-l.y.min,o=this._zoom.start/100*i+l.y.min,r=this._zoom.end/100*i+l.y.min);var h;(h=l.x.dataMappingMethods)&&(n=h.coord2Value(n),a=h.coord2Value(a)),(h=l.y.dataMappingMethods)&&(o=h.coord2Value(o),r=h.coord2Value(r));for(var m,V=0,U=t.length;U>V;V++)m=t[V].value||t[V],m[0]>=n&&m[0]<=a&&m[1]>=o&&m[1]<=r&&s.push(t[V]);return s},_setScale:function(){var e=0!==this._zoom.start||100!==this._zoom.end||0!==this._zoom.start2||100!==this._zoom.end2,t={xAxis:this.option.xAxis,yAxis:this.option.yAxis};for(var i in t)for(var n=0,a=t[i].length;a>n;n++)t[i][n].scale=e||t[i][n]._scale},_backupScale:function(){var e={xAxis:this.option.xAxis,yAxis:this.option.yAxis};for(var t in e)for(var i=0,n=e[t].length;n>i;i++)e[t][i]._scale=e[t][i].scale},_getDetail:function(){for(var e=["xAxis","yAxis"],t=0,i=e.length;i>t;t++){var n=this._originalData[e[t]];for(var a in n){var o=n[a];if(null!=o){var r=o.length,l=Math.floor(this._zoom.start/100*r),h=Math.ceil(this._zoom.end/100*r);return h-=h>0?1:0,{start:this.getDataFromOption(o[l]),end:this.getDataFromOption(o[h])}}}}e="horizontal"==this.zoomOption.orient?"xAxis":"yAxis";var m=this._zoom.seriesIndex[0],V=this.option.series[m][e+"Index"]||0,U=this.option[e][V].type,d=this._zoom.scatterMap[m][e.charAt(0)].min,p=this._zoom.scatterMap[m][e.charAt(0)].max,c=p-d;if("value"==U)return{start:d+c*this._zoom.start/100,end:d+c*this._zoom.end/100};if("time"==U){p=d+c*this._zoom.end/100,d+=c*this._zoom.start/100;var u=s.getAutoFormatter(d,p).formatter;return{start:s.format(u,d),end:s.format(u,p)}}return{start:"",end:""}},__ondrift:function(e,t,i){this.zoomOption.zoomLock&&(e=this._fillerShae);var n="filler"==e._type?this._handleSize:0;if("horizontal"==this.zoomOption.orient?e.style.x+t-n<=this._location.x?e.style.x=this._location.x+n:e.style.x+t+e.style.width+n>=this._location.x+this._location.width?e.style.x=this._location.x+this._location.width-e.style.width-n:e.style.x+=t:e.style.y+i-n<=this._location.y?e.style.y=this._location.y+n:e.style.y+i+e.style.height+n>=this._location.y+this._location.height?e.style.y=this._location.y+this._location.height-e.style.height-n:e.style.y+=i,"filler"==e._type?this._syncHandleShape():this._syncFillerShape(),this.zoomOption.realtime&&this._syncData(),this.zoomOption.showDetail){var a=this._getDetail();this._startShape.style.text=this._startShape.highlightStyle.text=a.start,this._endShape.style.text=this._endShape.highlightStyle.text=a.end,this._startShape.style.textPosition=this._startShape.highlightStyle.textPosition,this._endShape.style.textPosition=this._endShape.highlightStyle.textPosition}return!0},__ondragend:function(){this.zoomOption.showDetail&&(this._startShape.style.text=this._endShape.style.text="=",this._startShape.style.textPosition=this._endShape.style.textPosition="inside",this.zr.modShape(this._startShape.id),this.zr.modShape(this._endShape.id),this.zr.refreshNextFrame()),this.isDragend=!0},ondragend:function(e,t){this.isDragend&&e.target&&(!this.zoomOption.realtime&&this._syncData(),t.dragOut=!0,t.dragIn=!0,this._isSilence||this.zoomOption.realtime||this.messageCenter.dispatch(r.EVENT.DATA_ZOOM,null,{zoom:this._zoom},this.myChart),t.needRefresh=!1,this.isDragend=!1)},ondataZoom:function(e,t){t.needRefresh=!0},absoluteZoom:function(e){this._zoom.start=e.start,this._zoom.end=e.end,this._zoom.start2=e.start2,this._zoom.end2=e.end2,this._syncShape(),this._syncData(!0)},rectZoom:function(e){if(!e)return this._zoom.start=this._zoom.start2=0,this._zoom.end=this._zoom.end2=100,this._syncShape(),this._syncData(!0),this._zoom;var t=this.component.grid.getArea(),i={x:e.x,y:e.y,width:e.width,height:e.height};if(i.width<0&&(i.x+=i.width,i.width=-i.width),i.height<0&&(i.y+=i.height,i.height=-i.height),i.x>t.x+t.width||i.y>t.y+t.height)return!1;i.xt.x+t.width&&(i.width=t.x+t.width-i.x),i.y+i.height>t.y+t.height&&(i.height=t.y+t.height-i.y);var n,a=(i.x-t.x)/t.width,o=1-(i.x+i.width-t.x)/t.width,r=1-(i.y+i.height-t.y)/t.height,s=(i.y-t.y)/t.height;return"horizontal"==this.zoomOption.orient?(n=this._zoom.end-this._zoom.start,this._zoom.start+=n*a,this._zoom.end-=n*o,n=this._zoom.end2-this._zoom.start2,this._zoom.start2+=n*r,this._zoom.end2-=n*s):(n=this._zoom.end-this._zoom.start,this._zoom.start+=n*r,this._zoom.end-=n*s,n=this._zoom.end2-this._zoom.start2,this._zoom.start2+=n*a,this._zoom.end2-=n*o),this._syncShape(),this._syncData(!0),this._zoom},syncBackupData:function(e){for(var t,i,n=this._originalData.series,a=e.series,o=0,r=a.length;r>o;o++){i=a[o].data||a[o].eventList,t=n[o]?Math.floor(this._zoom.start/100*n[o].length):0;for(var s=0,l=i.length;l>s;s++)n[o]&&(n[o][s+t]=i[s])}},syncOption:function(e){this.silence(!0),this.option=e,this.option.dataZoom=this.reformOption(this.option.dataZoom),this.zoomOption=this.option.dataZoom,this.myChart.canvasSupported||(this.zoomOption.realtime=!1),this.clear(),this._location=this._getLocation(),this._zoom=this._getZoom(),this._backupData(),this.option.dataZoom&&this.option.dataZoom.show&&this._buildShape(),this._syncData(),this.silence(!1)},silence:function(e){this._isSilence=e},getRealDataIndex:function(e,t){if(!this._originalData||0===this._zoom.start&&100==this._zoom.end)return t;var i=this._originalData.series;return i[e]?Math.floor(this._zoom.start/100*i[e].length)+t:-1},resize:function(){this.clear(),this._location=this._getLocation(),this._zoom=this._getZoom(),this.option.dataZoom.show&&this._buildShape()}},l.inherits(t,i),e("../component").define("dataZoom",t),t}),i("echarts/component/categoryAxis",["require","./base","zrender/shape/Text","zrender/shape/Line","zrender/shape/Rectangle","../config","zrender/tool/util","zrender/tool/area","../component"],function(e){function t(e,t,n,a,o,r){if(a.data.length<1)return void console.error("option.data.length < 1.");i.call(this,e,t,n,a,o),this.grid=this.component.grid;for(var s in r)this[s]=r[s];this.refresh(a)}var i=e("./base"),n=e("zrender/shape/Text"),a=e("zrender/shape/Line"),o=e("zrender/shape/Rectangle"),r=e("../config");r.categoryAxis={zlevel:0,z:0,show:!0,position:"bottom",name:"",nameLocation:"end",nameTextStyle:{},boundaryGap:!0,axisLine:{show:!0,onZero:!0,lineStyle:{color:"#48b",width:2,type:"solid"}},axisTick:{show:!0,interval:"auto",inside:!1,length:5,lineStyle:{color:"#333",width:1}},axisLabel:{show:!0,interval:"auto",rotate:0,margin:8,textStyle:{color:"#333"}},splitLine:{show:!0,lineStyle:{color:["#ccc"],width:1,type:"solid"}},splitArea:{show:!1,areaStyle:{color:["rgba(250,250,250,0.3)","rgba(200,200,200,0.3)"]}}};var s=e("zrender/tool/util"),l=e("zrender/tool/area");return t.prototype={type:r.COMPONENT_TYPE_AXIS_CATEGORY,_getReformedLabel:function(e){var t=this.getDataFromOption(this.option.data[e]),i=this.option.data[e].formatter||this.option.axisLabel.formatter;return i&&("function"==typeof i?t=i.call(this.myChart,t):"string"==typeof i&&(t=i.replace("{value}",t))),t},_getInterval:function(){var e=this.option.axisLabel.interval;if("auto"==e){var t=this.option.axisLabel.textStyle.fontSize,i=this.option.data,n=this.option.data.length;if(this.isHorizontal())if(n>3){var a,o,r=this.getGap(),h=!1,m=Math.floor(.5/r);for(m=1>m?1:m,e=Math.floor(15/r);!h&&n>e;){e+=m,h=!0,a=Math.floor(r*e);for(var V=Math.floor((n-1)/e)*e;V>=0;V-=e){if(0!==this.option.axisLabel.rotate)o=t;else if(i[V].textStyle)o=l.getTextWidth(this._getReformedLabel(V),this.getFont(s.merge(i[V].textStyle,this.option.axisLabel.textStyle)));else{var U=this._getReformedLabel(V)+"",d=(U.match(/\w/g)||"").length,p=U.length-d;o=d*t*2/3+p*t}if(o>a){h=!1;break}}}}else e=1;else if(n>3){var r=this.getGap();for(e=Math.floor(11/r);t>r*e-6&&n>e;)e++}else e=1}else e="function"==typeof e?1:e-0+1;return e},_buildShape:function(){if(this._interval=this._getInterval(),this.option.show){this.option.splitArea.show&&this._buildSplitArea(),this.option.splitLine.show&&this._buildSplitLine(),this.option.axisLine.show&&this._buildAxisLine(),this.option.axisTick.show&&this._buildAxisTick(),this.option.axisLabel.show&&this._buildAxisLabel();for(var e=0,t=this.shapeList.length;t>e;e++)this.zr.addShape(this.shapeList[e])}},_buildAxisTick:function(){var e,t=this.option.data,i=this.option.data.length,n=this.option.axisTick,o=n.length,r=n.lineStyle.color,s=n.lineStyle.width,l="function"==typeof n.interval?n.interval:"auto"==n.interval&&"function"==typeof this.option.axisLabel.interval?this.option.axisLabel.interval:!1,h=l?1:"auto"==n.interval?this._interval:n.interval-0+1,m=n.onGap,V=m?this.getGap()/2:"undefined"==typeof m&&this.option.boundaryGap?this.getGap()/2:0,U=V>0?-h:0;if(this.isHorizontal())for(var d,p="bottom"==this.option.position?n.inside?this.grid.getYend()-o-1:this.grid.getYend()+1:n.inside?this.grid.getY()+1:this.grid.getY()-o-1,c=U;i>c;c+=h)(!l||l(c,t[c]))&&(d=this.subPixelOptimize(this.getCoordByIndex(c)+(c>=0?V:0),s),e={_axisShape:"axisTick",zlevel:this.getZlevelBase(),z:this.getZBase(),hoverable:!1,style:{xStart:d,yStart:p,xEnd:d,yEnd:p+o,strokeColor:r,lineWidth:s}},this.shapeList.push(new a(e)));else for(var u,y="left"==this.option.position?n.inside?this.grid.getX()+1:this.grid.getX()-o-1:n.inside?this.grid.getXend()-o-1:this.grid.getXend()+1,c=U;i>c;c+=h)(!l||l(c,t[c]))&&(u=this.subPixelOptimize(this.getCoordByIndex(c)-(c>=0?V:0),s),e={_axisShape:"axisTick",zlevel:this.getZlevelBase(),z:this.getZBase(),hoverable:!1,style:{xStart:y,yStart:u,xEnd:y+o,yEnd:u,strokeColor:r,lineWidth:s}},this.shapeList.push(new a(e)))},_buildAxisLabel:function(){var e,t,i=this.option.data,a=this.option.data.length,o=this.option.axisLabel,r=o.rotate,l=o.margin,h=o.clickable,m=o.textStyle,V="function"==typeof o.interval?o.interval:!1;if(this.isHorizontal()){var U,d;"bottom"==this.option.position?(U=this.grid.getYend()+l,d="top"):(U=this.grid.getY()-l,d="bottom");for(var p=0;a>p;p+=this._interval)V&&!V(p,i[p])||""===this._getReformedLabel(p)||(t=s.merge(i[p].textStyle||{},m),e={zlevel:this.getZlevelBase(),z:this.getZBase()+3,hoverable:!1,style:{x:this.getCoordByIndex(p),y:U,color:t.color,text:this._getReformedLabel(p),textFont:this.getFont(t),textAlign:t.align||"center",textBaseline:t.baseline||d}},r&&(e.style.textAlign=r>0?"bottom"==this.option.position?"right":"left":"bottom"==this.option.position?"left":"right",e.rotation=[r*Math.PI/180,e.style.x,e.style.y]),this.shapeList.push(new n(this._axisLabelClickable(h,e))))}else{var c,u;"left"==this.option.position?(c=this.grid.getX()-l,u="right"):(c=this.grid.getXend()+l,u="left");for(var p=0;a>p;p+=this._interval)V&&!V(p,i[p])||""===this._getReformedLabel(p)||(t=s.merge(i[p].textStyle||{},m),e={zlevel:this.getZlevelBase(),z:this.getZBase()+3,hoverable:!1,style:{x:c,y:this.getCoordByIndex(p),color:t.color,text:this._getReformedLabel(p),textFont:this.getFont(t),textAlign:t.align||u,textBaseline:t.baseline||0===p&&""!==this.option.name?"bottom":p==a-1&&""!==this.option.name?"top":"middle"}},r&&(e.rotation=[r*Math.PI/180,e.style.x,e.style.y]),this.shapeList.push(new n(this._axisLabelClickable(h,e))))}},_buildSplitLine:function(){var e,t=this.option.data,i=this.option.data.length,n=this.option.splitLine,o=n.lineStyle.type,r=n.lineStyle.width,s=n.lineStyle.color;s=s instanceof Array?s:[s];var l=s.length,h="function"==typeof this.option.axisLabel.interval?this.option.axisLabel.interval:!1,m=n.onGap,V=m?this.getGap()/2:"undefined"==typeof m&&this.option.boundaryGap?this.getGap()/2:0;if(i-=m||"undefined"==typeof m&&this.option.boundaryGap?1:0,this.isHorizontal())for(var U,d=this.grid.getY(),p=this.grid.getYend(),c=0;i>c;c+=this._interval)(!h||h(c,t[c]))&&(U=this.subPixelOptimize(this.getCoordByIndex(c)+V,r),e={zlevel:this.getZlevelBase(),z:this.getZBase(),hoverable:!1,style:{xStart:U,yStart:d,xEnd:U,yEnd:p,strokeColor:s[c/this._interval%l],lineType:o,lineWidth:r}},this.shapeList.push(new a(e)));else for(var u,y=this.grid.getX(),g=this.grid.getXend(),c=0;i>c;c+=this._interval)(!h||h(c,t[c]))&&(u=this.subPixelOptimize(this.getCoordByIndex(c)-V,r),e={zlevel:this.getZlevelBase(),z:this.getZBase(),hoverable:!1,style:{xStart:y,yStart:u,xEnd:g,yEnd:u,strokeColor:s[c/this._interval%l],lineType:o,lineWidth:r}},this.shapeList.push(new a(e)))},_buildSplitArea:function(){var e,t=this.option.data,i=this.option.splitArea,n=i.areaStyle.color;if(n instanceof Array){var a=n.length,r=this.option.data.length,s="function"==typeof this.option.axisLabel.interval?this.option.axisLabel.interval:!1,l=i.onGap,h=l?this.getGap()/2:"undefined"==typeof l&&this.option.boundaryGap?this.getGap()/2:0;if(this.isHorizontal())for(var m,V=this.grid.getY(),U=this.grid.getHeight(),d=this.grid.getX(),p=0;r>=p;p+=this._interval)s&&!s(p,t[p])&&r>p||(m=r>p?this.getCoordByIndex(p)+h:this.grid.getXend(),e={zlevel:this.getZlevelBase(),z:this.getZBase(),hoverable:!1,style:{x:d,y:V,width:m-d,height:U,color:n[p/this._interval%a]}},this.shapeList.push(new o(e)),d=m);else for(var c,u=this.grid.getX(),y=this.grid.getWidth(),g=this.grid.getYend(),p=0;r>=p;p+=this._interval)s&&!s(p,t[p])&&r>p||(c=r>p?this.getCoordByIndex(p)-h:this.grid.getY(),e={zlevel:this.getZlevelBase(),z:this.getZBase(),hoverable:!1,style:{x:u,y:c,width:y,height:g-c,color:n[p/this._interval%a]}},this.shapeList.push(new o(e)),g=c)}else e={zlevel:this.getZlevelBase(),z:this.getZBase(),hoverable:!1,style:{x:this.grid.getX(),y:this.grid.getY(),width:this.grid.getWidth(),height:this.grid.getHeight(),color:n}},this.shapeList.push(new o(e))},refresh:function(e){e&&(this.option=this.reformOption(e),this.option.axisLabel.textStyle=this.getTextStyle(this.option.axisLabel.textStyle)),this.clear(),this._buildShape()},getGap:function(){var e=this.option.data.length,t=this.isHorizontal()?this.grid.getWidth():this.grid.getHeight();return this.option.boundaryGap?t/e:t/(e>1?e-1:1)},getCoord:function(e){for(var t=this.option.data,i=t.length,n=this.getGap(),a=this.option.boundaryGap?n/2:0,o=0;i>o;o++){if(this.getDataFromOption(t[o])==e)return a=this.isHorizontal()?this.grid.getX()+a:this.grid.getYend()-a;a+=n}},getCoordByIndex:function(e){if(0>e)return this.isHorizontal()?this.grid.getX():this.grid.getYend();if(e>this.option.data.length-1)return this.isHorizontal()?this.grid.getXend():this.grid.getY();var t=this.getGap(),i=this.option.boundaryGap?t/2:0;return i+=e*t,i=this.isHorizontal()?this.grid.getX()+i:this.grid.getYend()-i},getNameByIndex:function(e){return this.getDataFromOption(this.option.data[e])},getIndexByName:function(e){for(var t=this.option.data,i=t.length,n=0;i>n;n++)if(this.getDataFromOption(t[n])==e)return n;return-1},getValueFromCoord:function(){return""},isMainAxis:function(e){return e%this._interval===0}},s.inherits(t,i),e("../component").define("categoryAxis",t),t}),i("echarts/component/valueAxis",["require","./base","zrender/shape/Text","zrender/shape/Line","zrender/shape/Rectangle","../config","../util/date","zrender/tool/util","../util/smartSteps","../util/accMath","../util/smartLogSteps","../component"],function(e){function t(e,t,n,a,o,r,s){if(!s||0===s.length)return void console.err("option.series.length == 0.");i.call(this,e,t,n,a,o),this.series=s,this.grid=this.component.grid;for(var l in r)this[l]=r[l];this.refresh(a,s)}var i=e("./base"),n=e("zrender/shape/Text"),a=e("zrender/shape/Line"),o=e("zrender/shape/Rectangle"),r=e("../config");r.valueAxis={zlevel:0,z:0,show:!0,position:"left",name:"",nameLocation:"end",nameTextStyle:{},boundaryGap:[0,0],axisLine:{show:!0,onZero:!0,lineStyle:{color:"#48b",width:2,type:"solid"}},axisTick:{show:!1,inside:!1,length:5,lineStyle:{color:"#333",width:1}},axisLabel:{show:!0,rotate:0,margin:8,textStyle:{color:"#333"}},splitLine:{show:!0,lineStyle:{color:["#ccc"],width:1,type:"solid"}},splitArea:{show:!1,areaStyle:{color:["rgba(250,250,250,0.3)","rgba(200,200,200,0.3)"]}}};var s=e("../util/date"),l=e("zrender/tool/util");return t.prototype={type:r.COMPONENT_TYPE_AXIS_VALUE,_buildShape:function(){if(this._hasData=!1,this._calculateValue(),this._hasData&&this.option.show){this.option.splitArea.show&&this._buildSplitArea(),this.option.splitLine.show&&this._buildSplitLine(),this.option.axisLine.show&&this._buildAxisLine(),this.option.axisTick.show&&this._buildAxisTick(),this.option.axisLabel.show&&this._buildAxisLabel();for(var e=0,t=this.shapeList.length;t>e;e++)this.zr.addShape(this.shapeList[e])}},_buildAxisTick:function(){var e,t=this._valueList,i=this._valueList.length,n=this.option.axisTick,o=n.length,r=n.lineStyle.color,s=n.lineStyle.width;if(this.isHorizontal())for(var l,h="bottom"===this.option.position?n.inside?this.grid.getYend()-o-1:this.grid.getYend()+1:n.inside?this.grid.getY()+1:this.grid.getY()-o-1,m=0;i>m;m++)l=this.subPixelOptimize(this.getCoord(t[m]),s),e={_axisShape:"axisTick",zlevel:this.getZlevelBase(),z:this.getZBase(),hoverable:!1,style:{xStart:l,yStart:h,xEnd:l,yEnd:h+o,strokeColor:r,lineWidth:s}},this.shapeList.push(new a(e));else for(var V,U="left"===this.option.position?n.inside?this.grid.getX()+1:this.grid.getX()-o-1:n.inside?this.grid.getXend()-o-1:this.grid.getXend()+1,m=0;i>m;m++)V=this.subPixelOptimize(this.getCoord(t[m]),s),e={_axisShape:"axisTick",zlevel:this.getZlevelBase(),z:this.getZBase(),hoverable:!1,style:{xStart:U,yStart:V,xEnd:U+o,yEnd:V,strokeColor:r,lineWidth:s}},this.shapeList.push(new a(e))},_buildAxisLabel:function(){var e,t=this._valueList,i=this._valueList.length,a=this.option.axisLabel.rotate,o=this.option.axisLabel.margin,r=this.option.axisLabel.clickable,s=this.option.axisLabel.textStyle;if(this.isHorizontal()){var l,h;"bottom"===this.option.position?(l=this.grid.getYend()+o,h="top"):(l=this.grid.getY()-o,h="bottom");for(var m=0;i>m;m++)e={zlevel:this.getZlevelBase(),z:this.getZBase()+3,hoverable:!1,style:{x:this.getCoord(t[m]),y:l,color:"function"==typeof s.color?s.color(t[m]):s.color,text:this._valueLabel[m],textFont:this.getFont(s),textAlign:s.align||"center",textBaseline:s.baseline||h}},a&&(e.style.textAlign=a>0?"bottom"===this.option.position?"right":"left":"bottom"===this.option.position?"left":"right",e.rotation=[a*Math.PI/180,e.style.x,e.style.y]),this.shapeList.push(new n(this._axisLabelClickable(r,e)))}else{var V,U;"left"===this.option.position?(V=this.grid.getX()-o,U="right"):(V=this.grid.getXend()+o,U="left");for(var m=0;i>m;m++)e={zlevel:this.getZlevelBase(),z:this.getZBase()+3,hoverable:!1,style:{x:V,y:this.getCoord(t[m]),color:"function"==typeof s.color?s.color(t[m]):s.color,text:this._valueLabel[m],textFont:this.getFont(s),textAlign:s.align||U,textBaseline:s.baseline||(0===m&&""!==this.option.name?"bottom":m===i-1&&""!==this.option.name?"top":"middle")}},a&&(e.rotation=[a*Math.PI/180,e.style.x,e.style.y]),this.shapeList.push(new n(this._axisLabelClickable(r,e)))}},_buildSplitLine:function(){var e,t=this._valueList,i=this._valueList.length,n=this.option.splitLine,o=n.lineStyle.type,r=n.lineStyle.width,s=n.lineStyle.color;s=s instanceof Array?s:[s];var l=s.length;if(this.isHorizontal())for(var h,m=this.grid.getY(),V=this.grid.getYend(),U=0;i>U;U++)h=this.subPixelOptimize(this.getCoord(t[U]),r),e={zlevel:this.getZlevelBase(),z:this.getZBase(),hoverable:!1,style:{xStart:h,yStart:m,xEnd:h,yEnd:V,strokeColor:s[U%l],lineType:o,lineWidth:r}},this.shapeList.push(new a(e));else for(var d,p=this.grid.getX(),c=this.grid.getXend(),U=0;i>U;U++)d=this.subPixelOptimize(this.getCoord(t[U]),r),e={zlevel:this.getZlevelBase(),z:this.getZBase(),hoverable:!1,style:{xStart:p,yStart:d,xEnd:c,yEnd:d,strokeColor:s[U%l],lineType:o,lineWidth:r}},this.shapeList.push(new a(e))},_buildSplitArea:function(){var e,t=this.option.splitArea.areaStyle.color;if(t instanceof Array){var i=t.length,n=this._valueList,a=this._valueList.length;if(this.isHorizontal())for(var r,s=this.grid.getY(),l=this.grid.getHeight(),h=this.grid.getX(),m=0;a>=m;m++)r=a>m?this.getCoord(n[m]):this.grid.getXend(),e={zlevel:this.getZlevelBase(),z:this.getZBase(),hoverable:!1,style:{x:h,y:s,width:r-h,height:l,color:t[m%i]}},this.shapeList.push(new o(e)),h=r;else for(var V,U=this.grid.getX(),d=this.grid.getWidth(),p=this.grid.getYend(),m=0;a>=m;m++)V=a>m?this.getCoord(n[m]):this.grid.getY(),e={zlevel:this.getZlevelBase(),z:this.getZBase(),hoverable:!1,style:{x:U,y:V,width:d,height:p-V,color:t[m%i]}},this.shapeList.push(new o(e)),p=V}else e={zlevel:this.getZlevelBase(),z:this.getZBase(),hoverable:!1,style:{x:this.grid.getX(),y:this.grid.getY(),width:this.grid.getWidth(),height:this.grid.getHeight(),color:t}},this.shapeList.push(new o(e))},_calculateValue:function(){if(isNaN(this.option.min-0)||isNaN(this.option.max-0)){for(var e,t,i={},n=this.component.legend,a=0,o=this.series.length;o>a;a++)!(this.series[a].type!=r.CHART_TYPE_LINE&&this.series[a].type!=r.CHART_TYPE_BAR&&this.series[a].type!=r.CHART_TYPE_SCATTER&&this.series[a].type!=r.CHART_TYPE_K&&this.series[a].type!=r.CHART_TYPE_EVENTRIVER||n&&!n.isSelected(this.series[a].name)||(e=this.series[a].xAxisIndex||0,t=this.series[a].yAxisIndex||0,this.option.xAxisIndex!=e&&this.option.yAxisIndex!=t||!this._calculSum(i,a)));var s;for(var a in i){s=i[a];for(var l=0,h=s.length;h>l;l++)if(!isNaN(s[l])){this._hasData=!0,this._min=s[l],this._max=s[l];break}if(this._hasData)break}for(var a in i){s=i[a];for(var l=0,h=s.length;h>l;l++)isNaN(s[l])||(this._min=Math.min(this._min,s[l]),this._max=Math.max(this._max,s[l]))}var m="log"!==this.option.type?this.option.boundaryGap:[0,0],V=Math.abs(this._max-this._min);this._min=isNaN(this.option.min-0)?this._min-Math.abs(V*m[0]):this.option.min-0,this._max=isNaN(this.option.max-0)?this._max+Math.abs(V*m[1]):this.option.max-0,this._min===this._max&&(0===this._max?this._max=1:this._max>0?this._min=this._max/this.option.splitNumber!=null?this.option.splitNumber:5:this._max=this._max/this.option.splitNumber!=null?this.option.splitNumber:5),"time"===this.option.type?this._reformTimeValue():"log"===this.option.type?this._reformLogValue():this._reformValue(this.option.scale)}else this._hasData=!0,this._min=this.option.min-0,this._max=this.option.max-0,"time"===this.option.type?this._reformTimeValue():"log"===this.option.type?this._reformLogValue():this._customerValue()},_calculSum:function(e,t){var i,n,a=this.series[t].name||"kener";if(this.series[t].stack){var o="__Magic_Key_Positive__"+this.series[t].stack,l="__Magic_Key_Negative__"+this.series[t].stack;e[o]=e[o]||[],e[l]=e[l]||[],e[a]=e[a]||[],n=this.series[t].data;for(var h=0,m=n.length;m>h;h++)i=this.getDataFromOption(n[h]),"-"!==i&&(i-=0,i>=0?null!=e[o][h]?e[o][h]+=i:e[o][h]=i:null!=e[l][h]?e[l][h]+=i:e[l][h]=i,this.option.scale&&e[a].push(i))}else if(e[a]=e[a]||[],this.series[t].type!=r.CHART_TYPE_EVENTRIVER){n=this.series[t].data;for(var h=0,m=n.length;m>h;h++)i=this.getDataFromOption(n[h]),this.series[t].type===r.CHART_TYPE_K?(e[a].push(i[0]),e[a].push(i[1]),e[a].push(i[2]),e[a].push(i[3])):i instanceof Array?(-1!=this.option.xAxisIndex&&e[a].push("time"!=this.option.type?i[0]:s.getNewDate(i[0])),-1!=this.option.yAxisIndex&&e[a].push("time"!=this.option.type?i[1]:s.getNewDate(i[1]))):e[a].push(i)}else{n=this.series[t].data;for(var h=0,m=n.length;m>h;h++)for(var V=n[h].evolution,U=0,d=V.length;d>U;U++)e[a].push(s.getNewDate(V[U].time))}},_reformValue:function(t){var i=e("../util/smartSteps"),n=this.option.splitNumber;!t&&this._min>=0&&this._max>=0&&(this._min=0),!t&&this._min<=0&&this._max<=0&&(this._max=0);var a=i(this._min,this._max,n);n=null!=n?n:a.secs,this._min=a.min,this._max=a.max,this._valueList=a.pnts,this._reformLabelData()},_reformTimeValue:function(){var e=null!=this.option.splitNumber?this.option.splitNumber:5,t=s.getAutoFormatter(this._min,this._max,e),i=t.formatter,n=t.gapValue;this._valueList=[s.getNewDate(this._min)];var a;switch(i){case"week":a=s.nextMonday(this._min);break;case"month":a=s.nextNthOnMonth(this._min,1);break;case"quarter":a=s.nextNthOnQuarterYear(this._min,1);break;case"half-year":a=s.nextNthOnHalfYear(this._min,1);break;case"year":a=s.nextNthOnYear(this._min,1);break;default:72e5>=n?a=(Math.floor(this._min/n)+1)*n:(a=s.getNewDate(this._min- -n),a.setHours(6*Math.round(a.getHours()/6)),a.setMinutes(0),a.setSeconds(0))}for(a-this._min=0&&(("month"==i||"quarter"==i||"half-year"==i||"year"==i)&&t.setDate(1),!(this._max-t=a;a++)this._valueList.push(t.accAdd(this._min,t.accMul(n,a)));this._reformLabelData()},_reformLogValue:function(){var t=this.option,i=e("../util/smartLogSteps")({dataMin:this._min,dataMax:this._max,logPositive:t.logPositive,logLabelBase:t.logLabelBase,splitNumber:t.splitNumber});this._min=i.dataMin,this._max=i.dataMax,this._valueList=i.tickList,this._dataMappingMethods=i.dataMappingMethods,this._reformLabelData(i.labelFormatter)},_reformLabelData:function(e){this._valueLabel=[];var t=this.option.axisLabel.formatter;if(t)for(var i=0,n=this._valueList.length;n>i;i++)"function"==typeof t?this._valueLabel.push(e?t.call(this.myChart,this._valueList[i],e):t.call(this.myChart,this._valueList[i])):"string"==typeof t&&this._valueLabel.push(e?s.format(t,this._valueList[i]):t.replace("{value}",this._valueList[i]));else for(var i=0,n=this._valueList.length;n>i;i++)this._valueLabel.push(e?e(this._valueList[i]):this.numAddCommas(this._valueList[i]))},getExtremum:function(){this._calculateValue();var e=this._dataMappingMethods;return{min:this._min,max:this._max,dataMappingMethods:e?l.merge({},e):null}},refresh:function(e,t){e&&(this.option=this.reformOption(e),this.option.axisLabel.textStyle=l.merge(this.option.axisLabel.textStyle||{},this.ecTheme.textStyle),this.series=t),this.zr&&(this.clear(),this._buildShape())},getCoord:function(e){this._dataMappingMethods&&(e=this._dataMappingMethods.value2Coord(e)),e=ethis._max?this._max:e;var t;return t=this.isHorizontal()?this.grid.getX()+(e-this._min)/(this._max-this._min)*this.grid.getWidth():this.grid.getYend()-(e-this._min)/(this._max-this._min)*this.grid.getHeight()},getCoordSize:function(e){return Math.abs(this.isHorizontal()?e/(this._max-this._min)*this.grid.getWidth():e/(this._max-this._min)*this.grid.getHeight())},getValueFromCoord:function(e){var t;return this.isHorizontal()?(e=ethis.grid.getXend()?this.grid.getXend():e,t=this._min+(e-this.grid.getX())/this.grid.getWidth()*(this._max-this._min)):(e=ethis.grid.getYend()?this.grid.getYend():e,t=this._max-(e-this.grid.getY())/this.grid.getHeight()*(this._max-this._min)),this._dataMappingMethods&&(t=this._dataMappingMethods.coord2Value(t)),t.toFixed(2)-0},isMaindAxis:function(e){for(var t=0,i=this._valueList.length;i>t;t++)if(this._valueList[t]===e)return!0;return!1}},l.inherits(t,i),e("../component").define("valueAxis",t),t}),i("echarts/util/date",[],function(){function e(e,t,i){i=i>1?i:2;for(var n,a,o,r,s=0,l=m.length;l>s;s++)if(n=m[s].value,a=Math.ceil(t/n)*n-Math.floor(e/n)*n,Math.round(a/n)<=1.2*i){o=m[s].formatter,r=m[s].value;break}return null==o&&(o="year",n=317088e5,a=Math.ceil(t/n)*n-Math.floor(e/n)*n,r=Math.round(a/(i-1)/n)*n),{formatter:o,gapValue:r}}function t(e){return 10>e?"0"+e:e}function i(e,i){("week"==e||"month"==e||"quarter"==e||"half-year"==e||"year"==e)&&(e="MM - dd\nyyyy");var n=h(i),a=n.getFullYear(),o=n.getMonth()+1,r=n.getDate(),s=n.getHours(),l=n.getMinutes(),m=n.getSeconds();return e=e.replace("MM",t(o)),e=e.toLowerCase(),e=e.replace("yyyy",a),e=e.replace("yy",a%100),e=e.replace("dd",t(r)),e=e.replace("d",r),e=e.replace("hh",t(s)),e=e.replace("h",s),e=e.replace("mm",t(l)),e=e.replace("m",l),e=e.replace("ss",t(m)),e=e.replace("s",m)}function n(e){return e=h(e),e.setDate(e.getDate()+8-e.getDay()),e}function a(e,t,i){return e=h(e),e.setMonth(Math.ceil((e.getMonth()+1)/i)*i),e.setDate(t),e}function o(e,t){return a(e,t,1)}function r(e,t){return a(e,t,3)}function s(e,t){return a(e,t,6)}function l(e,t){return a(e,t,12)}function h(e){return e instanceof Date?e:new Date("string"==typeof e?e.replace(/-/g,"/"):e)}var m=[{formatter:"hh : mm : ss",value:1e3},{formatter:"hh : mm : ss",value:5e3},{formatter:"hh : mm : ss",value:1e4},{formatter:"hh : mm : ss",value:15e3},{formatter:"hh : mm : ss",value:3e4},{formatter:"hh : mm\nMM - dd",value:6e4},{formatter:"hh : mm\nMM - dd",value:3e5},{formatter:"hh : mm\nMM - dd",value:6e5},{formatter:"hh : mm\nMM - dd",value:9e5},{formatter:"hh : mm\nMM - dd",value:18e5},{formatter:"hh : mm\nMM - dd",value:36e5},{formatter:"hh : mm\nMM - dd",value:72e5},{formatter:"hh : mm\nMM - dd",value:216e5},{formatter:"hh : mm\nMM - dd",value:432e5},{formatter:"MM - dd\nyyyy",value:864e5},{formatter:"week",value:6048e5},{formatter:"month",value:26784e5},{formatter:"quarter",value:8208e6},{formatter:"half-year",value:16416e6},{formatter:"year",value:32832e6}];return{getAutoFormatter:e,getNewDate:h,format:i,nextMonday:n,nextNthPerNmonth:a,nextNthOnMonth:o,nextNthOnQuarterYear:r,nextNthOnHalfYear:s,nextNthOnYear:l}}),i("echarts/util/smartSteps",[],function(){function e(e){return X.log(I(e))/X.LN10}function t(e){return X.pow(10,e)}function i(e){return e===w(e)}function n(e,t,n,a){b=a||{},f=b.steps||L,k=b.secs||W,n=v(+n||0)%99,e=+e||0,t=+t||0,x=_=0,"min"in b&&(e=+b.min||0,x=1),"max"in b&&(t=+b.max||0,_=1),e>t&&(t=[e,e=t][0]);var o=t-e;if(x&&_)return g(e,t,n);if((n||5)>o){if(i(e)&&i(t))return d(e,t,n);if(0===o)return p(e,t,n)}return h(e,t,n)}function a(e,i,n,a){a=a||0;var s=o((i-e)/n,-1),l=o(e,-1,1),h=o(i,-1),m=X.min(s.e,l.e,h.e);0===l.c?m=X.min(s.e,h.e):0===h.c&&(m=X.min(s.e,l.e)),r(s,{c:0,e:m}),r(l,s,1),r(h,s),a+=m,e=l.c,i=h.c;for(var V=(i-e)/n,U=t(a),d=0,p=[],c=n+1;c--;)p[c]=(e+V*c)*U;if(0>a){d=u(U),V=+(V*U).toFixed(d),e=+(e*U).toFixed(d),i=+(i*U).toFixed(d);for(var c=p.length;c--;)p[c]=p[c].toFixed(d),0===+p[c]&&(p[c]="0")}else e*=U,i*=U,V*=U;return k=0,f=0,b=0,{min:e,max:i,secs:n,step:V,fix:d,exp:a,pnts:p}}function o(n,a,o){a=v(a%10)||2,0>a&&(i(n)?a=(""+I(n)).replace(/0+$/,"").length||1:(n=n.toFixed(15).replace(/0+$/,""),a=n.replace(".","").replace(/^[-0]+/,"").length,n=+n));var r=w(e(n))-a+1,s=+(n*t(-r)).toFixed(15)||0;return s=o?w(s):K(s),!s&&(r=0),(""+I(s)).length>a&&(r+=1,s/=10),{c:s,e:r}}function r(e,i,n){var a=i.e-e.e;a&&(e.e+=a,e.c*=t(-a),e.c=n?w(e.c):K(e.c))}function s(e,t,i){e.et[n];)n++;if(!t[n])for(i/=10,e.e+=1,n=0;i>t[n];)n++;return e.c=t[n],e}function h(e,t,n){var s,h=n||+k.slice(-1),p=l((t-e)/h,f),u=o(t-e),g=o(e,-1,1),b=o(t,-1);if(r(u,p),r(g,p,1),r(b,p),n?s=V(g,b,h):h=m(g,b),i(e)&&i(t)&&e*t>=0){if(h>t-e)return d(e,t,h);h=U(e,t,n,g,b,h)}var L=c(e,t,g.c,b.c);return g.c=L[0],b.c=L[1],(x||_)&&y(e,t,g,b),a(g.c,b.c,h,b.e)}function m(e,i){for(var n,a,o,r,s=[],h=k.length;h--;)n=k[h],a=l((i.c-e.c)/n,f),a=a.c*t(a.e),o=w(e.c/a)*a,r=K(i.c/a)*a,s[h]={min:o,max:r,step:a,span:r-o};return s.sort(function(e,t){var i=e.span-t.span;return 0===i&&(i=e.step-t.step),i}),s=s[0],n=s.span/s.step,e.c=s.min,i.c=s.max,3>n?2*n:n}function V(e,i,n){for(var a,o,r=i.c,s=(i.c-e.c)/n-1;r>e.c;)s=l(s+1,f),s=s.c*t(s.e),a=s*n,o=K(i.c/s)*s,r=o-a;var h=e.c-r,m=o-i.c,V=h-m;return V>1.1*s&&(V=v(V/s/2)*s,r+=V,o+=V),e.c=r,i.c=o,s}function U(e,n,a,o,r,s){var l=r.c-o.c,h=l/s*t(r.e);if(!i(h)&&(h=w(h),l=h*s,n-e>l&&(h+=1,l=h*s,!a&&h*(s-1)>=n-e&&(s-=1,l=h*s)),l>=n-e)){var m=l-(n-e);o.c=v(e-m/2),r.c=v(n+m/2),o.e=0,r.e=0}return s}function d(e,t,i){if(i=i||5,x)t=e+i;else if(_)e=t-i;else{var n=i-(t-e),o=v(e-n/2),r=v(t+n/2),s=c(e,t,o,r);e=s[0],t=s[1]}return a(e,t,i)}function p(e,t,i){i=i||5;var n=X.min(I(t/i),i)/2.1;return x?t=e+n:_?e=t-n:(e-=n,t+=n),h(e,t,i)}function c(e,t,i,n){ +return e>=0&&0>i?(n-=i,i=0):0>=t&&n>0&&(i-=n,n=0),[i,n]}function u(e){return e=(+e).toFixed(15).split("."),e.pop().replace(/0+$/,"").length}function y(e,t,i,n){if(x){var a=o(e,4,1);i.e-a.e>6&&(a={c:0,e:i.e}),s(i,a),s(n,a),n.c+=a.c-i.c,i.c=a.c}else if(_){var r=o(t,4);n.e-r.e>6&&(r={c:0,e:n.e}),s(i,r),s(n,r),i.c+=r.c-n.c,n.c=r.c}}function g(e,t,i){var n=i?[i]:k,s=t-e;if(0===s)return t=o(t,3),i=n[0],t.c=v(t.c+i/2),a(t.c-i,t.c,i,t.e);I(t/s)<1e-6&&(t=0),I(e/s)<1e-6&&(e=0);var l,h,m,V=[[5,10],[10,2],[50,10],[100,2]],U=[],d=[],p=o(t-e,3),c=o(e,-1,1),u=o(t,-1);r(c,p,1),r(u,p),s=u.c-c.c,p.c=s;for(var y=n.length;y--;){i=n[y],l=K(s/i),h=l*i-s,m=3*(h+3),m+=2*(i-n[0]+2),i%5===0&&(m-=10);for(var g=V.length;g--;)l%V[g][0]===0&&(m/=V[g][1]);d[y]=[i,l,h,m].join(),U[y]={secs:i,step:l,delta:h,score:m}}return U.sort(function(e,t){return e.score-t.score}),U=U[0],c.c=v(c.c-U.delta/2),u.c=v(u.c+U.delta/2),a(c.c,u.c,U.secs,p.e)}var b,f,k,x,_,L=[10,20,25,50],W=[4,5,6],X=Math,v=X.round,w=X.floor,K=X.ceil,I=X.abs;return n}),i("echarts/util/smartLogSteps",["require","./number"],function(e){function t(e){return i(),u=e||{},n(),a(),[o(),i()][0]}function i(){U=u=g=c=b=f=y=k=d=p=null}function n(){d=u.logLabelBase,null==d?(p="plain",d=10,c=I):(d=+d,1>d&&(d=10),p="exponent",c=L(d)),y=u.splitNumber,null==y&&(y=E);var e=parseFloat(u.dataMin),t=parseFloat(u.dataMax);isFinite(e)||isFinite(t)?isFinite(e)?isFinite(t)?e>t&&(t=[e,e=t][0]):t=e:e=t:e=t=1,U=u.logPositive,null==U&&(U=t>0||0===e),b=U?e:-t,f=U?t:-e,S>b&&(b=S),S>f&&(f=S)}function a(){function e(){y>m&&(y=m);var e=w(l(m/y)),t=v(l(m/e)),i=e*t,n=(i-U)/2,a=w(l(r-n));V(a-r)&&(a-=1),g=-a*c;for(var s=a;o>=s-e;s+=e)k.push(W(d,s))}function t(){for(var e=i(h,0),t=e+2;t>e&&a(e+1)+n(e+1)*Ct&&a(l-1)+n(l-1)*C>o;)l--;g=-(a(e)*I+n(e)*J);for(var m=e;l>=m;m++){var V=a(m),U=n(m);k.push(W(10,V)*W(2,U))}}function i(e,t){return 3*e+t}function n(e){return e-3*a(e)}function a(e){return w(l(e/3))}k=[];var o=l(L(f)/c),r=l(L(b)/c),s=v(o),h=w(r),m=s-h,U=o-r;"exponent"===p?e():F>=m&&y>F?t():e()}function o(){for(var e=[],t=0,i=k.length;i>t;t++)e[t]=(U?1:-1)*k[t];!U&&e.reverse();var n=s(),a=n.value2Coord,o=a(e[0]),l=a(e[e.length-1]);return o===l&&(o-=1,l+=1),{dataMin:o,dataMax:l,tickList:e,logPositive:U,labelFormatter:r(),dataMappingMethods:n}}function r(){if("exponent"===p){var e=d,t=c;return function(i){if(!isFinite(parseFloat(i)))return"";var n="";return 0>i&&(i=-i,n="-"),n+e+m(L(i)/t)}}return function(e){return isFinite(parseFloat(e))?x.addCommas(h(e)):""}}function s(){var e=U,t=g;return{value2Coord:function(i){return null==i||isNaN(i)||!isFinite(i)?i:(i=parseFloat(i),isFinite(i)?e&&S>i?i=S:!e&&i>-S&&(i=-S):i=S,i=X(i),(e?1:-1)*(L(i)+t))},coord2Value:function(i){return null==i||isNaN(i)||!isFinite(i)?i:(i=parseFloat(i),isFinite(i)||(i=S),e?W(K,i-t):-W(K,-i+t))}}}function l(e){return+Number(+e).toFixed(14)}function h(e){return Number(e).toFixed(15).replace(/\.?0*$/,"")}function m(e){e=h(Math.round(e));for(var t=[],i=0,n=e.length;n>i;i++){var a=e.charAt(i);t.push(T[a]||"")}return t.join("")}function V(e){return e>-S&&S>e}var U,d,p,c,u,y,g,b,f,k,x=e("./number"),_=Math,L=_.log,W=_.pow,X=_.abs,v=_.ceil,w=_.floor,K=_.E,I=_.LN10,J=_.LN2,C=J/I,S=1e-9,E=5,F=2,T={0:"⁰",1:"¹",2:"²",3:"³",4:"⁴",5:"⁵",6:"⁶",7:"⁷",8:"⁸",9:"⁹","-":"⁻"};return t}),i("echarts/chart/line",["require","./base","zrender/shape/Polyline","../util/shape/Icon","../util/shape/HalfSmoothPolygon","../component/axis","../component/grid","../component/dataZoom","../config","../util/ecData","zrender/tool/util","zrender/tool/color","../chart"],function(e){function t(e,t,i,a,o){n.call(this,e,t,i,a,o),this.refresh(a)}function i(e,t,i){var n=t.x,a=t.y,r=t.width,s=t.height,l=s/2;t.symbol.match("empty")&&(e.fillStyle="#fff"),t.brushType="both";var h=t.symbol.replace("empty","").toLowerCase();h.match("star")?(l=h.replace("star","")-0||5,a-=1,h="star"):("rectangle"===h||"arrow"===h)&&(n+=(r-s)/2,r=s);var m="";if(h.match("image")&&(m=h.replace(new RegExp("^image:\\/\\/"),""),h="image",n+=Math.round((r-s)/2)-1,r=s+=2),h=o.prototype.iconLibrary[h]){var V=t.x,U=t.y;e.moveTo(V,U+l),e.lineTo(V+5,U+l),e.moveTo(V+t.width-5,U+l),e.lineTo(V+t.width,U+l);var d=this;h(e,{x:n+4,y:a+4,width:r-8,height:s-8,n:l,image:m},function(){d.modSelf(),i()})}else e.moveTo(n,a+l),e.lineTo(n+r,a+l)}var n=e("./base"),a=e("zrender/shape/Polyline"),o=e("../util/shape/Icon"),r=e("../util/shape/HalfSmoothPolygon");e("../component/axis"),e("../component/grid"),e("../component/dataZoom");var s=e("../config");s.line={zlevel:0,z:2,clickable:!0,legendHoverLink:!0,xAxisIndex:0,yAxisIndex:0,dataFilter:"nearest",itemStyle:{normal:{label:{show:!1},lineStyle:{width:2,type:"solid",shadowColor:"rgba(0,0,0,0)",shadowBlur:0,shadowOffsetX:0,shadowOffsetY:0}},emphasis:{label:{show:!1}}},symbolSize:2,showAllSymbol:!1};var l=e("../util/ecData"),h=e("zrender/tool/util"),m=e("zrender/tool/color");return t.prototype={type:s.CHART_TYPE_LINE,_buildShape:function(){this.finalPLMap={},this._buildPosition()},_buildHorizontal:function(e,t,i,n){for(var a,o,r,s,l,h,m,V,U,d=this.series,p=i[0][0],c=d[p],u=this.component.xAxis.getAxis(c.xAxisIndex||0),y={},g=0,b=t;b>g&&null!=u.getNameByIndex(g);g++){o=u.getCoordByIndex(g);for(var f=0,k=i.length;k>f;f++){a=this.component.yAxis.getAxis(d[i[f][0]].yAxisIndex||0),l=s=m=h=a.getCoord(0);for(var x=0,_=i[f].length;_>x;x++)p=i[f][x],c=d[p],V=c.data[g],U=this.getDataFromOption(V,"-"),y[p]=y[p]||[],n[p]=n[p]||{min:Number.POSITIVE_INFINITY,max:Number.NEGATIVE_INFINITY,sum:0,counter:0,average:0},"-"!==U?(U>=0?(s-=x>0?a.getCoordSize(U):l-a.getCoord(U),r=s):0>U&&(h+=x>0?a.getCoordSize(U):a.getCoord(U)-m,r=h),y[p].push([o,r,g,u.getNameByIndex(g),o,l]),n[p].min>U&&(n[p].min=U,n[p].minY=r,n[p].minX=o),n[p].max0&&(this.finalPLMap[p]=this.finalPLMap[p]||[],this.finalPLMap[p].push(y[p]),y[p]=[])}s=this.component.grid.getY();for(var L,f=0,k=i.length;k>f;f++)for(var x=0,_=i[f].length;_>x;x++)p=i[f][x],c=d[p],V=c.data[g],U=this.getDataFromOption(V,"-"),"-"==U&&this.deepQuery([V,c,this.option],"calculable")&&(L=this.deepQuery([V,c],"symbolSize"),s+=2*L+5,r=s,this.shapeList.push(this._getCalculableItem(p,g,u.getNameByIndex(g),o,r,"horizontal")))}for(var W in y)y[W].length>0&&(this.finalPLMap[W]=this.finalPLMap[W]||[],this.finalPLMap[W].push(y[W]),y[W]=[]);this._calculMarkMapXY(n,i,"y"),this._buildBorkenLine(e,this.finalPLMap,u,"horizontal")},_buildVertical:function(e,t,i,n){for(var a,o,r,s,l,h,m,V,U,d=this.series,p=i[0][0],c=d[p],u=this.component.yAxis.getAxis(c.yAxisIndex||0),y={},g=0,b=t;b>g&&null!=u.getNameByIndex(g);g++){r=u.getCoordByIndex(g);for(var f=0,k=i.length;k>f;f++){a=this.component.xAxis.getAxis(d[i[f][0]].xAxisIndex||0),l=s=m=h=a.getCoord(0);for(var x=0,_=i[f].length;_>x;x++)p=i[f][x],c=d[p],V=c.data[g],U=this.getDataFromOption(V,"-"),y[p]=y[p]||[],n[p]=n[p]||{min:Number.POSITIVE_INFINITY,max:Number.NEGATIVE_INFINITY,sum:0,counter:0,average:0},"-"!==U?(U>=0?(s+=x>0?a.getCoordSize(U):a.getCoord(U)-l,o=s):0>U&&(h-=x>0?a.getCoordSize(U):m-a.getCoord(U),o=h),y[p].push([o,r,g,u.getNameByIndex(g),l,r]),n[p].min>U&&(n[p].min=U,n[p].minX=o,n[p].minY=r),n[p].max0&&(this.finalPLMap[p]=this.finalPLMap[p]||[],this.finalPLMap[p].push(y[p]),y[p]=[])}s=this.component.grid.getXend();for(var L,f=0,k=i.length;k>f;f++)for(var x=0,_=i[f].length;_>x;x++)p=i[f][x],c=d[p],V=c.data[g],U=this.getDataFromOption(V,"-"),"-"==U&&this.deepQuery([V,c,this.option],"calculable")&&(L=this.deepQuery([V,c],"symbolSize"),s-=2*L+5,o=s,this.shapeList.push(this._getCalculableItem(p,g,u.getNameByIndex(g),o,r,"vertical")))}for(var W in y)y[W].length>0&&(this.finalPLMap[W]=this.finalPLMap[W]||[],this.finalPLMap[W].push(y[W]),y[W]=[]);this._calculMarkMapXY(n,i,"x"),this._buildBorkenLine(e,this.finalPLMap,u,"vertical")},_buildOther:function(e,t,i,n){for(var a,o=this.series,r={},s=0,l=i.length;l>s;s++)for(var h=0,m=i[s].length;m>h;h++){var V=i[s][h],U=o[V];a=this.component.xAxis.getAxis(U.xAxisIndex||0);var d=this.component.yAxis.getAxis(U.yAxisIndex||0),p=d.getCoord(0);r[V]=r[V]||[],n[V]=n[V]||{min0:Number.POSITIVE_INFINITY,min1:Number.POSITIVE_INFINITY,max0:Number.NEGATIVE_INFINITY,max1:Number.NEGATIVE_INFINITY,sum0:0,sum1:0,counter0:0,counter1:0,average0:0,average1:0};for(var c=0,u=U.data.length;u>c;c++){var y=U.data[c],g=this.getDataFromOption(y,"-");if(g instanceof Array){var b=a.getCoord(g[0]),f=d.getCoord(g[1]);r[V].push([b,f,c,g[0],b,p]),n[V].min0>g[0]&&(n[V].min0=g[0],n[V].minY0=f,n[V].minX0=b),n[V].max0g[1]&&(n[V].min1=g[1],n[V].minY1=f,n[V].minX1=b),n[V].max10&&(this.finalPLMap[k]=this.finalPLMap[k]||[],this.finalPLMap[k].push(r[k]),r[k]=[]);this._calculMarkMapXY(n,i,"xy"),this._buildBorkenLine(e,this.finalPLMap,a,"other")},_buildBorkenLine:function(e,t,i,n){for(var o,s="other"==n?"horizontal":n,V=this.series,U=e.length-1;U>=0;U--){var d=e[U],p=V[d],c=t[d];if(p.type===this.type&&null!=c)for(var u=this._getBbox(d,s),y=this._sIndex2ColorMap[d],g=this.query(p,"itemStyle.normal.lineStyle.width"),b=this.query(p,"itemStyle.normal.lineStyle.type"),f=this.query(p,"itemStyle.normal.lineStyle.color"),k=this.getItemStyleColor(this.query(p,"itemStyle.normal.color"),d,-1),x=null!=this.query(p,"itemStyle.normal.areaStyle"),_=this.query(p,"itemStyle.normal.areaStyle.color"),L=0,W=c.length;W>L;L++){var X=c[L],v="other"!=n&&this._isLarge(s,X);if(v)X=this._getLargePointList(s,X,p.dataFilter);else for(var w=0,K=X.length;K>w;w++)o=p.data[X[w][2]],(this.deepQuery([o,p,this.option],"calculable")||this.deepQuery([o,p],"showAllSymbol")||"categoryAxis"===i.type&&i.isMainAxis(X[w][2])&&"none"!=this.deepQuery([o,p],"symbol"))&&this.shapeList.push(this._getSymbol(d,X[w][2],X[w][3],X[w][0],X[w][1],s));var I=new a({zlevel:p.zlevel,z:p.z,style:{miterLimit:g,pointList:X,strokeColor:f||k||y,lineWidth:g,lineType:b,smooth:this._getSmooth(p.smooth),smoothConstraint:u,shadowColor:this.query(p,"itemStyle.normal.lineStyle.shadowColor"),shadowBlur:this.query(p,"itemStyle.normal.lineStyle.shadowBlur"),shadowOffsetX:this.query(p,"itemStyle.normal.lineStyle.shadowOffsetX"),shadowOffsetY:this.query(p,"itemStyle.normal.lineStyle.shadowOffsetY")},hoverable:!1,_main:!0,_seriesIndex:d,_orient:s});if(l.pack(I,V[d],d,0,L,V[d].name),this.shapeList.push(I),x){var J=new r({zlevel:p.zlevel,z:p.z,style:{miterLimit:g,pointList:h.clone(X).concat([[X[X.length-1][4],X[X.length-1][5]],[X[0][4],X[0][5]]]),brushType:"fill",smooth:this._getSmooth(p.smooth),smoothConstraint:u,color:_?_:m.alpha(y,.5)},highlightStyle:{brushType:"fill"},hoverable:!1,_main:!0,_seriesIndex:d,_orient:s});l.pack(J,V[d],d,0,L,V[d].name),this.shapeList.push(J)}}}},_getBbox:function(e,t){var i=this.component.grid.getBbox(),n=this.xMarkMap[e];return null!=n.minX0?[[Math.min(n.minX0,n.maxX0,n.minX1,n.maxX1),Math.min(n.minY0,n.maxY0,n.minY1,n.maxY1)],[Math.max(n.minX0,n.maxX0,n.minX1,n.maxX1),Math.max(n.minY0,n.maxY0,n.minY1,n.maxY1)]]:("horizontal"===t?(i[0][1]=Math.min(n.minY,n.maxY),i[1][1]=Math.max(n.minY,n.maxY)):(i[0][0]=Math.min(n.minX,n.maxX),i[1][0]=Math.max(n.minX,n.maxX)),i)},_isLarge:function(e,t){return t.length<2?!1:"horizontal"===e?Math.abs(t[0][0]-t[1][0])<.5:Math.abs(t[0][1]-t[1][1])<.5},_getLargePointList:function(e,t,i){var n;n="horizontal"===e?this.component.grid.getWidth():this.component.grid.getHeight();var a=t.length,o=[];if("function"!=typeof i)switch(i){case"min":i=function(e){return Math.max.apply(null,e)};break;case"max":i=function(e){return Math.min.apply(null,e)};break;case"average":i=function(e){for(var t=0,i=0;is;s++){var l=Math.floor(a/n*s),h=Math.min(Math.floor(a/n*(s+1)),a);if(!(l>=h)){for(var m=l;h>m;m++)r[m-l]="horizontal"===e?t[m][1]:t[m][0];r.length=h-l;for(var V=i(r),U=-1,d=1/0,m=l;h>m;m++){var p="horizontal"===e?t[m][1]:t[m][0],c=Math.abs(p-V);d>c&&(U=m,d=c)}var u=t[U].slice();"horizontal"===e?u[1]=V:u[0]=V,o.push(u)}}return o},_getSmooth:function(e){return e?.3:0},_getCalculableItem:function(e,t,i,n,a,o){var r=this.series,l=r[e].calculableHolderColor||this.ecTheme.calculableHolderColor||s.calculableHolderColor,h=this._getSymbol(e,t,i,n,a,o);return h.style.color=l,h.style.strokeColor=l,h.rotation=[0,0],h.hoverable=!1,h.draggable=!1,h.style.text=void 0,h},_getSymbol:function(e,t,i,n,a,o){var r=this.series,s=r[e],l=s.data[t],h=this.getSymbolShape(s,e,l,t,i,n,a,this._sIndex2ShapeMap[e],this._sIndex2ColorMap[e],"#fff","vertical"===o?"horizontal":"vertical");return h.zlevel=s.zlevel,h.z=s.z+1,this.deepQuery([l,s,this.option],"calculable")&&(this.setCalculable(h),h.draggable=!0),h},getMarkCoord:function(e,t){var i=this.series[e],n=this.xMarkMap[e],a=this.component.xAxis.getAxis(i.xAxisIndex),o=this.component.yAxis.getAxis(i.yAxisIndex);if(t.type&&("max"===t.type||"min"===t.type||"average"===t.type)){var r=null!=t.valueIndex?t.valueIndex:null!=n.maxX0?"1":"";return[n[t.type+"X"+r],n[t.type+"Y"+r],n[t.type+"Line"+r],n[t.type+r]]}return["string"!=typeof t.xAxis&&a.getCoordByIndex?a.getCoordByIndex(t.xAxis||0):a.getCoord(t.xAxis||0),"string"!=typeof t.yAxis&&o.getCoordByIndex?o.getCoordByIndex(t.yAxis||0):o.getCoord(t.yAxis||0)]},refresh:function(e){e&&(this.option=e,this.series=e.series),this.backupShapeList(),this._buildShape()},ontooltipHover:function(e,t){for(var i,n,a=e.seriesIndex,o=e.dataIndex,r=a.length;r--;)if(i=this.finalPLMap[a[r]])for(var s=0,l=i.length;l>s;s++){n=i[s];for(var h=0,m=n.length;m>h;h++)o===n[h][2]&&t.push(this._getSymbol(a[r],n[h][2],n[h][3],n[h][0],n[h][1],"horizontal"))}},addDataAnimation:function(e,t){function i(){c--,0===c&&t&&t()}function n(e){e.style.controlPointList=null}for(var a=this.series,o={},r=0,s=e.length;s>r;r++)o[e[r][0]]=e[r];for(var l,h,m,V,U,d,p,c=0,r=this.shapeList.length-1;r>=0;r--)if(U=this.shapeList[r]._seriesIndex,o[U]&&!o[U][3]){if(this.shapeList[r]._main&&this.shapeList[r].style.pointList.length>1){if(d=this.shapeList[r].style.pointList,h=Math.abs(d[0][0]-d[1][0]),V=Math.abs(d[0][1]-d[1][1]),p="horizontal"===this.shapeList[r]._orient,o[U][2]){if("half-smooth-polygon"===this.shapeList[r].type){var u=d.length;this.shapeList[r].style.pointList[u-3]=d[u-2],this.shapeList[r].style.pointList[u-3][p?0:1]=d[u-4][p?0:1],this.shapeList[r].style.pointList[u-2]=d[u-1]}this.shapeList[r].style.pointList.pop(),p?(l=h,m=0):(l=0,m=-V)}else{if(this.shapeList[r].style.pointList.shift(),"half-smooth-polygon"===this.shapeList[r].type){var y=this.shapeList[r].style.pointList.pop();p?y[0]=d[0][0]:y[1]=d[0][1],this.shapeList[r].style.pointList.push(y)}p?(l=-h,m=0):(l=0,m=V)}this.shapeList[r].style.controlPointList=null,this.zr.modShape(this.shapeList[r])}else{if(o[U][2]&&this.shapeList[r]._dataIndex===a[U].data.length-1){this.zr.delShape(this.shapeList[r].id);continue}if(!o[U][2]&&0===this.shapeList[r]._dataIndex){this.zr.delShape(this.shapeList[r].id);continue}}this.shapeList[r].position=[0,0],c++,this.zr.animate(this.shapeList[r].id,"").when(this.query(this.option,"animationDurationUpdate"),{position:[l,m]}).during(n).done(i).start()}c||t&&t()}},o.prototype.iconLibrary.legendLineIcon=i,h.inherits(t,n),e("../chart").define("line",t),t}),i("echarts/util/shape/HalfSmoothPolygon",["require","zrender/shape/Base","zrender/shape/util/smoothBezier","zrender/tool/util","zrender/shape/Polygon"],function(e){function t(e){i.call(this,e)}var i=e("zrender/shape/Base"),n=e("zrender/shape/util/smoothBezier"),a=e("zrender/tool/util");return t.prototype={type:"half-smooth-polygon",buildPath:function(t,i){var a=i.pointList;if(!(a.length<2))if(i.smooth){var o=n(a.slice(0,-2),i.smooth,!1,i.smoothConstraint);t.moveTo(a[0][0],a[0][1]);for(var r,s,l,h=a.length,m=0;h-3>m;m++)r=o[2*m],s=o[2*m+1],l=a[m+1],t.bezierCurveTo(r[0],r[1],s[0],s[1],l[0],l[1]);t.lineTo(a[h-2][0],a[h-2][1]),t.lineTo(a[h-1][0],a[h-1][1]),t.lineTo(a[0][0],a[0][1])}else e("zrender/shape/Polygon").prototype.buildPath(t,i)}},a.inherits(t,i),t}),i("echarts/chart/bar",["require","./base","zrender/shape/Rectangle","../component/axis","../component/grid","../component/dataZoom","../config","../util/ecData","zrender/tool/util","zrender/tool/color","../chart"],function(e){function t(e,t,n,a,o){i.call(this,e,t,n,a,o),this.refresh(a)}var i=e("./base"),n=e("zrender/shape/Rectangle");e("../component/axis"),e("../component/grid"),e("../component/dataZoom");var a=e("../config");a.bar={zlevel:0,z:2,clickable:!0,legendHoverLink:!0,xAxisIndex:0,yAxisIndex:0,barMinHeight:0,barGap:"30%",barCategoryGap:"20%",itemStyle:{normal:{barBorderColor:"#fff",barBorderRadius:0,barBorderWidth:0,label:{show:!1}},emphasis:{barBorderColor:"#fff",barBorderRadius:0,barBorderWidth:0,label:{show:!1}}}};var o=e("../util/ecData"),r=e("zrender/tool/util"),s=e("zrender/tool/color");return t.prototype={type:a.CHART_TYPE_BAR,_buildShape:function(){this._buildPosition()},_buildNormal:function(e,t,i,o,r){for(var s,l,h,m,V,U,d,p,c,u,y,g,b=this.series,f=i[0][0],k=b[f],x="horizontal"==r,_=this.component.xAxis,L=this.component.yAxis,W=x?_.getAxis(k.xAxisIndex):L.getAxis(k.yAxisIndex),X=this._mapSize(W,i),v=X.gap,w=X.barGap,K=X.barWidthMap,I=X.barMaxWidthMap,J=X.barWidth,C=X.barMinHeightMap,S=X.interval,E=this.deepQuery([this.ecTheme,a],"island.r"),F=0,T=t;T>F&&null!=W.getNameByIndex(F);F++){x?m=W.getCoordByIndex(F)-v/2:V=W.getCoordByIndex(F)+v/2;for(var z=0,A=i.length;A>z;z++){var M=b[i[z][0]].yAxisIndex||0,O=b[i[z][0]].xAxisIndex||0;s=x?L.getAxis(M):_.getAxis(O),d=U=c=p=s.getCoord(0);for(var P=0,D=i[z].length;D>P;P++)f=i[z][P],k=b[f],y=k.data[F],g=this.getDataFromOption(y,"-"),o[f]=o[f]||{min:Number.POSITIVE_INFINITY,max:Number.NEGATIVE_INFINITY,sum:0,counter:0,average:0},h=Math.min(I[f]||Number.MAX_VALUE,K[f]||J),"-"!==g&&(g>0?(l=P>0?s.getCoordSize(g):x?d-s.getCoord(g):s.getCoord(g)-d,1===D&&C[f]>l&&(l=C[f]),x?(U-=l,V=U):(m=U,U+=l)):0>g?(l=P>0?s.getCoordSize(g):x?s.getCoord(g)-c:c-s.getCoord(g),1===D&&C[f]>l&&(l=C[f]),x?(V=p,p+=l):(p-=l,m=p)):(l=0,x?(U-=l,V=U):(m=U,U+=l)),o[f][F]=x?m+h/2:V-h/2,o[f].min>g&&(o[f].min=g,x?(o[f].minY=V,o[f].minX=o[f][F]):(o[f].minX=m+l,o[f].minY=o[f][F])),o[f].maxP;P++)f=i[z][P],k=b[f],y=k.data[F],g=this.getDataFromOption(y,"-"),h=Math.min(I[f]||Number.MAX_VALUE,K[f]||J),"-"==g&&this.deepQuery([y,k,this.option],"calculable")&&(x?(U-=E,V=U):(m=U,U+=E),u=this._getBarItem(f,F,W.getNameByIndex(F),m,V-(x?0:h),x?h:E,x?E:h,x?"vertical":"horizontal"),u.hoverable=!1,u.draggable=!1,u.style.lineWidth=1,u.style.brushType="stroke",u.style.strokeColor=k.calculableHolderColor||this.ecTheme.calculableHolderColor||a.calculableHolderColor,this.shapeList.push(new n(u)));x?m+=h+w:V-=h+w}}this._calculMarkMapXY(o,i,x?"y":"x")},_buildHorizontal:function(e,t,i,n){return this._buildNormal(e,t,i,n,"horizontal")},_buildVertical:function(e,t,i,n){return this._buildNormal(e,t,i,n,"vertical")},_buildOther:function(e,t,i,a){for(var o=this.series,r=0,s=i.length;s>r;r++)for(var l=0,h=i[r].length;h>l;l++){var m=i[r][l],V=o[m],U=V.xAxisIndex||0,d=this.component.xAxis.getAxis(U),p=d.getCoord(0),c=V.yAxisIndex||0,u=this.component.yAxis.getAxis(c),y=u.getCoord(0);a[m]=a[m]||{min0:Number.POSITIVE_INFINITY,min1:Number.POSITIVE_INFINITY,max0:Number.NEGATIVE_INFINITY,max1:Number.NEGATIVE_INFINITY,sum0:0,sum1:0,counter0:0,counter1:0,average0:0,average1:0};for(var g=0,b=V.data.length;b>g;g++){var f=V.data[g],k=this.getDataFromOption(f,"-");if(k instanceof Array){var x,_,L=d.getCoord(k[0]),W=u.getCoord(k[1]),X=[f,V],v=this.deepQuery(X,"barWidth")||10,w=this.deepQuery(X,"barHeight");null!=w?(x="horizontal",k[0]>0?(v=L-p,L-=v):v=k[0]<0?p-L:0,_=this._getBarItem(m,g,k[0],L,W-w/2,v,w,x)):(x="vertical",k[1]>0?w=y-W:k[1]<0?(w=W-y,W-=w):w=0,_=this._getBarItem(m,g,k[0],L-v/2,W,v,w,x)),this.shapeList.push(new n(_)),L=d.getCoord(k[0]),W=u.getCoord(k[1]),a[m].min0>k[0]&&(a[m].min0=k[0],a[m].minY0=W,a[m].minX0=L),a[m].max0k[1]&&(a[m].min1=k[1],a[m].minY1=W,a[m].minX1=L),a[m].max1=a&&(d=Math.floor(t.length/n),a=1);else if(n="string"==typeof U&&U.match(/%$/)?(e.getGap()*(100-parseFloat(U))/100).toFixed(2)-0:e.getGap()-U,"string"==typeof V&&V.match(/%$/)?(V=parseFloat(V)/100,a=+((n-m)/((t.length-1)*V+t.length-h)).toFixed(2),V=a*V):(V=parseFloat(V),a=+((n-m-V*(t.length-1))/(t.length-h)).toFixed(2)),0>=a)return this._mapSize(e,t,!0)}else if(n=h>1?"string"==typeof U&&U.match(/%$/)?+(e.getGap()*(100-parseFloat(U))/100).toFixed(2):e.getGap()-U:m,a=0,V=h>1?+((n-m)/(h-1)).toFixed(2):0,0>V)return this._mapSize(e,t,!0);return this._recheckBarMaxWidth(t,r,s,l,n,a,V,d)},_findSpecialBarSzie:function(e,t){for(var i,n,a,o,r=this.series,s={},l={},h={},m=0,V=0,U=0,d=e.length;d>U;U++)for(var p={barWidth:!1,barMaxWidth:!1},c=0,u=e[U].length;u>c;c++){var y=e[U][c],g=r[y];if(!t){if(p.barWidth)s[y]=i;else if(i=this.query(g,"barWidth"),null!=i){s[y]=i,V+=i,m++,p.barWidth=!0;for(var b=0,f=c;f>b;b++){var k=e[U][b];s[k]=i}}if(p.barMaxWidth)l[y]=n;else if(n=this.query(g,"barMaxWidth"),null!=n){l[y]=n,p.barMaxWidth=!0;for(var b=0,f=c;f>b;b++){var k=e[U][b];l[k]=n}}}h[y]=this.query(g,"barMinHeight"),a=null!=a?a:this.query(g,"barGap"),o=null!=o?o:this.query(g,"barCategoryGap")}return{barWidthMap:s,barMaxWidthMap:l,barMinHeightMap:h,sBarWidth:i,sBarMaxWidth:n,sBarWidthCounter:m,sBarWidthTotal:V,barGap:a,barCategoryGap:o}},_recheckBarMaxWidth:function(e,t,i,n,a,o,r,s){for(var l=0,h=e.length;h>l;l++){var m=e[l][0];i[m]&&i[m]0&&b.height>g&&b.width>g?(b.y+=g/2,b.height-=g,b.x+=g/2,b.width-=g):b.brushType="fill",m.highlightStyle.textColor=m.highlightStyle.color,m=this.addLabel(m,U,d,i,h);for(var f=[b,m.highlightStyle],k=0,x=f.length;x>k;k++){var _=f[k].textPosition;if("insideLeft"===_||"insideRight"===_||"insideTop"===_||"insideBottom"===_){var L=5;switch(_){case"insideLeft":f[k].textX=b.x+L,f[k].textY=b.y+b.height/2,f[k].textAlign="left",f[k].textBaseline="middle";break;case"insideRight":f[k].textX=b.x+b.width-L,f[k].textY=b.y+b.height/2,f[k].textAlign="right",f[k].textBaseline="middle";break;case"insideTop":f[k].textX=b.x+b.width/2,f[k].textY=b.y+L/2,f[k].textAlign="center",f[k].textBaseline="top";break;case"insideBottom":f[k].textX=b.x+b.width/2,f[k].textY=b.y+b.height-L/2,f[k].textAlign="center",f[k].textBaseline="bottom"}f[k].textPosition="specific",f[k].textColor=f[k].textColor||"#fff"}}return this.deepQuery([d,U,this.option],"calculable")&&(this.setCalculable(m),m.draggable=!0),o.pack(m,V[e],e,V[e].data[t],t,i),m},getMarkCoord:function(e,t){var i,n,a=this.series[e],o=this.xMarkMap[e],r=this.component.xAxis.getAxis(a.xAxisIndex),s=this.component.yAxis.getAxis(a.yAxisIndex);if(!t.type||"max"!==t.type&&"min"!==t.type&&"average"!==t.type)if(o.isHorizontal){i="string"==typeof t.xAxis&&r.getIndexByName?r.getIndexByName(t.xAxis):t.xAxis||0;var l=o[i];l=null!=l?l:"string"!=typeof t.xAxis&&r.getCoordByIndex?r.getCoordByIndex(t.xAxis||0):r.getCoord(t.xAxis||0),n=[l,s.getCoord(t.yAxis||0)]}else{i="string"==typeof t.yAxis&&s.getIndexByName?s.getIndexByName(t.yAxis):t.yAxis||0;var h=o[i];h=null!=h?h:"string"!=typeof t.yAxis&&s.getCoordByIndex?s.getCoordByIndex(t.yAxis||0):s.getCoord(t.yAxis||0),n=[r.getCoord(t.xAxis||0),h]}else{var m=null!=t.valueIndex?t.valueIndex:null!=o.maxX0?"1":"";n=[o[t.type+"X"+m],o[t.type+"Y"+m],o[t.type+"Line"+m],o[t.type+m]]}return n},refresh:function(e){e&&(this.option=e,this.series=e.series),this.backupShapeList(),this._buildShape()},addDataAnimation:function(e,t){function i(){c--,0===c&&t&&t()}for(var n=this.series,a={},r=0,s=e.length;s>r;r++)a[e[r][0]]=e[r];for(var l,h,m,V,U,d,p,c=0,r=this.shapeList.length-1;r>=0;r--)if(d=o.get(this.shapeList[r],"seriesIndex"),a[d]&&!a[d][3]&&"rectangle"===this.shapeList[r].type){if(p=o.get(this.shapeList[r],"dataIndex"),U=n[d],a[d][2]&&p===U.data.length-1){this.zr.delShape(this.shapeList[r].id);continue}if(!a[d][2]&&0===p){this.zr.delShape(this.shapeList[r].id);continue}"horizontal"===this.shapeList[r]._orient?(V=this.component.yAxis.getAxis(U.yAxisIndex||0).getGap(),m=a[d][2]?-V:V,l=0):(h=this.component.xAxis.getAxis(U.xAxisIndex||0).getGap(),l=a[d][2]?h:-h,m=0),this.shapeList[r].position=[0,0],c++,this.zr.animate(this.shapeList[r].id,"").when(this.query(this.option,"animationDurationUpdate"),{position:[l,m]}).done(i).start()}c||t&&t()}},r.inherits(t,i),e("../chart").define("bar",t),t}),i("echarts/chart/scatter",["require","./base","../util/shape/Symbol","../component/axis","../component/grid","../component/dataZoom","../component/dataRange","../config","zrender/tool/util","zrender/tool/color","../chart"],function(e){function t(e,t,n,a,o){i.call(this,e,t,n,a,o),this.refresh(a)}var i=e("./base"),n=e("../util/shape/Symbol");e("../component/axis"),e("../component/grid"),e("../component/dataZoom"),e("../component/dataRange");var a=e("../config");a.scatter={zlevel:0,z:2,clickable:!0,legendHoverLink:!0,xAxisIndex:0,yAxisIndex:0,symbolSize:4,large:!1,largeThreshold:2e3,itemStyle:{normal:{label:{show:!1}},emphasis:{label:{show:!1}}}};var o=e("zrender/tool/util"),r=e("zrender/tool/color");return t.prototype={type:a.CHART_TYPE_SCATTER,_buildShape:function(){var e=this.series;this._sIndex2ColorMap={},this._symbol=this.option.symbolList,this._sIndex2ShapeMap={},this.selectedMap={},this.xMarkMap={};for(var t,i,n,o,s=this.component.legend,l=[],h=0,m=e.length;m>h;h++)if(t=e[h],i=t.name,t.type===a.CHART_TYPE_SCATTER){if(e[h]=this.reformOption(e[h]),this.legendHoverLink=e[h].legendHoverLink||this.legendHoverLink,this._sIndex2ShapeMap[h]=this.query(t,"symbol")||this._symbol[h%this._symbol.length],s){if(this.selectedMap[i]=s.isSelected(i),this._sIndex2ColorMap[h]=r.alpha(s.getColor(i),.5),n=s.getItemShape(i)){var o=this._sIndex2ShapeMap[h];n.style.brushType=o.match("empty")?"stroke":"both",o=o.replace("empty","").toLowerCase(),o.match("rectangle")&&(n.style.x+=Math.round((n.style.width-n.style.height)/2),n.style.width=n.style.height),o.match("star")&&(n.style.n=o.replace("star","")-0||5,o="star"),o.match("image")&&(n.style.image=o.replace(new RegExp("^image:\\/\\/"),""),n.style.x+=Math.round((n.style.width-n.style.height)/2),n.style.width=n.style.height,o="image"),n.style.iconType=o,s.setItemShape(i,n)}}else this.selectedMap[i]=!0,this._sIndex2ColorMap[h]=r.alpha(this.zr.getColor(h),.5);this.selectedMap[i]&&l.push(h)}this._buildSeries(l),this.addShapeList()},_buildSeries:function(e){if(0!==e.length){for(var t,i,n,a,o,r,s,l,h=this.series,m={},V=0,U=e.length;U>V;V++)if(t=e[V],i=h[t],0!==i.data.length){o=this.component.xAxis.getAxis(i.xAxisIndex||0),r=this.component.yAxis.getAxis(i.yAxisIndex||0),m[t]=[];for(var d=0,p=i.data.length;p>d;d++)n=i.data[d],a=this.getDataFromOption(n,"-"),"-"===a||a.length<2||(s=o.getCoord(a[0]),l=r.getCoord(a[1]),m[t].push([s,l,d,n.name||""]));this.xMarkMap[t]=this._markMap(o,r,i.data,m[t]),this.buildMark(t)}this._buildPointList(m)}},_markMap:function(e,t,i,n){for(var a,o={min0:Number.POSITIVE_INFINITY,max0:Number.NEGATIVE_INFINITY,sum0:0,counter0:0,average0:0,min1:Number.POSITIVE_INFINITY,max1:Number.NEGATIVE_INFINITY,sum1:0,counter1:0,average1:0},r=0,s=n.length;s>r;r++)a=i[n[r][2]].value||i[n[r][2]],o.min0>a[0]&&(o.min0=a[0],o.minY0=n[r][1],o.minX0=n[r][0]),o.max0a[1]&&(o.min1=a[1],o.minY1=n[r][1],o.minX1=n[r][0]),o.max1t.largeThreshold)this.shapeList.push(this._getLargeSymbol(t,i,this.getItemStyleColor(this.query(t,"itemStyle.normal.color"),r,-1)||this._sIndex2ColorMap[r]));else for(var s=0,l=i.length;l>s;s++)n=i[s],a=this._getSymbol(r,n[2],n[3],n[0],n[1]),a&&this.shapeList.push(a)},_getSymbol:function(e,t,i,n,a){var o,r=this.series,s=r[e],l=s.data[t],h=this.component.dataRange;if(h){if(o=isNaN(l[2])?this._sIndex2ColorMap[e]:h.getColor(l[2]),!o)return null}else o=this._sIndex2ColorMap[e];var m=this.getSymbolShape(s,e,l,t,i,n,a,this._sIndex2ShapeMap[e],o,"rgba(0,0,0,0)","vertical");return m.zlevel=s.zlevel,m.z=s.z,m._main=!0,m},_getLargeSymbol:function(e,t,i){return new n({zlevel:e.zlevel,z:e.z,_main:!0,hoverable:!1,style:{pointList:t,color:i,strokeColor:i},highlightStyle:{pointList:[]}})},getMarkCoord:function(e,t){var i,n=this.series[e],a=this.xMarkMap[e],o=this.component.xAxis.getAxis(n.xAxisIndex),r=this.component.yAxis.getAxis(n.yAxisIndex);if(!t.type||"max"!==t.type&&"min"!==t.type&&"average"!==t.type)i=["string"!=typeof t.xAxis&&o.getCoordByIndex?o.getCoordByIndex(t.xAxis||0):o.getCoord(t.xAxis||0),"string"!=typeof t.yAxis&&r.getCoordByIndex?r.getCoordByIndex(t.yAxis||0):r.getCoord(t.yAxis||0)];else{var s=null!=t.valueIndex?t.valueIndex:1;i=[a[t.type+"X"+s],a[t.type+"Y"+s],a[t.type+"Line"+s],a[t.type+s]]}return i},refresh:function(e){e&&(this.option=e,this.series=e.series),this.backupShapeList(),this._buildShape()},ondataRange:function(e,t){this.component.dataRange&&(this.refresh(),t.needRefresh=!0)}},o.inherits(t,i),e("../chart").define("scatter",t),t}),i("echarts/component/dataRange",["require","./base","zrender/shape/Text","zrender/shape/Rectangle","../util/shape/HandlePolygon","../config","zrender/tool/util","zrender/tool/event","zrender/tool/area","zrender/tool/color","../component"],function(e){function t(e,t,n,a,o){i.call(this,e,t,n,a,o);var s=this;s._ondrift=function(e,t){return s.__ondrift(this,e,t)},s._ondragend=function(){return s.__ondragend()},s._dataRangeSelected=function(e){return s.__dataRangeSelected(e)},s._dispatchHoverLink=function(e){return s.__dispatchHoverLink(e)},s._onhoverlink=function(e){return s.__onhoverlink(e); + +},this._selectedMap={},this._range={},this.refresh(a),t.bind(r.EVENT.HOVER,this._onhoverlink)}var i=e("./base"),n=e("zrender/shape/Text"),a=e("zrender/shape/Rectangle"),o=e("../util/shape/HandlePolygon"),r=e("../config");r.dataRange={zlevel:0,z:4,show:!0,orient:"vertical",x:"left",y:"bottom",backgroundColor:"rgba(0,0,0,0)",borderColor:"#ccc",borderWidth:0,padding:5,itemGap:10,itemWidth:20,itemHeight:14,precision:0,splitNumber:5,splitList:null,calculable:!1,selectedMode:!0,hoverLink:!0,realtime:!0,color:["#006edd","#e0ffff"],textStyle:{color:"#333"}};var s=e("zrender/tool/util"),l=e("zrender/tool/event"),h=e("zrender/tool/area"),m=e("zrender/tool/color");return t.prototype={type:r.COMPONENT_TYPE_DATARANGE,_textGap:10,_buildShape:function(){if(this._itemGroupLocation=this._getItemGroupLocation(),this._buildBackground(),this._isContinuity()?this._buildGradient():this._buildItem(),this.dataRangeOption.show)for(var e=0,t=this.shapeList.length;t>e;e++)this.zr.addShape(this.shapeList[e]);this._syncShapeFromRange()},_buildItem:function(){var e,t,i,o,r=this._valueTextList,s=r.length,l=this.getFont(this.dataRangeOption.textStyle),m=this._itemGroupLocation.x,V=this._itemGroupLocation.y,U=this.dataRangeOption.itemWidth,d=this.dataRangeOption.itemHeight,p=this.dataRangeOption.itemGap,c=h.getTextHeight("国",l);"vertical"==this.dataRangeOption.orient&&"right"==this.dataRangeOption.x&&(m=this._itemGroupLocation.x+this._itemGroupLocation.width-U);var u=!0;this.dataRangeOption.text&&(u=!1,this.dataRangeOption.text[0]&&(i=this._getTextShape(m,V,this.dataRangeOption.text[0]),"horizontal"==this.dataRangeOption.orient?m+=h.getTextWidth(this.dataRangeOption.text[0],l)+this._textGap:(V+=c+this._textGap,i.style.y+=c/2+this._textGap,i.style.textBaseline="bottom"),this.shapeList.push(new n(i))));for(var y=0;s>y;y++)e=r[y],o=this.getColorByIndex(y),t=this._getItemShape(m,V,U,d,this._selectedMap[y]?o:"#ccc"),t._idx=y,t.onmousemove=this._dispatchHoverLink,this.dataRangeOption.selectedMode&&(t.clickable=!0,t.onclick=this._dataRangeSelected),this.shapeList.push(new a(t)),u&&(i={zlevel:this.getZlevelBase(),z:this.getZBase(),style:{x:m+U+5,y:V,color:this._selectedMap[y]?this.dataRangeOption.textStyle.color:"#ccc",text:r[y],textFont:l,textBaseline:"top"},highlightStyle:{brushType:"fill"}},"vertical"==this.dataRangeOption.orient&&"right"==this.dataRangeOption.x&&(i.style.x-=U+10,i.style.textAlign="right"),i._idx=y,i.onmousemove=this._dispatchHoverLink,this.dataRangeOption.selectedMode&&(i.clickable=!0,i.onclick=this._dataRangeSelected),this.shapeList.push(new n(i))),"horizontal"==this.dataRangeOption.orient?m+=U+(u?5:0)+(u?h.getTextWidth(e,l):0)+p:V+=d+p;!u&&this.dataRangeOption.text[1]&&("horizontal"==this.dataRangeOption.orient?m=m-p+this._textGap:V=V-p+this._textGap,i=this._getTextShape(m,V,this.dataRangeOption.text[1]),"horizontal"!=this.dataRangeOption.orient&&(i.style.y-=5,i.style.textBaseline="top"),this.shapeList.push(new n(i)))},_buildGradient:function(){var t,i,o=this.getFont(this.dataRangeOption.textStyle),r=this._itemGroupLocation.x,s=this._itemGroupLocation.y,l=this.dataRangeOption.itemWidth,m=this.dataRangeOption.itemHeight,V=h.getTextHeight("国",o),U=10,d=!0;this.dataRangeOption.text&&(d=!1,this.dataRangeOption.text[0]&&(i=this._getTextShape(r,s,this.dataRangeOption.text[0]),"horizontal"==this.dataRangeOption.orient?r+=h.getTextWidth(this.dataRangeOption.text[0],o)+this._textGap:(s+=V+this._textGap,i.style.y+=V/2+this._textGap,i.style.textBaseline="bottom"),this.shapeList.push(new n(i))));for(var p=e("zrender/tool/color"),c=1/(this.dataRangeOption.color.length-1),u=[],y=0,g=this.dataRangeOption.color.length;g>y;y++)u.push([y*c,this.dataRangeOption.color[y]]);"horizontal"==this.dataRangeOption.orient?(t={zlevel:this.getZlevelBase(),z:this.getZBase(),style:{x:r,y:s,width:l*U,height:m,color:p.getLinearGradient(r,s,r+l*U,s,u)},hoverable:!1},r+=l*U+this._textGap):(t={zlevel:this.getZlevelBase(),z:this.getZBase(),style:{x:r,y:s,width:l,height:m*U,color:p.getLinearGradient(r,s,r,s+m*U,u)},hoverable:!1},s+=m*U+this._textGap),this.shapeList.push(new a(t)),this._calculableLocation=t.style,this.dataRangeOption.calculable&&(this._buildFiller(),this._bulidMask(),this._bulidHandle()),this._buildIndicator(),!d&&this.dataRangeOption.text[1]&&(i=this._getTextShape(r,s,this.dataRangeOption.text[1]),this.shapeList.push(new n(i)))},_buildIndicator:function(){var e,t,i=this._calculableLocation.x,n=this._calculableLocation.y,a=this._calculableLocation.width,r=this._calculableLocation.height,s=5;"horizontal"==this.dataRangeOption.orient?"bottom"!=this.dataRangeOption.y?(e=[[i,n+r],[i-s,n+r+s],[i+s,n+r+s]],t="bottom"):(e=[[i,n],[i-s,n-s],[i+s,n-s]],t="top"):"right"!=this.dataRangeOption.x?(e=[[i+a,n],[i+a+s,n-s],[i+a+s,n+s]],t="right"):(e=[[i,n],[i-s,n-s],[i-s,n+s]],t="left"),this._indicatorShape={style:{pointList:e,color:"#fff",__rect:{x:Math.min(e[0][0],e[1][0]),y:Math.min(e[0][1],e[1][1]),width:s*("horizontal"==this.dataRangeOption.orient?2:1),height:s*("horizontal"==this.dataRangeOption.orient?1:2)}},highlightStyle:{brushType:"fill",textPosition:t,textColor:this.dataRangeOption.textStyle.color},hoverable:!1},this._indicatorShape=new o(this._indicatorShape)},_buildFiller:function(){this._fillerShape={zlevel:this.getZlevelBase(),z:this.getZBase()+1,style:{x:this._calculableLocation.x,y:this._calculableLocation.y,width:this._calculableLocation.width,height:this._calculableLocation.height,color:"rgba(255,255,255,0)"},highlightStyle:{strokeColor:"rgba(255,255,255,0.5)",lineWidth:1},draggable:!0,ondrift:this._ondrift,ondragend:this._ondragend,onmousemove:this._dispatchHoverLink,_type:"filler"},this._fillerShape=new a(this._fillerShape),this.shapeList.push(this._fillerShape)},_bulidHandle:function(){var e,t,i,n,a,r,s,l,m=this._calculableLocation.x,V=this._calculableLocation.y,U=this._calculableLocation.width,d=this._calculableLocation.height,p=this.getFont(this.dataRangeOption.textStyle),c=h.getTextHeight("国",p),u=Math.max(h.getTextWidth(this._textFormat(this.dataRangeOption.max),p),h.getTextWidth(this._textFormat(this.dataRangeOption.min),p))+2;"horizontal"==this.dataRangeOption.orient?"bottom"!=this.dataRangeOption.y?(e=[[m,V],[m,V+d+c],[m-c,V+d+c],[m-1,V+d],[m-1,V]],t=m-u/2-c,i=V+d+c/2+2,n={x:m-u-c,y:V+d,width:u+c,height:c},a=[[m+U,V],[m+U,V+d+c],[m+U+c,V+d+c],[m+U+1,V+d],[m+U+1,V]],r=m+U+u/2+c,s=i,l={x:m+U,y:V+d,width:u+c,height:c}):(e=[[m,V+d],[m,V-c],[m-c,V-c],[m-1,V],[m-1,V+d]],t=m-u/2-c,i=V-c/2-2,n={x:m-u-c,y:V-c,width:u+c,height:c},a=[[m+U,V+d],[m+U,V-c],[m+U+c,V-c],[m+U+1,V],[m+U+1,V+d]],r=m+U+u/2+c,s=i,l={x:m+U,y:V-c,width:u+c,height:c}):(u+=c,"right"!=this.dataRangeOption.x?(e=[[m,V],[m+U+c,V],[m+U+c,V-c],[m+U,V-1],[m,V-1]],t=m+U+u/2+c/2,i=V-c/2,n={x:m+U,y:V-c,width:u+c,height:c},a=[[m,V+d],[m+U+c,V+d],[m+U+c,V+c+d],[m+U,V+1+d],[m,V+d+1]],r=t,s=V+d+c/2,l={x:m+U,y:V+d,width:u+c,height:c}):(e=[[m+U,V],[m-c,V],[m-c,V-c],[m,V-1],[m+U,V-1]],t=m-u/2-c/2,i=V-c/2,n={x:m-u-c,y:V-c,width:u+c,height:c},a=[[m+U,V+d],[m-c,V+d],[m-c,V+c+d],[m,V+1+d],[m+U,V+d+1]],r=t,s=V+d+c/2,l={x:m-u-c,y:V+d,width:u+c,height:c})),this._startShape={style:{pointList:e,text:this._textFormat(this.dataRangeOption.max),textX:t,textY:i,textFont:p,color:this.getColor(this.dataRangeOption.max),rect:n,x:e[0][0],y:e[0][1],_x:e[0][0],_y:e[0][1]}},this._startShape.highlightStyle={strokeColor:this._startShape.style.color,lineWidth:1},this._endShape={style:{pointList:a,text:this._textFormat(this.dataRangeOption.min),textX:r,textY:s,textFont:p,color:this.getColor(this.dataRangeOption.min),rect:l,x:a[0][0],y:a[0][1],_x:a[0][0],_y:a[0][1]}},this._endShape.highlightStyle={strokeColor:this._endShape.style.color,lineWidth:1},this._startShape.zlevel=this._endShape.zlevel=this.getZlevelBase(),this._startShape.z=this._endShape.z=this.getZBase()+1,this._startShape.draggable=this._endShape.draggable=!0,this._startShape.ondrift=this._endShape.ondrift=this._ondrift,this._startShape.ondragend=this._endShape.ondragend=this._ondragend,this._startShape.style.textColor=this._endShape.style.textColor=this.dataRangeOption.textStyle.color,this._startShape.style.textAlign=this._endShape.style.textAlign="center",this._startShape.style.textPosition=this._endShape.style.textPosition="specific",this._startShape.style.textBaseline=this._endShape.style.textBaseline="middle",this._startShape.style.width=this._endShape.style.width=0,this._startShape.style.height=this._endShape.style.height=0,this._startShape.style.textPosition=this._endShape.style.textPosition="specific",this._startShape=new o(this._startShape),this._endShape=new o(this._endShape),this.shapeList.push(this._startShape),this.shapeList.push(this._endShape)},_bulidMask:function(){var e=this._calculableLocation.x,t=this._calculableLocation.y,i=this._calculableLocation.width,n=this._calculableLocation.height;this._startMask={zlevel:this.getZlevelBase(),z:this.getZBase()+1,style:{x:e,y:t,width:"horizontal"==this.dataRangeOption.orient?0:i,height:"horizontal"==this.dataRangeOption.orient?n:0,color:"#ccc"},hoverable:!1},this._endMask={zlevel:this.getZlevelBase(),z:this.getZBase()+1,style:{x:"horizontal"==this.dataRangeOption.orient?e+i:e,y:"horizontal"==this.dataRangeOption.orient?t:t+n,width:"horizontal"==this.dataRangeOption.orient?0:i,height:"horizontal"==this.dataRangeOption.orient?n:0,color:"#ccc"},hoverable:!1},this._startMask=new a(this._startMask),this._endMask=new a(this._endMask),this.shapeList.push(this._startMask),this.shapeList.push(this._endMask)},_buildBackground:function(){var e=this.reformCssArray(this.dataRangeOption.padding);this.shapeList.push(new a({zlevel:this.getZlevelBase(),z:this.getZBase(),hoverable:!1,style:{x:this._itemGroupLocation.x-e[3],y:this._itemGroupLocation.y-e[0],width:this._itemGroupLocation.width+e[3]+e[1],height:this._itemGroupLocation.height+e[0]+e[2],brushType:0===this.dataRangeOption.borderWidth?"fill":"both",color:this.dataRangeOption.backgroundColor,strokeColor:this.dataRangeOption.borderColor,lineWidth:this.dataRangeOption.borderWidth}}))},_getItemGroupLocation:function(){var e=this._valueTextList,t=e.length,i=this.dataRangeOption.itemGap,n=this.dataRangeOption.itemWidth,a=this.dataRangeOption.itemHeight,o=0,r=0,s=this.getFont(this.dataRangeOption.textStyle),l=h.getTextHeight("国",s),m=10;if("horizontal"==this.dataRangeOption.orient){if(this.dataRangeOption.text||this._isContinuity())o=(this._isContinuity()?n*m+i:t*(n+i))+(this.dataRangeOption.text&&"undefined"!=typeof this.dataRangeOption.text[0]?h.getTextWidth(this.dataRangeOption.text[0],s)+this._textGap:0)+(this.dataRangeOption.text&&"undefined"!=typeof this.dataRangeOption.text[1]?h.getTextWidth(this.dataRangeOption.text[1],s)+this._textGap:0);else{n+=5;for(var V=0;t>V;V++)o+=n+h.getTextWidth(e[V],s)+i}o-=i,r=Math.max(l,a)}else{var U;if(this.dataRangeOption.text||this._isContinuity())r=(this._isContinuity()?a*m+i:t*(a+i))+(this.dataRangeOption.text&&"undefined"!=typeof this.dataRangeOption.text[0]?this._textGap+l:0)+(this.dataRangeOption.text&&"undefined"!=typeof this.dataRangeOption.text[1]?this._textGap+l:0),U=Math.max(h.getTextWidth(this.dataRangeOption.text&&this.dataRangeOption.text[0]||"",s),h.getTextWidth(this.dataRangeOption.text&&this.dataRangeOption.text[1]||"",s)),o=Math.max(n,U);else{r=(a+i)*t,n+=5,U=0;for(var V=0;t>V;V++)U=Math.max(U,h.getTextWidth(e[V],s));o=n+U}r-=i}var d,p=this.reformCssArray(this.dataRangeOption.padding),c=this.zr.getWidth();switch(this.dataRangeOption.x){case"center":d=Math.floor((c-o)/2);break;case"left":d=p[3]+this.dataRangeOption.borderWidth;break;case"right":d=c-o-p[1]-this.dataRangeOption.borderWidth;break;default:d=this.parsePercent(this.dataRangeOption.x,c),d=isNaN(d)?0:d}var u,y=this.zr.getHeight();switch(this.dataRangeOption.y){case"top":u=p[0]+this.dataRangeOption.borderWidth;break;case"bottom":u=y-r-p[2]-this.dataRangeOption.borderWidth;break;case"center":u=Math.floor((y-r)/2);break;default:u=this.parsePercent(this.dataRangeOption.y,y),u=isNaN(u)?0:u}if(this.dataRangeOption.calculable){var g=Math.max(h.getTextWidth(this.dataRangeOption.max,s),h.getTextWidth(this.dataRangeOption.min,s))+l;"horizontal"==this.dataRangeOption.orient?(g>d&&(d=g),d+o+g>c&&(d-=g)):(l>u&&(u=l),u+r+l>y&&(u-=l))}return{x:d,y:u,width:o,height:r}},_getTextShape:function(e,t,i){return{zlevel:this.getZlevelBase(),z:this.getZBase(),style:{x:"horizontal"==this.dataRangeOption.orient?e:this._itemGroupLocation.x+this._itemGroupLocation.width/2,y:"horizontal"==this.dataRangeOption.orient?this._itemGroupLocation.y+this._itemGroupLocation.height/2:t,color:this.dataRangeOption.textStyle.color,text:i,textFont:this.getFont(this.dataRangeOption.textStyle),textBaseline:"horizontal"==this.dataRangeOption.orient?"middle":"top",textAlign:"horizontal"==this.dataRangeOption.orient?"left":"center"},hoverable:!1}},_getItemShape:function(e,t,i,n,a){return{zlevel:this.getZlevelBase(),z:this.getZBase(),style:{x:e,y:t+1,width:i,height:n-2,color:a},highlightStyle:{strokeColor:a,lineWidth:1}}},__ondrift:function(e,t,i){var n=this._calculableLocation.x,a=this._calculableLocation.y,o=this._calculableLocation.width,r=this._calculableLocation.height;return"horizontal"==this.dataRangeOption.orient?e.style.x+t<=n?e.style.x=n:e.style.x+t+e.style.width>=n+o?e.style.x=n+o-e.style.width:e.style.x+=t:e.style.y+i<=a?e.style.y=a:e.style.y+i+e.style.height>=a+r?e.style.y=a+r-e.style.height:e.style.y+=i,"filler"==e._type?this._syncHandleShape():this._syncFillerShape(e),this.dataRangeOption.realtime&&this._dispatchDataRange(),!0},__ondragend:function(){this.isDragend=!0},ondragend:function(e,t){this.isDragend&&e.target&&(t.dragOut=!0,t.dragIn=!0,this.dataRangeOption.realtime||this._dispatchDataRange(),t.needRefresh=!1,this.isDragend=!1)},_syncShapeFromRange:function(){var e=this.dataRangeOption.range||{},t=e.start,i=e.end;if(t>i&&(t=[i,i=t][0]),this._range.end=null!=t?t:null!=this._range.end?this._range.end:0,this._range.start=null!=i?i:null!=this._range.start?this._range.start:100,100!=this._range.start||0!==this._range.end){if("horizontal"==this.dataRangeOption.orient){var n=this._fillerShape.style.width;this._fillerShape.style.x+=n*(100-this._range.start)/100,this._fillerShape.style.width=n*(this._range.start-this._range.end)/100}else{var a=this._fillerShape.style.height;this._fillerShape.style.y+=a*(100-this._range.start)/100,this._fillerShape.style.height=a*(this._range.start-this._range.end)/100}this.zr.modShape(this._fillerShape.id),this._syncHandleShape()}},_syncHandleShape:function(){var e=this._calculableLocation.x,t=this._calculableLocation.y,i=this._calculableLocation.width,n=this._calculableLocation.height;"horizontal"==this.dataRangeOption.orient?(this._startShape.style.x=this._fillerShape.style.x,this._startMask.style.width=this._startShape.style.x-e,this._endShape.style.x=this._fillerShape.style.x+this._fillerShape.style.width,this._endMask.style.x=this._endShape.style.x,this._endMask.style.width=e+i-this._endShape.style.x,this._range.start=Math.ceil(100-(this._startShape.style.x-e)/i*100),this._range.end=Math.floor(100-(this._endShape.style.x-e)/i*100)):(this._startShape.style.y=this._fillerShape.style.y,this._startMask.style.height=this._startShape.style.y-t,this._endShape.style.y=this._fillerShape.style.y+this._fillerShape.style.height,this._endMask.style.y=this._endShape.style.y,this._endMask.style.height=t+n-this._endShape.style.y,this._range.start=Math.ceil(100-(this._startShape.style.y-t)/n*100),this._range.end=Math.floor(100-(this._endShape.style.y-t)/n*100)),this._syncShape()},_syncFillerShape:function(e){var t,i,n=this._calculableLocation.x,a=this._calculableLocation.y,o=this._calculableLocation.width,r=this._calculableLocation.height;"horizontal"==this.dataRangeOption.orient?(t=this._startShape.style.x,i=this._endShape.style.x,e.id==this._startShape.id&&t>=i?(i=t,this._endShape.style.x=t):e.id==this._endShape.id&&t>=i&&(t=i,this._startShape.style.x=t),this._fillerShape.style.x=t,this._fillerShape.style.width=i-t,this._startMask.style.width=t-n,this._endMask.style.x=i,this._endMask.style.width=n+o-i,this._range.start=Math.ceil(100-(t-n)/o*100),this._range.end=Math.floor(100-(i-n)/o*100)):(t=this._startShape.style.y,i=this._endShape.style.y,e.id==this._startShape.id&&t>=i?(i=t,this._endShape.style.y=t):e.id==this._endShape.id&&t>=i&&(t=i,this._startShape.style.y=t),this._fillerShape.style.y=t,this._fillerShape.style.height=i-t,this._startMask.style.height=t-a,this._endMask.style.y=i,this._endMask.style.height=a+r-i,this._range.start=Math.ceil(100-(t-a)/r*100),this._range.end=Math.floor(100-(i-a)/r*100)),this._syncShape()},_syncShape:function(){this._startShape.position=[this._startShape.style.x-this._startShape.style._x,this._startShape.style.y-this._startShape.style._y],this._startShape.style.text=this._textFormat(this._gap*this._range.start+this.dataRangeOption.min),this._startShape.style.color=this._startShape.highlightStyle.strokeColor=this.getColor(this._gap*this._range.start+this.dataRangeOption.min),this._endShape.position=[this._endShape.style.x-this._endShape.style._x,this._endShape.style.y-this._endShape.style._y],this._endShape.style.text=this._textFormat(this._gap*this._range.end+this.dataRangeOption.min),this._endShape.style.color=this._endShape.highlightStyle.strokeColor=this.getColor(this._gap*this._range.end+this.dataRangeOption.min),this.zr.modShape(this._startShape.id),this.zr.modShape(this._endShape.id),this.zr.modShape(this._startMask.id),this.zr.modShape(this._endMask.id),this.zr.modShape(this._fillerShape.id),this.zr.refreshNextFrame()},_dispatchDataRange:function(){this.messageCenter.dispatch(r.EVENT.DATA_RANGE,null,{range:{start:this._range.end,end:this._range.start}},this.myChart)},__dataRangeSelected:function(e){if("single"===this.dataRangeOption.selectedMode)for(var t in this._selectedMap)this._selectedMap[t]=!1;var i=e.target._idx;this._selectedMap[i]=!this._selectedMap[i];var n,a;this._useCustomizedSplit()?(n=this._splitList[i].max,a=this._splitList[i].min):(n=(this._colorList.length-i)*this._gap+this.dataRangeOption.min,a=n-this._gap),this.messageCenter.dispatch(r.EVENT.DATA_RANGE_SELECTED,e.event,{selected:this._selectedMap,target:i,valueMax:n,valueMin:a},this.myChart),this.messageCenter.dispatch(r.EVENT.REFRESH,null,null,this.myChart)},__dispatchHoverLink:function(e){var t,i;if(this.dataRangeOption.calculable){var n,a=this.dataRangeOption.max-this.dataRangeOption.min;n="horizontal"==this.dataRangeOption.orient?(1-(l.getX(e.event)-this._calculableLocation.x)/this._calculableLocation.width)*a:(1-(l.getY(e.event)-this._calculableLocation.y)/this._calculableLocation.height)*a,t=n-.05*a,i=n+.05*a}else if(this._useCustomizedSplit()){var o=e.target._idx;i=this._splitList[o].max,t=this._splitList[o].min}else{var o=e.target._idx;i=(this._colorList.length-o)*this._gap+this.dataRangeOption.min,t=i-this._gap}this.messageCenter.dispatch(r.EVENT.DATA_RANGE_HOVERLINK,e.event,{valueMin:t,valueMax:i},this.myChart)},__onhoverlink:function(e){if(this.dataRangeOption.show&&this.dataRangeOption.hoverLink&&this._indicatorShape&&e&&null!=e.seriesIndex&&null!=e.dataIndex){var t=e.value;if(""===t||isNaN(t))return;tthis.dataRangeOption.max&&(t=this.dataRangeOption.max),this._indicatorShape.position="horizontal"==this.dataRangeOption.orient?[(this.dataRangeOption.max-t)/(this.dataRangeOption.max-this.dataRangeOption.min)*this._calculableLocation.width,0]:[0,(this.dataRangeOption.max-t)/(this.dataRangeOption.max-this.dataRangeOption.min)*this._calculableLocation.height],this._indicatorShape.style.text=this._textFormat(e.value),this._indicatorShape.style.color=this.getColor(t),this.zr.addHoverShape(this._indicatorShape)}},_textFormat:function(e,t){var i=this.dataRangeOption;if(e!==-Number.MAX_VALUE&&(e=(+e).toFixed(i.precision)),null!=t&&t!==Number.MAX_VALUE&&(t=(+t).toFixed(i.precision)),i.formatter){if("string"==typeof i.formatter)return i.formatter.replace("{value}",e===-Number.MAX_VALUE?"min":e).replace("{value2}",t===Number.MAX_VALUE?"max":t);if("function"==typeof i.formatter)return i.formatter.call(this.myChart,e,t)}return null==t?e:e===-Number.MAX_VALUE?"< "+t:t===Number.MAX_VALUE?"> "+e:e+" - "+t},_isContinuity:function(){var e=this.dataRangeOption;return!(e.splitList?e.splitList.length>0:e.splitNumber>0)||e.calculable},_useCustomizedSplit:function(){var e=this.dataRangeOption;return e.splitList&&e.splitList.length>0},_buildColorList:function(e){if(this._colorList=m.getGradientColors(this.dataRangeOption.color,Math.max((e-this.dataRangeOption.color.length)/(this.dataRangeOption.color.length-1),0)+1),this._colorList.length>e){for(var t=this._colorList.length,i=[this._colorList[0]],n=t/(e-1),a=1;e-1>a;a++)i.push(this._colorList[Math.floor(a*n)]);i.push(this._colorList[t-1]),this._colorList=i}if(this._useCustomizedSplit())for(var o=this._splitList,a=0,t=o.length;t>a;a++)o[a].color&&(this._colorList[a]=o[a].color)},_buildGap:function(e){if(!this._useCustomizedSplit()){var t=this.dataRangeOption.precision;for(this._gap=(this.dataRangeOption.max-this.dataRangeOption.min)/e;this._gap.toFixed(t)-0!=this._gap&&5>t;)t++;this.dataRangeOption.precision=t,this._gap=((this.dataRangeOption.max-this.dataRangeOption.min)/e).toFixed(t)-0}},_buildDataList:function(e){for(var t=this._valueTextList=[],i=this.dataRangeOption,n=this._useCustomizedSplit(),a=0;e>a;a++){this._selectedMap[a]=!0;var o="";if(n){var r=this._splitList[e-1-a];o=null!=r.label?r.label:null!=r.single?this._textFormat(r.single):this._textFormat(r.min,r.max)}else o=this._textFormat(a*this._gap+i.min,(a+1)*this._gap+i.min);t.unshift(o)}},_buildSplitList:function(){if(this._useCustomizedSplit())for(var e=this.dataRangeOption.splitList,t=this._splitList=[],i=0,n=e.length;n>i;i++){var a=e[i];if(!a||null==a.start&&null==a.end)throw new Error("Empty item exists in splitList!");var o={label:a.label,color:a.color};o.min=a.start,o.max=a.end,o.min>o.max&&(o.min=[o.max,o.max=o.min][0]),o.min===o.max&&(o.single=o.max),null==o.min&&(o.min=-Number.MAX_VALUE),null==o.max&&(o.max=Number.MAX_VALUE),t.push(o)}},refresh:function(e){if(e){this.option=e,this.option.dataRange=this.reformOption(this.option.dataRange);var t=this.dataRangeOption=this.option.dataRange;if(!this._useCustomizedSplit()&&(null==t.min||null==t.max))throw new Error("option.dataRange.min or option.dataRange.max has not been defined.");this.myChart.canvasSupported||(t.realtime=!1);var i=this._isContinuity()?100:this._useCustomizedSplit()?t.splitList.length:t.splitNumber;this._buildSplitList(),this._buildColorList(i),this._buildGap(i),this._buildDataList(i)}this.clear(),this._buildShape()},getColor:function(e){if(isNaN(e))return null;var t;if(this._useCustomizedSplit()){for(var i=this._splitList,n=0,a=i.length;a>n;n++)if(i[n].min<=e&&i[n].max>=e){t=n;break}}else{if(this.dataRangeOption.min==this.dataRangeOption.max)return this._colorList[0];if(ethis.dataRangeOption.max&&(e=this.dataRangeOption.max),this.dataRangeOption.calculable&&(e-(this._gap*this._range.start+this.dataRangeOption.min)>5e-5||e-(this._gap*this._range.end+this.dataRangeOption.min)<-5e-5))return null;t=this._colorList.length-Math.ceil((e-this.dataRangeOption.min)/(this.dataRangeOption.max-this.dataRangeOption.min)*this._colorList.length),t==this._colorList.length&&t--}return this._selectedMap[t]?this._colorList[t]:null},getColorByIndex:function(e){return e>=this._colorList.length?e=this._colorList.length-1:0>e&&(e=0),this._colorList[e]},onbeforDispose:function(){this.messageCenter.unbind(r.EVENT.HOVER,this._onhoverlink)}},s.inherits(t,i),e("../component").define("dataRange",t),t}),i("echarts/util/shape/HandlePolygon",["require","zrender/shape/Base","zrender/shape/Polygon","zrender/tool/util"],function(e){function t(e){i.call(this,e)}var i=e("zrender/shape/Base"),n=e("zrender/shape/Polygon"),a=e("zrender/tool/util");return t.prototype={type:"handle-polygon",buildPath:function(e,t){n.prototype.buildPath(e,t)},isCover:function(e,t){var i=this.transformCoordToLocal(e,t);e=i[0],t=i[1];var n=this.style.rect;return e>=n.x&&e<=n.x+n.width&&t>=n.y&&t<=n.y+n.height?!0:!1}},a.inherits(t,i),t}),i("echarts/chart/k",["require","./base","../util/shape/Candle","../component/axis","../component/grid","../component/dataZoom","../config","../util/ecData","zrender/tool/util","../chart"],function(e){function t(e,t,n,a,o){i.call(this,e,t,n,a,o),this.refresh(a)}var i=e("./base"),n=e("../util/shape/Candle");e("../component/axis"),e("../component/grid"),e("../component/dataZoom");var a=e("../config");a.k={zlevel:0,z:2,clickable:!0,hoverable:!0,legendHoverLink:!1,xAxisIndex:0,yAxisIndex:0,itemStyle:{normal:{color:"#fff",color0:"#00aa11",lineStyle:{width:1,color:"#ff3200",color0:"#00aa11"},label:{show:!1}},emphasis:{label:{show:!1}}}};var o=e("../util/ecData"),r=e("zrender/tool/util");return t.prototype={type:a.CHART_TYPE_K,_buildShape:function(){var e=this.series;this.selectedMap={};for(var t,i={top:[],bottom:[]},n=0,o=e.length;o>n;n++)e[n].type===a.CHART_TYPE_K&&(e[n]=this.reformOption(e[n]),this.legendHoverLink=e[n].legendHoverLink||this.legendHoverLink,t=this.component.xAxis.getAxis(e[n].xAxisIndex),t.type===a.COMPONENT_TYPE_AXIS_CATEGORY&&i[t.getPosition()].push(n));for(var r in i)i[r].length>0&&this._buildSinglePosition(r,i[r]);this.addShapeList()},_buildSinglePosition:function(e,t){var i=this._mapData(t),n=i.locationMap,a=i.maxDataLength;if(0!==a&&0!==n.length){this._buildHorizontal(t,a,n);for(var o=0,r=t.length;r>o;o++)this.buildMark(t[o])}},_mapData:function(e){for(var t,i,n=this.series,a=this.component.legend,o=[],r=0,s=0,l=e.length;l>s;s++)t=n[e[s]],i=t.name,this.selectedMap[i]=a?a.isSelected(i):!0,this.selectedMap[i]&&o.push(e[s]),r=Math.max(r,t.data.length);return{locationMap:o,maxDataLength:r}},_buildHorizontal:function(e,t,i){for(var n,a,o,r,s,l,h,m,V,U,d=this.series,p={},c=0,u=i.length;u>c;c++){n=i[c],a=d[n],o=a.xAxisIndex||0,r=this.component.xAxis.getAxis(o),h=a.barWidth||Math.floor(r.getGap()/2),U=a.barMaxWidth,U&&h>U&&(h=U),s=a.yAxisIndex||0,l=this.component.yAxis.getAxis(s),p[n]=[];for(var y=0,g=t;g>y&&null!=r.getNameByIndex(y);y++)m=a.data[y],V=this.getDataFromOption(m,"-"),"-"!==V&&4==V.length&&p[n].push([r.getCoordByIndex(y),h,l.getCoord(V[0]),l.getCoord(V[1]),l.getCoord(V[2]),l.getCoord(V[3]),y,r.getNameByIndex(y)])}this._buildKLine(e,p)},_buildKLine:function(e,t){for(var i,n,o,r,s,l,h,m,V,U,d,p,c,u,y,g,b,f=this.series,k=0,x=e.length;x>k;k++)if(b=e[k],d=f[b],u=t[b],this._isLarge(u)&&(u=this._getLargePointList(u)),d.type===a.CHART_TYPE_K&&null!=u){p=d,i=this.query(p,"itemStyle.normal.lineStyle.width"),n=this.query(p,"itemStyle.normal.lineStyle.color"),o=this.query(p,"itemStyle.normal.lineStyle.color0"),r=this.query(p,"itemStyle.normal.color"),s=this.query(p,"itemStyle.normal.color0"),l=this.query(p,"itemStyle.emphasis.lineStyle.width"),h=this.query(p,"itemStyle.emphasis.lineStyle.color"),m=this.query(p,"itemStyle.emphasis.lineStyle.color0"),V=this.query(p,"itemStyle.emphasis.color"),U=this.query(p,"itemStyle.emphasis.color0");for(var _=0,L=u.length;L>_;_++)y=u[_],c=d.data[y[6]],p=c,g=y[3]a;a++)n[a]=e[Math.floor(i/t*a)];return n},_getCandle:function(e,t,i,a,r,s,l,h,m,V,U,d,p,c,u){var y=this.series,g=y[e],b=g.data[t],f=[b,g],k={zlevel:g.zlevel,z:g.z,clickable:this.deepQuery(f,"clickable"),hoverable:this.deepQuery(f,"hoverable"),style:{x:a,y:[s,l,h,m],width:r,color:V,strokeColor:d,lineWidth:U,brushType:"both"},highlightStyle:{color:p,strokeColor:u,lineWidth:c},_seriesIndex:e};return k=this.addLabel(k,g,b,i),o.pack(k,g,e,b,t,i),k=new n(k)},getMarkCoord:function(e,t){var i=this.series[e],n=this.component.xAxis.getAxis(i.xAxisIndex),a=this.component.yAxis.getAxis(i.yAxisIndex);return["string"!=typeof t.xAxis&&n.getCoordByIndex?n.getCoordByIndex(t.xAxis||0):n.getCoord(t.xAxis||0),"string"!=typeof t.yAxis&&a.getCoordByIndex?a.getCoordByIndex(t.yAxis||0):a.getCoord(t.yAxis||0)]},refresh:function(e){e&&(this.option=e,this.series=e.series),this.backupShapeList(),this._buildShape()},addDataAnimation:function(e,t){function i(){p--,0===p&&t&&t()}for(var n=this.series,a={},r=0,s=e.length;s>r;r++)a[e[r][0]]=e[r];for(var l,h,m,V,U,d,p=0,r=0,s=this.shapeList.length;s>r;r++)if(U=this.shapeList[r]._seriesIndex,a[U]&&!a[U][3]&&"candle"===this.shapeList[r].type){if(d=o.get(this.shapeList[r],"dataIndex"),V=n[U],a[U][2]&&d===V.data.length-1){this.zr.delShape(this.shapeList[r].id);continue}if(!a[U][2]&&0===d){this.zr.delShape(this.shapeList[r].id);continue}h=this.component.xAxis.getAxis(V.xAxisIndex||0).getGap(),l=a[U][2]?h:-h,m=0,p++,this.zr.animate(this.shapeList[r].id,"").when(this.query(this.option,"animationDurationUpdate"),{position:[l,m]}).done(i).start()}p||t&&t()}},r.inherits(t,i),e("../chart").define("k",t),t}),i("echarts/chart/pie",["require","./base","zrender/shape/Text","zrender/shape/Ring","zrender/shape/Circle","zrender/shape/Sector","zrender/shape/Polyline","../config","../util/ecData","zrender/tool/util","zrender/tool/math","zrender/tool/color","../chart"],function(e){function t(e,t,n,a,o){i.call(this,e,t,n,a,o);var r=this;r.shapeHandler.onmouseover=function(e){var t=e.target,i=h.get(t,"seriesIndex"),n=h.get(t,"dataIndex"),a=h.get(t,"special"),o=[t.style.x,t.style.y],s=t.style.startAngle,l=t.style.endAngle,m=((l+s)/2+360)%360,V=t.highlightStyle.color,U=r.getLabel(i,n,a,o,m,V,!0);U&&r.zr.addHoverShape(U);var d=r.getLabelLine(i,n,o,t.style.r0,t.style.r,m,V,!0);d&&r.zr.addHoverShape(d)},this.refresh(a)}var i=e("./base"),n=e("zrender/shape/Text"),a=e("zrender/shape/Ring"),o=e("zrender/shape/Circle"),r=e("zrender/shape/Sector"),s=e("zrender/shape/Polyline"),l=e("../config");l.pie={zlevel:0,z:2,clickable:!0,legendHoverLink:!0,center:["50%","50%"],radius:[0,"75%"],clockWise:!0,startAngle:90,minAngle:0,selectedOffset:10,itemStyle:{normal:{borderColor:"rgba(0,0,0,0)",borderWidth:1,label:{show:!0,position:"outer"},labelLine:{show:!0,length:20,lineStyle:{width:1,type:"solid"}}},emphasis:{borderColor:"rgba(0,0,0,0)",borderWidth:1,label:{show:!1},labelLine:{show:!1,length:20,lineStyle:{width:1,type:"solid"}}}}};var h=e("../util/ecData"),m=e("zrender/tool/util"),V=e("zrender/tool/math"),U=e("zrender/tool/color");return t.prototype={type:l.CHART_TYPE_PIE,_buildShape:function(){var e=this.series,t=this.component.legend;this.selectedMap={},this._selected={};var i,n,r;this._selectedMode=!1;for(var s,m=0,V=e.length;V>m;m++)if(e[m].type===l.CHART_TYPE_PIE){if(e[m]=this.reformOption(e[m]),this.legendHoverLink=e[m].legendHoverLink||this.legendHoverLink,s=e[m].name||"",this.selectedMap[s]=t?t.isSelected(s):!0,!this.selectedMap[s])continue;i=this.parseCenter(this.zr,e[m].center),n=this.parseRadius(this.zr,e[m].radius),this._selectedMode=this._selectedMode||e[m].selectedMode,this._selected[m]=[],this.deepQuery([e[m],this.option],"calculable")&&(r={zlevel:e[m].zlevel,z:e[m].z,hoverable:!1,style:{x:i[0],y:i[1],r0:n[0]<=10?0:n[0]-10,r:n[1]+10,brushType:"stroke",lineWidth:1,strokeColor:e[m].calculableHolderColor||this.ecTheme.calculableHolderColor||l.calculableHolderColor}},h.pack(r,e[m],m,void 0,-1),this.setCalculable(r),r=n[0]<=10?new o(r):new a(r),this.shapeList.push(r)),this._buildSinglePie(m),this.buildMark(m)}this.addShapeList()},_buildSinglePie:function(e){for(var t,i=this.series,n=i[e],a=n.data,o=this.component.legend,r=0,s=0,l=0,h=Number.NEGATIVE_INFINITY,m=[],V=0,U=a.length;U>V;V++)t=a[V].name, +this.selectedMap[t]=o?o.isSelected(t):!0,this.selectedMap[t]&&!isNaN(a[V].value)&&(0!==+a[V].value?r++:s++,l+=+a[V].value,h=Math.max(h,+a[V].value));if(0!==l){for(var d,p,c,u,y,g,b=100,f=n.clockWise,k=(n.startAngle.toFixed(2)-0+360)%360,x=n.minAngle||.01,_=360-x*r-.01*s,L=n.roseType,V=0,U=a.length;U>V;V++)if(t=a[V].name,this.selectedMap[t]&&!isNaN(a[V].value)){if(p=o?o.getColor(t):this.zr.getColor(V),b=a[V].value/l,d="area"!=L?f?k-b*_-(0!==b?x:.01):b*_+k+(0!==b?x:.01):f?k-360/U:360/U+k,d=d.toFixed(2)-0,b=(100*b).toFixed(2),c=this.parseCenter(this.zr,n.center),u=this.parseRadius(this.zr,n.radius),y=+u[0],g=+u[1],"radius"===L?g=a[V].value/h*(g-y)*.8+.2*(g-y)+y:"area"===L&&(g=Math.sqrt(a[V].value/h)*(g-y)+y),f){var W;W=k,k=d,d=W}this._buildItem(m,e,V,b,a[V].selected,c,y,g,k,d,p),f||(k=d)}this._autoLabelLayout(m,c,g);for(var V=0,U=m.length;U>V;V++)this.shapeList.push(m[V]);m=null}},_buildItem:function(e,t,i,n,a,o,r,s,l,m,V){var U=this.series,d=((m+l)/2+360)%360,p=this.getSector(t,i,n,a,o,r,s,l,m,V);h.pack(p,U[t],t,U[t].data[i],i,U[t].data[i].name,n),e.push(p);var c=this.getLabel(t,i,n,o,d,V,!1),u=this.getLabelLine(t,i,o,r,s,d,V,!1);u&&(h.pack(u,U[t],t,U[t].data[i],i,U[t].data[i].name,n),e.push(u)),c&&(h.pack(c,U[t],t,U[t].data[i],i,U[t].data[i].name,n),c._labelLine=u,e.push(c))},getSector:function(e,t,i,n,a,o,s,l,h,m){var d=this.series,p=d[e],c=p.data[t],u=[c,p],y=this.deepMerge(u,"itemStyle.normal")||{},g=this.deepMerge(u,"itemStyle.emphasis")||{},b=this.getItemStyleColor(y.color,e,t,c)||m,f=this.getItemStyleColor(g.color,e,t,c)||("string"==typeof b?U.lift(b,-.2):b),k={zlevel:p.zlevel,z:p.z,clickable:this.deepQuery(u,"clickable"),style:{x:a[0],y:a[1],r0:o,r:s,startAngle:l,endAngle:h,brushType:"both",color:b,lineWidth:y.borderWidth,strokeColor:y.borderColor,lineJoin:"round"},highlightStyle:{color:f,lineWidth:g.borderWidth,strokeColor:g.borderColor,lineJoin:"round"},_seriesIndex:e,_dataIndex:t};if(n){var x=((k.style.startAngle+k.style.endAngle)/2).toFixed(2)-0;k.style._hasSelected=!0,k.style._x=k.style.x,k.style._y=k.style.y;var _=this.query(p,"selectedOffset");k.style.x+=V.cos(x,!0)*_,k.style.y-=V.sin(x,!0)*_,this._selected[e][t]=!0}else this._selected[e][t]=!1;return this._selectedMode&&(k.onclick=this.shapeHandler.onclick),this.deepQuery([c,p,this.option],"calculable")&&(this.setCalculable(k),k.draggable=!0),(this._needLabel(p,c,!0)||this._needLabelLine(p,c,!0))&&(k.onmouseover=this.shapeHandler.onmouseover),k=new r(k)},getLabel:function(e,t,i,a,o,r,s){var l=this.series,h=l[e],U=h.data[t];if(this._needLabel(h,U,s)){var d,p,c,u=s?"emphasis":"normal",y=m.merge(m.clone(U.itemStyle)||{},h.itemStyle),g=y[u].label,b=g.textStyle||{},f=a[0],k=a[1],x=this.parseRadius(this.zr,h.radius),_="middle";g.position=g.position||y.normal.label.position,"center"===g.position?(d=f,p=k,c="center"):"inner"===g.position||"inside"===g.position?(x=(x[0]+x[1])*(g.distance||.5),d=Math.round(f+x*V.cos(o,!0)),p=Math.round(k-x*V.sin(o,!0)),r="#fff",c="center"):(x=x[1]- -y[u].labelLine.length,d=Math.round(f+x*V.cos(o,!0)),p=Math.round(k-x*V.sin(o,!0)),c=o>=90&&270>=o?"right":"left"),"center"!=g.position&&"inner"!=g.position&&"inside"!=g.position&&(d+="left"===c?20:-20),U.__labelX=d-("left"===c?5:-5),U.__labelY=p;var L=new n({zlevel:h.zlevel,z:h.z+1,hoverable:!1,style:{x:d,y:p,color:b.color||r,text:this.getLabelText(e,t,i,u),textAlign:b.align||c,textBaseline:b.baseline||_,textFont:this.getFont(b)},highlightStyle:{brushType:"fill"}});return L._radius=x,L._labelPosition=g.position||"outer",L._rect=L.getRect(L.style),L._seriesIndex=e,L._dataIndex=t,L}},getLabelText:function(e,t,i,n){var a=this.series,o=a[e],r=o.data[t],s=this.deepQuery([r,o],"itemStyle."+n+".label.formatter");return s?"function"==typeof s?s.call(this.myChart,{seriesIndex:e,seriesName:o.name||"",series:o,dataIndex:t,data:r,name:r.name,value:r.value,percent:i}):"string"==typeof s?(s=s.replace("{a}","{a0}").replace("{b}","{b0}").replace("{c}","{c0}").replace("{d}","{d0}"),s=s.replace("{a0}",o.name).replace("{b0}",r.name).replace("{c0}",r.value).replace("{d0}",i)):void 0:r.name},getLabelLine:function(e,t,i,n,a,o,r,l){var h=this.series,U=h[e],d=U.data[t];if(this._needLabelLine(U,d,l)){var p=l?"emphasis":"normal",c=m.merge(m.clone(d.itemStyle)||{},U.itemStyle),u=c[p].labelLine,y=u.lineStyle||{},g=i[0],b=i[1],f=a,k=this.parseRadius(this.zr,U.radius)[1]- -u.length,x=V.cos(o,!0),_=V.sin(o,!0);return new s({zlevel:U.zlevel,z:U.z+1,hoverable:!1,style:{pointList:[[g+f*x,b-f*_],[g+k*x,b-k*_],[d.__labelX,d.__labelY]],strokeColor:y.color||r,lineType:y.type,lineWidth:y.width},_seriesIndex:e,_dataIndex:t})}},_needLabel:function(e,t,i){return this.deepQuery([t,e],"itemStyle."+(i?"emphasis":"normal")+".label.show")},_needLabelLine:function(e,t,i){return this.deepQuery([t,e],"itemStyle."+(i?"emphasis":"normal")+".labelLine.show")},_autoLabelLayout:function(e,t,i){for(var n=[],a=[],o=0,r=e.length;r>o;o++)("outer"===e[o]._labelPosition||"outside"===e[o]._labelPosition)&&(e[o]._rect._y=e[o]._rect.y,e[o]._rect.xa;a++)if(e[a]._rect.y+=n,e[a].style.y+=n,e[a]._labelLine&&(e[a]._labelLine.style.pointList[1][1]+=n,e[a]._labelLine.style.pointList[2][1]+=n),a>t&&i>a+1&&e[a+1]._rect.y>e[a]._rect.y+e[a]._rect.height)return void o(a,n/2);o(i-1,n/2)}function o(t,i){for(var n=t;n>=0&&(e[n]._rect.y-=i,e[n].style.y-=i,e[n]._labelLine&&(e[n]._labelLine.style.pointList[1][1]-=i,e[n]._labelLine.style.pointList[2][1]-=i),!(n>0&&e[n]._rect.y>e[n-1]._rect.y+e[n-1]._rect.height));n--);}function r(e,t,i,n,a){for(var o,r,s,l=i[0],h=i[1],m=a>0?t?Number.MAX_VALUE:0:t?Number.MAX_VALUE:0,V=0,U=e.length;U>V;V++)r=Math.abs(e[V]._rect.y-h),s=e[V]._radius-n,o=n+s>r?Math.sqrt((n+s+20)*(n+s+20)-Math.pow(e[V]._rect.y-h,2)):Math.abs(e[V]._rect.x+(a>0?0:e[V]._rect.width)-l),t&&o>=m&&(o=m-10),!t&&m>=o&&(o=m+10),e[V]._rect.x=e[V].style.x=l+o*a,e[V]._labelLine&&(e[V]._labelLine.style.pointList[2][0]=l+(o-5)*a,e[V]._labelLine.style.pointList[1][0]=l+(o-20)*a),m=o}e.sort(function(e,t){return e._rect.y-t._rect.y});for(var s,l=0,h=e.length,m=[],V=[],U=0;h>U;U++)s=e[U]._rect.y-l,0>s&&a(U,h,-s,n),l=e[U]._rect.y+e[U]._rect.height;this.zr.getHeight()-l<0&&o(h-1,l-this.zr.getHeight());for(var U=0;h>U;U++)e[U]._rect.y>=t[1]?V.push(e[U]):m.push(e[U]);r(V,!0,t,i,n),r(m,!1,t,i,n)},reformOption:function(e){var t=m.merge;return e=t(t(e||{},m.clone(this.ecTheme.pie||{})),m.clone(l.pie)),e.itemStyle.normal.label.textStyle=this.getTextStyle(e.itemStyle.normal.label.textStyle),e.itemStyle.emphasis.label.textStyle=this.getTextStyle(e.itemStyle.emphasis.label.textStyle),this.z=e.z,this.zlevel=e.zlevel,e},refresh:function(e){e&&(this.option=e,this.series=e.series),this.backupShapeList(),this._buildShape()},addDataAnimation:function(e,t){function i(){s--,0===s&&t&&t()}for(var n=this.series,a={},o=0,r=e.length;r>o;o++)a[e[o][0]]=e[o];var s=0,h={},m={},V={},U=this.shapeList;this.shapeList=[];for(var d,p,c,u={},o=0,r=e.length;r>o;o++)d=e[o][0],p=e[o][2],c=e[o][3],n[d]&&n[d].type===l.CHART_TYPE_PIE&&(p?(c||(h[d+"_"+n[d].data.length]="delete"),u[d]=1):c?u[d]=0:(h[d+"_-1"]="delete",u[d]=-1),this._buildSinglePie(d));for(var y,g,o=0,r=this.shapeList.length;r>o;o++)switch(d=this.shapeList[o]._seriesIndex,y=this.shapeList[o]._dataIndex,g=d+"_"+y,this.shapeList[o].type){case"sector":h[g]=this.shapeList[o];break;case"text":m[g]=this.shapeList[o];break;case"polyline":V[g]=this.shapeList[o]}this.shapeList=[];for(var b,o=0,r=U.length;r>o;o++)if(d=U[o]._seriesIndex,a[d]){if(y=U[o]._dataIndex+u[d],g=d+"_"+y,b=h[g],!b)continue;if("sector"===U[o].type)"delete"!=b?(s++,this.zr.animate(U[o].id,"style").when(400,{startAngle:b.style.startAngle,endAngle:b.style.endAngle}).done(i).start()):(s++,this.zr.animate(U[o].id,"style").when(400,u[d]<0?{startAngle:U[o].style.startAngle}:{endAngle:U[o].style.endAngle}).done(i).start());else if("text"===U[o].type||"polyline"===U[o].type)if("delete"===b)this.zr.delShape(U[o].id);else switch(U[o].type){case"text":s++,b=m[g],this.zr.animate(U[o].id,"style").when(400,{x:b.style.x,y:b.style.y}).done(i).start();break;case"polyline":s++,b=V[g],this.zr.animate(U[o].id,"style").when(400,{pointList:b.style.pointList}).done(i).start()}}this.shapeList=U,s||t&&t()},onclick:function(e){var t=this.series;if(this.isClick&&e.target){this.isClick=!1;for(var i,n=e.target,a=n.style,o=h.get(n,"seriesIndex"),r=h.get(n,"dataIndex"),s=0,m=this.shapeList.length;m>s;s++)if(this.shapeList[s].id===n.id){if(o=h.get(n,"seriesIndex"),r=h.get(n,"dataIndex"),a._hasSelected)n.style.x=n.style._x,n.style.y=n.style._y,n.style._hasSelected=!1,this._selected[o][r]=!1;else{var U=((a.startAngle+a.endAngle)/2).toFixed(2)-0;n.style._hasSelected=!0,this._selected[o][r]=!0,n.style._x=n.style.x,n.style._y=n.style.y,i=this.query(t[o],"selectedOffset"),n.style.x+=V.cos(U,!0)*i,n.style.y-=V.sin(U,!0)*i}this.zr.modShape(n.id)}else this.shapeList[s].style._hasSelected&&"single"===this._selectedMode&&(o=h.get(this.shapeList[s],"seriesIndex"),r=h.get(this.shapeList[s],"dataIndex"),this.shapeList[s].style.x=this.shapeList[s].style._x,this.shapeList[s].style.y=this.shapeList[s].style._y,this.shapeList[s].style._hasSelected=!1,this._selected[o][r]=!1,this.zr.modShape(this.shapeList[s].id));this.messageCenter.dispatch(l.EVENT.PIE_SELECTED,e.event,{selected:this._selected,target:h.get(n,"name")},this.myChart),this.zr.refreshNextFrame()}}},m.inherits(t,i),e("../chart").define("pie",t),t}),i("echarts/chart/radar",["require","./base","zrender/shape/Polygon","../component/polar","../config","../util/ecData","zrender/tool/util","zrender/tool/color","../util/accMath","../chart"],function(e){function t(e,t,n,a,o){i.call(this,e,t,n,a,o),this.refresh(a)}var i=e("./base"),n=e("zrender/shape/Polygon");e("../component/polar");var a=e("../config");a.radar={zlevel:0,z:2,clickable:!0,legendHoverLink:!0,polarIndex:0,itemStyle:{normal:{label:{show:!1},lineStyle:{width:2,type:"solid"}},emphasis:{label:{show:!1}}},symbolSize:2};var o=e("../util/ecData"),r=e("zrender/tool/util"),s=e("zrender/tool/color");return t.prototype={type:a.CHART_TYPE_RADAR,_buildShape:function(){this.selectedMap={},this._symbol=this.option.symbolList,this._queryTarget,this._dropBoxList=[],this._radarDataCounter=0;for(var e,t=this.series,i=this.component.legend,n=0,o=t.length;o>n;n++)t[n].type===a.CHART_TYPE_RADAR&&(this.serie=this.reformOption(t[n]),this.legendHoverLink=t[n].legendHoverLink||this.legendHoverLink,e=this.serie.name||"",this.selectedMap[e]=i?i.isSelected(e):!0,this.selectedMap[e]&&(this._queryTarget=[this.serie,this.option],this.deepQuery(this._queryTarget,"calculable")&&this._addDropBox(n),this._buildSingleRadar(n),this.buildMark(n)));this.addShapeList()},_buildSingleRadar:function(e){for(var t,i,n,a,o=this.component.legend,r=this.serie.data,s=this.deepQuery(this._queryTarget,"calculable"),l=0;lr;r++)n=this.getDataFromOption(t.value[r]),i="-"!=n?o.getVector(e,r,n):!1,i&&a.push(i);return a},_addSymbol:function(e,t,i,n,a){for(var r,s=this.series,l=this.component.polar,h=0,m=e.length;m>h;h++)r=this.getSymbolShape(this.deepMerge([s[n].data[i],s[n]]),n,s[n].data[i].value[h],h,l.getIndicatorText(a,h),e[h][0],e[h][1],this._symbol[this._radarDataCounter%this._symbol.length],t,"#fff","vertical"),r.zlevel=this.getZlevelBase(),r.z=this.getZBase()+1,o.set(r,"data",s[n].data[i]),o.set(r,"value",s[n].data[i].value),o.set(r,"dataIndex",i),o.set(r,"special",h),this.shapeList.push(r)},_addDataShape:function(e,t,i,a,r,l){var h=this.series,m=[i,this.serie],V=this.getItemStyleColor(this.deepQuery(m,"itemStyle.normal.color"),a,r,i),U=this.deepQuery(m,"itemStyle.normal.lineStyle.width"),d=this.deepQuery(m,"itemStyle.normal.lineStyle.type"),p=this.deepQuery(m,"itemStyle.normal.areaStyle.color"),c=this.deepQuery(m,"itemStyle.normal.areaStyle"),u={zlevel:this.getZlevelBase(),z:this.getZBase(),style:{pointList:e,brushType:c?"both":"stroke",color:p||V||("string"==typeof t?s.alpha(t,.5):t),strokeColor:V||t,lineWidth:U,lineType:d},highlightStyle:{brushType:this.deepQuery(m,"itemStyle.emphasis.areaStyle")||c?"both":"stroke",color:this.deepQuery(m,"itemStyle.emphasis.areaStyle.color")||p||V||("string"==typeof t?s.alpha(t,.5):t),strokeColor:this.getItemStyleColor(this.deepQuery(m,"itemStyle.emphasis.color"),a,r,i)||V||t,lineWidth:this.deepQuery(m,"itemStyle.emphasis.lineStyle.width")||U,lineType:this.deepQuery(m,"itemStyle.emphasis.lineStyle.type")||d}};o.pack(u,h[a],a,i,r,i.name,this.component.polar.getIndicator(h[a].polarIndex)),l&&(u.draggable=!0,this.setCalculable(u)),u=new n(u),this.shapeList.push(u)},_addDropBox:function(e){var t=this.series,i=this.deepQuery(this._queryTarget,"polarIndex");if(!this._dropBoxList[i]){var n=this.component.polar.getDropBox(i);n.zlevel=this.getZlevelBase(),n.z=this.getZBase(),this.setCalculable(n),o.pack(n,t,e,void 0,-1),this.shapeList.push(n),this._dropBoxList[i]=!0}},ondragend:function(e,t){var i=this.series;if(this.isDragend&&e.target){var n=e.target,a=o.get(n,"seriesIndex"),r=o.get(n,"dataIndex");this.component.legend&&this.component.legend.del(i[a].data[r].name),i[a].data.splice(r,1),t.dragOut=!0,t.needRefresh=!0,this.isDragend=!1}},ondrop:function(t,i){var n=this.series;if(this.isDrop&&t.target){var a,r,s=t.target,l=t.dragged,h=o.get(s,"seriesIndex"),m=o.get(s,"dataIndex"),V=this.component.legend;if(-1===m)a={value:o.get(l,"value"),name:o.get(l,"name")},n[h].data.push(a),V&&V.add(a.name,l.style.color||l.style.strokeColor);else{var U=e("../util/accMath");a=n[h].data[m],V&&V.del(a.name),a.name+=this.option.nameConnector+o.get(l,"name"),r=o.get(l,"value");for(var d=0;dh;h++)t=m.polar2cartesian(s,o*Math.PI/180+r*h),l.push({vector:[t[1],-t[0]]})},_getRadius:function(){var e=this.polar[this._index];return this.parsePercent(e.radius,Math.min(this.zr.getWidth(),this.zr.getHeight())/2)},_buildSpiderWeb:function(e){var t=this.polar[e],i=t.__ecIndicator,n=t.splitArea,a=t.splitLine,o=this.getCenter(e),r=t.splitNumber,s=a.lineStyle.color,l=a.lineStyle.width,h=a.show,m=this.deepQuery(this._queryTarget,"axisLine");this._addArea(i,r,o,n,s,l,h),m.show&&this._addLine(i,o,m)},_addAxisLabel:function(t){for(var i,a,o,r,a,s,l,m,V,U,d=e("../util/accMath"),p=this.polar[t],c=this.deepQuery(this._queryTarget,"indicator"),u=p.__ecIndicator,y=this.deepQuery(this._queryTarget,"splitNumber"),g=this.getCenter(t),b=0;b=x;x+=U+1)r=h.merge({},o),l=d.accAdd(s.min,d.accMul(s.step,x)),l="function"==typeof k?k(l):"string"==typeof k?k.replace("{a}","{a0}").replace("{a0}",l):this.numAddCommas(l),r.text=l,r.x=x*a[0]/y+Math.cos(m)*V+g[0],r.y=x*a[1]/y+Math.sin(m)*V+g[1],this.shapeList.push(new n({zlevel:this.getZlevelBase(),z:this.getZBase(),style:r,draggable:!1,hoverable:!1}))}},_buildText:function(e){for(var t,i,a,o,r,s,l,h=this.polar[e],m=h.__ecIndicator,V=this.deepQuery(this._queryTarget,"indicator"),U=this.getCenter(e),d=0,p=0,c=0;c0?"left":Math.round(t[0])<0?"right":"center",null==o.margin?t=this._mapVector(t,U,1.1):(s=o.margin,d=t[0]>0?s:-s,p=t[1]>0?s:-s,d=0===t[0]?0:d,p=0===t[1]?0:p,t=this._mapVector(t,U,1)),i.textAlign=a,i.x=t[0]+d,i.y=t[1]+p,r=o.rotate?[o.rotate/180*Math.PI,t[0],t[1]]:[0,0,0],this.shapeList.push(new n({zlevel:this.getZlevelBase(),z:this.getZBase(),style:i,draggable:!1,hoverable:!1,rotation:r})))},getIndicatorText:function(e,t){return this.polar[e]&&this.polar[e].__ecIndicator[t]&&this.polar[e].__ecIndicator[t].text},getDropBox:function(e){var t,i,e=e||0,n=this.polar[e],a=this.getCenter(e),o=n.__ecIndicator,r=o.length,s=[],l=n.type;if("polygon"==l){for(var h=0;r>h;h++)t=o[h].vector,s.push(this._mapVector(t,a,1.2));i=this._getShape(s,"fill","rgba(0,0,0,0)","",1)}else"circle"==l&&(i=this._getCircle("",1,1.2,a,"fill","rgba(0,0,0,0)"));return i},_addArea:function(e,t,i,n,a,o,r){for(var s,l,h,m,V=this.deepQuery(this._queryTarget,"type"),U=0;t>U;U++)l=(t-U)/t,r&&("polygon"==V?(m=this._getPointList(e,l,i),s=this._getShape(m,"stroke","",a,o)):"circle"==V&&(s=this._getCircle(a,o,l,i,"stroke")),this.shapeList.push(s)),n.show&&(h=(t-U-1)/t,this._addSplitArea(e,n,l,h,i,U))},_getCircle:function(e,t,i,n,a,o){var s=this._getRadius();return new r({zlevel:this.getZlevelBase(),z:this.getZBase(),style:{x:n[0],y:n[1],r:s*i,brushType:a,strokeColor:e,lineWidth:t,color:o},hoverable:!1,draggable:!1})},_getRing:function(e,t,i,n){var a=this._getRadius();return new s({zlevel:this.getZlevelBase(),z:this.getZBase(),style:{x:n[0],y:n[1],r:t*a,r0:i*a,color:e,brushType:"fill"},hoverable:!1,draggable:!1})},_getPointList:function(e,t,i){for(var n,a=[],o=e.length,r=0;o>r;r++)n=e[r].vector,a.push(this._mapVector(n,i,t));return a},_getShape:function(e,t,i,n,a){return new o({zlevel:this.getZlevelBase(),z:this.getZBase(),style:{pointList:e,brushType:t,color:i,strokeColor:n,lineWidth:a},hoverable:!1,draggable:!1})},_addSplitArea:function(e,t,i,n,a,o){var r,s,l,h,m,V=e.length,U=t.areaStyle.color,d=[],V=e.length,p=this.deepQuery(this._queryTarget,"type");if("string"==typeof U&&(U=[U]),s=U.length,r=U[o%s],"polygon"==p)for(var c=0;V>c;c++)d=[],l=e[c].vector,h=e[(c+1)%V].vector,d.push(this._mapVector(l,a,i)),d.push(this._mapVector(l,a,n)),d.push(this._mapVector(h,a,n)),d.push(this._mapVector(h,a,i)),m=this._getShape(d,"fill",r,"",1),this.shapeList.push(m);else"circle"==p&&(m=this._getRing(r,i,n,a),this.shapeList.push(m))},_mapVector:function(e,t,i){return[e[0]*i+t[0],e[1]*i+t[1]]},getCenter:function(e){var e=e||0;return this.parseCenter(this.zr,this.polar[e].center)},_addLine:function(e,t,i){for(var n,a,o=e.length,r=i.lineStyle,s=r.color,l=r.width,h=r.type,m=0;o>m;m++)a=e[m].vector,n=this._getLine(t[0],t[1],a[0]+t[0],a[1]+t[1],s,l,h),this.shapeList.push(n)},_getLine:function(e,t,i,n,o,r,s){return new a({zlevel:this.getZlevelBase(),z:this.getZBase(),style:{xStart:e,yStart:t,xEnd:i,yEnd:n,strokeColor:o,lineWidth:r,lineType:s},hoverable:!1})},_adjustIndicatorValue:function(t){for(var i,n,a,o=this.polar[t],r=this.deepQuery(this._queryTarget,"indicator"),s=r.length,l=o.__ecIndicator,h=this._getSeriesData(t),m=o.boundaryGap,V=o.splitNumber,U=o.scale,d=e("../util/smartSteps"),p=0;s>p;p++){if("number"==typeof r[p].max)i=r[p].max,n=r[p].min||0,a={max:i,min:n};else{var c=this._findValue(h,p,V,m);n=c.min,i=c.max}!U&&n>=0&&i>=0&&(n=0),!U&&0>=n&&0>=i&&(i=0);var u=d(n,i,V,a);l[p].value={min:u.min,max:u.max,step:u.step}}},_getSeriesData:function(e){for(var t,i,n,a=[],o=this.component.legend,r=0;ro||void 0===o)&&(o=e),(r>e||void 0===r)&&(r=e)}var o,r,s;if(e&&0!==e.length){if(1==e.length&&(r=0),1!=e.length)for(var l=0;l0?r=o/i:o/=i),{max:o,min:r}}},getVector:function(e,t,i){e=e||0,t=t||0;var n=this.polar[e].__ecIndicator;if(!(t>=n.length)){var a,o=this.polar[e].__ecIndicator[t],r=this.getCenter(e),s=o.vector,l=o.value.max,h=o.value.min;if("undefined"==typeof i)return r;switch(i){case"min":i=h;break;case"max":i=l;break;case"center":i=(l+h)/2}return a=l!=h?(i-h)/(l-h):.5,this._mapVector(s,r,a)}},isInside:function(e){var t=this.getNearestIndex(e);return t?t.polarIndex:-1},getNearestIndex:function(e){for(var t,i,n,a,o,r,s,l,h,V=0;Va[0])return{polarIndex:V,valueIndex:Math.floor((h+l/2)/l)%s}}},getIndicator:function(e){var e=e||0;return this.polar[e].indicator},refresh:function(e){e&&(this.option=e,this.polar=this.option.polar,this.series=this.option.series),this.clear(),this._buildShape()}},h.inherits(t,i),e("../component").define("polar",t),t}),i("echarts/util/coordinates",["require","zrender/tool/math"],function(e){function t(e,t){return[e*n.sin(t),e*n.cos(t)]}function i(e,t){return[Math.sqrt(e*e+t*t),Math.atan(t/e)]}var n=e("zrender/tool/math");return{polar2cartesian:t,cartesian2polar:i}}),i("echarts/chart/chord",["require","./base","zrender/shape/Text","zrender/shape/Line","zrender/shape/Sector","../util/shape/Ribbon","../util/shape/Icon","zrender/shape/BezierCurve","../config","../util/ecData","zrender/tool/util","zrender/tool/vector","../data/Graph","../layout/Chord","../chart"],function(e){"use strict";function t(e,t,n,a,o){i.call(this,e,t,n,a,o),this.scaleLineLength=4,this.scaleUnitAngle=4,this.refresh(a)}var i=e("./base"),n=e("zrender/shape/Text"),a=e("zrender/shape/Line"),o=e("zrender/shape/Sector"),r=e("../util/shape/Ribbon"),s=e("../util/shape/Icon"),l=e("zrender/shape/BezierCurve"),h=e("../config");h.chord={zlevel:0,z:2,clickable:!0,radius:["65%","75%"],center:["50%","50%"],padding:2,sort:"none",sortSub:"none",startAngle:90,clockWise:!0,ribbonType:!0,minRadius:10,maxRadius:20,symbol:"circle",showScale:!1,showScaleText:!1,itemStyle:{normal:{borderWidth:0,borderColor:"#000",label:{show:!0,rotate:!1,distance:5},chordStyle:{width:1,color:"black",borderWidth:1,borderColor:"#999",opacity:.5}},emphasis:{borderWidth:0,borderColor:"#000",chordStyle:{width:1,color:"black",borderWidth:1,borderColor:"#999"}}}};var m=e("../util/ecData"),V=e("zrender/tool/util"),U=e("zrender/tool/vector"),d=e("../data/Graph"),p=e("../layout/Chord");return t.prototype={type:h.CHART_TYPE_CHORD,_init:function(){var e=this.series;this.selectedMap={};for(var t={},i={},n=0,a=e.length;a>n;n++)if(e[n].type===this.type){var o=this.isSelected(e[n].name);this.selectedMap[e[n].name]=o,o&&this.buildMark(n),this.reformOption(e[n]),t[e[n].name]=e[n]}for(var n=0,a=e.length;a>n;n++)if(e[n].type===this.type)if(e[n].insertToSerie){var r=t[e[n].insertToSerie];e[n]._referenceSerie=r}else i[e[n].name]=[e[n]];for(var n=0,a=e.length;a>n;n++)if(e[n].type===this.type&&e[n].insertToSerie){for(var s=e[n]._referenceSerie;s&&s._referenceSerie;)s=s._referenceSerie;i[s.name]&&this.selectedMap[e[n].name]&&i[s.name].push(e[n])}for(var l in i)this._buildChords(i[l]);this.addShapeList()},_getNodeCategory:function(e,t){return e.categories&&e.categories[t.category||0]},_getNodeQueryTarget:function(e,t){var i=this._getNodeCategory(e,t);return[t,i,e]},_getEdgeQueryTarget:function(e,t,i){return i=i||"normal",[t.itemStyle&&t.itemStyle[i],e.itemStyle[i].chordStyle]},_buildChords:function(e){for(var t=[],i=e[0],n=function(e){return e.layout.size>0},a=function(e){return function(t){return e.getEdge(t.node2,t.node1)}},o=0;oa;a++){var r=n[a];if(r&&!r.ignore){var s=this._getNodeCategory(t,r),l=s?s.name:r.name;if(this.selectedMap[l]=this.isSelected(l),this.selectedMap[l]){var h=i.addNode(r.name,r);h.rawIndex=a}}}for(var a=0,o=e.links.length;o>a;a++){var m=e.links[a],V=m.source,U=m.target;"number"==typeof V&&(V=n[V],V&&(V=V.name)),"number"==typeof U&&(U=n[U],U&&(U=U.name));var p=i.addEdge(V,U,m);p&&(p.rawIndex=a)}return i.eachNode(function(e){var i=e.data.value;if(null==i)if(i=0,t.ribbonType)for(var n=0;n0&&(p.style.brushType="both"),p.highlightStyle.lineWidth>0&&(p.highlightStyle.brushType="both"),m.pack(p,e,t,i.data,i.rawIndex,i.id,i.category),this.shapeList.push(p),i.shape=p},this)},_buildNodeIcons:function(e,t,i,n){var a=this.parseCenter(this.zr,n.center),o=this.parseRadius(this.zr,n.radius),r=o[1];i.eachNode(function(i){var o=i.layout.startAngle,l=i.layout.endAngle,h=(o+l)/2,V=r*Math.cos(h),U=r*Math.sin(h),d=this._getNodeQueryTarget(n,i.data),p=this._getNodeCategory(n,i.data),c=this.deepQuery(d,"itemStyle.normal.color");c||(c=this.getColor(p?p.name:i.id));var u=new s({zlevel:e.zlevel,z:e.z+1,style:{x:-i.layout.size,y:-i.layout.size,width:2*i.layout.size,height:2*i.layout.size,iconType:this.deepQuery(d,"symbol"),color:c,brushType:"both",lineWidth:this.deepQuery(d,"itemStyle.normal.borderWidth"),strokeColor:this.deepQuery(d,"itemStyle.normal.borderColor")},highlightStyle:{color:this.deepQuery(d,"itemStyle.emphasis.color"),lineWidth:this.deepQuery(d,"itemStyle.emphasis.borderWidth"),strokeColor:this.deepQuery(d,"itemStyle.emphasis.borderColor")},clickable:n.clickable,position:[V+a[0],U+a[1]]});m.pack(u,e,t,i.data,i.rawIndex,i.id,i.category),this.shapeList.push(u),i.shape=u},this)},_buildLabels:function(e,t,i,a){var o=this.query(a,"itemStyle.normal.label.rotate"),r=this.query(a,"itemStyle.normal.label.distance"),s=this.parseCenter(this.zr,a.center),l=this.parseRadius(this.zr,a.radius),h=a.clockWise,m=h?1:-1; + +i.eachNode(function(t){var i=t.layout.startAngle/Math.PI*180*m,h=t.layout.endAngle/Math.PI*180*m,V=(i*-m+h*-m)/2;V%=360,0>V&&(V+=360);var d=90>=V||V>=270;V=V*Math.PI/180;var p=[Math.cos(V),-Math.sin(V)],c=0;c=a.ribbonType?a.showScaleText?35+r:r:r+t.layout.size;var u=U.scale([],p,l[1]+c);U.add(u,u,s);var y={zlevel:e.zlevel,z:e.z+1,hoverable:!1,style:{text:null==t.data.label?t.id:t.data.label,textAlign:d?"left":"right"}};o?(y.rotation=d?V:Math.PI+V,y.style.x=d?l[1]+c:-l[1]-c,y.style.y=0,y.position=s.slice()):(y.style.x=u[0],y.style.y=u[1]),y.style.color=this.deepQuery([t.data,a],"itemStyle.normal.label.textStyle.color")||"#000000",y.style.textFont=this.getFont(this.deepQuery([t.data,a],"itemStyle.normal.label.textStyle")),y=new n(y),this.shapeList.push(y),t.labelShape=y},this)},_buildRibbons:function(e,t,i,n){var a=e[t],o=this.parseCenter(this.zr,n.center),s=this.parseRadius(this.zr,n.radius);i.eachEdge(function(l,h){var V,U=i.getEdge(l.node2,l.node1);if(U&&!l.shape){if(U.shape)return void(l.shape=U.shape);var d=l.layout.startAngle/Math.PI*180,p=l.layout.endAngle/Math.PI*180,c=U.layout.startAngle/Math.PI*180,u=U.layout.endAngle/Math.PI*180;V=this.getColor(1===e.length?l.layout.weight<=U.layout.weight?l.node1.id:l.node2.id:a.name);var y,g,b=this._getEdgeQueryTarget(a,l.data),f=this._getEdgeQueryTarget(a,l.data,"emphasis"),k=new r({zlevel:a.zlevel,z:a.z,style:{x:o[0],y:o[1],r:s[0],source0:d,source1:p,target0:c,target1:u,brushType:"both",opacity:this.deepQuery(b,"opacity"),color:V,lineWidth:this.deepQuery(b,"borderWidth"),strokeColor:this.deepQuery(b,"borderColor"),clockWise:n.clockWise},clickable:n.clickable,highlightStyle:{brushType:"both",opacity:this.deepQuery(f,"opacity"),lineWidth:this.deepQuery(f,"borderWidth"),strokeColor:this.deepQuery(f,"borderColor")}});l.layout.weight<=U.layout.weight?(y=U.node1,g=U.node2):(y=l.node1,g=l.node2),m.pack(k,a,t,l.data,null==l.rawIndex?h:l.rawIndex,l.data.name||y.id+"-"+g.id,y.id,g.id),this.shapeList.push(k),l.shape=k}},this)},_buildEdgeCurves:function(e,t,i,n,a){var o=e[t],r=this.parseCenter(this.zr,n.center);i.eachEdge(function(e,i){var n=a.getNodeById(e.node1.id),s=a.getNodeById(e.node2.id),h=n.shape,V=s.shape,U=this._getEdgeQueryTarget(o,e.data),d=this._getEdgeQueryTarget(o,e.data,"emphasis"),p=new l({zlevel:o.zlevel,z:o.z,style:{xStart:h.position[0],yStart:h.position[1],xEnd:V.position[0],yEnd:V.position[1],cpX1:r[0],cpY1:r[1],lineWidth:this.deepQuery(U,"width"),strokeColor:this.deepQuery(U,"color"),opacity:this.deepQuery(U,"opacity")},highlightStyle:{lineWidth:this.deepQuery(d,"width"),strokeColor:this.deepQuery(d,"color"),opacity:this.deepQuery(d,"opacity")}});m.pack(p,o,t,e.data,null==e.rawIndex?i:e.rawIndex,e.data.name||e.node1.id+"-"+e.node2.id,e.node1.id,e.node2.id),this.shapeList.push(p),e.shape=p},this)},_buildScales:function(e,t,i){var o,r,s=e.clockWise,l=this.parseCenter(this.zr,e.center),h=this.parseRadius(this.zr,e.radius),m=s?1:-1,V=0,d=-(1/0);e.showScaleText&&(i.eachNode(function(e){var t=e.data.value;t>d&&(d=t),V+=t}),d>1e10?(o="b",r=1e-9):d>1e7?(o="m",r=1e-6):d>1e4?(o="k",r=.001):(o="",r=1));var p=V/(360-e.padding);i.eachNode(function(t){for(var i=t.layout.startAngle/Math.PI*180,V=t.layout.endAngle/Math.PI*180,d=i;;){if(s&&d>V||!s&&V>d)break;var c=d/180*Math.PI,u=[Math.cos(c),Math.sin(c)],y=U.scale([],u,h[1]+1);U.add(y,y,l);var g=U.scale([],u,h[1]+this.scaleLineLength);U.add(g,g,l);var b=new a({zlevel:e.zlevel,z:e.z-1,hoverable:!1,style:{xStart:y[0],yStart:y[1],xEnd:g[0],yEnd:g[1],lineCap:"round",brushType:"stroke",strokeColor:"#666",lineWidth:1}});this.shapeList.push(b),d+=m*this.scaleUnitAngle}if(e.showScaleText)for(var f=i,k=5*p*this.scaleUnitAngle,x=0;;){if(s&&f>V||!s&&V>f)break;var c=f;c%=360,0>c&&(c+=360);var _=90>=c||c>=270,L=new n({zlevel:e.zlevel,z:e.z-1,hoverable:!1,style:{x:_?h[1]+this.scaleLineLength+4:-h[1]-this.scaleLineLength-4,y:0,text:Math.round(10*x)/10+o,textAlign:_?"left":"right"},position:l.slice(),rotation:_?[-c/180*Math.PI,0,0]:[-(c+180)/180*Math.PI,0,0]});this.shapeList.push(L),x+=k*r,f+=m*this.scaleUnitAngle*5}},this)},refresh:function(e){if(e&&(this.option=e,this.series=e.series),this.legend=this.component.legend,this.legend)this.getColor=function(e){return this.legend.getColor(e)},this.isSelected=function(e){return this.legend.isSelected(e)};else{var t={},i=0;this.getColor=function(e){return t[e]?t[e]:(t[e]||(t[e]=this.zr.getColor(i++)),t[e])},this.isSelected=function(){return!0}}this.backupShapeList(),this._init()},reformOption:function(e){var t=V.merge;e=t(t(e||{},this.ecTheme.chord),h.chord),e.itemStyle.normal.label.textStyle=this.getTextStyle(e.itemStyle.normal.label.textStyle),this.z=e.z,this.zlevel=e.zlevel}},V.inherits(t,i),e("../chart").define("chord",t),t}),i("echarts/util/shape/Ribbon",["require","zrender/shape/Base","zrender/shape/util/PathProxy","zrender/tool/util","zrender/tool/area"],function(e){function t(e){i.call(this,e),this._pathProxy=new n}var i=e("zrender/shape/Base"),n=e("zrender/shape/util/PathProxy"),a=e("zrender/tool/util"),o=e("zrender/tool/area");return t.prototype={type:"ribbon",buildPath:function(e,t){var i=t.clockWise||!1,n=this._pathProxy;n.begin(e);var a=t.x,o=t.y,r=t.r,s=t.source0/180*Math.PI,l=t.source1/180*Math.PI,h=t.target0/180*Math.PI,m=t.target1/180*Math.PI,V=a+Math.cos(s)*r,U=o+Math.sin(s)*r,d=a+Math.cos(l)*r,p=o+Math.sin(l)*r,c=a+Math.cos(h)*r,u=o+Math.sin(h)*r,y=a+Math.cos(m)*r,g=o+Math.sin(m)*r;n.moveTo(V,U),n.arc(a,o,t.r,s,l,!i),n.bezierCurveTo(.7*(a-d)+d,.7*(o-p)+p,.7*(a-c)+c,.7*(o-u)+u,c,u),(t.source0!==t.target0||t.source1!==t.target1)&&(n.arc(a,o,t.r,h,m,!i),n.bezierCurveTo(.7*(a-y)+y,.7*(o-g)+g,.7*(a-V)+V,.7*(o-U)+U,V,U))},getRect:function(e){return e.__rect?e.__rect:(this._pathProxy.isEmpty()||this.buildPath(null,e),this._pathProxy.fastBoundingRect())},isCover:function(e,t){var i=this.getRect(this.style);return e>=i.x&&e<=i.x+i.width&&t>=i.y&&t<=i.y+i.height?o.isInsidePath(this._pathProxy.pathCommands,0,"fill",e,t):void 0}},a.inherits(t,i),t}),i("echarts/data/Graph",["require","zrender/tool/util"],function(e){var t=e("zrender/tool/util"),i=function(e){this._directed=e||!1,this.nodes=[],this.edges=[],this._nodesMap={},this._edgesMap={}};i.prototype.isDirected=function(){return this._directed},i.prototype.addNode=function(e,t){if(this._nodesMap[e])return this._nodesMap[e];var n=new i.Node(e,t);return this.nodes.push(n),this._nodesMap[e]=n,n},i.prototype.getNodeById=function(e){return this._nodesMap[e]},i.prototype.addEdge=function(e,t,n){if("string"==typeof e&&(e=this._nodesMap[e]),"string"==typeof t&&(t=this._nodesMap[t]),e&&t){var a=e.id+"-"+t.id;if(this._edgesMap[a])return this._edgesMap[a];var o=new i.Edge(e,t,n);return this._directed&&(e.outEdges.push(o),t.inEdges.push(o)),e.edges.push(o),e!==t&&t.edges.push(o),this.edges.push(o),this._edgesMap[a]=o,o}},i.prototype.removeEdge=function(e){var i=e.node1,n=e.node2,a=i.id+"-"+n.id;this._directed&&(i.outEdges.splice(t.indexOf(i.outEdges,e),1),n.inEdges.splice(t.indexOf(n.inEdges,e),1)),i.edges.splice(t.indexOf(i.edges,e),1),i!==n&&n.edges.splice(t.indexOf(n.edges,e),1),delete this._edgesMap[a],this.edges.splice(t.indexOf(this.edges,e),1)},i.prototype.getEdge=function(e,t){return"string"!=typeof e&&(e=e.id),"string"!=typeof t&&(t=t.id),this._directed?this._edgesMap[e+"-"+t]:this._edgesMap[e+"-"+t]||this._edgesMap[t+"-"+e]},i.prototype.removeNode=function(e){if("string"!=typeof e||(e=this._nodesMap[e])){delete this._nodesMap[e.id],this.nodes.splice(t.indexOf(this.nodes,e),1);for(var i=0;in;)e.call(t,this.nodes[n],n)?n++:(this.removeNode(this.nodes[n]),i--)},i.prototype.filterEdge=function(e,t){for(var i=this.edges.length,n=0;i>n;)e.call(t,this.edges[n],n)?n++:(this.removeEdge(this.edges[n]),i--)},i.prototype.eachNode=function(e,t){for(var i=this.nodes.length,n=0;i>n;n++)this.nodes[n]&&e.call(t,this.nodes[n],n)},i.prototype.eachEdge=function(e,t){for(var i=this.edges.length,n=0;i>n;n++)this.edges[n]&&e.call(t,this.edges[n],n)},i.prototype.clear=function(){this.nodes.length=0,this.edges.length=0,this._nodesMap={},this._edgesMap={}},i.prototype.breadthFirstTraverse=function(e,t,i,n){if("string"==typeof t&&(t=this._nodesMap[t]),t){var a="edges";"out"===i?a="outEdges":"in"===i&&(a="inEdges");for(var o=0;or;r++){var s=o.addNode(e[r].id,e[r]);s.data.value=0,n&&(s.data.outValue=s.data.inValue=0)}for(var r=0;a>r;r++)for(var l=0;a>l;l++){var h=t[r][l];n&&(o.nodes[r].data.outValue+=h,o.nodes[l].data.inValue+=h),o.nodes[r].data.value+=h,o.nodes[l].data.value+=h}for(var r=0;a>r;r++)for(var l=r;a>l;l++){var h=t[r][l];if(0!==h){var m=o.nodes[r],V=o.nodes[l],U=o.addEdge(m,V,{});if(U.data.weight=h,r!==l&&n&&t[l][r]){var d=o.addEdge(V,m,{});d.data.weight=t[l][r]}}}return o}},i}),i("echarts/layout/Chord",["require"],function(){var e=function(e){e=e||{},this.sort=e.sort||null,this.sortSub=e.sortSub||null,this.padding=.05,this.startAngle=e.startAngle||0,this.clockWise=null==e.clockWise?!1:e.clockWise,this.center=e.center||[0,0],this.directed=!0};e.prototype.run=function(e){e instanceof Array||(e=[e]);var n=e.length;if(n){for(var a=e[0],o=a.nodes.length,r=[],s=0,l=0;o>l;l++){var h=a.nodes[l],m={size:0,subGroups:[],node:h};r.push(m);for(var V=0,U=0;Ul;l++){var m=r[l];m.node.layout.startAngle=f,m.node.layout.endAngle=f+k*m.size*b,m.node.layout.subGroups=[];for(var u=0;un;n++){var o=i[n];if(o.type===d.CHART_TYPE_FORCE){if(i[n]=this.reformOption(i[n]),e=i[n].name||"",this.selectedMap[e]=t?t.isSelected(e):!0,!this.selectedMap[e])continue;this.buildMark(n),this._initSerie(o,n);break}}this.animationEffect()},_getNodeCategory:function(e,t){return e.categories&&e.categories[t.category||0]},_getNodeQueryTarget:function(e,t,i){i=i||"normal";var n=this._getNodeCategory(e,t)||{};return[t.itemStyle&&t.itemStyle[i],n&&n.itemStyle&&n.itemStyle[i],e.itemStyle[i].nodeStyle]},_getEdgeQueryTarget:function(e,t,i){return i=i||"normal",[t.itemStyle&&t.itemStyle[i],e.itemStyle[i].linkStyle]},_initSerie:function(e,t){this._temperature=1,e.matrix?this._graph=this._getSerieGraphFromDataMatrix(e):e.links&&(this._graph=this._getSerieGraphFromNodeLinks(e)),this._buildLinkShapes(e,t),this._buildNodeShapes(e,t);var i=e.roam===!0||"move"===e.roam,n=e.roam===!0||"scale"===e.roam;this.zr.modLayer(this.getZlevelBase(),{panable:i,zoomable:n}),(this.query("markPoint.effect.show")||this.query("markLine.effect.show"))&&this.zr.modLayer(d.EFFECT_ZLEVEL,{panable:i,zoomable:n}),this._initLayout(e),this._step()},_getSerieGraphFromDataMatrix:function(e){for(var t=[],i=0,n=[],a=0;an;n++){var o=i[n];if(o&&!o.ignore){var r=this._getNodeCategory(e,o),l=r?r.name:o.name;if(this.selectedMap[l]=this.isSelected(l),this.selectedMap[l]){var h=t.addNode(o.name,o);h.rawIndex=n}}}for(var n=0,a=e.links.length;a>n;n++){var m=e.links[n],V=m.source,U=m.target;"number"==typeof V&&(V=i[V],V&&(V=V.name)),"number"==typeof U&&(U=i[U],U&&(U=U.name));var d=t.addEdge(V,U,m);d&&(d.rawIndex=n)}return t.eachNode(function(e){var t=e.data.value;if(null==t){t=0;for(var i=0;ih;h++){var m=t.nodes[h];l=Math.max(m.layout.size,l),s=Math.min(m.layout.size,s)}for(var V=l-s,h=0;i>h;h++){var m=t.nodes[h];V>0?(m.layout.size=(m.layout.size-s)*(a-n)/V+n,m.layout.mass=m.layout.size/a):(m.layout.size=(a-n)/2,m.layout.mass=.5)}for(var h=0;i>h;h++){var m=t.nodes[h];if("undefined"!=typeof this.__nodePositionMap[m.id])m.layout.position=y.create(),y.copy(m.layout.position,this.__nodePositionMap[m.id]);else if("undefined"!=typeof m.data.initial)m.layout.position=y.create(),y.copy(m.layout.position,m.data.initial);else{var U=this._layout.center,d=Math.min(this._layout.width,this._layout.height);m.layout.position=o(U[0],U[1],.8*d)}var p=m.shape.style,c=m.layout.size;p.width=p.width||2*c,p.height=p.height||2*c,p.x=-p.width/2,p.y=-p.height/2,y.copy(m.shape.position,m.layout.position)}i=t.edges.length,l=-(1/0);for(var h=0;i>h;h++){var u=t.edges[h];u.layout.weight>l&&(l=u.layout.weight)}for(var h=0;i>h;h++){var u=t.edges[h];u.layout.weight/=l}this._layout.init(t,e.useWorker)},_buildNodeShapes:function(e,t){var i=this._graph,n=this.query(e,"categories");i.eachNode(function(i){var a=this._getNodeCategory(e,i.data),o=[i.data,a,e],r=this._getNodeQueryTarget(e,i.data),s=this._getNodeQueryTarget(e,i.data,"emphasis"),l=new U({style:{x:0,y:0,color:this.deepQuery(r,"color"),brushType:"both",strokeColor:this.deepQuery(r,"strokeColor")||this.deepQuery(r,"borderColor"),lineWidth:this.deepQuery(r,"lineWidth")||this.deepQuery(r,"borderWidth")},highlightStyle:{color:this.deepQuery(s,"color"),strokeColor:this.deepQuery(s,"strokeColor")||this.deepQuery(s,"borderColor"),lineWidth:this.deepQuery(s,"lineWidth")||this.deepQuery(s,"borderWidth")},clickable:e.clickable,zlevel:this.getZlevelBase(),z:this.getZBase()});l.style.color||(l.style.color=this.getColor(a?a.name:i.id)),l.style.iconType=this.deepQuery(o,"symbol");var h=this.deepQuery(o,"symbolSize")||0;"number"==typeof h&&(h=[h,h]),l.style.width=2*h[0],l.style.height=2*h[1],l.style.iconType.match("image")&&(l.style.image=l.style.iconType.replace(new RegExp("^image:\\/\\/"),""),l=new V({style:l.style,highlightStyle:l.highlightStyle,clickable:l.clickable,zlevel:this.getZlevelBase(),z:this.getZBase()})),this.deepQuery(o,"itemStyle.normal.label.show")&&(l.style.text=null==i.data.label?i.id:i.data.label,l.style.textPosition=this.deepQuery(o,"itemStyle.normal.label.position"),l.style.textColor=this.deepQuery(o,"itemStyle.normal.label.textStyle.color"),l.style.textFont=this.getFont(this.deepQuery(o,"itemStyle.normal.label.textStyle")||{})),this.deepQuery(o,"itemStyle.emphasis.label.show")&&(l.highlightStyle.textPosition=this.deepQuery(o,"itemStyle.emphasis.label.position"),l.highlightStyle.textColor=this.deepQuery(o,"itemStyle.emphasis.label.textStyle.color"),l.highlightStyle.textFont=this.getFont(this.deepQuery(o,"itemStyle.emphasis.label.textStyle")||{})),this.deepQuery(o,"draggable")&&(this.setCalculable(l),l.dragEnableTime=0,l.draggable=!0,l.ondragstart=this.shapeHandler.ondragstart,l.ondragover=null);var m="";if("undefined"!=typeof i.category){var a=n[i.category];m=a&&a.name||""}p.pack(l,e,t,i.data,i.rawIndex,i.data.name||"",i.category),this.shapeList.push(l),this.zr.addShape(l),i.shape=l},this)},_buildLinkShapes:function(e,t){for(var i=this._graph,n=i.edges.length,a=0;n>a;a++){var o=i.edges[a],r=o.data,s=o.node1,l=o.node2,V=i.getEdge(l,s),d=this._getEdgeQueryTarget(e,r),u=this.deepQuery(d,"type");e.linkSymbol&&"none"!==e.linkSymbol&&(u="line");var y="line"===u?h:m,g=new y({style:{xStart:0,yStart:0,xEnd:0,yEnd:0},clickable:this.query(e,"clickable"),highlightStyle:{},zlevel:this.getZlevelBase(),z:this.getZBase()});if(V&&V.shape&&(g.style.offset=4,V.shape.style.offset=4),c.merge(g.style,this.query(e,"itemStyle.normal.linkStyle"),!0),c.merge(g.highlightStyle,this.query(e,"itemStyle.emphasis.linkStyle"),!0),"undefined"!=typeof r.itemStyle&&(r.itemStyle.normal&&c.merge(g.style,r.itemStyle.normal,!0),r.itemStyle.emphasis&&c.merge(g.highlightStyle,r.itemStyle.emphasis,!0)),g.style.lineWidth=g.style.lineWidth||g.style.width,g.style.strokeColor=g.style.strokeColor||g.style.color,g.highlightStyle.lineWidth=g.highlightStyle.lineWidth||g.highlightStyle.width,g.highlightStyle.strokeColor=g.highlightStyle.strokeColor||g.highlightStyle.color,p.pack(g,e,t,o.data,null==o.rawIndex?a:o.rawIndex,o.data.name||s.id+" - "+l.id,s.id,l.id),this.shapeList.push(g),this.zr.addShape(g),o.shape=g,e.linkSymbol&&"none"!==e.linkSymbol){var b=new U({style:{x:-5,y:0,width:e.linkSymbolSize[0],height:e.linkSymbolSize[1],iconType:e.linkSymbol,brushType:"fill",color:g.style.strokeColor},highlightStyle:{brushType:"fill"},position:[0,0],rotation:0,zlevel:this.getZlevelBase(),z:this.getZBase()});g._symbolShape=b,this.shapeList.push(b),this.zr.addShape(b)}}},_updateLinkShapes:function(){for(var e=y.create(),t=y.create(),i=y.create(),n=y.create(),a=this._graph.edges,o=0,r=a.length;r>o;o++){var s=a[o],l=s.node1.shape,h=s.node2.shape;y.copy(i,l.position),y.copy(n,h.position);var m=s.shape.style;if(y.sub(e,i,n),y.normalize(e,e),m.offset?(t[0]=e[1],t[1]=-e[0],y.scaleAndAdd(i,i,t,m.offset),y.scaleAndAdd(n,n,t,m.offset)):"bezier-curve"===s.shape.type&&(m.cpX1=(i[0]+n[0])/2-(n[1]-i[1])/4,m.cpY1=(i[1]+n[1])/2-(i[0]-n[0])/4),m.xStart=i[0],m.yStart=i[1],m.xEnd=n[0],m.yEnd=n[1],s.shape.modSelf(),s.shape._symbolShape){var V=s.shape._symbolShape;y.copy(V.position,n),y.scaleAndAdd(V.position,V.position,e,h.style.width/2+2);var U=Math.atan2(e[1],e[0]);V.rotation=Math.PI/2-U,V.modSelf()}}},_syncNodePositions:function(){for(var e=this._graph,t=0;t.01?this._layout.step(this._steps):this.messageCenter.dispatch(d.EVENT.FORCE_LAYOUT_END,{},{},this.myChart)},refresh:function(e){if(e&&(this.option=e,this.series=this.option.series),this.legend=this.component.legend,this.legend)this.getColor=function(e){return this.legend.getColor(e)},this.isSelected=function(e){return this.legend.isSelected(e)};else{var t={},i=0;this.getColor=function(e){return t[e]?t[e]:(t[e]||(t[e]=this.zr.getColor(i++)),t[e])},this.isSelected=function(){return!0}}this._init()},dispose:function(){this.clear(),this.shapeList=null,this.effectList=null,this._layout.dispose(),this._layout=null,this.__nodePositionMap={}},getPosition:function(){var e=[];return this._graph.eachNode(function(t){t.layout&&e.push({name:t.data.name,position:Array.prototype.slice.call(t.layout.position)})}),e}},c.inherits(t,r),e("../chart").define("force",t),t}),i("echarts/layout/Force",["require","./forceLayoutWorker","zrender/tool/vector"],function(e){function t(){if("undefined"!=typeof Worker&&"undefined"!=typeof Blob)try{var e=new Blob([n.getWorkerCode()]);i=window.URL.createObjectURL(e)}catch(t){i=""}return i}var i,n=e("./forceLayoutWorker"),a=e("zrender/tool/vector"),o=window.requestAnimationFrame||window.msRequestAnimationFrame||window.mozRequestAnimationFrame||window.webkitRequestAnimationFrame||function(e){setTimeout(e,16)},r="undefined"==typeof Float32Array?Array:Float32Array,s=function(e){"undefined"==typeof i&&t(),e=e||{},this.width=e.width||500,this.height=e.height||500,this.center=e.center||[this.width/2,this.height/2],this.ratioScaling=e.ratioScaling||!1,this.scaling=e.scaling||1,this.gravity="undefined"!=typeof e.gravity?e.gravity:1,this.large=e.large||!1,this.preventNodeOverlap=e.preventNodeOverlap||!1,this.preventNodeEdgeOverlap=e.preventNodeEdgeOverlap||!1,this.maxSpeedIncrease=e.maxSpeedIncrease||1,this.onupdate=e.onupdate||function(){},this.temperature=e.temperature||1,this.coolDown=e.coolDown||.99,this._layout=null,this._layoutWorker=null;var n=this,a=this._$onupdate;this._$onupdate=function(e){a.call(n,e)}};return s.prototype.updateConfig=function(){var e=this.width,t=this.height,i=Math.min(e,t),n={center:this.center,width:this.ratioScaling?e:i,height:this.ratioScaling?t:i,scaling:this.scaling||1,gravity:this.gravity||1,barnesHutOptimize:this.large,preventNodeOverlap:this.preventNodeOverlap,preventNodeEdgeOverlap:this.preventNodeEdgeOverlap,maxSpeedIncrease:this.maxSpeedIncrease};if(this._layoutWorker)this._layoutWorker.postMessage({cmd:"updateConfig",config:n});else for(var a in n)this._layout[a]=n[a]},s.prototype.init=function(e,t){if(this._layoutWorker&&(this._layoutWorker.terminate(),this._layoutWorker=null),i&&t)try{this._layoutWorker||(this._layoutWorker=new Worker(i),this._layoutWorker.onmessage=this._$onupdate),this._layout=null}catch(a){this._layoutWorker=null,this._layout||(this._layout=new n)}else this._layout||(this._layout=new n);this.temperature=1,this.graph=e;for(var o=e.nodes.length,s=new r(2*o),l=new r(o),h=new r(o),m=0;o>m;m++){var V=e.nodes[m];s[2*m]=V.layout.position[0],s[2*m+1]=V.layout.position[1],l[m]="undefined"==typeof V.layout.mass?1:V.layout.mass,h[m]="undefined"==typeof V.layout.size?1:V.layout.size,V.layout.__index=m}o=e.edges.length;for(var U=new r(2*o),d=new r(o),m=0;o>m;m++){var p=e.edges[m];U[2*m]=p.node1.layout.__index,U[2*m+1]=p.node2.layout.__index,d[m]=p.layout.weight||1}this._layoutWorker?this._layoutWorker.postMessage({cmd:"init",nodesPosition:s,nodesMass:l,nodesSize:h,edges:U,edgesWeight:d}):(this._layout.initNodes(s,l,h),this._layout.initEdges(U,d)),this.updateConfig()},s.prototype.step=function(e){var t=this.graph.nodes;if(this._layoutWorker){for(var i=new r(2*t.length),n=0;nn;n++)this.temperature*=this.coolDown}else{o(this._$onupdate);for(var n=0;nn;n++)this._layout.temperature=this.temperature,this._layout.update(),this.temperature*=this.coolDown}},s.prototype._$onupdate=function(e){if(this._layoutWorker){for(var t=new Float32Array(e.data),i=0;i0&&(a=1/Math.sqrt(a),e[0]=t[0]*a,e[1]=t[1]*a),e},negate:function(e,t){return e[0]=-t[0],e[1]=-t[1],e},copy:function(e,t){return e[0]=t[0],e[1]=t[1],e},set:function(e,t,i){return e[0]=t,e[1]=i,e}}:e("zrender/tool/vector");var l="undefined"==typeof Float32Array?Array:Float32Array;if(t.prototype.beforeUpdate=function(){for(var e=0;e=e&&this.bbox[1]<=t&&this.bbox[3]>=t},t.prototype.setBBox=function(e,t,i,n){this.bbox[0]=e,this.bbox[1]=t,this.bbox[2]=i,this.bbox[3]=n,this.size=(i-e+n-t)/2},t.prototype._newSubRegion=function(){var e=this.subRegions[this.nSubRegions];return e||(e=new t,this.subRegions[this.nSubRegions]=e),this.nSubRegions++,e},t.prototype._addNodeToSubRegion=function(e){var t=this.findSubRegion(e.position[0],e.position[1]),i=this.bbox;if(!t){var n=(i[0]+i[2])/2,a=(i[1]+i[3])/2,o=(i[2]-i[0])/2,r=(i[3]-i[1])/2,s=e.position[0]>=n?1:0,l=e.position[1]>=a?1:0,t=this._newSubRegion();t.setBBox(s*o+i[0],l*r+i[1],(s+1)*o+i[0],(l+1)*r+i[1])}t.addNode(e)},t.prototype._updateCenterOfMass=function(e){null==this.centerOfMass&&(this.centerOfMass=r.create());var t=this.centerOfMass[0]*this.mass,i=this.centerOfMass[1]*this.mass;t+=e.position[0]*e.mass,i+=e.position[1]*e.mass,this.mass+=e.mass,this.centerOfMass[0]=t/this.mass,this.centerOfMass[1]=i/this.mass},a.prototype.nodeToNodeRepulsionFactor=function(e,t,i){return i*i*e/t},a.prototype.edgeToNodeRepulsionFactor=function(e,t,i){return i*e/t},a.prototype.attractionFactor=function(e,t,i){return e*t/i},a.prototype.initNodes=function(e,t,n){this.temperature=1;var a=e.length/2;this.nodes.length=0;for(var o="undefined"!=typeof n,r=0;a>r;r++){var s=new i;s.position[0]=e[2*r],s.position[1]=e[2*r+1],s.mass=t[r],o&&(s.size=n[r]),this.nodes.push(s)}this._massArr=t,o&&(this._sizeArr=n)},a.prototype.initEdges=function(e,t){var i=e.length/2;this.edges.length=0;for(var a="undefined"!=typeof t,o=0;i>o;o++){var r=e[2*o],s=e[2*o+1],l=this.nodes[r],h=this.nodes[s];if(l&&h){l.outDegree++,h.inDegree++;var m=new n(l,h);a&&(m.weight=t[o]),this.edges.push(m)}}},a.prototype.update=function(){var e=this.nodes.length;if(this.updateBBox(),this._k=.4*this.scaling*Math.sqrt(this.width*this.height/e),this.barnesHutOptimize){this._rootRegion.setBBox(this.bbox[0],this.bbox[1],this.bbox[2],this.bbox[3]),this._rootRegion.beforeUpdate();for(var t=0;e>t;t++)this._rootRegion.addNode(this.nodes[t]);this._rootRegion.afterUpdate()}else{var i=0,n=this._rootRegion.centerOfMass;r.set(n,0,0);for(var t=0;e>t;t++){var a=this.nodes[t];i+=a.mass,r.scaleAndAdd(n,n,a.position,a.mass); + +}i>0&&r.scale(n,n,1/i)}this.updateForce(),this.updatePosition()},a.prototype.updateForce=function(){for(var e=this.nodes.length,t=0;e>t;t++){var i=this.nodes[t];r.copy(i.forcePrev,i.force),r.copy(i.speedPrev,i.speed),r.set(i.force,0,0)}this.updateNodeNodeForce(),this.gravity>0&&this.updateGravityForce(),this.updateEdgeForce(),this.preventNodeEdgeOverlap&&this.updateNodeEdgeForce()},a.prototype.updatePosition=function(){for(var e=this.nodes.length,t=r.create(),i=0;e>i;i++){var n=this.nodes[i],a=n.speed;r.scale(n.force,n.force,1/30);var o=r.len(n.force)+.1,s=Math.min(o,500)/o;r.scale(n.force,n.force,s),r.add(a,a,n.force),r.scale(a,a,this.temperature),r.sub(t,a,n.speedPrev);var l=r.len(t);if(l>0){r.scale(t,t,1/l);var h=r.len(n.speedPrev);h>0&&(l=Math.min(l/h,this.maxSpeedIncrease)*h,r.scaleAndAdd(a,n.speedPrev,t,l))}var m=r.len(a),s=Math.min(m,100)/(m+.1);r.scale(a,a,s),r.add(n.position,n.position,a)}},a.prototype.updateNodeNodeForce=function(){for(var e=this.nodes.length,t=0;e>t;t++){var i=this.nodes[t];if(this.barnesHutOptimize)this.applyRegionToNodeRepulsion(this._rootRegion,i);else for(var n=t+1;e>n;n++){var a=this.nodes[n];this.applyNodeToNodeRepulsion(i,a,!1)}}},a.prototype.updateGravityForce=function(){for(var e=0;ethis.barnesHutTheta*t.size*t.size){var a=this._k*this._k*(i.mass+t.mass)/(n+1);r.scaleAndAdd(i.force,i.force,e,2*a)}else for(var o=0;o0?o=this.nodeToNodeRepulsionFactor(s,l,this._k):0>=l&&(o=this._k*this._k*10*s)):o=this.nodeToNodeRepulsionFactor(s,l,this._k),n||r.scaleAndAdd(t.force,t.force,e,2*o),r.scaleAndAdd(i.force,i.force,e,2*-o)}}}}(),a.prototype.applyEdgeAttraction=function(){var e=r.create();return function(t){var i=t.node1,n=t.node2;r.sub(e,i.position,n.position);var a,o=r.len(e);a=0===this.edgeWeightInfluence?1:1==this.edgeWeightInfluence?t.weight:Math.pow(t.weight,this.edgeWeightInfluence);var s;if(!(this.preventOverlap&&(o=o-i.size-n.size,0>=o))){var s=this.attractionFactor(a,o,this._k);r.scaleAndAdd(i.force,i.force,e,-s),r.scaleAndAdd(n.force,n.force,e,s)}}}(),a.prototype.applyNodeGravity=function(){var e=r.create();return function(t){r.sub(e,this.center,t.position),this.width>this.height?e[1]*=this.width/this.height:e[0]*=this.height/this.width;var i=r.len(e)/100;this.strongGravity?r.scaleAndAdd(t.force,t.force,e,i*this.gravity*t.mass):r.scaleAndAdd(t.force,t.force,e,this.gravity*t.mass/(i+1))}}(),a.prototype.applyEdgeToNodeRepulsion=function(){var e=r.create(),t=r.create(),i=r.create();return function(n,a){var o=n.node1,s=n.node2;if(o!==a&&s!==a){r.sub(e,s.position,o.position),r.sub(t,a.position,o.position);var l=r.len(e);r.scale(e,e,1/l);var h=r.dot(e,t);if(!(0>h||h>l)){r.scaleAndAdd(i,o.position,e,h);var m=r.dist(i,a.position)-a.size,V=this.edgeToNodeRepulsionFactor(a.mass,Math.max(m,.1),100);r.sub(e,a.position,i),r.normalize(e,e),r.scaleAndAdd(a.force,a.force,e,V),r.scaleAndAdd(o.force,o.force,e,-V),r.scaleAndAdd(s.force,s.force,e,-V)}}}}(),a.prototype.updateBBox=function(){for(var e=1/0,t=1/0,i=-(1/0),n=-(1/0),a=0;an;n++){var o=h.nodes[n];o.position[0]=t[2*n],o.position[1]=t[2*n+1]}}else switch(e.data.cmd){case"init":h||(h=new a),h.initNodes(e.data.nodesPosition,e.data.nodesMass,e.data.nodesSize),h.initEdges(e.data.edges,e.data.edgesWeight);break;case"updateConfig":if(h)for(var r in e.data.config)h[r]=e.data.config[r];break;case"update":var s=e.data.steps;if(h){var i=h.nodes.length,t=new Float32Array(2*i);h.temperature=e.data.temperature;for(var n=0;s>n;n++)h.update(),h.temperature*=e.data.coolDown;for(var n=0;i>n;n++){var o=h.nodes[n];t[2*n]=o.position[0],t[2*n+1]=o.position[1]}self.postMessage(t.buffer,[t.buffer])}else{var l=new Float32Array;self.postMessage(l.buffer,[l.buffer])}}}}return a}),i("echarts/chart/map",["require","./base","zrender/shape/Text","zrender/shape/Path","zrender/shape/Circle","zrender/shape/Rectangle","zrender/shape/Line","zrender/shape/Polygon","zrender/shape/Ellipse","zrender/shape/Image","../component/dataRange","../component/roamController","../layer/heatmap","../config","../util/ecData","zrender/tool/util","zrender/config","zrender/tool/event","../util/mapData/params","../util/mapData/textFixed","../util/mapData/geoCoord","../util/projection/svg","../util/projection/normal","../chart"],function(e){function t(e,t,n,a,o){i.call(this,e,t,n,a,o);var r=this;r._onmousewheel=function(e){return r.__onmousewheel(e)},r._onmousedown=function(e){return r.__onmousedown(e)},r._onmousemove=function(e){return r.__onmousemove(e)},r._onmouseup=function(e){return r.__onmouseup(e)},r._onroamcontroller=function(e){return r.__onroamcontroller(e)},r._ondrhoverlink=function(e){return r.__ondrhoverlink(e)},this._isAlive=!0,this._selectedMode={},this._activeMapType={},this._clickable={},this._hoverable={},this._showLegendSymbol={},this._selected={},this._mapTypeMap={},this._mapDataMap={},this._nameMap={},this._specialArea={},this._refreshDelayTicket,this._mapDataRequireCounter,this._markAnimation=!1,this._hoverLinkMap={},this._roamMap={},this._scaleLimitMap={},this._mx,this._my,this._mousedown,this._justMove,this._curMapType,this.refresh(a),this.zr.on(c.EVENT.MOUSEWHEEL,this._onmousewheel),this.zr.on(c.EVENT.MOUSEDOWN,this._onmousedown),t.bind(U.EVENT.ROAMCONTROLLER,this._onroamcontroller),t.bind(U.EVENT.DATA_RANGE_HOVERLINK,this._ondrhoverlink)}var i=e("./base"),n=e("zrender/shape/Text"),a=e("zrender/shape/Path"),o=e("zrender/shape/Circle"),r=e("zrender/shape/Rectangle"),s=e("zrender/shape/Line"),l=e("zrender/shape/Polygon"),h=e("zrender/shape/Ellipse"),m=e("zrender/shape/Image");e("../component/dataRange"),e("../component/roamController");var V=e("../layer/heatmap"),U=e("../config");U.map={zlevel:0,z:2,mapType:"china",showLegendSymbol:!0,dataRangeHoverLink:!0,hoverable:!0,clickable:!0,itemStyle:{normal:{borderColor:"rgba(0,0,0,0)",borderWidth:1,areaStyle:{color:"#ccc"},label:{show:!1,textStyle:{color:"rgb(139,69,19)"}}},emphasis:{borderColor:"rgba(0,0,0,0)",borderWidth:1,areaStyle:{color:"rgba(255,215,0,0.8)"},label:{show:!1,textStyle:{color:"rgb(100,0,0)"}}}}};var d=e("../util/ecData"),p=e("zrender/tool/util"),c=e("zrender/config"),u=e("zrender/tool/event"),y=e("../util/mapData/params").params,g=e("../util/mapData/textFixed"),b=e("../util/mapData/geoCoord");return t.prototype={type:U.CHART_TYPE_MAP,_buildShape:function(){var e=this.series;this.selectedMap={},this._activeMapType={};for(var t,i,n,a,o=this.component.legend,r={},s={},l={},h={},m=0,V=e.length;V>m;m++)if(e[m].type==U.CHART_TYPE_MAP&&(e[m]=this.reformOption(e[m]),i=e[m].mapType,s[i]=s[i]||{},s[i][m]=!0,l[i]=l[i]||e[m].mapValuePrecision,this._scaleLimitMap[i]=this._scaleLimitMap[i]||{},e[m].scaleLimit&&p.merge(this._scaleLimitMap[i],e[m].scaleLimit,!0),this._roamMap[i]=e[m].roam||this._roamMap[i],(null==this._hoverLinkMap[i]||this._hoverLinkMap[i])&&(this._hoverLinkMap[i]=e[m].dataRangeHoverLink),this._nameMap[i]=this._nameMap[i]||{},e[m].nameMap&&p.merge(this._nameMap[i],e[m].nameMap,!0),this._activeMapType[i]=!0,e[m].textFixed&&p.merge(g,e[m].textFixed,!0),e[m].geoCoord&&p.merge(b,e[m].geoCoord,!0),this._selectedMode[i]=this._selectedMode[i]||e[m].selectedMode,(null==this._hoverable[i]||this._hoverable[i])&&(this._hoverable[i]=e[m].hoverable),(null==this._clickable[i]||this._clickable[i])&&(this._clickable[i]=e[m].clickable),(null==this._showLegendSymbol[i]||this._showLegendSymbol[i])&&(this._showLegendSymbol[i]=e[m].showLegendSymbol),h[i]=h[i]||e[m].mapValueCalculation,t=e[m].name,this.selectedMap[t]=o?o.isSelected(t):!0,this.selectedMap[t])){r[i]=r[i]||{},n=e[m].data;for(var d=0,c=n.length;c>d;d++){a=this._nameChange(i,n[d].name),r[i][a]=r[i][a]||{seriesIndex:[],valueMap:{},precision:0};for(var u in n[d])"value"!=u?r[i][a][u]=n[d][u]:isNaN(n[d].value)||(null==r[i][a].value&&(r[i][a].value=0),r[i][a].precision=Math.max(this.getPrecision(+n[d].value),r[i][a].precision),r[i][a].value+=+n[d].value,r[i][a].valueMap[m]=+n[d].value);r[i][a].seriesIndex.push(m)}}this._mapDataRequireCounter=0;for(var f in r)this._mapDataRequireCounter++;this._clearSelected(),0===this._mapDataRequireCounter&&(this.clear(),this.zr&&this.zr.delShape(this.lastShapeList),this.lastShapeList=[]);for(var f in r){for(var c in r[f]){"average"==h[f]&&(r[f][c].value/=r[f][c].seriesIndex.length);var k=r[f][c].value;null!=k&&(r[f][c].value=k.toFixed(null==l[f]?r[f][c].precision:l[f])-0)}this._mapDataMap[f]=this._mapDataMap[f]||{},this._mapDataMap[f].mapData?this._mapDataCallback(f,r[f],s[f])(this._mapDataMap[f].mapData):y[f.replace(/\|.*/,"")].getGeoJson&&(this._specialArea[f]=y[f.replace(/\|.*/,"")].specialArea||this._specialArea[f],y[f.replace(/\|.*/,"")].getGeoJson(this._mapDataCallback(f,r[f],s[f])))}},_mapDataCallback:function(t,i,n){var a=this;return function(o){a._isAlive&&null!=a._activeMapType[t]&&(-1!=t.indexOf("|")&&(o=a._getSubMapData(t,o)),a._mapDataMap[t].mapData=o,o.firstChild?(a._mapDataMap[t].rate=1,a._mapDataMap[t].projection=e("../util/projection/svg")):(a._mapDataMap[t].rate=.75,a._mapDataMap[t].projection=e("../util/projection/normal")),a._buildMap(t,a._getProjectionData(t,o,n),i,n),a._buildMark(t,n),--a._mapDataRequireCounter<=0&&(a.addShapeList(),a.zr.refreshNextFrame()),a._buildHeatmap(t))}},_clearSelected:function(){for(var e in this._selected)this._activeMapType[this._mapTypeMap[e]]||(delete this._selected[e],delete this._mapTypeMap[e])},_getSubMapData:function(e,t){for(var i=e.replace(/^.*\|/,""),n=t.features,a=0,o=n.length;o>a;a++)if(n[a].properties&&n[a].properties.name==i){n=n[a],"United States of America"==i&&n.geometry.coordinates.length>1&&(n={geometry:{coordinates:n.geometry.coordinates.slice(5,6),type:n.geometry.type},id:n.id,properties:n.properties,type:n.type});break}return{type:"FeatureCollection",features:[n]}},_getProjectionData:function(e,t,i){var n,a=this._mapDataMap[e].projection,o=[],r=this._mapDataMap[e].bbox||a.getBbox(t,this._specialArea[e]);n=this._mapDataMap[e].hasRoam?this._mapDataMap[e].transform:this._getTransform(r,i,this._mapDataMap[e].rate);var s,l=this._mapDataMap[e].lastTransform||{scale:{}};n.left!=l.left||n.top!=l.top||n.scale.x!=l.scale.x||n.scale.y!=l.scale.y?(s=a.geoJson2Path(t,n,this._specialArea[e]),l=p.clone(n)):(n=this._mapDataMap[e].transform,s=this._mapDataMap[e].pathArray),this._mapDataMap[e].bbox=r,this._mapDataMap[e].transform=n,this._mapDataMap[e].lastTransform=l,this._mapDataMap[e].pathArray=s;for(var h=[n.left,n.top],m=0,V=s.length;V>m;m++)o.push(this._getSingleProvince(e,s[m],h));if(this._specialArea[e])for(var U in this._specialArea[e])o.push(this._getSpecialProjectionData(e,t,U,this._specialArea[e][U],h));if("china"==e){var d=this.geo2pos(e,b["南海诸岛"]||y["南海诸岛"].textCoord),c=n.scale.x/10.5,u=[32*c+d[0],83*c+d[1]];g["南海诸岛"]&&(u[0]+=g["南海诸岛"][0],u[1]+=g["南海诸岛"][1]),o.push({name:this._nameChange(e,"南海诸岛"),path:y["南海诸岛"].getPath(d,c),position:h,textX:u[0],textY:u[1]})}return o},_getSpecialProjectionData:function(t,i,n,a,o){i=this._getSubMapData("x|"+n,i);var r=e("../util/projection/normal"),s=r.getBbox(i),l=this.geo2pos(t,[a.left,a.top]),h=this.geo2pos(t,[a.left+a.width,a.top+a.height]),m=Math.abs(h[0]-l[0]),V=Math.abs(h[1]-l[1]),U=s.width,d=s.height,p=m/.75/U,c=V/d;p>c?(p=.75*c,m=U*p):(c=p,p=.75*c,V=d*c);var u={OffsetLeft:l[0],OffsetTop:l[1],scale:{x:p,y:c}},y=r.geoJson2Path(i,u);return this._getSingleProvince(t,y[0],o)},_getSingleProvince:function(e,t,i){var n,a=t.properties.name,o=g[a]||[0,0];if(b[a])n=this.geo2pos(e,b[a]);else if(t.cp)n=[t.cp[0]+o[0],t.cp[1]+o[1]];else{var r=this._mapDataMap[e].bbox;n=this.geo2pos(e,[r.left+r.width/2,r.top+r.height/2]),n[0]+=o[0],n[1]+=o[1]}return t.name=this._nameChange(e,a),t.position=i,t.textX=n[0],t.textY=n[1],t},_getTransform:function(e,t,i){var n,a,o,r,s,l,h,m=this.series,V=this.zr.getWidth(),U=this.zr.getHeight(),d=Math.round(.02*Math.min(V,U));for(var p in t)n=m[p].mapLocation||{},o=n.x||o,s=n.y||s,l=n.width||l,h=n.height||h;a=this.parsePercent(o,V),a=isNaN(a)?d:a,r=this.parsePercent(s,U),r=isNaN(r)?d:r,l=null==l?V-a-2*d:this.parsePercent(l,V),h=null==h?U-r-2*d:this.parsePercent(h,U);var c=e.width,u=e.height,y=l/i/c,g=h/u;if(y>g?(y=g*i,l=c*y):(g=y,y=g*i,h=u*g),isNaN(o))switch(o=o||"center",o+""){case"center":a=Math.floor((V-l)/2);break;case"right":a=V-l}if(isNaN(s))switch(s=s||"center",s+""){case"center":r=Math.floor((U-h)/2);break;case"bottom":r=U-h}return{left:a,top:r,width:l,height:h,baseScale:1,scale:{x:y,y:g}}},_buildMap:function(e,t,i,m){for(var V,c,u,y,g,b,f,k,x,_,L,W=this.series,X=this.component.legend,v=this.component.dataRange,w=0,K=t.length;K>w;w++){if(k=p.clone(t[w]),x={name:k.name,path:k.path,position:p.clone(k.position)},c=k.name,u=i[c]){g=[u],V="";for(var I=0,J=u.seriesIndex.length;J>I;I++){var C=W[u.seriesIndex[I]];g.push(C),V+=C.name+" ",X&&this._showLegendSymbol[e]&&X.hasColor(C.name)&&this.shapeList.push(new o({zlevel:C.zlevel,z:C.z+1,position:p.clone(k.position),_mapType:e,style:{x:k.textX+3+7*I,y:k.textY-10,r:3,color:X.getColor(C.name)},hoverable:!1}))}y=u.value}else{u={name:c,value:"-"},V="",g=[];for(var S in m)g.push(W[S]);y="-"}switch(this.ecTheme.map&&g.push(this.ecTheme.map),g.push(U.map),b=v&&!isNaN(y)?v.getColor(y):null,k.color=k.color||b||this.getItemStyleColor(this.deepQuery(g,"itemStyle.normal.color"),u.seriesIndex,-1,u)||this.deepQuery(g,"itemStyle.normal.areaStyle.color"),k.strokeColor=k.strokeColor||this.deepQuery(g,"itemStyle.normal.borderColor"),k.lineWidth=k.lineWidth||this.deepQuery(g,"itemStyle.normal.borderWidth"),x.color=this.getItemStyleColor(this.deepQuery(g,"itemStyle.emphasis.color"),u.seriesIndex,-1,u)||this.deepQuery(g,"itemStyle.emphasis.areaStyle.color")||k.color,x.strokeColor=this.deepQuery(g,"itemStyle.emphasis.borderColor")||k.strokeColor,x.lineWidth=this.deepQuery(g,"itemStyle.emphasis.borderWidth")||k.lineWidth,k.brushType=x.brushType=k.brushType||"both",k.lineJoin=x.lineJoin="round",k._name=x._name=c,f=this.deepQuery(g,"itemStyle.normal.label.textStyle"),L={zlevel:this.getZlevelBase(),z:this.getZBase()+1,position:p.clone(k.position),_mapType:e,_geo:this.pos2geo(e,[k.textX,k.textY]),style:{brushType:"fill",x:k.textX,y:k.textY,text:this.getLabelText(c,y,g,"normal"),_name:c,textAlign:"center",color:this.deepQuery(g,"itemStyle.normal.label.show")?this.deepQuery(g,"itemStyle.normal.label.textStyle.color"):"rgba(0,0,0,0)",textFont:this.getFont(f)}},L._style=p.clone(L.style),L.highlightStyle=p.clone(L.style),this.deepQuery(g,"itemStyle.emphasis.label.show")?(L.highlightStyle.text=this.getLabelText(c,y,g,"emphasis"),L.highlightStyle.color=this.deepQuery(g,"itemStyle.emphasis.label.textStyle.color")||L.style.color,f=this.deepQuery(g,"itemStyle.emphasis.label.textStyle")||f,L.highlightStyle.textFont=this.getFont(f)):L.highlightStyle.color="rgba(0,0,0,0)",_={zlevel:this.getZlevelBase(),z:this.getZBase(),position:p.clone(k.position),style:k,highlightStyle:x,_style:p.clone(k),_mapType:e},null!=k.scale&&(_.scale=p.clone(k.scale)),L=new n(L),_.style.shapeType){case"rectangle":_=new r(_);break;case"line":_=new s(_);break;case"circle":_=new o(_);break;case"polygon":_=new l(_);break;case"ellipse":_=new h(_);break;default:_=new a(_),_.buildPathArray&&(_.style.pathArray=_.buildPathArray(_.style.path))}(this._selectedMode[e]&&this._selected[c]&&u.selected!==!1||u.selected===!0)&&(L.style=L.highlightStyle,_.style=_.highlightStyle),L.clickable=_.clickable=this._clickable[e]&&(null==u.clickable||u.clickable),this._selectedMode[e]&&(this._selected[c]=null!=this._selected[c]?this._selected[c]:u.selected,this._mapTypeMap[c]=e,(null==u.selectable||u.selectable)&&(_.clickable=L.clickable=!0,_.onclick=L.onclick=this.shapeHandler.onclick)),this._hoverable[e]&&(null==u.hoverable||u.hoverable)?(L.hoverable=_.hoverable=!0,_.hoverConnect=L.id,L.hoverConnect=_.id):L.hoverable=_.hoverable=!1,d.pack(L,{name:V,tooltip:this.deepQuery(g,"tooltip")},0,u,0,c),this.shapeList.push(L),d.pack(_,{name:V,tooltip:this.deepQuery(g,"tooltip")},0,u,0,c),this.shapeList.push(_)}},_buildMark:function(e,t){this._seriesIndexToMapType=this._seriesIndexToMapType||{},this.markAttachStyle=this.markAttachStyle||{};var i=[this._mapDataMap[e].transform.left,this._mapDataMap[e].transform.top];"none"==e&&(i=[0,0]);for(var n in t)this._seriesIndexToMapType[n]=e,this.markAttachStyle[n]={position:i,_mapType:e},this.buildMark(n)},_buildHeatmap:function(e){for(var t=this.series,i=0,n=t.length;n>i;i++)if(t[i].heatmap){var a=t[i].heatmap.data;if(t[i].heatmap.needsTransform===!1){for(var o=[],r=0,s=a.length;s>r;++r)o.push([a[r][3],a[r][4],a[r][2]]);var l=[0,0]}else{var h=t[i].heatmap._geoData;if(void 0===h){t[i].heatmap._geoData=[];for(var r=0,s=a.length;s>r;++r)t[i].heatmap._geoData[r]=a[r];h=t[i].heatmap._geoData}for(var s=a.length,U=0;s>U;++U)a[U]=this.geo2pos(e,[h[U][0],h[U][1]]);var l=[this._mapDataMap[e].transform.left,this._mapDataMap[e].transform.top]}var d=new V(t[i].heatmap),p=d.getCanvas(a[0][3]?o:a,this.zr.getWidth(),this.zr.getHeight()),c=new m({zlevel:this.getZlevelBase(),z:this.getZBase()+1,position:l,scale:[1,1],hoverable:!1,style:{x:0,y:0,image:p,width:p.width,height:p.height}});c.type="heatmap",c._mapType=e,this.shapeList.push(c),this.zr.addShape(c)}},getMarkCoord:function(e,t){return t.geoCoord||b[t.name]?this.geo2pos(this._seriesIndexToMapType[e],t.geoCoord||b[t.name]):[0,0]},getMarkGeo:function(e){return e.geoCoord||b[e.name]},_nameChange:function(e,t){return this._nameMap[e][t]||t},getLabelText:function(e,t,i,n){var a=this.deepQuery(i,"itemStyle."+n+".label.formatter");return a?"function"==typeof a?a.call(this.myChart,e,t):"string"==typeof a?(a=a.replace("{a}","{a0}").replace("{b}","{b0}"),a=a.replace("{a0}",e).replace("{b0}",t)):void 0:e},_findMapTypeByPos:function(e,t){var i,n,a,o,r;for(var s in this._mapDataMap)if(i=this._mapDataMap[s].transform,i&&this._roamMap[s]&&this._activeMapType[s]&&(n=i.left,a=i.top,o=i.width,r=i.height,e>=n&&n+o>=e&&t>=a&&a+r>=t))return s},__onmousewheel:function(e){function t(e,t){for(var i=0;in;n++){var o=this.shapeList[n];if(o.__animating)return}var r,s,l=e.event,h=u.getX(l),m=u.getY(l),V=u.getDelta(l),d=e.mapTypeControl;d||(d={},s=this._findMapTypeByPos(h,m),s&&this._roamMap[s]&&"move"!=this._roamMap[s]&&(d[s]=!0));var p=!1;for(s in d)if(d[s]){p=!0;var c=this._mapDataMap[s].transform,y=c.left,g=c.top,b=c.width,f=c.height,k=this.pos2geo(s,[h-y,m-g]);if(V>0){if(r=1.2,null!=this._scaleLimitMap[s].max&&c.baseScale>=this._scaleLimitMap[s].max)continue}else if(r=1/1.2,null!=this._scaleLimitMap[s].min&&c.baseScale<=this._scaleLimitMap[s].min)continue;c.baseScale*=r,c.scale.x*=r,c.scale.y*=r,c.width=b*r,c.height=f*r,this._mapDataMap[s].hasRoam=!0,this._mapDataMap[s].transform=c,k=this.geo2pos(s,k),c.left-=k[0]-(h-y),c.top-=k[1]-(m-g),this._mapDataMap[s].transform=c,this.clearEffectShape(!0);for(var n=0,a=this.shapeList.length;a>n;n++){var o=this.shapeList[n];if(o._mapType==s){var x=o.type,_=o.style;switch(o.position[0]=c.left,o.position[1]=c.top,x){case"path":case"symbol":case"circle":case"rectangle":case"polygon":case"line":case"ellipse":case"heatmap":o.scale[0]*=r,o.scale[1]*=r;break;case"mark-line":i(_,r);break;case"polyline":t(_,r);break;case"shape-bundle":for(var L=0;L<_.shapeList.length;L++){var W=_.shapeList[L];"mark-line"==W.type?i(W.style,r):"polyline"==W.type&&t(W.style,r)}break;case"icon":case"image":k=this.geo2pos(s,o._geo),_.x=_._x=k[0]-_.width/2,_.y=_._y=k[1]-_.height/2;break;default:k=this.geo2pos(s,o._geo),_.x=k[0],_.y=k[1],"text"==x&&(o._style.x=o.highlightStyle.x=k[0],o._style.y=o.highlightStyle.y=k[1])}this.zr.modShape(o.id)}}}if(p){u.stop(l),this.zr.refreshNextFrame();var X=this;clearTimeout(this._refreshDelayTicket),this._refreshDelayTicket=setTimeout(function(){X&&X.shapeList&&X.animationEffect()},100),this.messageCenter.dispatch(U.EVENT.MAP_ROAM,e.event,{type:"scale"},this.myChart)}}},__onmousedown:function(e){if(!(this.shapeList.length<=0)){var t=e.target;if(!t||!t.draggable){var i=e.event,n=u.getX(i),a=u.getY(i),o=this._findMapTypeByPos(n,a);if(o&&this._roamMap[o]&&"scale"!=this._roamMap[o]){this._mousedown=!0,this._mx=n,this._my=a,this._curMapType=o,this.zr.on(c.EVENT.MOUSEUP,this._onmouseup);var r=this;setTimeout(function(){r.zr.on(c.EVENT.MOUSEMOVE,r._onmousemove)},100)}}}},__onmousemove:function(e){if(this._mousedown&&this._isAlive){var t=e.event,i=u.getX(t),n=u.getY(t),a=this._mapDataMap[this._curMapType].transform;a.hasRoam=!0,a.left-=this._mx-i,a.top-=this._my-n,this._mx=i,this._my=n,this._mapDataMap[this._curMapType].transform=a;for(var o=0,r=this.shapeList.length;r>o;o++)this.shapeList[o]._mapType==this._curMapType&&(this.shapeList[o].position[0]=a.left,this.shapeList[o].position[1]=a.top,this.zr.modShape(this.shapeList[o].id));this.messageCenter.dispatch(U.EVENT.MAP_ROAM,e.event,{type:"move"},this.myChart),this.clearEffectShape(!0),this.zr.refreshNextFrame(),this._justMove=!0,u.stop(t)}},__onmouseup:function(e){var t=e.event;this._mx=u.getX(t),this._my=u.getY(t),this._mousedown=!1;var i=this;setTimeout(function(){i._justMove&&i.animationEffect(),i._justMove=!1,i.zr.un(c.EVENT.MOUSEMOVE,i._onmousemove),i.zr.un(c.EVENT.MOUSEUP,i._onmouseup)},120)},__onroamcontroller:function(e){var t=e.event;t.zrenderX=this.zr.getWidth()/2,t.zrenderY=this.zr.getHeight()/2;var i=e.mapTypeControl,n=0,a=0,o=e.step;switch(e.roamType){case"scaleUp":return t.zrenderDelta=1,void this.__onmousewheel({event:t,mapTypeControl:i});case"scaleDown":return t.zrenderDelta=-1,void this.__onmousewheel({event:t,mapTypeControl:i});case"up":n=-o;break;case"down":n=o;break;case"left":a=-o;break;case"right":a=o}var r,s;for(s in i)this._mapDataMap[s]&&this._activeMapType[s]&&(r=this._mapDataMap[s].transform,r.hasRoam=!0,r.left-=a,r.top-=n,this._mapDataMap[s].transform=r);for(var l=0,h=this.shapeList.length;h>l;l++)s=this.shapeList[l]._mapType,i[s]&&this._activeMapType[s]&&(r=this._mapDataMap[s].transform,this.shapeList[l].position[0]=r.left,this.shapeList[l].position[1]=r.top,this.zr.modShape(this.shapeList[l].id));this.messageCenter.dispatch(U.EVENT.MAP_ROAM,e.event,{type:"move"},this.myChart),this.clearEffectShape(!0),this.zr.refreshNextFrame(),clearTimeout(this.dircetionTimer);var m=this;this.dircetionTimer=setTimeout(function(){m.animationEffect()},150)},__ondrhoverlink:function(e){for(var t,i,n=0,a=this.shapeList.length;a>n;n++)t=this.shapeList[n]._mapType,this._hoverLinkMap[t]&&this._activeMapType[t]&&(i=d.get(this.shapeList[n],"value"),null!=i&&i>=e.valueMin&&i<=e.valueMax&&this.zr.addHoverShape(this.shapeList[n]))},onclick:function(e){if(this.isClick&&e.target&&!this._justMove&&"icon"!=e.target.type){this.isClick=!1;var t=e.target,i=t.style._name,n=this.shapeList.length,a=t._mapType||"";if("single"==this._selectedMode[a])for(var o in this._selected)if(this._selected[o]&&this._mapTypeMap[o]==a){for(var r=0;n>r;r++)this.shapeList[r].style._name==o&&this.shapeList[r]._mapType==a&&(this.shapeList[r].style=this.shapeList[r]._style,this.zr.modShape(this.shapeList[r].id));o!=i&&(this._selected[o]=!1)}this._selected[i]=!this._selected[i];for(var r=0;n>r;r++)this.shapeList[r].style._name==i&&this.shapeList[r]._mapType==a&&(this.shapeList[r].style=this._selected[i]?this.shapeList[r].highlightStyle:this.shapeList[r]._style,this.zr.modShape(this.shapeList[r].id));this.messageCenter.dispatch(U.EVENT.MAP_SELECTED,e.event,{selected:this._selected,target:i},this.myChart),this.zr.refreshNextFrame();var s=this;setTimeout(function(){s.zr.trigger(c.EVENT.MOUSEMOVE,e.event)},100)}},refresh:function(e){e&&(this.option=e,this.series=e.series),this._mapDataRequireCounter>0?this.clear():this.backupShapeList(),this._buildShape(),this.zr.refreshHover()},ondataRange:function(e,t){this.component.dataRange&&(this.refresh(),t.needRefresh=!0)},pos2geo:function(e,t){return this._mapDataMap[e].transform?this._mapDataMap[e].projection.pos2geo(this._mapDataMap[e].transform,t):null},getGeoByPos:function(e,t){if(!this._mapDataMap[e].transform)return null;var i=[this._mapDataMap[e].transform.left,this._mapDataMap[e].transform.top];return t instanceof Array?(t[0]-=i[0],t[1]-=i[1]):(t.x-=i[0],t.y-=i[1]),this.pos2geo(e,t)},geo2pos:function(e,t){return this._mapDataMap[e].transform?this._mapDataMap[e].projection.geo2pos(this._mapDataMap[e].transform,t):null},getPosByGeo:function(e,t){if(!this._mapDataMap[e].transform)return null;var i=this.geo2pos(e,t);return i[0]+=this._mapDataMap[e].transform.left,i[1]+=this._mapDataMap[e].transform.top,i},getMapPosition:function(e){return this._mapDataMap[e].transform?[this._mapDataMap[e].transform.left,this._mapDataMap[e].transform.top]:null},onbeforDispose:function(){this._isAlive=!1,this.zr.un(c.EVENT.MOUSEWHEEL,this._onmousewheel),this.zr.un(c.EVENT.MOUSEDOWN,this._onmousedown),this.messageCenter.unbind(U.EVENT.ROAMCONTROLLER,this._onroamcontroller),this.messageCenter.unbind(U.EVENT.DATA_RANGE_HOVERLINK,this._ondrhoverlink)}},p.inherits(t,i),e("../chart").define("map",t),t}),i("zrender/shape/Path",["require","./Base","./util/PathProxy","../tool/util"],function(e){var t=e("./Base"),i=e("./util/PathProxy"),n=i.PathSegment,a=function(e){return Math.sqrt(e[0]*e[0]+e[1]*e[1])},o=function(e,t){return(e[0]*t[0]+e[1]*t[1])/(a(e)*a(t))},r=function(e,t){return(e[0]*t[1]0&&""===d[0]&&d.shift();for(var p=0;p0&&!isNaN(d[0]);){var c,u,y,g,b,f,k,x,_=null,L=[],W=h,X=m;switch(U){case"l":h+=d.shift(),m+=d.shift(),_="L",L.push(h,m);break;case"L":h=d.shift(),m=d.shift(),L.push(h,m);break;case"m":h+=d.shift(),m+=d.shift(),_="M",L.push(h,m),U="l";break;case"M":h=d.shift(),m=d.shift(),_="M",L.push(h,m),U="L";break;case"h":h+=d.shift(),_="L",L.push(h,m);break;case"H":h=d.shift(),_="L",L.push(h,m);break;case"v":m+=d.shift(),_="L",L.push(h,m);break;case"V":m=d.shift(),_="L",L.push(h,m);break;case"C":L.push(d.shift(),d.shift(),d.shift(),d.shift()),h=d.shift(),m=d.shift(),L.push(h,m);break;case"c":L.push(h+d.shift(),m+d.shift(),h+d.shift(),m+d.shift()),h+=d.shift(),m+=d.shift(),_="C",L.push(h,m);break;case"S":c=h,u=m,y=l[l.length-1],"C"===y.command&&(c=h+(h-y.points[2]),u=m+(m-y.points[3])),L.push(c,u,d.shift(),d.shift()),h=d.shift(),m=d.shift(),_="C",L.push(h,m);break;case"s":c=h,u=m,y=l[l.length-1],"C"===y.command&&(c=h+(h-y.points[2]),u=m+(m-y.points[3])),L.push(c,u,h+d.shift(),m+d.shift()),h+=d.shift(),m+=d.shift(),_="C",L.push(h,m);break;case"Q":L.push(d.shift(),d.shift()),h=d.shift(),m=d.shift(),L.push(h,m);break;case"q":L.push(h+d.shift(),m+d.shift()),h+=d.shift(),m+=d.shift(),_="Q",L.push(h,m);break;case"T":c=h,u=m,y=l[l.length-1],"Q"===y.command&&(c=h+(h-y.points[0]),u=m+(m-y.points[1])),h=d.shift(),m=d.shift(),_="Q",L.push(c,u,h,m);break;case"t":c=h,u=m,y=l[l.length-1],"Q"===y.command&&(c=h+(h-y.points[0]),u=m+(m-y.points[1])),h+=d.shift(),m+=d.shift(),_="Q",L.push(c,u,h,m);break;case"A":g=d.shift(),b=d.shift(),f=d.shift(),k=d.shift(),x=d.shift(),W=h,X=m,h=d.shift(),m=d.shift(),_="A",L=this._convertPoint(W,X,h,m,k,x,g,b,f);break;case"a":g=d.shift(),b=d.shift(),f=d.shift(),k=d.shift(),x=d.shift(),W=h,X=m,h+=d.shift(),m+=d.shift(),_="A",L=this._convertPoint(W,X,h,m,k,x,g,b,f)}for(var v=0,w=L.length;w>v;v+=2)L[v]+=t,L[v+1]+=i;l.push(new n(_||U,L))}("z"===U||"Z"===U)&&l.push(new n("z",[]))}return l},_convertPoint:function(e,t,i,n,a,s,l,h,m){var V=m*(Math.PI/180),U=Math.cos(V)*(e-i)/2+Math.sin(V)*(t-n)/2,d=-1*Math.sin(V)*(e-i)/2+Math.cos(V)*(t-n)/2,p=U*U/(l*l)+d*d/(h*h);p>1&&(l*=Math.sqrt(p),h*=Math.sqrt(p));var c=Math.sqrt((l*l*h*h-l*l*d*d-h*h*U*U)/(l*l*d*d+h*h*U*U));a===s&&(c*=-1),isNaN(c)&&(c=0);var u=c*l*d/h,y=c*-h*U/l,g=(e+i)/2+Math.cos(V)*u-Math.sin(V)*y,b=(t+n)/2+Math.sin(V)*u+Math.cos(V)*y,f=r([1,0],[(U-u)/l,(d-y)/h]),k=[(U-u)/l,(d-y)/h],x=[(-1*U-u)/l,(-1*d-y)/h],_=r(k,x);return o(k,x)<=-1&&(_=Math.PI),o(k,x)>=1&&(_=0),0===s&&_>0&&(_-=2*Math.PI),1===s&&0>_&&(_+=2*Math.PI),[g,b,l,h,f,_,V,s]},buildPath:function(e,t){var i=t.path,n=t.x||0,a=t.y||0;t.pathArray=t.pathArray||this.buildPathArray(i,n,a);for(var o=t.pathArray,r=t.pointList=[],s=[],l=0,h=o.length;h>l;l++){"M"==o[l].command.toUpperCase()&&(s.length>0&&r.push(s),s=[]);for(var m=o[l].points,V=0,U=m.length;U>V;V+=2)s.push([m[V],m[V+1]])}s.length>0&&r.push(s);for(var l=0,h=o.length;h>l;l++){var d=o[l].command,m=o[l].points;switch(d){case"L":e.lineTo(m[0],m[1]);break;case"M":e.moveTo(m[0],m[1]);break;case"C":e.bezierCurveTo(m[0],m[1],m[2],m[3],m[4],m[5]);break;case"Q":e.quadraticCurveTo(m[0],m[1],m[2],m[3]);break;case"A":var p=m[0],c=m[1],u=m[2],y=m[3],g=m[4],b=m[5],f=m[6],k=m[7],x=u>y?u:y,_=u>y?1:u/y,L=u>y?y/u:1;e.translate(p,c),e.rotate(f),e.scale(_,L),e.arc(0,0,x,g,g+b,1-k),e.scale(1/_,1/L),e.rotate(-f),e.translate(-p,-c);break;case"z":e.closePath()}}},getRect:function(e){if(e.__rect)return e.__rect;var t;t="stroke"==e.brushType||"fill"==e.brushType?e.lineWidth||1:0;for(var i=Number.MAX_VALUE,n=Number.MIN_VALUE,a=Number.MAX_VALUE,o=Number.MIN_VALUE,r=e.x||0,s=e.y||0,l=e.pathArray||this.buildPathArray(e.path),h=0;hn&&(n=m[V])):(m[V]+so&&(o=m[V]));var U;return U=i===Number.MAX_VALUE||n===Number.MIN_VALUE||a===Number.MAX_VALUE||o===Number.MIN_VALUE?{x:0,y:0,width:0,height:0}:{x:Math.round(i-t/2),y:Math.round(a-t/2),width:n-i+t,height:o-a+t},e.__rect=U,U}},e("../tool/util").inherits(s,t),s}),i("zrender/shape/Ellipse",["require","./Base","../tool/util"],function(e){var t=e("./Base"),i=function(e){t.call(this,e)};return i.prototype={type:"ellipse",buildPath:function(e,t){var i=.5522848,n=t.x,a=t.y,o=t.a,r=t.b,s=o*i,l=r*i;e.moveTo(n-o,a),e.bezierCurveTo(n-o,a-l,n-s,a-r,n,a-r),e.bezierCurveTo(n+s,a-r,n+o,a-l,n+o,a),e.bezierCurveTo(n+o,a+l,n+s,a+r,n,a+r),e.bezierCurveTo(n-s,a+r,n-o,a+l,n-o,a),e.closePath()},getRect:function(e){if(e.__rect)return e.__rect;var t;return t="stroke"==e.brushType||"fill"==e.brushType?e.lineWidth||1:0,e.__rect={x:Math.round(e.x-e.a-t/2), +y:Math.round(e.y-e.b-t/2),width:2*e.a+t,height:2*e.b+t},e.__rect}},e("../tool/util").inherits(i,t),i}),i("echarts/component/roamController",["require","./base","zrender/shape/Rectangle","zrender/shape/Sector","zrender/shape/Circle","../config","zrender/tool/util","zrender/tool/color","zrender/tool/event","../component"],function(e){function t(e,t,n,a,o){if(this.rcOption={},a.roamController&&a.roamController.show){if(!a.roamController.mapTypeControl)return void console.error("option.roamController.mapTypeControl has not been defined.");i.call(this,e,t,n,a,o),this.rcOption=a.roamController;var r=this;this._drictionMouseDown=function(e){return r.__drictionMouseDown(e)},this._drictionMouseUp=function(e){return r.__drictionMouseUp(e)},this._drictionMouseMove=function(e){return r.__drictionMouseMove(e)},this._drictionMouseOut=function(e){return r.__drictionMouseOut(e)},this._scaleHandler=function(e){return r.__scaleHandler(e)},this.refresh(a)}}var i=e("./base"),n=e("zrender/shape/Rectangle"),a=e("zrender/shape/Sector"),o=e("zrender/shape/Circle"),r=e("../config");r.roamController={zlevel:0,z:4,show:!0,x:"left",y:"top",width:80,height:120,backgroundColor:"rgba(0,0,0,0)",borderColor:"#ccc",borderWidth:0,padding:5,handleColor:"#6495ed",fillerColor:"#fff",step:15,mapTypeControl:null};var s=e("zrender/tool/util"),l=e("zrender/tool/color"),h=e("zrender/tool/event");return t.prototype={type:r.COMPONENT_TYPE_ROAMCONTROLLER,_buildShape:function(){if(this.rcOption.show){this._itemGroupLocation=this._getItemGroupLocation(),this._buildBackground(),this._buildItem();for(var e=0,t=this.shapeList.length;t>e;e++)this.zr.addShape(this.shapeList[e])}},_buildItem:function(){this.shapeList.push(this._getDirectionShape("up")),this.shapeList.push(this._getDirectionShape("down")),this.shapeList.push(this._getDirectionShape("left")),this.shapeList.push(this._getDirectionShape("right")),this.shapeList.push(this._getScaleShape("scaleUp")),this.shapeList.push(this._getScaleShape("scaleDown"))},_getDirectionShape:function(e){var t=this._itemGroupLocation.r,i=this._itemGroupLocation.x+t,n=this._itemGroupLocation.y+t,o={zlevel:this.getZlevelBase(),z:this.getZBase(),style:{x:i,y:n,r:t,startAngle:-45,endAngle:45,color:this.rcOption.handleColor,text:">",textX:i+t/2+4,textY:n-.5,textAlign:"center",textBaseline:"middle",textPosition:"specific",textColor:this.rcOption.fillerColor,textFont:Math.floor(t/2)+"px arial"},highlightStyle:{color:l.lift(this.rcOption.handleColor,-.2),brushType:"fill"},clickable:!0};switch(e){case"up":o.rotation=[Math.PI/2,i,n];break;case"left":o.rotation=[Math.PI,i,n];break;case"down":o.rotation=[-Math.PI/2,i,n]}return o=new a(o),o._roamType=e,o.onmousedown=this._drictionMouseDown,o.onmouseup=this._drictionMouseUp,o.onmousemove=this._drictionMouseMove,o.onmouseout=this._drictionMouseOut,o},_getScaleShape:function(e){var t=this._itemGroupLocation.width,i=this._itemGroupLocation.height-t;i=0>i?20:i;var n=Math.min(t/2-5,i)/2,a=this._itemGroupLocation.x+("scaleDown"===e?t-n:n),r=this._itemGroupLocation.y+this._itemGroupLocation.height-n,s={zlevel:this.getZlevelBase(),z:this.getZBase(),style:{x:a,y:r,r:n,color:this.rcOption.handleColor,text:"scaleDown"===e?"-":"+",textX:a,textY:r-2,textAlign:"center",textBaseline:"middle",textPosition:"specific",textColor:this.rcOption.fillerColor,textFont:Math.floor(n)+"px verdana"},highlightStyle:{color:l.lift(this.rcOption.handleColor,-.2),brushType:"fill"},clickable:!0};return s=new o(s),s._roamType=e,s.onmousedown=this._scaleHandler,s},_buildBackground:function(){var e=this.reformCssArray(this.rcOption.padding);this.shapeList.push(new n({zlevel:this.getZlevelBase(),z:this.getZBase(),hoverable:!1,style:{x:this._itemGroupLocation.x-e[3],y:this._itemGroupLocation.y-e[0],width:this._itemGroupLocation.width+e[3]+e[1],height:this._itemGroupLocation.height+e[0]+e[2],brushType:0===this.rcOption.borderWidth?"fill":"both",color:this.rcOption.backgroundColor,strokeColor:this.rcOption.borderColor,lineWidth:this.rcOption.borderWidth}}))},_getItemGroupLocation:function(){var e,t=this.reformCssArray(this.rcOption.padding),i=this.rcOption.width,n=this.rcOption.height,a=this.zr.getWidth(),o=this.zr.getHeight();switch(this.rcOption.x){case"center":e=Math.floor((a-i)/2);break;case"left":e=t[3]+this.rcOption.borderWidth;break;case"right":e=a-i-t[1]-t[3]-2*this.rcOption.borderWidth;break;default:e=this.parsePercent(this.rcOption.x,a)}var r;switch(this.rcOption.y){case"top":r=t[0]+this.rcOption.borderWidth;break;case"bottom":r=o-n-t[0]-t[2]-2*this.rcOption.borderWidth;break;case"center":r=Math.floor((o-n)/2);break;default:r=this.parsePercent(this.rcOption.y,o)}return{x:e,y:r,r:i/2,width:i,height:n}},__drictionMouseDown:function(e){this.mousedown=!0,this._drictionHandlerOn(e)},__drictionMouseUp:function(e){this.mousedown=!1,this._drictionHandlerOff(e)},__drictionMouseMove:function(e){this.mousedown&&this._drictionHandlerOn(e)},__drictionMouseOut:function(e){this._drictionHandlerOff(e)},_drictionHandlerOn:function(e){this._dispatchEvent(e.event,e.target._roamType),clearInterval(this.dircetionTimer);var t=this;this.dircetionTimer=setInterval(function(){t._dispatchEvent(e.event,e.target._roamType)},100),h.stop(e.event)},_drictionHandlerOff:function(){clearInterval(this.dircetionTimer)},__scaleHandler:function(e){this._dispatchEvent(e.event,e.target._roamType),h.stop(e.event)},_dispatchEvent:function(e,t){this.messageCenter.dispatch(r.EVENT.ROAMCONTROLLER,e,{roamType:t,mapTypeControl:this.rcOption.mapTypeControl,step:this.rcOption.step},this.myChart)},refresh:function(e){e&&(this.option=e||this.option,this.option.roamController=this.reformOption(this.option.roamController),this.rcOption=this.option.roamController),this.clear(),this._buildShape()}},s.inherits(t,i),e("../component").define("roamController",t),t}),i("echarts/layer/heatmap",["require"],function(){function e(e){if(this.option=e,e)for(var i in t)this.option[i]=void 0!==e[i]?e[i]:t[i];else this.option=t}var t={blurSize:30,gradientColors:["blue","cyan","lime","yellow","red"],minAlpha:.05,valueScale:1,opacity:1},i=20,n=256;return e.prototype={getCanvas:function(e,t,a){var o=this._getBrush(),r=this._getGradient(),s=i+this.option.blurSize,l=document.createElement("canvas");l.width=t,l.height=a;for(var h=l.getContext("2d"),m=e.length,V=0;m>V;++V){var U=e[V],d=U[0],p=U[1],c=U[2],u=Math.min(1,Math.max(c*this.option.valueScale||this.option.minAlpha,this.option.minAlpha));h.globalAlpha=u,h.drawImage(o,d-s,p-s)}for(var y=h.getImageData(0,0,l.width,l.height),g=y.data,m=g.length/4;m--;){var b=4*m+3,u=g[b]/256,f=Math.floor(u*(n-1));g[b-3]=r[4*f],g[b-2]=r[4*f+1],g[b-1]=r[4*f+2],g[b]*=this.option.opacity}return h.putImageData(y,0,0),l},_getBrush:function(){if(!this._brushCanvas){this._brushCanvas=document.createElement("canvas");var e=i+this.option.blurSize,t=2*e;this._brushCanvas.width=t,this._brushCanvas.height=t;var n=this._brushCanvas.getContext("2d");n.shadowOffsetX=t,n.shadowBlur=this.option.blurSize,n.shadowColor="black",n.beginPath(),n.arc(-e,e,i,0,2*Math.PI,!0),n.closePath(),n.fill()}return this._brushCanvas},_getGradient:function(){if(!this._gradientPixels){var e=n,t=document.createElement("canvas");t.width=1,t.height=e;for(var i=t.getContext("2d"),a=i.createLinearGradient(0,0,0,e),o=this.option.gradientColors.length,r=0;o>r;++r)"string"==typeof this.option.gradientColors[r]?a.addColorStop((r+1)/o,this.option.gradientColors[r]):a.addColorStop(this.option.gradientColors[r].offset,this.option.gradientColors[r].color);i.fillStyle=a,i.fillRect(0,0,1,e),this._gradientPixels=i.getImageData(0,0,1,e).data}return this._gradientPixels}},e}),i("echarts/util/mapData/params",["require"],function(e){function t(e){if(!e.UTF8Encoding)return e;for(var t=e.features,n=0;n>1^-(1&r),s=s>>1^-(1&s),r+=n,s+=a,n=r,a=s,i.push([r/1024,s/1024])}return i}var n={none:{getGeoJson:function(e){e({type:"FeatureCollection",features:[{type:"Feature",geometry:{coordinates:[],encodeOffsets:[],type:"Polygon"},properties:{}}]})}},world:{getGeoJson:function(i){e(["./geoJson/world_geo"],function(e){i(t(e))})}},china:{getGeoJson:function(i){e(["./geoJson/china_geo"],function(e){i(t(e))})}},"南海诸岛":{textCoord:[126,25],getPath:function(e,t){for(var i=[[[0,3.5],[7,11.2],[15,11.9],[30,7],[42,.7],[52,.7],[56,7.7],[59,.7],[64,.7],[64,0],[5,0],[0,3.5]],[[13,16.1],[19,14.7],[16,21.7],[11,23.1],[13,16.1]],[[12,32.2],[14,38.5],[15,38.5],[13,32.2],[12,32.2]],[[16,47.6],[12,53.2],[13,53.2],[18,47.6],[16,47.6]],[[6,64.4],[8,70],[9,70],[8,64.4],[6,64.4]],[[23,82.6],[29,79.8],[30,79.8],[25,82.6],[23,82.6]],[[37,70.7],[43,62.3],[44,62.3],[39,70.7],[37,70.7]],[[48,51.1],[51,45.5],[53,45.5],[50,51.1],[48,51.1]],[[51,35],[51,28.7],[53,28.7],[53,35],[51,35]],[[52,22.4],[55,17.5],[56,17.5],[53,22.4],[52,22.4]],[[58,12.6],[62,7],[63,7],[60,12.6],[58,12.6]],[[0,3.5],[0,93.1],[64,93.1],[64,0],[63,0],[63,92.4],[1,92.4],[1,3.5],[0,3.5]]],n="",a=e[0],o=e[1],r=0,s=i.length;s>r;r++){n+="M "+((i[r][0][0]*t+a).toFixed(2)-0)+" "+((i[r][0][1]*t+o).toFixed(2)-0)+" ";for(var l=1,h=i[r].length;h>l;l++)n+="L "+((i[r][l][0]*t+a).toFixed(2)-0)+" "+((i[r][l][1]*t+o).toFixed(2)-0)+" "}return n+" Z"}},"新疆":{getGeoJson:function(i){e(["./geoJson/xin_jiang_geo"],function(e){i(t(e))})}},"西藏":{getGeoJson:function(i){e(["./geoJson/xi_zang_geo"],function(e){i(t(e))})}},"内蒙古":{getGeoJson:function(i){e(["./geoJson/nei_meng_gu_geo"],function(e){i(t(e))})}},"青海":{getGeoJson:function(i){e(["./geoJson/qing_hai_geo"],function(e){i(t(e))})}},"四川":{getGeoJson:function(i){e(["./geoJson/si_chuan_geo"],function(e){i(t(e))})}},"黑龙江":{getGeoJson:function(i){e(["./geoJson/hei_long_jiang_geo"],function(e){i(t(e))})}},"甘肃":{getGeoJson:function(i){e(["./geoJson/gan_su_geo"],function(e){i(t(e))})}},"云南":{getGeoJson:function(i){e(["./geoJson/yun_nan_geo"],function(e){i(t(e))})}},"广西":{getGeoJson:function(i){e(["./geoJson/guang_xi_geo"],function(e){i(t(e))})}},"湖南":{getGeoJson:function(i){e(["./geoJson/hu_nan_geo"],function(e){i(t(e))})}},"陕西":{getGeoJson:function(i){e(["./geoJson/shan_xi_1_geo"],function(e){i(t(e))})}},"广东":{getGeoJson:function(i){e(["./geoJson/guang_dong_geo"],function(e){i(t(e))})}},"吉林":{getGeoJson:function(i){e(["./geoJson/ji_lin_geo"],function(e){i(t(e))})}},"河北":{getGeoJson:function(i){e(["./geoJson/he_bei_geo"],function(e){i(t(e))})}},"湖北":{getGeoJson:function(i){e(["./geoJson/hu_bei_geo"],function(e){i(t(e))})}},"贵州":{getGeoJson:function(i){e(["./geoJson/gui_zhou_geo"],function(e){i(t(e))})}},"山东":{getGeoJson:function(i){e(["./geoJson/shan_dong_geo"],function(e){i(t(e))})}},"江西":{getGeoJson:function(i){e(["./geoJson/jiang_xi_geo"],function(e){i(t(e))})}},"河南":{getGeoJson:function(i){e(["./geoJson/he_nan_geo"],function(e){i(t(e))})}},"辽宁":{getGeoJson:function(i){e(["./geoJson/liao_ning_geo"],function(e){i(t(e))})}},"山西":{getGeoJson:function(i){e(["./geoJson/shan_xi_2_geo"],function(e){i(t(e))})}},"安徽":{getGeoJson:function(i){e(["./geoJson/an_hui_geo"],function(e){i(t(e))})}},"福建":{getGeoJson:function(i){e(["./geoJson/fu_jian_geo"],function(e){i(t(e))})}},"浙江":{getGeoJson:function(i){e(["./geoJson/zhe_jiang_geo"],function(e){i(t(e))})}},"江苏":{getGeoJson:function(i){e(["./geoJson/jiang_su_geo"],function(e){i(t(e))})}},"重庆":{getGeoJson:function(i){e(["./geoJson/chong_qing_geo"],function(e){i(t(e))})}},"宁夏":{getGeoJson:function(i){e(["./geoJson/ning_xia_geo"],function(e){i(t(e))})}},"海南":{getGeoJson:function(i){e(["./geoJson/hai_nan_geo"],function(e){i(t(e))})}},"台湾":{getGeoJson:function(i){e(["./geoJson/tai_wan_geo"],function(e){i(t(e))})}},"北京":{getGeoJson:function(i){e(["./geoJson/bei_jing_geo"],function(e){i(t(e))})}},"天津":{getGeoJson:function(i){e(["./geoJson/tian_jin_geo"],function(e){i(t(e))})}},"上海":{getGeoJson:function(i){e(["./geoJson/shang_hai_geo"],function(e){i(t(e))})}},"香港":{getGeoJson:function(i){e(["./geoJson/xiang_gang_geo"],function(e){i(t(e))})}},"澳门":{getGeoJson:function(i){e(["./geoJson/ao_men_geo"],function(e){i(t(e))})}}};return{decode:t,params:n}}),i("echarts/util/mapData/textFixed",[],function(){return{"广东":[0,-10],"香港":[10,10],"澳门":[-10,18],"黑龙江":[0,20],"天津":[5,5],"深圳市":[-35,0],"红河哈尼族彝族自治州":[0,20],"楚雄彝族自治州":[-5,15],"石河子市":[-5,5],"五家渠市":[0,-10],"昌吉回族自治州":[10,10],"昌江黎族自治县":[0,20],"陵水黎族自治县":[0,20],"东方市":[0,20],"渭南市":[0,20]}}),i("echarts/util/mapData/geoCoord",[],function(){return{Russia:[100,60],"United States of America":[-99,38]}}),i("echarts/util/projection/svg",["require","zrender/shape/Path"],function(e){function t(e){return parseFloat(e||0)}function i(e){for(var i=e.firstChild;"svg"!=i.nodeName.toLowerCase()||1!=i.nodeType;)i=i.nextSibling;var n=t(i.getAttribute("x")),a=t(i.getAttribute("y")),o=t(i.getAttribute("width")),r=t(i.getAttribute("height"));return{left:n,top:a,width:o,height:r}}function n(e,t){function i(e){var t=e.tagName;if(m[t]){var o=m[t](e,n);o&&(o.scale=n,o.properties={name:e.getAttribute("name")||""},o.id=e.id,s(o,e),a.push(o))}for(var r=e.childNodes,l=0,h=r.length;h>l;l++)i(r[l])}var n=[t.scale.x,t.scale.y],a=[];return i(e),a}function a(e,t){var i=t instanceof Array?[1*t[0],1*t[1]]:[1*t.x,1*t.y];return[i[0]/e.scale.x,i[1]/e.scale.y]}function o(e,t){var i=t instanceof Array?[1*t[0],1*t[1]]:[1*t.x,1*t.y];return[i[0]*e.scale.x,i[1]*e.scale.y]}function r(e){return e.replace(/^\s\s*/,"").replace(/\s\s*$/,"")}function s(e,t){var i=t.getAttribute("fill"),n=t.getAttribute("stroke"),a=t.getAttribute("stroke-width"),o=t.getAttribute("opacity");i&&"none"!=i?(e.color=i,n?(e.brushType="both",e.strokeColor=n):e.brushType="fill"):n&&"none"!=n&&(e.strokeColor=n,e.brushType="stroke"),a&&"none"!=a&&(e.lineWidth=parseFloat(a)),o&&"none"!=o&&(e.opacity=parseFloat(o))}function l(e){for(var t=r(e).replace(/,/g," ").split(/\s+/),i=[],n=0;no;o++)if(n=a[o],!n.properties.name||!t[n.properties.name])switch(n.type){case"Feature":r[n.geometry.type](n.geometry.coordinates);break;case"GeometryCollection":i=n.geometries;for(var l=0,h=i.length;h>l;l++)r[i[l].type](i[l].coordinates)}return e.srcSize={left:1*r.xmin.toFixed(4),top:1*r.ymin.toFixed(4),width:1*(r.xmax-r.xmin).toFixed(4),height:1*(r.ymax-r.ymin).toFixed(4)},e}function i(e,i,n){function a(e,t){c=e.type,u=e.coordinates,o._bbox={xmin:360,xmax:-360,ymin:180,ymax:-180},y=o[c](u),m.push({path:y,cp:o.makePoint(t.properties.cp?t.properties.cp:[(o._bbox.xmin+o._bbox.xmax)/2,(o._bbox.ymin+o._bbox.ymax)/2]),properties:t.properties,id:t.id})}n=n||{},o.scale=null,o.offset=null,e.srcSize||t(e,n),i.offset={x:e.srcSize.left,y:e.srcSize.top,left:i.OffsetLeft||0,top:i.OffsetTop||0},o.scale=i.scale,o.offset=i.offset;for(var r,s,l,h=e.features,m=[],V=0,U=h.length;U>V;V++)if(l=h[V],!l.properties.name||!n[l.properties.name])if("Feature"==l.type)a(l.geometry,l);else if("GeometryCollection"==l.type){r=l.geometries;for(var d=0,p=r.length;p>d;d++)s=r[d],a(s,s)}var c,u,y;return m}function n(e,t){var i,n;return t instanceof Array?(i=1*t[0],n=1*t[1]):(i=1*t.x,n=1*t.y),i=i/e.scale.x+e.offset.x-168.5,i=i>180?i-360:i,n=90-(n/e.scale.y+e.offset.y),[i,n]}function a(e,t){return o.offset=e.offset,o.scale=e.scale,o.makePoint(t instanceof Array?[1*t[0],1*t[1]]:[1*t.x,1*t.y])}var o={formatPoint:function(e){return[(e[0]<-168.5&&e[1]>63.8?e[0]+360:e[0])+168.5,90-e[1]]},makePoint:function(e){var t=this,i=t.formatPoint(e);t._bbox.xmin>e[0]&&(t._bbox.xmin=e[0]),t._bbox.xmaxe[1]&&(t._bbox.ymin=e[1]),t._bbox.ymaxn;n++)t=o.makePoint(e[n]),i=0===n?"M"+t.join(","):i+"L"+t.join(",");return i},Polygon:function(e){for(var t="",i=0,n=e.length;n>i;i++)t=t+o.LineString(e[i])+"z";return t},MultiPoint:function(e){for(var t=[],i=0,n=e.length;n>i;i++)t.push(o.Point(e[i]));return t},MultiLineString:function(e){for(var t="",i=0,n=e.length;n>i;i++)t+=o.LineString(e[i]);return t},MultiPolygon:function(e){for(var t="",i=0,n=e.length;n>i;i++)t+=o.Polygon(e[i]);return t}},r={formatPoint:o.formatPoint,makePoint:function(e){var t=this,i=t.formatPoint(e),n=i[0],a=i[1];t.xmin>n&&(t.xmin=n),t.xmaxa&&(t.ymin=a),t.ymaxt;t++)this.makePoint(e[t])},Polygon:function(e){for(var t=0,i=e.length;i>t;t++)this.LineString(e[t])},MultiPoint:function(e){for(var t=0,i=e.length;i>t;t++)this.Point(e[t])},MultiLineString:function(e){for(var t=0,i=e.length;i>t;t++)this.LineString(e[t])},MultiPolygon:function(e){for(var t=0,i=e.length;i>t;t++)this.Polygon(e[t])}};return{getBbox:e,geoJson2Path:i,pos2geo:n,geo2pos:a}}),i("echarts/util/mapData/geoJson/an_hui_geo",[],function(){return{type:"FeatureCollection",features:[{type:"Feature",id:"3415",properties:{name:"六安市",cp:[116.3123,31.8329],childNum:6},geometry:{type:"Polygon",coordinates:["@@„„nJ‚UXUVƒ°U„ÑnU@mlLVaVln@@bn@VU@xlb@lšLnKlšƒVI„JšUVxnI@lVL@b„Ž°VX@˜b„x„nVVUnVVnU‚›@kX@VwV@„al¥UUnUWa@ƒ@wĸU„LU¥lKUa@aUI@alLVaUƒ¯anƒWkUKm@XV@VaXlW@aU_UWVUƒI¯@ma¯W¯™™I@UU@WWU@U@@UU@VkV@@WUUm@UaU@„lK@IUK„L@KWmXUWaXI@ƒ@a@a@U@U@KV¥lw„k°b²JVIVKlV@UX„la„Ul`œUVLVVVUšJ„U@Lnm@_VK@KUIW@™J@Xk@WW@U—ƒmm™XmWk@kK@aUUƒVmmkUwUmWL™@WmU@™UJmUULkKWakLWVkIƒlƒwULƒW@X°lUJ@°ULƒWV—wmJ@bmb¯Vkm@@WkWm¯wƒL@lkXƒWmXym¯UImJUbkV™@Vn¯„@V@lUbƒ@mk@maUxmlUbULWn@J—LmKUkWKkwUKƒbm„X„WxkVUKmLkVV@JUUWL@xkJUUƒV@X@VVlUbVX@xk¤šx‚¼œxWxn„‚nn@Þ¼„JVb°aVn„@šmlnXU„JlbVlkz@‚lUŽlXJmxVxXnWxXÈWlUŽ@šUxU@VX@xUL@šUÆmLnV@lWXk@@JlbXblnlJ"],encodeOffsets:[[118710,33351]]}},{type:"Feature",id:"3408",properties:{name:"安庆市",cp:[116.7517,30.5255],childNum:9},geometry:{type:"Polygon",coordinates:["@@n°‚znW„XlW@k„K°xXn‚l@Xn@l‚°Una@anI˜xXU„ŽVK@¯VIkW¯X@‚„VK„x„klJXUlKXblLVKnVVIšŽV@Xn‚@šŽXKVnVxlŽnn„UlmV@²óUkV™lW„b„lƒšƒn@VVVIn@lw@WVIXblV„@Èx‚aUaVIVVnKVLšK„ƒln@b²K@»U£ƒÑķƒġÝÅb™K™a@Im@ۍ„@kWÓkkmKÅnóJƒUÅ£›W@w„ĕ@wĉţ¯¯ƒUkK±l¯Uƒ¥UÑkÝUķ»Ý¥¯™JƒIUŽVbUl¯ÈV¼VJU¼Vb@bkLUl@„VJ@bUXǚ@lkVmXmKkLVxš‚Ž„VƒL@VkVVVlzW˜kbmLUUUbVbUV™šlÒnJlUnLllUL@bU„Vx„l‚LXVƦÈVU¦WJ"],encodeOffsets:[[118834,31759]]}},{type:"Feature",id:"3411",properties:{name:"滁州市",cp:[118.1909,32.536],childNum:7},geometry:{type:"Polygon",coordinates:["@@š„@`nnl@„xšK@X°KXV˜IXVlbXVWnX‚lL@šÈ»‚LVan@VJ„êVVn@‚X@laÞbVaƒyn@„_‚xnWVXnWl@VnUVkI@l‚nXKVLVV@V@kW@LlVô„@J@bVnnKnkVa@»lç@ƒnwšKma™UUUVњ@n™mWXalI@alVn@VwUaVU„@„nlaôJnU„VVXlJšaXXVK@UšV@VWx@nXVWšXVšUlLUbV‚ULVVnUVbUbVbš@@a„KÆnnKVK@U@UU@@a„@Vƒ°¯ÈJVIlķ@aa˜UaVKU_@mkxUI@aƒUlyU@@™wkKWmUbUnUVWbkJW_J@bƒn@Vm@@KULk@V@@bVbÅm@LW@UVVbkK@UkKWL@VULUKWIUJUbkK@_WVXU›Jka@XƒVa@kšy@aVIUUW@@m„UlLœKWÑUKVan@UkVmmIXKƒaVaUwVU@UmykU¯@±UUL@WUIVUU@KkIWaƒaU@kUUaǃUó»mKƒk¯@y@kWK@bkI¯`mn™l¯XWlkVUzUJlbUbVJl@nnm„@VULV`XnWƗbmUUn™JmUknƒJ¯km@ƒyk@kU›xL@VUbmnn¤lX@`™z@JmaULUVl@Xn@xllkXWa—aW@UVmUbƒ@mVXšWxXbWbUŽƒÒnVVnVVUL"],encodeOffsets:[[120004,33520]]}},{type:"Feature",id:"3418",properties:{name:"宣城市",cp:[118.8062,30.6244],childNum:7},geometry:{type:"Polygon",coordinates:["@@Vb@„XL˜JXxlIXxlVlV@I²¤šnlUnVšU@VULWVUJ@Lnb@lV@UnV@@VVVlLnbnJ‚UVkUUVWn@@anUVnVJVIV‚@@nUJVbUb‚„@VUbVK@bn@VbnIlxkllXVlXKWUXUlL°¤UVVb@bš„UlkXW‚ƒxXz@‚„Ila„UlƒnUlJVInVÆJ„U„LVUnV„K°@VnlVnxV@XLlK@wVL@KnUlJXU˜bnKVLX„lUw@VWlLXKm@@a„@VLnmlIVVnKn@škVašVlwk@@a@k@ƒVIUa™@maUa@wna@kmWƒ™UUmVUIVǗ@aƒKm™aƒ™kU™J@InmUUaVa„k‚lX@Vk@m@VU@wnK@alKVUkUkKƒbmUkmƒ@U£WVk@@UÝbbƒaÇx@b@WVUa¯ƒ@wVwUUV@VwnK@KWaŁ@KšIUyUI@WmXó™UbWaKm™@km@IUyƒIUaWKƒx@zUKUL@llVUnkLVVkJWX@VUKUVƒIkVWakb@VWb@n@JkXUlmL@xkL@`VxšLUÈUJ@Vm@@bmIUlUL@VUVVbknm@mKUw™KVÈ@J@LV±kkJUIƒl"],encodeOffsets:[[120803,31247]]}},{type:"Feature",id:"3412",properties:{name:"阜阳市",cp:[115.7629,32.9919],childNum:6},geometry:{type:"Polygon",coordinates:["@@V™nƒš@ša„k°aš±@‚¥@UUI@aUmlwUUx›b@¥XU@mmI@a@Kn@@_W@@W„I@mšUVVXUl@XaV@‚K@I@a„LX@aVI°K@KVL„UUw‚yXkšK@kšKÆbXnlK@k@a„JlU@w@U@»@aXKWƒn_‚JXkVKnƒ@°LlKXƒW@¯Uƒ@aUK@kmJUw™VƒIUJ™„kŽmL™K@kka@wUVm@@am@UkUbkK@nmVƒÒ¯VU„WVVmIƒƒULk@ƒƒma@kkKƒƒ@nUbUamU™`UUVUkKVkkƒW@@bkmƒnƒmUXVKXVƒL@VƒbU„m‚™bVXJ@nmKÅI@KWKUXVJUL@VUKUX@KUKWL@LUJmaXXm@kVVV@L@VUL@VlK@L@V@LUK@VUb@UUU@°@nVxU`‚Lkn@`@XVJ@X™Vm„k@UKmV¯LVVn±Wm@Ub@JlLUl„@VLk„@lmVVn@bnV@V°IV™šaVJXI°K°V@XXVlVVU„nšKVlUš„bWXnV@bV`U„„@@m@@‚ƒ@nxmn@bXVlL@¤nb„Ul¦šVVUnJVU„Vl@@bÞL"],encodeOffsets:[[118418,34392]]}},{type:"Feature",id:"3413",properties:{name:"宿州市",cp:[117.5208,33.6841],childNum:5},geometry:{type:"Polygon",coordinates:["@@@UWU@bkW@aWU@aUIkWV™lLXb„lVIUVV@‚mn@V_n@VaUK@I‚@UašanJVU„@lV„UVnnKVVlaUa„I@wnK‚Lnll@nVlk@wVKXkl@@b„bUJ@V‚U@U„UUyVk@aVUXwlWXX‚WU¹@aU™@WUI@mlUšn„J@Il@šaXbV@VKl@XxVL@W„IšJlb„@„al@„IUUm@@aVK@¥¯—@mUķ¯bWƒk£Vm@akm@VaÅ@UVWaƒ@UJWkƒJ—UƒbWbU@UlƒXk@ƒamV@K¯nk@ƒlU@Uxmz@bU`ÇbUbÅVm£U@Ww™x@akLUK@UlakwUJWVkLmaUal@n_ƒmVUnKVUUmÅXWa™@kJmx@XUJ@bVLXxl@VVUVV„UbkLWbU@@lUVV„VVX„›K@XkJ@nU@@bV@VxUVlb„U@xXLWŽn@UxVbVĊ„V@b@XV`mnkJ@kUKmbƒaU@VbnbÆx@XU@@`k@@bl„™@@bkL@WƒakXWaU@Vmkx@XWW@@wUUUbƒJ™U¯V™@¯ÞU@WxXŽlL@bkb@ŽlVlnb™JW@kkU@mbkaWJ—IVlmz¯`UnU@mb™@@„ƒ`@bkVlœnV@b@šV@„aVxn@Vx‚KXnl@nbVK„bVK@a„_V@Vƒ„w@W„LlwnK@UmIU@VWš@šUÈ@lKnal„wš@@V°@šaUmlUUw@„ƒV@@UXK"],encodeOffsets:[[119836,35061]]}},{type:"Feature",id:"3410",properties:{name:"黄山市",cp:[118.0481,29.9542],childNum:5},geometry:{type:"Polygon",coordinates:["@@lXnlWX@VUJVnUJVzXJVx„kVJlI²l‚U@K@IUǚLVxnLn@lmUaVU@UVKVknJ@an@@UVIVǙKUw@_lK@wnKVklW@I@mXa@UlaXblU„JVUVL@UXWlIUUlKVmkU@kVKVL@y„wXLVb„JVz@Jlnš@nŽ‚LXbVaôšnW@la@UVWUa@@a@mk@WIk@VwUa¯¥m@UUVK@ImK@aX£ƒkK›ÅV™a™™ƒ_@±ƒakXWW—LƒƒƒnU@@a@¯mK@L™JUWwUV™VmbXX@lWLn`mzUJUb™Lƒ„k@makVWmkX™ambkKknƒaƒ@ƒaƒb@‚U@Unm@—ƒWVƒ@VbUbUJWIk@@lmL@°UVUVm„nš™@@kmWkb@xƒ_m@@aU@b@JlŽUz™lWxXn„@‚b²@l`„IVl„UlL@VšK„nVbUl@VlIn@@b„bVWUk‚@@bX@Valb@bnb°Vn@„xVKlbVnV@V‚x„L@ln@UXVV‚L˜"],encodeOffsets:[[120747,31095]]}},{type:"Feature",id:"3414",properties:{name:"巢湖市",cp:[117.7734,31.4978],childNum:5},geometry:{type:"Polygon",coordinates:["@@VV@blL@ŽXlWnnšnŽ˜„@VXXl@@WšIX@VJ@LšxŎxlnšŽ@bXJVblX@VVbUVn@VbUVlb@LnJVbVLV‚XLšÒVL„ÒšV„bVIVylUXk°Wšknm°_lJ@aXL@l‚z°@„lnLô¼V‚È„VUUaVKU@WW@@UUa@knmVLlaV@„a@kšak±@UmwkKmk™lj™ÝUUkL@mlIVmnÝWkkUÝ@KƑĉ™a@»ƒmma@mX™¤¯Uƒw@ƒ@UU@bU±±L@akmƒ„™LUKmLUUUJVbbÇwƒ@kUWaUJ@Xkxm@UJUUm@™„k„ƒ‚ƒakXUšVl±ôU@kn"],encodeOffsets:[[119847,32007]]}},{type:"Feature",id:"3416",properties:{name:"亳州市",cp:[116.1914,33.4698],childNum:4},geometry:{type:"Polygon",coordinates:["@@lU@Un@@anUlw@KVmUwlaX_lKna@KU@@kWKUU@ankW™XK˜@@V²VVIÈU@al@VaÈamK@wU™@klaUƒV@XƒVUU»WUUbkmUkVmk@aÈw@mWU@VkIkVWKUÑķXȭºU¯lƒ@kkLWmÅa™L@l™LWlzVxƒVUK@L¯LUJ@bWƒK@b@JLU@Wbk@WVUU™V@nƒJ@XX@@`m@@L@bnJ@nWV@¦œa‚wVVkxVn@bVJ@V¦@Ž™²¯bƒl™b™@m„UšUŽƒŽ@¼ƒ¦Xb‚UV`@nnxUxWLkUkVWKkV@XV@@VVL@VX„@lVV@L@blL@`šL@xXKVL‚@„VnUš@lwnU@ml@XnV@@UVW°LnalƒUI@aUK@a‚a@U„kXW@I@mWL@UXK@UVW@U‚@@k„Wn‚@@V„@XblaVxšL@bVKXb„IlJ"],encodeOffsets:[[119183,34594]]}},{type:"Feature",id:"3417",properties:{name:"池州市",cp:[117.3889,30.2014],childNum:4},geometry:{type:"Polygon",coordinates:["@@„V°°ĊŤ@xƒĖ@xœXƤ„VôIÆmnLllXÔ@lƒÜŽn@@JšbšLÆaĢÞĸ„°VVUUKVanK@UV@VL„VVn„ln@‚xnklxXamk@WV@Xa˜@naVk„Klk™@mkUWwkJWw—IWK@ƒUaUwWIUyVIUmVI@UXWmkkW‚—KUUVWm@@kƒKw@U‚UUmkaULƒwm@¯Uma@akaUbW@@a@VlUXƒa@am@kJ@UVkUaƒm™L@UkKƒVUkƒJk_±@aƒ@WmXwÇkkaVaUa±ƒœwV@VkƒwnyUaW@UU¯amLk@m™@kmmU™™¯K@L@lUX¯ƒWlkXƒŽVb„bƒVUL@J@LVKnlJXnlb@`nXlalV@bnL@Vnb˜¼@lXbWlkL™K@zUJmIUxUVUVmX","@@llUL@VlxšL@a@UƒwXa¯@"],encodeOffsets:[[119543,30781],[120061,31152]]}},{type:"Feature",id:"3401",properties:{name:"合肥市",cp:[117.29,32.0581],childNum:4},geometry:{type:"Polygon",coordinates:["@@„L„xV‚ĊLÞkšVlVVXaWaXwW™nU„@‚anVVUX@˜bXblWkk@wWmk@VUVKnb@Išy@_kWm£nmVa@U‚KœwlVl@„zn@°l„IlmnVšIVmnV˜aXÅWmU_VK@Unƒmmk@UIVakaƒa™UƒÑUK™ÑWKUUKUamI@KkaVUUam@VUUa@UkWUaWI@a™kmōw™wUL@`mn@KƒV™IUVUUUK›Vk_ƒVkbWƒ@VkUULUJ±I¯aƒlkxU¦@L@V@V@b@b@„WJXbWVXn@LƒKVL@JkLƒŽV@Vbn@VV@XU@UlV@@VV@V@XXV@@VšJ°š°Xnb°@„JUVVXV`@bkXWŽUbU@WŽn@VLXlm„°bV„UbkK@bVJ@bVbkLV¦ƒKķV@x@„XbmVVVk¦"],encodeOffsets:[[119678,33323]]}},{type:"Feature",id:"3403",properties:{name:"蚌埠市",cp:[117.4109,33.1073],childNum:4},geometry:{type:"Polygon",coordinates:["@@VÒXLlUlJ@UXV@nÇx@bnlUVllnVaXVV¼UVW„U@V„²wVV@Vl@„VnwlIš@XbÆWVnUVmLUV„nm`k@VbnblKXUVIlxkb@VVLlK@bšwXxV@n¤ÆUVaÈaV_@anyVwV@„kl@°m@LnU„bl@„WVkV@Xa„a˜V„IXl‚IV‚„@XbVUÆ@XKWwUkmW@_UmnIlJXkWKXmV@‚w@_XV@Kl@kU@KlX@@UUUUKWLm@klJVUUmk@mXUWmXwƒ`m@„zUbÝakbW@m@UUƒéUIm@UbKǼ@™kKWXmWUkaWU—JWU¯L@W™Lƒwk@mm@_™ƒÅl™UVkmWUnV@VWLUb™bƑĬ¯l"],encodeOffsets:[[119543,33722]]}},{type:"Feature",id:"3402",properties:{name:"芜湖市",cp:[118.3557,31.0858],childNum:4},geometry:{type:"Polygon",coordinates:["@@„bVaV@XllLXU°ŽlL@V@VUnVl¯Ikš›VUVU@@b@lUXUWmb„n@¼šbƒĊ‚LÞ@lVXlmÞUnkJ@nlKVVšÞXklWVaVI@aUKn»lL@Kn@‚XXwlm@mn°@„V@Wy„wXlWVk™ƒ@aUaVU¯£kKWVXVWLUkkWlkkwmJUam@@aULVa@UƒVaUaVI@m‚@UUJUIUmmV@bm@UXVVUlVmImakKUU@UU@VmU@@kma@KVIXUVK@U™VmUkV™m±£@JkU@nlšk‚ƒLUlmb—@WbU@@XnlWb"],encodeOffsets:[[120814,31585]]}},{type:"Feature",id:"3406",properties:{name:"淮北市",cp:[116.6968,33.6896],childNum:3},geometry:{type:"MultiPolygon",coordinates:[["@@lnnK@¦n@@V‚V„@@VV@nIV„V@VW²a@b@bVnUVVV@V™z@lš@°UšV„IVaVV@x@ŽXX@WlwUnV@XblW„b@XlK@aš@kƒ@al@@_V@@WÅwmaUaV@„bnaVL@llInmU_@W@aƒUUĉUaVwm@XWK@wƒVkaVUUwU@@aV@@mlI@WœLWƒUUUƒVU@kV@XalKVaUƒVUUUk@WwUK@aVI@WƒUk@@UUU±xkb@lVš@xnLÇbUbk@@bÇVUJ±U@U—@WLXšml@bVVXL@lV@@LmbkLW`kbVxUn@LkxmV@bm@@VkV"],["@@VVVkV@¥@UV@U@VUUJƒkWakKUšlXVJ@bXV@blX@aXV@V"]],encodeOffsets:[[[119183,34594]],[[119836,35061]]]}},{type:"Feature",id:"3404",properties:{name:"淮南市",cp:[116.7847,32.7722],childNum:2},geometry:{type:"Polygon",coordinates:["@@°kƒīšaVaXK@U‚UVmnXUlšVÆkVKUUUmmU„ÑkU™UÝlĉKUƒwƒKƒbU@UxW@@lœmVUUVmUUƒmƒw—aW„kL¯K@Žm„ULWlIm`X„WL@b@¼@V@xkVƒI@b@l@lk„V°Ȯ¹ĸW"],encodeOffsets:[[119543,33722]]}},{type:"Feature",id:"3405",properties:{name:"马鞍山市",cp:[118.6304,31.5363],childNum:2},geometry:{type:"Polygon",coordinates:["@@šNJnllLnxV@laXLVKma„aXbVI„bVKVVVIVyn@n_ƒƒW@@ƒ„UnJlUVVXlLnaUWlV@VV„IXW@_W@XK@K@UVUUwVamÑXmmwƒw™KUnUK™çU@ƒJƒU¯@mŽ@nknWxWm@@LkKm¼VL@bUJUbkXWl"],encodeOffsets:[[121219,32288]]}},{type:"Feature",id:"3407",properties:{name:"铜陵市",cp:[117.9382,30.9375],childNum:3},geometry:{type:"MultiPolygon",coordinates:[["@@„ÒV¤@¼V²@aVV@Ž@„„x°Vš£nW‚@nbnaVXVW@k@aV@VUœUl™°JUkVm@U@UkK¯WVkKWkU@Ubƒakwmlwm@ƒkUmƒUUKU@@VmLUbVLUV¯U"],["@@LllUL@VlxšL@a@UƒwXamK"]],encodeOffsets:[[[120522,31529]],[[120094,31146]]]}}],UTF8Encoding:!0}}),i("echarts/util/mapData/geoJson/ao_men_geo",[],function(){return{type:"FeatureCollection",features:[{type:"Feature",id:"8200",properties:{name:"澳门",cp:[113.5715,22.1583],childNum:1},geometry:{type:"Polygon",coordinates:["@@HQFMDIDGBI@E@EEKEGCEIGGEKEMGSEU@CBEDAJAP@F@LBT@JCHMPOdADCFADAB@LFLDFFP@DAB@@AF@D@B@@FBD@FADHBBHAD@FAJ@JEDCJI`gFIJW"],encodeOffsets:[[116325,22699]]}}],UTF8Encoding:!0}}),i("echarts/util/mapData/geoJson/bei_jing_geo",[],function(){return{type:"FeatureCollection",features:[{type:"Feature",id:"110228",properties:{name:"密云县",cp:[117.0923,40.5121],childNum:1},geometry:{type:"Polygon",coordinates:["@@vIHZDZQtDLNMXIbHRCXXITbJ@H`LGPRDDJNCLHTOCWFGvGBUJMKGFO^IHWXITQCI’Y^AXGfRˆDXF`DJOLB~G\\DZIHHpErUVMhHb]\\M†BVF@FTP`@zTbD\\@~M\\K`H^EVODWICAakAQXoIcCOCIgGYNWFWNGGKKGaJEGMEIKYJUT_J_Go@_SyQaSFMEGTcYOQLIIi@EKAUPCV[EEXQCW|aMUMAaYCYNIDGGACIMGGSKDQGaF_C[GaB@GOIiOKAYL“mI@CN]F[SWWAcKKI@HMUimEKbeYQYISNUOcBKPIFBNgvDPGZYFSf]CMSIWGEUFgDIQ[MeDMJS@RR@LphFPCHaBAJKF@J]IBJO@HlO@@RKAMPJHCNDJTHFP@ZGNANBRFH@J_fM^ONJNF\\VTDJHDON@XRND\\XRCPVETCLBVKDFJINHRGPRV@\\CLJN@VbXbLVT"],encodeOffsets:[[119561,41684]]}},{type:"Feature",id:"110116",properties:{name:"怀柔区",cp:[116.6377,40.6219],childNum:1},geometry:{type:"Polygon",coordinates:["@@JHTVHXCHPfnDJGHNDJSB[JSBGVSAOH@PMPuDEHHXZN@PHF@ZLJ@LHVYJA\\OFWP]BMtMBSRGV[JeVAPQVIFENMD¡–@^NV\\JH@NNL@NM\\kTQ\\I^FNIpBHGTBFFAZQfKDIXQTLXFXNNVMVHRGpCFLlRLEVBBH`IVO\\G`RDPAXLXBXORHZEHTDLLN@VGTMrQNFPeASKG@GMOAKBYMK@GTUHUXSHMVDNMOUEOZMJML@^KRACMZEZMRQLUHE@OFENPR@DI\\ChMHIDG\\GJMDWHCKGMDCIQCHO_K@GaIJSWWQDaGWJMNCKRsCYGYuJUSaKaW@UIMDK@[QUHOGQJMEILCAUDKFSOUQD[WMC‚Q@WPMGCCIUSE[IMPMN]`e@IEGAQBMHM@YEOSGCIDMIGNOLB@QP@GkP@AI^J@ILEBIbADGEOog@KQQWSekWQQUOFKZLF@PUNmIaHIUeBCTSHENcJa@_IWSaGu`GLSBKJQFOXGDXVQVOBIHcDSJWBEFGTMH[^mLaXcHiKElTRKtFXZ`MHMPCNRDxZˆB\\ICIHK@KŽHbIVFZ@BPnGTGbDXRDJaZKRiGEFSFEJhjFNZFjn"],encodeOffsets:[[119314,41552]]}},{type:"Feature",id:"110111",properties:{name:"房山区",cp:[115.8453,39.7163],childNum:1},geometry:{type:"Polygon",coordinates:["@@h@bl@HRJDZ``TA\\VVD^H`\\pF\\JŒ`JGv@ZO\\GPSTEjPTR`FnEbDTDHEhLFMTK@ETSPULKEI@OVISKSJACEQNQbV˜IXGDIN@dMB[IIBcN]ZHNLP@XOWCFWŠCNRHTpATD@^NVNLED@Rh@jCEF}E[OOHUEW]W@QGGDIQSH_MmFmCUT_K]i@MHCMW—FCF‹E{BMHMPOHKS]CFNGBELDH_@BcAKOACESAOBELaXAROB@FODMEDWJAG[aE@UM@DImEWJMC@OeCA{aE[@{L@MINUCQXKfUJORCHqJBF@TCXWNQX]M[EAJO@@KMBQJIC]EWMCCUBEBFHKDOTMBGNGF]MWDBRDdMDQVyE@LPVHDCP@JVVMTG~HNSH[CmRUvHPHBbA\\PTNRC\\YNJ€PRARPJDDR"],encodeOffsets:[[118343,40770]]}},{type:"Feature",id:"110229",properties:{name:"延庆县",cp:[116.1543,40.5286],childNum:1},geometry:{type:"Polygon",coordinates:["@@^AXOPEB[ZIGU@KKI@YGE@OYMGWFGvCNO@OPGTBHUTA\\ITACIGMIHmCOeDGGWSUIGimYEEMgiFITEFEjHLQbYCIWQaCSHmHAOY@UEaJG@LGLDJ[J‡AwYQCDMNONGY_EWLsSQFkMO[NWAIGaIYL@HMBOKiOQDWEUDMQSF_QIUBWdg@[NaAKQ@M]OQ@WhgLUMMFYQDIRCEUZOOCIOJ[KIUMKL@HIDKVEBM`HJAJSJUdBLGNEdMBMO[BYEWJSNKNaD]PE\\SjOT_RQVEZPpƒNQXfŠNA~lNG`@PNLp¼RFLfbdKbATUh@FSNWjGFZVLFHVA~X¨PPROfFJbNJPLFbENJPrEFNPFRHDDJdENJLVEPBJTVTHGHFRFH@PXP\\ORQHW\\BjWFDERLPPBbB\\E`B\\D\\L`@F]FCnJ^AZL"],encodeOffsets:[[119262,41751]]}},{type:"Feature",id:"110109",properties:{name:"门头沟区",cp:[115.8,39.9957],childNum:1},geometry:{type:"Polygon",coordinates:["@@V@XMnGPY²‰JQNEhH\\AZMPDVTTDZCPiJkHSHCjIdFtEHITCNITQEKUAMCEIKCECABYESKFWAKBEIIHABGDCKCAIHMHALKEI\\CFIBILIJQZS]BBEECS@E@@C]COKI@CABAAEEDMGƒCH]A[M@CJWH—JaUMRFRBDTITLUJ@PFJKLOVST@FSLENgKGFSCaCmF_ESQiOSFOT[HYPu@IH‹_[IoE_[]GUC[USB__CYQI@Gakg@qZeHQNMNV\\FVLPgJAFJPRLCH[XcPELUT[JiV_EELFTADBXRTRLJC@fHXHHbPd`fR@NfT`@TLplHMpCEJHJBVLFŽ@JT‚VnG^KXDXHNVGRLRXFJVdDHSNWLGfEzA"],encodeOffsets:[[118635,41113]]}},{type:"Feature",id:"110114",properties:{name:"昌平区",cp:[116.1777,40.2134],childNum:1},geometry:{type:"Polygon",coordinates:["@@VNLJI\\JPPDYPFVQDCJZRNEVNhKXgR@^P@NLRbB\\Mh@XcVARJE`RTCNFV€XRCjPPLNA@GZKbJJHXB\\MNPjLdGbWnK\\]NGHSFEXATIdCJGPARUWUHCPWRELITAHKv_E@iYCaW_BQ\\Y@QIO@QDCIGZCEMWGFMFAFgHEDOCSqKCCFGAMKEAC@ODGCGs@WH@KQA@EE@CE@GEA@EH@GGUEEJEAYD@JM@@DAA@FHD@FTJEHUC@JUBKCKG@G[CIIQReAYhO@OXGDO@@FF@IHJFCPEBACBIAAKDOABXARHPNEHGbQAAKQFGIAM[C@WHKaGiCEGOA‹HUKCIokSCUSOCYN[BgGMFIR±ŠOZmHWNU@ShbbXDHVXXGJ^lZ@PZ\\Nb@\\FHJAD"], +encodeOffsets:[[118750,41232]]}},{type:"Feature",id:"110115",properties:{name:"大兴区",cp:[116.4716,39.6352],childNum:1},geometry:{type:"Polygon",coordinates:["@@F\\E~DFN@BDFEpHFCHBBEGCDCJBHUDSBB@ELCPbF@B\\J@BJVAFJ\\ADKTCBGECFMT@BMN@@FH@DaNBEnvB@FPBATK@FHEFIAKFBFL@@PKBFJHC@FXBRAFCDMPDTOL@JIVFDHH@DDH@BGRFCDLD@N^@@CNA@KNOAEBCECFEGCFGMGFIPMOEJOLBADBBHGG@GCHIECY@INC@DMGS\\AIOZAAEYA@GT@KKMBEETCGMVINFxA@MJADB@FlA@HJA@NND@DFA@DVAZBBOFKH_JA@K^GBC@EFE„G@gAENMXKJigC@IbSJMqGOP£RGSMGE@kbQFDPEFiBSGGSBK]I{CDWCIDOic[C_G@SuSO@EWKCO@MNY@\\uZOPENQD[LKESSKGBKEG@EJGAGHoH¥CqhifeJkX_XFFGHFNEDFPENKHM^IFIVL^S`DVEnNnG`RTCJHH@R^XFXGVPP"],encodeOffsets:[[119042,40704]]}},{type:"Feature",id:"110113",properties:{name:"顺义区",cp:[116.7242,40.1619],childNum:1},geometry:{type:"Polygon",coordinates:["@@EhEBENXHFNYDJHCD@RJP@R[ZARX`DbjZF@bHXT`Jb@dIFMTGDSfAJVbGnJVM@OKELYPERVXRflXTT@NIfC\\NJRhCVEHFJXNT^DTeZEHYCOhuAMJELOdAVPTMOWBWNMNEJgl]@WGUFIC[T{EEDEHGCIGMI@SECUQI[D{A{GQESPUH]CsiMCmHUeoHENcAaDGCMDGMQCACCBaCGLMAHB@DIEQLOAAEEJ@CW@CDINGAAGKQOCgV@LG@BEGDKNeREFBNCFIDOPKD[@YRW@GFWDAFE@EHDDrLDTCPGF","@@KrJEH[\\B@FF@CHFBHUN‹AJKADGECBCMAG^E@EbI@BEGP"],encodeOffsets:[[119283,41084],[119377,41046]]}},{type:"Feature",id:"110117",properties:{name:"平谷区",cp:[117.1706,40.2052],childNum:1},geometry:{type:"Polygon",coordinates:["@@ZJZRafFLjn€VGNJ@LLBdXX\\T^EDMJ@”nZKLBjPPJ@HbA\\H`DbERHLCFK^BZaFWXQLAGMHa\\OLO@SBIpBdCLƒVQfElO@GSAKEDQTC@GEBKG@ORIJBDAPDFA@CaOq@GGQAAEJK@KMUGAAGEAa@MGMBGCGSIIW@WSUCMDOJeWOM@IUF{WMWaDIMgIoRoCOKeEOEAG_I[cg@wLIFENQFDVTFJ@HNDJGHCFFFS|D\\EJHV@Xk^IhMFMNAXPX"],encodeOffsets:[[119748,41190]]}},{type:"Feature",id:"110112",properties:{name:"通州区",cp:[116.7297,39.8131],childNum:1},geometry:{type:"Polygon",coordinates:["@@FDAJTGDNDCTDDEDBBE@DT@@EHCDGJ@EIZ@@FDBR@ATFBBVFFE@@HNA\\VE@CLIFNJFNJBCP]A@LJFA@HJEDD\\C@DBCHLAEPF@@DH@APHAERDF\\GIxDTM@CFLBBFJ@CNUPMHECGDBF]BMFPDLRBHHBJMDCX@@DFIBFPBRKJF@CGANBHKbDDABDRDHNNCHDbCdBFMpGHiOYMefKJMC}HWAUNW\\NNBNA„kNU|]HMTMN@MZBLFFF@RIRUT‘BMFIEGaAGGAOIIUGTSFcYKS@MSLYPKRUBU]EWDOI]CKGASgW@MTWKIMCS@uMAKKADMECGAKVUTSDy@IjWLMNBF@hƒHEF@FAD]H@LIBG`ELAPYAUB@CEB@CMC@MIB@GkB@ECAIB@NwBMEUJHNSDFFNALLS@@HZBBFYBJP[BHTCND@JMZ@FDGJHDH@GHAABCKAIPPFONEJNHEHHDEFFDADBFMP@L"],encodeOffsets:[[119329,40782]]}},{type:"Feature",id:"110105",properties:{name:"朝阳区",cp:[116.4977,39.949],childNum:2},geometry:{type:"MultiPolygon",coordinates:[["@@bFGHBHFBFIVFHHG@@FFB@HDFF@@FRB@LXGt@DHCH@PBDLFBNF@BEXCHEX@ZQ\\@LCPOJCDEAMFEfQLMHCAFH@@KhUNE^AAEHCFDNGVODMI@AEKADEN@CSJw[HCEFQGBBOG@@CE@FOKBDGCAD@C[FCGIB@IE@K^BDOIAEMMIJEDKF@[UMB@GF@EEAUEABSQ@CA@EY@FJI@CHGD@FS@@CAFCACFSCCDCMSHBIECMB@D]@@MKCDCQEAHG@CCG@CGUEIJK@SPOCCNEDQBDNDB@DJCDLFCBBALJB@BVGPBKVO@KHCCCD@FE@BNA@FNCTDDJA@FGB@NBDW@CL@hT@@ZHHQDDDAFSAANBC@HG@EFS@@DE@@PCB@Ue@CADNJB@FCBWA@LI^ix@FIHrH"],["@@HUN‹AJKADGECBCMAG^E@EbI@BEGPKrJEH[\\B@FF@CHFB"]],encodeOffsets:[[[119169,40992]],[[119398,41063]]]}},{type:"Feature",id:"110108",properties:{name:"海淀区",cp:[116.2202,40.0239],childNum:1},geometry:{type:"Polygon",coordinates:["@@plDJVLŒGPBFHjDbHGL@X\\DBNHJREBLRBHaFGŽMGOBQAWPBLCBBAJBDFADOIEJGE@@EP@HCPWP@ZgfBRQJJ\\D@HLHLDVA@IVDFGSI@EGC@EBB@CN@@IZCAGHGaEqGJG@EjwJ]@K@GSA@e_I@NE@CA@Kg@KC@ENCFƒAKQAW@WIMK@V‹@I@@F@^EDFB@HcIaDYCBRRDCHD@EFLN@FE@CJUPEJOJMTBPEDIFCMIAKNOGMRFJNDVBFLSRMJSDGJsFcEiJGDGTIlOjYD"],encodeOffsets:[[118834,41050]]}},{type:"Feature",id:"110106",properties:{name:"丰台区",cp:[116.2683,39.8309],childNum:1},geometry:{type:"Polygon",coordinates:["@@hMN@NFTQCFRCBJFA@HJ@@HJ@HJ\\FTACDŒ@@UNLXJX@@MA@@IECAQlDFEHBDI~D@GXCFMVDFCH@@NF@ANJC@FnAB@AMF@@EDCDDLGP@LUOAUH@AIABKAAEDCKID@CCACMWA@EGDEILA@OK@AELEJBFEEGL@BSOA@EuAFmMACbG@@EM@ANS@ENFDAHSDCL[BEIUBAII@A[E@OaKD@FAACTGVIACDHDAFGAEDoGEFACM@i€g@@QFCMKMU@]SCoBGSMQ‰DEXXDWPO@MKYGM^AdJJA\\cNB\\G^„DNHFCBFABDBJ@PL^D@DF@T@FDAF^A"],encodeOffsets:[[118958,40846]]}},{type:"Feature",id:"110107",properties:{name:"石景山区",cp:[116.1887,39.9346],childNum:1},geometry:{type:"Polygon",coordinates:["@@NQPHLMJBDNJEFCAONSPIFIVODIF@@EKMFEC@DGQCAQZDbCdJ@GEAFC@]@EJ@DCSB[EGII@@GI@@GEBAIQDDESRMEM@gNYTIRKJAJEJ[DFJKLGBGNBJLDCDAHGBJJAFBLEXTLZFBAFDLD"],encodeOffsets:[[118940,40953]]}},{type:"Feature",id:"110102",properties:{name:"西城区",cp:[116.3631,39.9353],childNum:1},geometry:{type:"Polygon",coordinates:["@@XBDA@EIACM@IJAD]BC@SFABISAD]H@@OAEDQEW@BLE„MD@FLDh@@LDBF@@M`J@fTB@H"],encodeOffsets:[[119175,40932]]}},{type:"Feature",id:"110101",properties:{name:"东城区",cp:[116.418,39.9367],childNum:1},geometry:{type:"Polygon",coordinates:["@@DBf@@VDA@OF@@CT@FEH@@GADBMTBBECCRCGG@YS@@gDK@A‘C@PG@C^TBAJEB@TADC^IB@J"],encodeOffsets:[[119182,40921]]}},{type:"Feature",id:"110104",properties:{name:"宣武区",cp:[116.3603,39.8852],childNum:1},geometry:{type:"Polygon",coordinates:["@@RBX@RFFCŽBFU@aK@WA}CCJGAEFkCBRFD@JB@@N"],encodeOffsets:[[119118,40855]]}},{type:"Feature",id:"110103",properties:{name:"崇文区",cp:[116.4166,39.8811],childNum:1},geometry:{type:"Polygon",coordinates:["@@XBL@@bEV’D@BX@AC@MHA@EIBCCDSEMmB@EIDBME@@MG@EDUCENWD@H"],encodeOffsets:[[119175,40829]]}}],UTF8Encoding:!0}}),i("echarts/util/mapData/geoJson/china_geo",[],function(){return{type:"FeatureCollection",features:[{type:"Feature",id:"xin_jiang",properties:{name:"新疆",cp:[84.9023,41.748],childNum:18},geometry:{type:"Polygon",coordinates:["@@@›ρȁôƧƦóəʵסʵóƪԫʵѵͩƧͩړ›υࡓɛʵ@ȃ@óᇑѵƨɝɚôóНѺͩɜ̏ԭʵôƧɞñ@υƩ—݇ȂóƩƧ@ѵȂυœƥŌਗ—॥ɛóʵѵƧѹ˜݇̍ࢯ˜əɞυ˜ρͩ̏óਙƨƧŋôōóš̍ͩóʵן›óŋړͪƧѶ@ɜԭ—ԫƦɛȄ̍›ɝȄöςƩȂ̏œñȀ̏œƩóóŎə˜@Ő̎@ɞȀɝŎôƨóנѵȄƧ@óŏɝœóɜôŎ̍ͨςŎ@ƨóôƨɞ݈ʶóƨφó̎Ȁƨ̍ԮòѸԮמ@ѺȀ@ƪၬֆòȂñ̐òȂɜ˜óƨ̒Ŏ̑߼@φρȀ@Ő๐ς̎Ƨφ@ɝφڔ೦Ԯǿࢰ@ƦŏԮƨƨȄƧ۬ɜʶڔŐɚɚóŐôƨ߼˜ôƧƧó̐ƥóŏѺǿƦȁφƧς˜ƨƧ̒@ɜƥƦυ̐ɛƪͩƩəƪʷ̑ə@ȃƨʵנŋྸōਚԭԪ—@ɝƨŋ̒օςʵôƧ"],encodeOffsets:[[98730,43786]]}},{type:"Feature",id:"xi_zang",properties:{name:"西藏",cp:[88.7695,31.6846],childNum:7},geometry:{type:"Polygon",coordinates:["@@ôŌנœôʶ̎ͪô™óŎƨŌਚƧ̐ôςͪφ—ɚɝࢰ—݈̎Ѻ—Ѷƨôʶ०ɜਘ˜Ʀŋφ›Ѷȁ̍—ôŏɚŋ@̑ə—@ŏò̍ɜ›óƥôʷƧ̍φѹԪ̍ע@Ѹʷɜ@ôñנ@Ѷɛɞô̐ŏѶƨѸƧƥōƦœôŏô—@ƧôƩ̒ŋƨŌƦǿô̎ɜȁ̒—óʶѶôôО̒›ςƥɜНφσɛȁ̎υƨఱƧŏ@ʵƥœ@ŌóóóͩƨƧóŋ̑õóɞóɝԩͪɝρôƧ̍ƧѹͨڑŎ̑ōóƧࢭͩ̏ѵɝóఱóóԪυô@̒ƥŌ̏Ƨ̑Ȅ݇ŎƧ›ѵӏ@ɛõŏɛȄôӒƧŌѵǿɝ˜Ƨŋԫ@̏ʴƥ@óǿ̑Ȁóǿ̍ςóóυô@ʶɛñρƦƩŐó̎óœѵó̑ͪࢯОóɜן˜Ƨ̏ƥȄ߻̎̏̐ןŎɝɜöɞƩȀôöɛȀóͪ̐ƨƪ̍̎ȂƥԪυО@φɞ˜ôƪ"],encodeOffsets:[[80911,35146]]}},{type:"Feature",id:"nei_meng_gu",properties:{name:"内蒙古",cp:[117.5977,44.3408],childNum:12},geometry:{type:"Polygon",coordinates:["@@ኊȁ૊ö߼ƩɜɛנñԮɛѶóԮô@ȁѸóמ̎ගѺၬ@߼ʶԮӒ߼̎@ŐѹӒ̒Ԫƨöග̑ѶȄ̒ς।œѶɚöɞɜʴڔôôȂ̎—ѺȀς—ƨ˜ƪóԪ—ɜôɛОਕڔԭ˜ѵ̍ѹȂԫ›ɛƥ̍Ȃóɜ̎ô@ʶ݊ੲࢮʵږͪנƨôȂƧ˜̐ͪ@ŐƦƨφԬѶɜôƦ@ŐƧôôƦəŐ̏›@ŐڒѶԬô̐ʳԩНςōôŏɞ@ƨȂѶəóƧ̒ػ̎ó̐Őנóƨô̒@ƨɚɚ@עԫɛɛ@ȁυͩƥʳòևρ—̑ࡗƧͪ༃ॣԮփ̎Ʀ@ôô@ôō@š@ȁѵóƨ̍υȃóʵɛƨƥóυȂóəƪ›̐ρƧͩɜԭڔȄ̎عƧȁ̐ŏó̍ɛ›ƥƧ̑óρŐ@Ƨ̏˜ɝəɛ˜߻ͩ̍ͩɝО̍ƪƧóóӓƨóƧʳ݇@ɝςƪœ@ʴƩ—ƧƦôƨɛȄə›Ƨŋυ›óͩѵ@ɝǿóŌן̍ɛ˜óО̍œ̑̏ôȁ̍ŏòȁñóƦͩ@ǿə@ɛƧ̑˜ρȁυô̍օѹœóȃə™@ȂσʵѷƪòƩ̍—ôó߻ۯôʳƧ™óšõʵѵóѹɜ̍ȂѹôɛŌφֈƩͨρóυӑóޟఱ̑݇ͪóƪƨŌóȄڔԬƩςםñ̑ȃѵŐԭŏƨȁɛǿρôõɚɛóƧОə@ѹ̐ѵöԪͨôͪɛ̒ןŏƧƥóôƥƧɛŌôóɝó@̒݇Ӓ̒Ō@Ŏԭࢰ"],encodeOffsets:[[99540,43830]]}},{type:"Feature",id:"qing_hai",properties:{name:"青海",cp:[96.2402,35.4199],childNum:8},geometry:{type:"Polygon",coordinates:["@@ƨ@ôƪ݈ȁƪ˜@φɝòóƨԮʶɛ̐ѹͪôОəóƧɞᇒѶ@ôږô@ǿѶ›ƪȁςœɜͩφ˜ςŋɞôѶɛƨŌɞ—@ɚςŐñԪॢͩƨȂɞóƨŐ̎ŏעӏ̎óƧƦôœ̒ȁɜ›ςͩ̒œɚɛƨôƨɝφɛóȁƨŋóóɚͩƨóóƩ@ƧəŋƦƩ̍@ƧƧôǿυ̑@ȁɞǿõŏρƥסɚƧóτԫɞœôƧƦ@ñȃòñƥóυôôѹѵ—@ŏ̏Ȅɝó@ȂəŌóəѹƦ@Ő̍Ōυ݈ԩŐƧóôƧ̑›ôʵɞƧ̑ѵôƩɞƧ̑œóНѵóôʵ̑˜ɛȂó̍ƥȀƧŋ̑Ōóƪ@ƨó˜óŐƥ›ƦŎѷƨѵƧ̏Őɝóѵɜן@óòɛ@ѷʸס@ԩ̎υѺƨ̎óʸôƦɛœñ̎@Őɚ˜@̒əŌóŐ̎˜"],encodeOffsets:[[91890,36945]]}},{type:"Feature",id:"si_chuan",properties:{name:"四川",cp:[102.9199,30.1904],childNum:21},geometry:{type:"Polygon",coordinates:["@@ô˜ôŋó̑Ԯ̒ɛОמͪƨōöͫ߼ƥôȃƨóóñôƧóƧôōڔŏƨŐ@Ŏô˜òƥѺŎ@ōɜóנ˜ôǿô›ƦôԮ̍ɜôɚ›Ƨ—ñɛɚȁ̍Ƨɛևυ@óóôŋρԭɝ@Ƨʸ̍ŏυɜƧƧóƧƨȁρ̍ƨȃɚ—ôʵφóô̑̏Ȃ̑ʵɜʵɞ@ƨʳסƩóŎə—óɜƧôƩƧρ˜óôôô@ŎƧƨƨƪѹ˜ó̍̍Ʃ@̏ѹНôޟ̍Ʃóƪυɝɛ—əƨôŎɛȀ@Ȃ@ñɝʶ@Ōρנ̏—õóɛͨƨȂѵОɛʵ@̏ƩŐó߼Ƨల̍φɜȂυτɛОρƦɝƨóƪ̒Ѷɝƨóʶ̒œóƨƨôԪŏφ݇̎ŋ@ŏѺƥôɚɚŋ@ȁɞô̐ȃ@ŐѶ˜óѺφóƦôñòòȄ"],encodeOffsets:[[104220,34336]]}},{type:"Feature",id:"hei_long_jiang",properties:{name:"黑龙江",cp:[128.1445,48.5156],childNum:13},geometry:{type:"Polygon",coordinates:["@@ᇔȂਚНƨŐѶŏöƥςŏñƧƦóƨȁ@óƨ—óȁφӑóóƨ˜óǿ̎̑ôНɞ—ó̑ɜə߼›̎ǿ̒ôڒӑφ@Ƨȁ̎̏ƥƩ̎ρశ˜ôȂςƨφ@נɞ݈˜̑ƥƧɛƨʵƧȃƥ@Ƨƥ@ŏ̑ԩôɝρρóɛƧ›ƩͩƧó߻ʸ̍ʷѹƥɞڕõ̍öɝυ—̍ȂƧ̐̑ŏóƨñŋѹóóȁ̍›̏Ԭõʸ̏ŏ@ǿ̍@ƧОυ@ñƨòȀƥŎ̑ŐѵóɛŌóȂԫōƧŎѹñ̍ʶóОן@Ƨ̎Ѷô@Ȃ@™óŎó@@ó̍ƥԭք༄।ƨͩ̒ࡘς˜ñֈƦʴφͪ@ȂɜɜסԬə@Ƨə̑@Ƨóןô̏ŏ̍ô̑ؼôƨѵɚƧȁɝ@óŐρŎԪО̏ʴ"],encodeOffsets:[[124380,54630]]}},{type:"Feature",id:"gan_su",properties:{name:"甘肃",cp:[95.7129,40.166],childNum:14},geometry:{type:"Polygon",coordinates:["@@ڔôԮࢯ@ō̑ŋ݈ӑ@̑ɞôóôɜŋƦƨôóƨƦנŐɜ̑óͩԩͧѶõѺ̏ɚ@ƨНɜôöəςóɜȀƧȂԮŐѶŏ̒ȄמòƪρړԫôȃƧŋôƩ݈ͩɚ@@ǿɜ@φͩóŏɜӑƧōôǿ̎›ôƥƪóõ›ö@ô—ƨ˜ôƧƦôó̒ɜ@ɞŌõʶ̏Ő@ȀóôƨȂ@ʶע@@ƥ୾ӑó̑óŋôʵóɛړ@@ƩöóƩóρ—ɛƨ̑@óʷƥƥ̎ɛƧ›ôōƧǿôͩѵôɝȃɞȁõƧρóó—@ōƧŏړŐóŎôƨóƨôòƧôóȄ߻ƦõͬƧŎםͩɜНԭ̑ô̒óŌó—ƥ@óƨɝ›σԬƨôעəςƦöŐɝȀ@Ȃφ̒óȀƨƨ̎@ƥƪɚŌ@ƨôƪƧôəͪôôƧŌôȂυɜƧɞƧóəɜ̑›ρͪɛœ̑Ȃó›ƨƥ̍ôסӐ̍ŐƧŏɝôƧȁॡͪòԩρŏ@əɝ˜ƧŋѵɜɝóρŌυ—ɛͪρ›ƩȂѵœ@Ȁڕó@ȄɜʶφࡔڔœƨͪѶͪԬʶôƩעʶɚʶƥôóƨςȂ"],encodeOffsets:[[98730,43740]]}},{type:"Feature",id:"yun_nan",properties:{name:"云南",cp:[101.8652,25.1807],childNum:16},geometry:{type:"Polygon",coordinates:["@@ôɞôɝ̒öôŌƧƨôͪôô@ŋƦ›@ʶƨŐô߻ƪŏ@̐ɜʶѶНƧȁɜͧöô̐˜ςן@ŋɞʵ@ò@ȁɜǿóōɚƧɜ˜φɞôƩ̎ƪóޠѺО@̐̎ƪô̎Ѻ—ƧƩƨƧ@ōóóôóς—ƪƨƨóôɛó̑ԭ—ƥŌɛǿɝƨɛͩô›@ǿƨȁѺŌɚɛ̍ןѶНɛƧôóƥȁƦͩôŎɞ—ƨ̑ɜ—òôφ@ƨʵ@ɛѹōóȃəƨυǿóʵρƧƧŌƩɛ̏ȄñƧƧȀɝ̍ԩʶƧ̑υ—óŌƥʳɚӑóНƥô̑›óӒѵʵѹœƧӐןôƪφõŌƪ̒ԫŌƧؼƨƨס›ρȁƧœƨȂóʶó@@ʴƨôôφ̎Ŏ@Ȁƨ—ƪɚƨœóƨôôôςóޤƧŌƩŋƧԪ"],encodeOffsets:[[100530,28800]]}},{type:"Feature",id:"guang_xi",properties:{name:"广西",cp:[108.2813,23.6426],childNum:14},geometry:{type:"Polygon",coordinates:["@@ƦŋѺ̎ڔʵƨŐ@ƦמȄƪôóȂɜŌɚͩɜ@öóɜôôȂƦôɜȁ@ɞφ›óȄ̎›ƨʶɞŋƨʴɚǿ̐̎Ԭ@ôñ@̏ƨ›ρ۫ô›ɚƨƨНƪŐ̎›ƥóƦʵƥŋ@ȃóƥƧ@@ŏɝǿôυƧȁѵɛ@əóŏ̑@@ə̍›óƧó—@ȁƩ˜ρóòНƥô@Ӓ̑@óŎ̍ƥσŎυ@̍ƨ@Ō̑ôóͪƨ̒óŌړœ̏Ŏ@ŌôȄѺŎ@ɜƧʶυ@ñóɛ˜Ƨ̒ɝ˜óōƥͪ"],encodeOffsets:[[107011,25335]]}},{type:"Feature",id:"hu_nan",properties:{name:"湖南",cp:[111.5332,27.3779],childNum:14},geometry:{type:"Polygon",coordinates:["@@@քɜОƨ@öŐמóƪôƩɚ̒Ő߼ȁςͩɜòƪ—ɜȀò—ñɝò—Ѻͪ@ŏƨŋóɝôǿƨ™ɚȃóəƨȃѵͩó̍@ȃƨóóƥƨƧ@ʵƦ›óͩɜ—ɛóñԭɛōυȂ̍ƧƦō@ɛƥ—ɛȀ̑œóʷóō̍œƩŏƧОəƧóœς۬Ƨœ@̐óòԫ@̏̍əȀƧʳɝŌóɞƧ˜ƨɜóŐƨò@ȄƧŌρŋóôԪОóʶ@̎óȄ"],encodeOffsets:[[111870,29161]]}},{type:"Feature",id:"shan_xi_1",properties:{name:"陕西",cp:[109.5996,35.6396],childNum:10},geometry:{type:"Polygon",coordinates:["@@ςôöƨɝȂɞȄѶóóͪƨȀóŎƨœ̍ɜƦƦôʸ̒@ɜƧς˜ƪôõô@ƪڔ@ôɜóʶôŌô̒୽Ӓ@Ʀ@Ѻ̎ɜѺɛѶôöʶô™ƨšóʴ߼۰óô̎˜ñƪѸƩτʶ@ȁòŋəѹóǿ̑ʵ@ȁ̒ʷυփô݉ôН̏ط@ȁƨóô̏ƪõ@ʳ̐ʵ@ɝɛŋƩŌɛóןôƧŋ̒ó@ŏ̐ƥ@ŏυ@ƧƧôן̏@ƥȂѹɜəœɛóԭ̎ƥóóœóȀן—ɛô@ŎѹōñƦ"],encodeOffsets:[[108001,33705]]}},{type:"Feature",id:"guang_dong",properties:{name:"广东",cp:[113.4668,22.8076],childNum:21},geometry:{type:"Polygon",coordinates:["@@@Ȃô˜ôƨ̎œ@ɚ̒@ôŐ@ɚѶɜƨȂóφɞȀ@Őƨ@ôƦ@ȄƦŌƥʶƦôôŎôʸ̒›ɜǿƦ˜@ɜƥŎ̎ƨφȁɜŎòƥԮŎƨōóŏɛƧɝəɞƧ߼ɜςȃñȄƦŎ̒ōôòƨəƨ˜ɚН@əƨ̏ƪʵυŌəɛóəԭŏəœóŏѹœρʵɝƦ̏™ƥʳѶ›öō̑óóŋρȀυƧƥɛѹōƧôן—ɛŏѵ@óŋôʵɝ›ƪԩõ@Ƨō̍@Ƨ@@ƦɝԮƪО@@","@@X¯aWĀ„@l"],encodeOffsets:[[112411,21916],[116325,22697]]}},{type:"Feature",id:"ji_lin",properties:{name:"吉林",cp:[126.4746,43.5938],childNum:9},geometry:{type:"Polygon",coordinates:["@@נ@ôН̎ʵѺòƨōԬŎôȁɜŋѶô̒ŏƦōñǿòƧφ@ƨН̎@@Ȁ̐Őöʷ̐ԫ̎œôȂѺôòŌôƧ̒Őƨ̏̎ȁφ˜@ŋƩͩםȃƨ—@ȁ̑ʶ@Ōóôɛœƥѹ̑—συ݇@ɜρƧȃࢯƨôœəȂɛōƩɛ̏υρóõœƪʴυφ@ʶôŌóœρք@ɜƧ@ɝǿƧͪρȀƩó̏ŐƨȂ̍غړȃɛԮƨͪ̏ςƩœôɚφȁƦôɜƧôʶφȄ"],encodeOffsets:[[126181,47341]]}},{type:"Feature",id:"he_bei",properties:{name:"河北",cp:[115.4004,37.9688],childNum:11},geometry:{type:"MultiPolygon",coordinates:[["@@Ʃ̒̏ŌѺ̒Ʃ˜óȄƧŌƥͪòôñȂ̎ŐóȂ̒̐̎›ôНɜ—נ̎ôŋɞȀѶ@ôͪφœƨŌɚœɜȃóƧƨƥƪ˜@ʳƩ›ɞρ݈@υНφʵɜ˜ƦρƨƧ̍ɝóɛѹ̍ρŏ̑ôóƨ@œƧƦôƨɛ@ƥƨ@ȂƦ@@ôəŐƧʶƨŌυœ̍̎ɛŋôōɝ@óƧ̍›ƦʵѵʳôʵɜŏςôƪŋƨŌɚ@ôНƥƧ@ōѸɛ̐ô̎ʵѵНԭ@̍̍Ƨò@ȁɝ@əρυͩƪ̏ƩõƧŎƧōóšॡȄɛʶɜȀ@ɞςѶƧœƥςɛŐ@ɚɜɜ@Ŏôôςœƪς"],["@@õə@Ƨɛ˜@ŐóƦφô"]],encodeOffsets:[[[117271,40455]],[[120061,41040]]]}},{type:"Feature",id:"hu_bei",properties:{name:"湖北",cp:[112.2363,31.1572],childNum:17},geometry:{type:"Polygon",coordinates:["@@ñȄυƦöŐƩ˜óנƨƨφ@@Ő̏Ʀ@Ő̑ôƨŌנóɜôƪŋɜŌѶօڔə݈òɞōɜŎôӏƦóƨô̒óôȃƨó̎ŐôƧƪ@ƨȁςƧə̑̎Н@̍Ƨŏρôԭͩԫ—̍ʵƧšóȀôɞƧŌ@Őѹͩñ˜òɞñ˜ɛǿƩ˜ɛñρͪ߻Ȃ̑ŏƪəƩóםôõŏƧ@ɛНƥȄó›̑ѺƧ›ôφóƨƨƦƪóɜŐôóòôƨóφ̐ƨóƦ̎"],encodeOffsets:[[112860,31905]]}},{type:"Feature",id:"gui_zhou",properties:{name:"贵州",cp:[106.6113,26.9385],childNum:9},geometry:{type:"Polygon",coordinates:["@@ɜȀƦŋԮ˜ô̒ɚ˜ôōעƪƧʴɝ@ɛʶ̒ʶ̐ȁƦœóȂô@ôŏ@ōô—ƨʶѸô@ʶƨ˜ɞó@ōτöòυƨ@@əƨô@ɛ̒@Ʀɜôȃ@̍ôʵԩНôóςŌƨŋ@ȃƧñôŏƧɛƨ—ôɝƧʵ̍œôȃυœ@ɝɛȂƥóóȁɛóõôɛ@əͪɛŋôȁƩóםȃ@ƥƧŏړʶѹ̍ƥŌƦȂóôɜƨѵО̎נəɜѹŋƧȂ@ȀóœɜͪɞƧ"],encodeOffsets:[[106651,27901]]}},{type:"Feature",id:"shan_dong",properties:{name:"山东",cp:[118.7402,36.4307],childNum:17},geometry:{type:"Polygon",coordinates:["@@Ʃ̐φͪɚςɞ@@Ȃƨñ̎̎Ԯ@ѶОƨƧڔ@φН̑ŋ@Ʃ̒ǿ̎@ƨɜԬςôʶ̐ʶöԫƨƧנƥɜŎôō̎@ôŏóρƧŏԫôóƧԩó@ƥɜƧԭóƨʵɛƨ߻ӑɜНԩ˜óô̑óƧʳə™óɛƧ@õȀƧœ̍ȃɛŐóŏυО̍—óɝƩ—ԩ@ƧɚԫȄɚʶƨ˜ɞʶԪ̐ړɛƪ̒"],encodeOffsets:[[118261,37036]]}},{type:"Feature",id:"jiang_xi",properties:{name:"江西",cp:[116.0156,27.29],childNum:11},geometry:{type:"Polygon",coordinates:["@@ƧȄôɚəȄ̎ʶԬ˜ԮͪςóƨŐƪ›τɞƦōƥƧ@ŏςôóŐôô̒ʷѶ—ƪƩƩǿ@ō̒ɛôυ@—Ƨȁѹɛəƨѹ̑ƨ̏óƥѵʷô̍ɛȁôŏɝǿƧԫƧ›ôʳƥōòȃρȄ߻ɛɝƨɞɚɜƨôŐƧŎԭōñƦòԮɜôɛ˜ôͪƥœ@ʶƧƨôƦƧô@Ȅô̎Ѷͪ"],encodeOffsets:[[117e3,29025]]}},{type:"Feature",id:"he_nan",properties:{name:"河南",cp:[113.4668,33.8818],childNum:17},geometry:{type:"Polygon",coordinates:["@@φ˜̎ƪ̐˜ɞȄɚ@@Ȃעó̎ŌѺ̒ôֆॢȃô™ƨŎƨōƪöƩ̑ڔɜԩ̏ɝʵƧ—əʵԬȃƨəԪ@@Ƨ̒ŏô̍υȁƧɚ̍ôóŋ@ɝƧŋõ̑σ—@ŏɜŋôɝ̒ƧɚôôطρóóɛƩ@óƨ̍ŏƧôóȄ̑ôƧóƥôóӐɛōɝŎ݇ñړɚѵֆ@ɞ̏ʶ@ʴƩöó̐"],encodeOffsets:[[113040,35416]]}},{type:"Feature",id:"liao_ning",properties:{name:"辽宁",cp:[122.3438,41.0889],childNum:14},geometry:{type:"Polygon",coordinates:["@@ƨʴƧôôӔƨô̎ƩɞН̎ͪ߼ͪɜ—ɞɚ̐—@ƨςŏ̒ôƦƨɜœô̎ƪôςǿƨͩɞȀƨ@@ɛςփô›óŋ@ʵφυƩʳö›॥փρѹס@əɛ@ͩࢯ@ѹʵρ—ƩʶφȀƧ݈̒۬óʸɝŎѵ@ԭԫןɛƧƨƥςɛ—υʶφО"],encodeOffsets:[[122131,42301]]}},{type:"Feature",id:"shan_xi_2",properties:{name:"山西",cp:[112.4121,37.6611],childNum:11},geometry:{type:"Polygon",coordinates:["@@ɚѺñŌɚšôȄѺ›̎ֆφóςȂ̒—ɜƨɚ@@Ȁƨŋôȃƪ—ѹ̑̐ŋƪ̑Ʃρρ›óó@ōɛɛ@əɜŏƦρƨ›ρѵ@ɝɛǿɜʵóօѹ̑̍ŋסô@ȁə@ɝȃ̏—̍Ʃυ—Ƨô@Ȃ̐ظóОó݊φք̑ʸ@Ȃ̒ʶôȀ"],encodeOffsets:[[113581,39645]]}},{type:"Feature",id:"an_hui",properties:{name:"安徽",cp:[117.2461,32.0361],childNum:17},geometry:{type:"Polygon",coordinates:["@@ó̎̑Ő@ƨƪ˜Ѷǿɜ̑φ—Ʀʵ̐˜Ƨѵôóƪôôυς—ƨȂɞŏ@̍ԫôò̑ƥ—óȃѶͩƧƥôŏѺœôŏƦ—@›ƥͩƧ—ôȁυó@̑ƧɛѵʵƩƪѵ˜̑ʸóóôŏρó@ŐƦƨƥŎσɝƩœ@̎̍Оɚ̒ρƨƧȂôɜςôóظəó̑ƨóɞɛŌ@Őτ˜ö̒ƨŌ@ɞôŌ̎óƨəφȂ"],encodeOffsets:[[119431,34741]]}},{type:"Feature",id:"fu_jian",properties:{name:"福建",cp:[118.3008,25.9277],childNum:9},geometry:{type:"Polygon",coordinates:["@@̎›óȁƨӑ̒—̎ɚƨͩφŐƨɝ̎ŋóŏρ—@ōƨ›òʳəóƨō̏˜õɛƧ@ƨѵƧōəŏóŋƧô̑ɝɛʳƥ@@óɛõ@Ƨ̑ƧóȁəƧ̑—Ƨ̐@ɚəОƧ—Ƨɚóñ̑ŎóʴƨœƨԬɞȀóŐɜȂó̎ѶʸôƦƧ̐Ѻ̒ɚƧѺɜƨȂ"],encodeOffsets:[[121321,28981]]}},{type:"Feature",id:"zhe_jiang",properties:{name:"浙江",cp:[120.498,29.0918],childNum:11},geometry:{type:"Polygon",coordinates:["@@Ѷʶƨɜ@̒φôóȂƨ˜Ʀͪ@œ̐˜Ѹ̍τȂ̒̑נŐמôƪƧôӑ̑›@ƥρͩƨօ̏@@υɝó@ŋɛ@ôƩəóƧѵυó@ƩɜŋƧ@̍ŌƧɞυŏƧͪ̍ə̑˜ƧӒôȂ̍œ@˜óφ̑ɜ@ŎƪȀ"],encodeOffsets:[[121051,30105]]}},{type:"Feature",id:"jiang_su",properties:{name:"江苏",cp:[120.0586,32.915],childNum:13},geometry:{type:"Polygon",coordinates:["@@ôɞ̎˜φНôŐɜŏ̎Ȅƨ›öǿƨ@ôɜɚšƨʴ̒ôôó@Ƨ̎əԮȃԪૉöͩ̐ƧòʵφƧôʵ@óړɜóŏɜǿƧ›ɝρσȁѷ̎̏—ƥ˜óŐѹ›óŐƨƦѵͪôȄƦ˜ñ̒Ԭó@̎ɝŐƧȁρ˜óφƩóóôƨѶ̏—ƥʶυ˜ɛ̒ѵȀ"],encodeOffsets:[[119161,35460]]}},{type:"Feature",id:"chong_qing",properties:{name:"重庆",cp:[107.7539,30.1904],childNum:40},geometry:{type:"Polygon",coordinates:["@@əȂòɜƨ˜ѺɛƦȁ̐@ƪ—õŏφƥòȃƥ̍Ƨôυ̏ƧôñóóôɛŏƩôƧƥôƧóυƨœ̒ѹôœƦȃ@փƥɛ̑@@ɜƧó@ɚƧ@ñφσõ@ŎɝôƧ—@ʵѷóƧʵó˜@ŎóŐó@ôȁƥ›ó̒υôóʶə˜ƧȄς̎ƧȂôƨƨƨφɛ̎Őƨʷɞ@ςԮóŌôôφ@ɜֈ̎ƨ"],encodeOffsets:[[111150,32446]]}},{type:"Feature",id:"ning_xia",properties:{name:"宁夏",cp:[105.9961,37.3096],childNum:5},geometry:{type:"Polygon",coordinates:["@@ల̒ôޠφӒςôƪͧυևɜŋѺó̎ȁ̍ɛ@ѹס@@ʵƧȁôó@ǿ̐ŏöʵɝŋɛ@ô̑ƥóóƨƧ—ó˜ôœó@ƩôóƦ̍œóȀƨŎɛӒôŐυͪɛ@@Ȁə@"],encodeOffsets:[[106831,38340]]}},{type:"Feature",id:"hai_nan",properties:{name:"海南",cp:[109.9512,19.2041],childNum:18},geometry:{type:"Polygon",coordinates:["@@φɜƦʶ̐ôφô̎@ƨŎö@τʵƦ˜ԩ۫õН̏óƥȃƧ@Ʃəםƨ̑Ʀ@ޤ"],encodeOffsets:[[111240,19846]]}},{type:"Feature",id:"tai_wan",properties:{name:"台湾",cp:[121.0254,23.5986],childNum:1},geometry:{type:"Polygon",coordinates:["@@ô—ƩɝöƧɝѵəޣ̏ρƩԭóōóͪρɞƧОôԪ݈ଦѶɜ̒ɛ"],encodeOffsets:[[124831,25650]]}},{type:"Feature",id:"bei_jing",properties:{name:"北京",cp:[116.4551,40.2539],childNum:19},geometry:{type:"Polygon",coordinates:["@@óóó›υóôƥ@ŏóóə@ƧŋƩŌρóɛŐóʶѶʴƥʶ̎œôƨɞ@óŎɜŌ̎̍φ›Ƨŋƨʵ"],encodeOffsets:[[120241,41176]]}},{type:"Feature",id:"tian_jin",properties:{name:"天津",cp:[117.4219,39.4189],childNum:18},geometry:{type:"Polygon",coordinates:["@@ôôɜ—@ƨöɚôœôôɚŏ@óƥ@@ȁƦƧɜ@óƧƨƥ@›ƧóəН̏óѷɜ@ŎƦƨóО"],encodeOffsets:[[119610,40545]]}},{type:"Feature",id:"shang_hai",properties:{name:"上海",cp:[121.4648,31.2891],childNum:19},geometry:{type:"Polygon",coordinates:["@@ɞςƨœɛȀôŐڔɛóυô̍ןŏ̑̒"],encodeOffsets:[[123840,31771]]}},{type:"Feature",id:"xiang_gang",properties:{name:"香港",cp:[114.2578,22.3242],childNum:1},geometry:{type:"Polygon",coordinates:["@@óɛƩ@ρ@óœôȀɚŎƨ@ö@@ōƨ@"],encodeOffsets:[[117361,22950]]}},{type:"Feature",id:"ao_men",properties:{name:"澳门",cp:[113.5547,22.1484],childNum:1},geometry:{type:"Polygon",coordinates:["@@X¯aWĀ„@l"],encodeOffsets:[[116325,22697]]}}],UTF8Encoding:!0}}),i("echarts/util/mapData/geoJson/chong_qing_geo",[],function(){return{type:"FeatureCollection",features:[{type:"Feature",id:"500242",properties:{name:"酉阳土家族苗族自治县",cp:[108.8196,28.8666],childNum:1},geometry:{type:"Polygon",coordinates:["@@XJ°œlJX@lbl@XbV@VLnJlxnbšƒUU@IVK@lVIVwnJlU@n@J@L@Jn@l_nWVLVln@@blLšmV@@xœÔ‚`nœ™xV‚ÈLlx„LVxVVšƒV_U»VWn_m¥XwVmnX°ƒlmUUVwÞaVƒk@a@mmIUa@™mwk@™ƒm@@U¯a@UV@@K™@ykkmwkV@kU@ƒÑƒVkKWLÅamaUm@kyU@WkU@Ua™IUašVaUUmUUa@aVLXKWa¯UUbmJXnWnX`l@@xkzWÆ@V„LU¦‚x@b@JkIkJ@LmbUamJwm@óxƒnk@V„@x„ŽVnUVmVUVŽUbVlUbkXWŽ"],encodeOffsets:[[110914,29695]]}},{type:"Feature",id:"500236",properties:{name:"奉节县",cp:[109.3909,30.9265],childNum:1},geometry:{type:"Polygon",coordinates:["@@WVXb‚UnK@x@b‚²kxmKkl¯_ƒVV°™VU@bnKVVV@@nkŽ@n›bn‚@š°@VLČUš@°WV@V™nU@InKVl@nU„b˜KnX„WlknLlKUwnalLša„VlUXmWk@UU@UWWIUyķ¹XaWW@X™ƒKUIVm„U@W@UVU@KV@n»VkUkÇmUmVIUmULUbm@ƒwUaƒKkkm¯ÑUL@bWVnx@VmxUI@„klmkkK@aƒK@IlJ@I¯ƒk@mak@mnkJVL@bV@Ub„„W`UUUV™I@VƒU@VVbUJVLUVVbUX„VVxk¦VJUnVxnVVUšJV@Ubl@@bXV@L"],encodeOffsets:[[111781,31658]]}},{type:"Feature",id:"500238",properties:{name:"巫溪县",cp:[109.3359,31.4813],childNum:1},geometry:{type:"Polygon",coordinates:["@@nLWbX‚VLVU„V@KšIVl@b„@lbšU„VnU@JÆU@V@n°KĢUl@VbÞKšVš@„_„V‚KXU‚U@KXƒ@wlkkU@mWKUU@UôJ@XV@œaVmÞIVaVLƒƒ@»kmƒ@ƒUkL™U@aU@WWƒLUUU™™KkbƒwWa@KU@kaƒXmW—LƒamVk@UmL@JmVUšU@¯X™@ċVUK¯@ÅnWK™LkKULWK@UXK@wW@™LkV@bVLƒlXn›`¯xU„°LnŽlV@n°Lnl"],encodeOffsets:[[111488,32361]]}},{type:"Feature",id:"500234",properties:{name:"开县",cp:[108.4131,31.2561],childNum:1},geometry:{type:"Polygon",coordinates:["@@n@na‚I„wš@@VVK„LVbVxnVÆUnanKWXamKmk¯K@mkUm¯KVƒ°w@Wm@UIUUlKUU@a¯KWanwmUXamKkUWUnU@KƒkUwWKXaWLUWkImaUUUƒƒKka±k@lƒ¯w™wmbUƒ™ƒkXm@UJkIW‚XXƒbƒmƒ„UJ™XUV@°šKlšlVXV@xmbnV@blV@VšœU`UL@V™a@bULlb°VXbܚ@V@bƒL@J„xnLVb@lVb@V@@z˜bXWšX„KVLV‚š@@bUVVL@b„„lVna@ll@„zl@@J"],encodeOffsets:[[111150,32434]]}},{type:"Feature",id:"500243",properties:{name:"彭水苗族土家族自治县",cp:[108.2043,29.3994],childNum:1},geometry:{type:"Polygon",coordinates:["@@„Jlb@nVV@bXb@ÆlL„Ul`nVKU¼VxkbW„nlUxlXX‚@°°WnnJ@VUn@J„k°L@VlV@nUJ„x@bVVVz@VnLla„KnalVlIUŽ„¼@nV@@anKUwVal@UlJœƒlI@akU@UWXKVI‚¯Uak@@KmkXWÜkXWykIWwXw@laXamkVUUym_XmlkkmmakwmIUKU@Wak@kaW@kI¯›WIk¦VŽƒUUƒmaUV@XkVUV±aUb¯b¯¥m@@ImJ—@mƒmL@kUKUkkJƒbV¦"],encodeOffsets:[[110408,29729]]}},{type:"Feature",id:"500235",properties:{name:"云阳县",cp:[108.8306,31.0089],childNum:1},geometry:{type:"Polygon",coordinates:["@@lb„LV„VVnblJVXXKWbXLVx„l@LmVXVVl‚nLWbnVmxXb°L@bVVkLVVVJn@@X‚‚œ_Wm„kUK@alUšKX@@xWL@VXLVKlLšKXLÆm@™mœa@ml@mU@UUmL@aVšUU¯„U°`lknLlw±@a@wmLVWaXU@KWU@ak@VaU@™IUVmUUwVmUIl¥UwƒUVWUaVUUKVIUa@UUUUJƒUUm™kƒ„nl@„@VWV@L¯aUb™Ulxƒ@@b@VULUx@VUxVV™U@bU@mxU„U@mUVŽklkkƒ@WxknlxK@amLƒKU„K"],encodeOffsets:[[111016,31742]]}},{type:"Feature",id:"500101",properties:{name:"万州区",cp:[108.3911,30.6958],childNum:1},geometry:{type:"Polygon",coordinates:["@@ĸĊVI„ƒ„n„aWWXlJVIn@lWš„V„našx°xk„l@²Ž‚LVƒ„LnK@b‚LkwlmXw„@lllkUnVV@VƒnwV@@ašVUUVw@UVwVK@U@a„@kwšVVa°b@KXU@U@ƒmk„ƒÇсaml™kUVmn@VULU˜m@kUVkUaƒwUWm@Uw¯„mKUUmVUUULUKU„W@XbWVkaWwkUU™ƒ™k@maUbmbVlk¦ƒxUVUIWVU„kJVVkL@UmJ™UUVU@lLUVU„lx„@@VbƒJ™U™L¯¤@Vƒ„"],encodeOffsets:[[110464,31551]]}},{type:"Feature",id:"500229",properties:{name:"城口县",cp:[108.7756,31.9098],childNum:1},geometry:{type:"Polygon",coordinates:["@@VK@w¯L@m@UÅV@ImVƒU™Vkaƒ@@aUk™J@LƒUUVUKmLmbÅVmUUwUaƒKUL@U™@ƒxJmbm@nVJ@X@VkV‚n™lƒLXx™@ƒb@bUVƒLU`UnƒbU@@ŽmVVX@JX@VLVVšklV—„‚`@bUL@V„LVKn@‚U@„UJkn@lmLmK@X@Jn@mb„nÞWVXnJ‚k„KČÑÆ@VK@knaÜmXlUČW°kôÇƁ@a@yÞ_VmƒUnU@K"],encodeOffsets:[[111893,32513]]}},{type:"Feature",id:"500116",properties:{name:"江津区",cp:[106.2158,28.9874],childNum:1},geometry:{type:"Polygon",coordinates:["@@„InWUUlU@LVašlX@°²lÒXxlK@Ul@@Un@UaVJ@I@W@UƒUUVUwVIUKUa‚UUVwn@Üx@XUlnn‚bœJ@¥VklKUUlk@ynU@kVƒUUVWnI@¥V£VWVIUKU@UVƒa@n@Vm@@nlUaVkUwƒJ@blLkLW@XWmXkmmLn™@m@U@UVm@™„UVUUlakUVa„ƒVkV@@wnaWUk@VwkƒlmVIkUUxmJ@U„™@KƒIkx±V@IUm@K@IUKkbWKUbn„m„@bmVnbmb@xkxUJ@ULW`@bX@WVXL@Vƒš¯„mk¯@UJ@VmLUaWnX@WJ@nkKkxW@UIV@@KkImmkK@UW@XaWIU@U‚ƒIkbWb„xXŽlLVbnV@bWlX@VxVLnl@nÆÞVÜ"],encodeOffsets:[[108585,30032]]}},{type:"Feature",id:"500240",properties:{name:"石柱土家族自治县",cp:[108.2813,30.1025],childNum:1},geometry:{type:"Polygon",coordinates:["@@„š@kl@š¼UbmVXJ@bV@nxVIVJULVVk@@LWbnJVU@bVbUJ@blLXnWV—@mbnV‚@V„„bn@VJVLnaVanbl@„šVšlVXxlbXUWaX@VƒUUVwUUVm@I@WmI@a„mlLœ™lK@alwnUV@kóVaƒÝk@UlbVK@™VU»VUUVWUƒ@U`ULkwm@@KmU@knKƒ»VkJkUmbƒLkbmK@UUyUU@aƒwm@@XXJ@VVLVVUbVnUJVX@K„„k`WXXJWXUbmW@bkL™Um`Xnƒb@JVL@LU@™°VVXKVnUxVLUbmJ"],encodeOffsets:[[110588,30769]]}},{type:"Feature",id:"500237",properties:{name:"巫山县",cp:[109.8853,31.1188],childNum:1},geometry:{type:"Polygon",coordinates:["@@kVƒU™bkKmbVxkLmKkllbV@@LXb„xlašLVšVV„KXXV@@bšVlK„V„@ln@¼°KXa„U@Ulw°JXalIUa„ÝWXW@kVU@ƒVUVWUUUamUw@aVamwn@VUUƒlLXWm£@wÇĉkKklmLUÒ¯ƒWn™@ğ±kwmaWm¼U@@LUV@V@XƒVUnVJ„LWš@‚XXWbĸºVzXJVXV@@VXlWn"],encodeOffsets:[[112399,31917]]}},{type:"Feature",id:"500102",properties:{name:"涪陵区",cp:[107.3364,29.6796],childNum:1},geometry:{type:"Polygon",coordinates:["@@nèVblĖVVnLšŽ„@šx‚V„n@nšJ@L„UVVX@lbUJV@@nn@VVVK@z„˜V@nzVJVUlmX@@_VVVbnaVal@@knW@wnaƒVK@aVI„J@£kUVW@‚wXUVJ„amƒ@Ikƒƒƒƒ_X¥ƒ@WwkKkwmŽ™šƒkUxƒnÅmm¥™WV@Um@UlVL@JU@@Xƒ@UVkKVk™KVk™Kkb@bmJVXU„VVUbU@@`W_UV¯b"],encodeOffsets:[[109508,30207]]}},{type:"Feature",id:"500230",properties:{name:"丰都县",cp:[107.8418,29.9048],childNum:1},geometry:{type:"Polygon",coordinates:["@@Þè@XUK@LlV@blbUJ@„„V@bnV‚@VVVXU@ƒlbXal@VXnKV@maXUރ@amk@aVKXV‚anbš£°mnIVaUKVwUmWLUUš¯V@@KUK@I„aWmn_šVlK@anXVaXWWIXWl_ƒƒ@LUWVIUmVaUUUK@UWI@Wn@VI@mkU@U¯Kƒl@ImVÅLƒwU¤óbUU@wWXkmm@LU@@VUIWVUL@JUnƒaƒx@Jn„ƒbUIWVx@ŽUXlV@¤ƒIUJ@bUL„Žmb@xmX@lk@UbmbUaUU@`W@kn"],encodeOffsets:[[110048,30713]]}},{type:"Feature",id:"500232",properties:{name:"武隆县",cp:[107.655,29.35],childNum:1},geometry:{type:"Polygon",coordinates:["@@l„„w„bVm@IVKXUVJ@UV@@KnnWlX@xVVôaV£„xÆKnUVm@UmIXm¯¯@WkWVwmkXƒlaUwV»ULmk_ƒVkK@ÅWa@aUU@mkaƒIƒb@‚n¼ƒnm‚_@mmK@UƒLUVVmI@aUJ@XWJ@U`UIkm±kk@@lULmUmKUnVšnlUVmI@VkVlx™bkIƒVmLUxkKUŽ‚Xš‚n¦Æn„mVw„lš™nlxlLXx„@W¦„`„„"],encodeOffsets:[[110262,30291]]}},{type:"Feature",id:"500119",properties:{name:"南川区",cp:[107.1716,29.1302],childNum:1},geometry:{type:"Polygon",coordinates:["@@VšUbVJVUn@VLX@WVXVVI@VUVWxU@mš@ĊX@@¼V°aVUX`@_V@VaUUVƒUWnI@alašLUlšLUllLVU„@@WV@@IUKVkn@@VlLVwnK„UlJšakwlU@UnJVUmkU™VmXa@wVK@UUw™@VƒVI@akƒ@alInwlKXUmaUW@wWLk™™KVak_ÇaUƒƒV@šXbƒLVxUlWIk@UK@V™@ƒkU@VbUVUlVnƒLUV@lVXmxkV@L@V@Vk@WbUwmL@JUI@xVxkx"],encodeOffsets:[[109463,29830]]}},{type:"Feature",id:"500241",properties:{name:"秀山土家族苗族自治县",cp:[109.0173,28.5205],childNum:1},geometry:{type:"Polygon",coordinates:["@@XlV@lzn@VŽnbÆbXKlL„U„ÒV@@llUnxll@zšŽ@LU@@V°b@Vn@š„l@VÑUƒnK@UšU@aUaƒkVm@K¯wƒklmnn„Ul`nI@almkIUwmWVkUaƒkkJmUUa@K@aU@@_m@@wUyVUUa@Umƒ@awl@Wka±„UkUykIWV™b@bUVk@›aU@UXU‚UIWakUWmUxUV@nUVWbšŽ@XXVVŽmXXŽ@VƒbVLkVWx"],encodeOffsets:[[111330,29183]]}},{type:"Feature",id:"500114",properties:{name:"黔江区",cp:[108.7207,29.4708],childNum:1},geometry:{type:"Polygon",coordinates:["@@VX@V@LV@VJUL@lVnnxlb@VXV‚XV@@W„@UIVK@kUKna@£VWUaVUUalIVJVIUW„_lm@bXKV@mn@J„UUw@KnIVll@VanLVmUkVKXLVKUIVamw@UaU_lw„KlwUWV_Ua@aUa@KUšwm›_›Ó@wU@™nkK@am@UkUKmXk`m@@I@K@I@mkVmIUxUJ@kUL@JVV™„lnklWnn`VzUVnlWbkb@WxXxlJXzWŽÛlWXnl@Ll@Vb°UJWLX@VlV@bkJ"],encodeOffsets:[[111106,30420]]}},{type:"Feature",id:"500117",properties:{name:"合川区",cp:[106.3257,30.108],childNum:1},geometry:{type:"Polygon",coordinates:["@@XKVXlK„ƒVL@UnV@aValXXK„U@WVwUaVU@IV@@aVW„L@U@anVV@@bVK@UVL@bnJWL@VnUnb˜@@JnIlVl‚@@bXIWbn@UKVLVKXLlaV@VVnK@bVL„m„IVƒ@KmknUUWVI@aVJ@_„WU_VmUwƒU@K™ƒVak@am¯mJU_UJUkU@WkIV`UI@JV@LmmU@@mƒbUzś™@„VK@nUKƒ„ƒb™akb@UWK@bkVVbV„Û@@`ƒXk@WŽ@n@lXL@bmb@VVJUn@JnUlnUlmX@`XLlbkJW@kzlb@`@b@b"],encodeOffsets:[[108529,31101]]}},{type:"Feature",id:"500222",properties:{name:"綦江县",cp:[106.6553,28.8171],childNum:1},geometry:{type:"Polygon",coordinates:["@@@¦‚@X„lVX@@UVKl„VUX@lanVlUVbXWVXVƒ„VVUnKVUlwUwU@UJ@nmVkUV™lwXam@VaUUUw@W@kk»mV@UmKkwVKVUU@@LUKVI@mV@XVWxnXVKUUUK@wWU@UUWnUlLXa‚mUI„am@wI@K@amIm‚UUkI@m‚akUkKWUUanƒ@wƒamLVxk@UVmUUL@Vm@kV@I@ak@@bWVXJlLVbVL@š@bn@@`Un„@WbUKULWVXbƒ@UVmbX„WVƒb@bVmxUKUƒV@šUn@V@V@nmšnKlnnWWXX@lKkK@a„IVxUlVb‚k@mn@@U@m„bVUV@VLUJUXU¤"],encodeOffsets:[[109137,29779]]}},{type:"Feature",id:"500233",properties:{name:"忠县",cp:[107.8967,30.3223],childNum:1},geometry:{type:"Polygon",coordinates:["@@VLÞĊ„U@Wš@¼V‚„@lk@w²mlšVUœ„llšVnI@VlKUUlIVƒXUVJVU„wl¥UkUKUIm@ƒaUƒ@mUna˜@XUWmkK@aVIUa@aUVmIXa@Kl@UUVKUIUJmwU@@aWInUVa™»k@@lƒ™¯n™¤mabWUUL@bnl@b݄WVnbU@mLUWk@Wbka@„WVUU@UmUmVkUULV„lVUx„l@L@VƒbÈÒlb"],encodeOffsets:[[110239,31146]]}},{type:"Feature",id:"500228",properties:{name:"梁平县",cp:[107.7429,30.6519],childNum:1},geometry:{type:"Polygon",coordinates:["@@XLV@VV@b°°nšƒnkb@bƒšnJWVXblIUVšxWnUJnVVLVU„JlUnLVK@UnUVJš²nKVbVKla@aXlJ„k„Klb„ƒ@U°£šKšV„IUa@ƒ@kwVƒVUkKV@VUkk›ƒUVk™±n@xklƒ@U@»™‚@XƒVÝĉUJnxWb@UX›KkVUbUKWUkVmkkLU`›b"],encodeOffsets:[[109980,31247]]}},{type:"Feature",id:"500113",properties:{name:"巴南区",cp:[106.7322,29.4214],childNum:1},geometry:{type:"Polygon",coordinates:["@@nxnVlJlUXLƒ¦@x@Vl@nKVVX@V_V@@KlVXU„@lKlxXIl@ÈĊ@Vl@n_VJlŽnVlnb„²VVVJVVmUUkĕUamçU@»W@@ĉn™V@XwVU@UUJWUXUW@UKm@UVUIVaU™UVmLUVƒUU„UWWXUakVmUkbW@UVkƒUL@VW@kUWƒ@mJUXVVU„@lmV@zklVVkLUl@¦›I"],encodeOffsets:[[108990,30061]]}},{type:"Feature",id:"500223",properties:{name:"潼南县",cp:[105.7764,30.1135],childNum:1},geometry:{type:"Polygon",coordinates:["@@@a@a@_kalyX@lIkaWK@_nWVkkmmV@IVmUI@Una@aWK@k@mkbWaknmJUk@mk@@kUal@Uaš@Wa@aXLlwUKlkkƒ@KmI@VUJ@Lk@@VUUmL@amJU£kKUaWakLmU@bVVUbnbWV@xkL@bUb‚xUxVbXJVbUVWIUVU@kLWxkKWV@n¯VUbU@@VVX@VmaUL@VUK@VVbn@lVnI‚@@lnLULm@Ub@Žl@na„@lK@XVVkJ@b@zl@@VnV@bVb@J@bnXV`lXXmVI@W@InbV@@aVKUblKVLUanLlmnLlK"],encodeOffsets:[[108529,31101]]}},{type:"Feature",id:"500118",properties:{name:"永川区",cp:[105.8643,29.2566],childNum:1},geometry:{type:"Polygon",coordinates:["@@@b܄nWVLX„lxV„VxXxlVn@@bVblK@a@UnLVJV@@UnLVU@VXaVKVXš@n`WUÿ@IUKlaUUUkWyUÛÅÝ@mmkUKUwW@Xk@amUUakKWƒwXaƒK@VVLklƒXVlkxV„UL@bm@Vxn`ƒIVxUVkLVšUšl@@lkXmmƒVUn@VV@Xb"],encodeOffsets:[[108192,30038]]}},{type:"Feature",id:"500231",properties:{name:"垫江县",cp:[107.4573,30.2454],childNum:1},geometry:{type:"Polygon",coordinates:["@@šĊ°¤nҘ¼œaV_lKnllUXVVLValUœLVW‚@XamwVIUKkaÇфa@U@KƒkVwkUUƒVKlVnU@aƒU@ƒVIka@akU@KVL@WÝçUV@Vmbů@L™KƒnnJW„ƒVkxlL@VX@VxmnXVWxUb@bkn"],encodeOffsets:[[109812,30961]]}},{type:"Feature",id:"500112",properties:{name:"渝北区",cp:[106.7212,29.8499],childNum:1},geometry:{type:"Polygon",coordinates:["@@@bVVXL‚a@lnbWn@L„@XVlK@VVLUVlbkLUKVVVL@VšnX‚VL@VV@UbVb@x@¦UxVb@bUJƒL@L„VVxlK@™nk@U@W„UVLlKXV„@VblU@UUKVU@wn@VJVanLlkX@VaVK™¯@a@U@U@ƒVaUK„kUUƒ±maUkm@UUkbm@@Vk@@JƒwU@Ub@I@JmwUL@aƒ@@KkVÇLkƒWkƒ@kUU@@xUVmKUnllUb"],encodeOffsets:[[109013,30381]]}},{type:"Feature",id:"500115",properties:{name:"长寿区",cp:[107.1606,29.9762],childNum:1},geometry:{type:"Polygon",coordinates:["@@VVšU„bX‚lX„¥l@XnVmlxUx„@@blVnnôĀlm@aVaXwWUnmUwW@@UkKlw„UXƒmI„mšL@KÆ°na@UUImyU@ƒ—@yULUUm@@mU@VIkaW@UUƒV@K™I@mƒmU™wƒ@™mKUnU‚UIƒlVLUb@„@V@V@bš°ULUbW@klmKUbUIm@@xUVVL"],encodeOffsets:[[109429,30747]]}},{type:"Feature",id:"500225",properties:{name:"大足县",cp:[105.7544,29.6136],childNum:1},geometry:{type:"Polygon",coordinates:["@@XUmaVaUU@anVlKXbValU@aV@@IXKš@@bV@VxVK@UXLlUšJXa@_‚@@aVK—ÅWVkwWaƒƒwUa@am@kUWLU@kWmX@ykI@W@UV@na@LlLV@UƒkwWƒUKmXX`mIVl@bXLWVkbkkƒx@`VXm@@J@U@UUKUxk@WbUIVl@VXLW„ƒJUkUlUImxXlmb@X@VUJUnVbšW@UV@@VVX@bnW@LVxUnlJUV@n„@VxVIn@l`„UVVVL"],encodeOffsets:[[108270,30578]]}},{type:"Feature",id:"500224",properties:{name:"铜梁县",cp:[106.0291,29.8059],childNum:1},geometry:{type:"Polygon",coordinates:["@@VblLV¤nI@bnKVV@Ul@@KVI@UnJ@Ll„klVLkxWK@bXb™@Vbk@Vb@ll@@nVlnIlmXblaXl@„W@_Ü@UƒUalU@aXL@Vlašb„a„ƒVL@mUL@ƒUUƒƒÇXUW›X_WaƒƒUƒ»m_™@UWULWb@UUVmK@VU@UImK@V@bkL„x‚„XblxXU˜ÆUL@b@@`Wb™IkVWK@VULUwU@@a™@WL@JU@@bkVUb"],encodeOffsets:[[108316,30527]]}},{type:"Feature",id:"500226",properties:{name:"荣昌县",cp:[105.5127,29.4708],childNum:1},geometry:{type:"Polygon",coordinates:["@@VI@U@WnaWknwVJVkVl„IXƒWK@UUkVJXal@VwVL@V@V@In@UW@_„wlllaXUWK@aUknJW_ۃ@aWaU@@UVm„UUaUImJVnÅUmVUm`kUUVWLnVU@VVmXƒK@„nxmŽULkx™ImJ@nU`@X@Vkn@`@nlV@nVJVaX„VLnK@bVV@nV@lbXWš@"],encodeOffsets:[[108012,30392]]}},{type:"Feature",id:"500227",properties:{name:"璧山县",cp:[106.2048,29.5807],childNum:1},geometry:{type:"Polygon",coordinates:["@@XzVlVVkbVL@JVĀXŽ‚¼V„„„XbW`XœWVȎ„„VVšŽVkV@@UXa@alK@IƒƒU@UKWUyUI@wVUUWVak@VUkƒW¹@WXI@yVIUK@kWwkѯ±W@™kUb@KkVVVmXƒJ"],encodeOffsets:[[108585,30032]]}},{type:"Feature",id:"500109",properties:{name:"北碚区",cp:[106.5674,29.8883],childNum:1},geometry:{type:"Polygon",coordinates:["@@X‚VLV@„„@JkL@bWb@VU@UlƜVy„a@nV@nn@KU@IVJU_lJXV@VlVIV`nIn°@b‚lUbš„„KVI@aUaVw@¥@wUaVaU@@UUKW™m@UUKUUVLlKkaVUUK@UkLWUƒ@@KXmma@kbWKUU@aUamLnÞ@VWLk@@Wm@ULU@@U™KUVWI"],encodeOffsets:[[108855,30449]]}},{type:"Feature",id:"500110",properties:{name:"万盛区",cp:[106.908,28.9325],childNum:1},geometry:{type:"Polygon",coordinates:["@@VIV@@wVJ@InKVxXal@@U@U@KlUnwUW@kVU„KUmVkUa@I@KW@@bk@@mƒU@m@k@a@aƒIUxmJk@ƒwULƒwkKmVVX@VXV@xVLVVULmWXwWUU@@nUJVL@KV@UVULlxnL@VnUl¼@l@XVxVVUbn@WbkxUšlVnU@m"],encodeOffsets:[[109452,29779]]}},{type:"Feature",id:"500107",properties:{name:"九龙坡区",cp:[106.3586,29.4049],childNum:1},geometry:{type:"Polygon",coordinates:["@@XK‚L@Vš@XbV@lW@UV@@VXIV@U™VKlL@KnnJ@VV@VU@I„@@mVUVWUUmL@V¯LUK@UV@UU@a@U@yU@WLUK@X@KUVmL@ƒ@aXI@w@ammVk@WÛwm@UxVVVbVLUJVxVU„V@V@X@JUIVbm@@Vk@@VkL@lVLUJ@zWJ@X"],encodeOffsets:[[108799,30241]]}},{type:"Feature",id:"500106",properties:{name:"沙坪坝区",cp:[106.3696,29.6191],childNum:1},geometry:{type:"Polygon",coordinates:["@@Xºl„UVl@UbVXUV@xVJVzXJVUšL@VV@VKn@@Xl@XK@UmÝnKVbVakkVm@k„ƒUK@UmIm@LkKULVšU@WJ@UU@@VkXU@Wa™@@UKWL"],encodeOffsets:[[108799,30241]]}},{type:"Feature",id:"500108",properties:{name:"南岸区",cp:[106.6663,29.5367],childNum:1},geometry:{type:"Polygon",coordinates:["@@VV„JVL@bUVVnl`XIlwXJlw°nnl‚IXW@UÇĉk@WJkwkLƒ@WVkU@LU@U`W@UXUV@n"],encodeOffsets:[[109092,30241]]}},{type:"Feature",id:"500105",properties:{name:"江北区",cp:[106.8311,29.6191],childNum:1},geometry:{type:"Polygon",coordinates:["@@nLVU@wV@lV„@Xll„ÈKlU@L„@@bVKnx@I@JVaV@„x@Il@@Un@laVVn@mkUIm`k@WXJmk¯mkxWIkxWJk_UmVUUKƒ@UU™@ƒ„@l"],encodeOffsets:[[109013,30319]]}},{type:"Feature",id:"500104",properties:{name:"大渡口区",cp:[106.4905,29.4214],childNum:1},geometry:{type:"Polygon",coordinates:["@@k@@U@w„¥WKkVkImUmwa@b@xWJ@b@„nKVU@L@WVLXKV@@z@V@bVVU@@VVL°K@U"],encodeOffsets:[[109080,30190]]}},{type:"Feature",id:"500111",properties:{name:"双桥区",cp:[105.7874,29.4928],childNum:1},geometry:{type:"Polygon",coordinates:["@@WwUwU@kK@KmbU@@V@XlJ@znWlXV@XK"],encodeOffsets:[[108372,30235]]}},{type:"Feature",id:"500103",properties:{name:"渝中区",cp:[106.5344,29.5477],childNum:1},geometry:{type:"Polygon",coordinates:["@@VLš@VV„@VL@aUKƒIUUƒ@@JUVU@"],encodeOffsets:[[109036,30257]]}}],UTF8Encoding:!0}}),i("echarts/util/mapData/geoJson/fu_jian_geo",[],function(){return{type:"FeatureCollection",features:[{type:"Feature",id:"3507",properties:{name:"南平市",cp:[118.136,27.2845],childNum:10},geometry:{type:"Polygon",coordinates:["@@@knyƒk@ƒKU¥šwV@nkƒWƒzUmk@@lKUa@aVI@UƒKUamKUUVaUI‚@Xƒ@UV@K±IUVVlUbUbUL@KWUXmWk@KkXmmkŃKUƒ™a@amUƒbkUkKWUnwUƒÇwV™UUƒÝUKV£U™@ƒnKWwXLVKm¥@wUXkmWk@ƒ@wX@lU„@šyVImaXwVƒƒ@kŽƒnU@mbk@mlUXƒmU@mV@n@bnW@bUIWJ—ImVUKWbUK@nkKƒaU@W_VUUmWmL@UU@™bUWUL@V@bmVUz@`mUUVVbXL@V™L@lmLUxmVamXkW@xWbU„VbUxkU±@ÅUmmkLUbW@@`kLknVlV@lbXxlVUXVV™ŽU„U@UbWŽkIWVUUUJkI@llbUxVL@V™VƒUU°ULUmWXUV@VULWb@™xm@UaVLVKUa@ƒw@V›bkmVambUUm@@VkK@„@b„xlxX@‚„n¤@Xƒ@@lkLWV@Žn„V„kb@bWJXLWx@nkxmm™bXn@VWVUn@VnJ@bVXl@„™VJXnWbX`lL„UlJVI@Žœ@VXV@Vl@bn@@Æmn@VšxXU@mVIlxšVššnI„l@nVJ‚aXI@mlU@aXkVm°klmnVV_naš°@V@xܦXK„V‚nnUlVXbVK‚LXKV@naV@@VVl@@lXblXšWnLlbVK²nš@@‚VLUnlV@lƒXxô°‚V@UnaUUlKXLVUVVUbVVlUnJVX„@VW@an@lb„@nl@VU@anƒšUVW@kƒaUm@InVVKVU@kUW@Uam@km@kVa@a@™nwšU@WlI@mVI@WXaW_nƒ@™nƒlkkW@U‚¥@kV@Uw@wUƒ@@IXK‚¥VIn@nU@`@Xl@VV„LnašW‚bVaUwnU„@VIšKlV"],encodeOffsets:[[122119,28086]]}},{type:"Feature",id:"3504",properties:{name:"三明市",cp:[117.5317,26.3013],childNum:11},geometry:{type:"Polygon",coordinates:["@@lL@Un@VVna‚bnUlœa@U‚x@„VbULUKVbn@šw‚@XaVK@UVUXWVnVKV¯„VšU@UUKVwka@klJVIVVXUlJXVaV@VƒšUUVWkUWwkaU@UklmlK@_X@ValKnnÆV²@lVVwUaVƒXa@wlXnW‚bnUVwnK@kšK@UWKUaVUnV@_VynU@a@UVKVXšaV@@VnKnXVV‚UX`V@„blL@mVLXaVLnU˜JXIVJ@amX@a@mnUV@„nVWnkl@naV@„ml„@@KmKUam@UU@ƒ@UlKU™Vk™U™K@aVaUwV™U¥UIkJ@wmI@‚mbkwkVW@UXƒKULU`™IVKUa@LƒkkVmUU@WlULUWÅU@I@ƒWW™nU@@w@a@ƒUam_XyVIVWkkƒ@mwVKXUV@nw˜VXkWƒÅ™U@ƒaƒU¯KUnƒK@ƒ¯šmUƒLXŽVLnWVbVbUVm@Ub¯¼W@amƒ`kb™amLUUUƒ™aUXV`@x@XmJ@n@L@xkJUU@kU@mWm@kUUwUUVWl@VUkIƒy@kkaVUUm™IWVXbWxU@k„mVkK@nWVX¦WxU@@bkx@VU@WŽk@™kUbmJUUmkUW@_kKWKƒ@knV¤kIUKWLUbV‚@Wbk@@VWL@VkI@lUXVxUVU@@mWIƒV@a¯nUaƒaUV@„ƒJ™b@bÞ°VbUš@X™aUVmL@‚VXblŽnV„°˜n@Vnx„@VUUUlK@InJVb@„Vlnn@V™L@VWJU„x@XlJUVVVl@LUUUJ@Lƒ„@lUL°¦k˜V„VnV@„xV„„l@blLnlšLVaXll@šnVUn@‚xn@nml°‚X@lb"], +encodeOffsets:[[119858,27754]]}},{type:"Feature",id:"3508",properties:{name:"龙岩市",cp:[116.8066,25.2026],childNum:7},geometry:{type:"Polygon",coordinates:["@@ša„I@ƒVU„bVb°m@b„UXJ@nV@VUUwVW@klJ@UXK@Ul@Xa‚@UVaXKVLlJU£lm„@XLlL@`VXnlVVnIVašll@XV@@Ulw@aV@XwW¥XU@mlLnUlƒV@XwWaXUšJVnUVlb@l„zlJUVk@UXVVVxlVn@nXV@@lVVlI@w@K@mnI@W@wU_VWšbV„VVnKšbla„_n‚bX@°»Van@VUUaUamXUKW„K@a@Ukƒ@wWkXƒWW@wUU™Kw@_lyƒwUkU@@Uƒ@kamVmƒXašUVUka@Wk@»UUUVƒKkbWU™VUbk@mkƒxkƒƒKnIVUmW@kUKmXUmVaU@kU@m@KUWVkIWJ@ŽU@UI@wUUUa@KW»nU@mVkUmm@XwWU@ƒUUmL@ƒw@mnƒVUU@aWak@@amxU@UxULWVXbVLU`mbUImVU„ƒbn‚V@@bVn@bnVWxLmyUbƒIUKƒ@aƒVm™akbV‚UXW„UlKWbkV@„WLUlk@@nšbƒb@lkKmU@ƒUIWJkw¯UUVVxm@@XkbWx—›XKƒlUzWJkUUL@bmKkVƒ@@VUIUlWV@X„K@VkbWx°xUb@LUbk@@VWb@LXJ@VWXU@@bUVV„VVn@VVlLn„@l„@‚xk¦Vx@bVJXbƒn@JlnXxV@@„nJ@X@V@lmx„bUn@xVL@VVKlL@l„„nLVaVL@xkl@LƒxVl°š„X„WVX„Vl„œJWnxlJ"],encodeOffsets:[[119194,26657]]}},{type:"Feature",id:"3509",properties:{name:"宁德市",cp:[119.6521,26.9824],childNum:9},geometry:{type:"Polygon",coordinates:["@@@LVKVaVaUkVU²J@LVU„@@W‚VJUbVVnLVb„L@VUJ@bVbkL@Žl@Vn„y„XmlU@™xV¦„L@Ž„lmz@lnL@bVVšbVb@l„nšKVk„Vl¤@zXV@šl@XJVLVKnXVK‚VnU@wUm@šKUƒ@UlVlw@U@U@ƒUaUKlU@kXKlmXIWKXaVIVUVK@KU@@k„JVUnLVJUL@V‚IVa@VnLšKUnl`Vb„V„V@š‚Vbn@Vzn@lKnVlI„VVKUalkXJl@XXVWVLVUUmVU@Unm„£lK@Uk@WUXK@U@WVwVkšƒĠkĢÇ°aUÅUwmaţƒɱUÇa™w„±V¹XalKôx„@„UVaÜʓͿVóbÅLƒJm„¯Vk¦ƒŽk@mamXkKUƒUL›akbk@mV@LkJWb@Vk„mXk@UVmaUV@amLUKUamI@KUaU@WbU@UUUƒUIWJUkm@šƒw™Kk„VJm@kxǁVƒUK@mUVUkmlkkVm@amwƒLVWU@UbVLkšUbƒ@VƒmK@XaVWU_VJnwV@@kUmWakxƒ@kwWakIWxnbUJ™zƒ@kVW@@x@„XllnVW@xn¦ULWKXxmL@„VšU¤VL„ÞVVUšÈxV„mxXVlLlV„anV@bšbV„„LlÆnnlW@LXlWnXV"],encodeOffsets:[[121816,27816]]}},{type:"Feature",id:"3501",properties:{name:"福州市",cp:[119.4543,25.9222],childNum:9},geometry:{type:"Polygon",coordinates:["@@lxna@nJ@xlIVJV¦UšVxUb@bšLšVUlVškL@V@„VVn@Vb‚Ln‚@LU„lJXblx„@lwXbVn@lU@mxUIV`UXWb@‚nLU„„@Val™UKVaV@UX„Knx‚bn@lUkllnUVnV‚@VLU„È‚lwn@UIlƒšL„x‚™n@VlXIVJV„VVV@XaV@Vb@LnJVbVLnK@bVUnbVUl@nWlƒ@UXalI@KnUl@laœbVKV„lLnWnbl@„l¥°Unƒ„IÆKôa΀U„a@UUwÇWǓIUWUÅVkƨm@ƒ@£@KmLU¤ULˣJ™kUƒVǟUUķ@ĉVƒKUk@Ñ°wôǚç@īšé@Åţ¥mīÛkm¼Å@ƒVķVó°ō¦U°ƒn@bVJXVVL@bUŽƒakLmx@xmxXzW`XbWnXV@bWLÛ@™aƒ@ƒaXbWVkaÝwU@mlWKkLWWkLUKULW@kVmVUU݁UamV—¤›n@xUVUzkJV¦lJU„"],encodeOffsets:[[121253,26511]]}},{type:"Feature",id:"3506",properties:{name:"漳州市",cp:[117.5757,24.3732],childNum:10},geometry:{type:"Polygon",coordinates:["@@@bl@Xb@bVVUŽm„@n„x‚@nKVV@„XVWxn@VnUl@nmVX¼@LVbVV@xVJV@@XIlJXU‚V@Ln‚@lVV@UbVnnWVL@lnXUVmJ„Ll„„wnll@VašUXVla„LVUVV@¼Xl@lbUV™VWbn„nUlb„@@VV@„aVUšmlUašUny@kU@Wkk@WaUVk@@ammk@@U@UlU@aUa@wl@šmXLllnL‚U@anVnU@L@VVV@KlXnWVnVanUšw@w@wm›nÅ@wƒaUam@Uk„mUl@@a„a@U@¥škôK‚wȯ°w@ŻkwǕaK›ÑÛk@ĕōřċ£ĵƒUKW»kÅŻLU@Ulġw@¤Vz™VUbkKUbmLmlULU¼UxmbXl@bWVƒb@bUnV‚UšVbULU@@VkbVL@`U@WX@ŽXV@b°„@b¯š@¤@Xm@@b@`U„VVUL"],encodeOffsets:[[119712,24953]]}},{type:"Feature",id:"3505",properties:{name:"泉州市",cp:[118.3228,25.1147],childNum:9},geometry:{type:"Polygon",coordinates:["@@Vl„xkz@`‚xšLVV@xXXW„Xl@xl„@V@bnV°™@„„LVm°L„V„bV@ƚX„Wl—UmxU@WVULnx„@llUXUJWzn`Vb@„@b@xV@šmXX@„@JÆVVXVKXkV@nVlU„l@KVbULšJV_VK„LVWX@lUVƒkIU¥lIVyVU@wœm˜£nUVWU@aƒm@UmWw@UX@@am™VUn@@aUUlUVanaWUXWmUnkšK@VšUlVVUUwš@XLWWX™ma@knm‚bVb„VXbVL‚@XJlInlšL„w˜mXóšw@çV»ÇçŋaķƧóƅóKġ°nÅUķƑUÇW@—¯xÇ°öÆlV„n@llšaš@„Lšbƒ`™@™„VšXVƒVx@V@bULVJUk‚Ç@ƒ¼ƒXUKk@mmULkaWbk@ƒx@UkL@a@K@U@UmKmbU@kV@UmVUbUmmXkW@LUU@U@KmVmU@bVmKkkWK™nk@@xVb@bkV@V@Vl@nn@bl@VUXbl@XlV@@lmz™VVbkŽ™nUVƒb"],encodeOffsets:[[120398,25797]]}},{type:"Feature",id:"3503",properties:{name:"莆田市",cp:[119.0918,25.3455],childNum:2},geometry:{type:"Polygon",coordinates:["@@VbނVVnUlUX@VKVLlKXXlKXL‚‚nkV@ÞxlbXUWa„b„@šbÜ@XK@aWUXmWaX_Wynw@wnwlK„bV@aUKWUUI@a„mV¯Ŏ¥ô¯ĸU„UÆ@n»¯aƿé@ţ¯nĉĬÝK™óó@™ÑU¼@è™xWô—nƒx™KmkkJWI@UKWaƒUUaamn@lnbWšXXWK™@VxUVkU™V@U™LmlnVWXXVmbUbkVVV@bm@UVnš@bW@@VXx‚n@V„n@bV‚UX"],encodeOffsets:[[121388,26264]]}},{type:"Feature",id:"3502",properties:{name:"厦门市",cp:[118.1689,24.6478],childNum:1},geometry:{type:"Polygon",coordinates:["@@@VlUV@nanL@V@V@L@blK@V„wl@XalbVKnnl@VL„W„»È@lVUIVK@a@UUw„WUU™šƒš@„_™aƒK™@™bkkm@UƒkõŁxóL™l@¦@Vƒb@bk@VŽƒnVln@Vb„b@xmÆnœ@x@x™x"],encodeOffsets:[[120747,25465]]}}],UTF8Encoding:!0}}),i("echarts/util/mapData/geoJson/gan_su_geo",[],function(){return{type:"FeatureCollection",features:[{type:"Feature",id:"6209",properties:{name:"酒泉市",cp:[96.2622,40.4517],childNum:8},geometry:{type:"Polygon",coordinates:["@@ÇnÅaĉ@ƒU¯¥›UŹ‚ƒ£™WUýUU±JkkUw‚yÞIČxĊĕĊ¯š¥ÆUkţ™UÅÓ±¼™IUx¯UƒÒƑ‚ݐŰƒKÝnğ°ÅU@Žƒ@Vn@þš¼¯šWnŎ°XLWlnVnbWnƒVXxmbƒa—bóUƒlǕUUa™IUmlU™ƒš¥™kƒ¥ĉwkkƒÝɛa@¯™™U¯°mVƒkVnKlƒōÑÇÑU@kl™UġŽkUŻnUW™@š¯ƒk»šmWV£UKnUƒmUw‚w@ƒUIVaX™šwm»Èmmwn¯ċ™¯LĉŽUƒJUalka±Va@U‚k@ƒÛф¯WmnUaɝ¤Ûmƒn¯m±x@wóxÛLġÒUx¯VƒÈ™JUbóz݃ÇKĉ¯ōlÝUŎWl¯nťbÝ@¯ǩLġmV@ƯĢkÆm™ĊkVťLɃmÝXó°@„ĢbVŽóVݦɱ@Ƨaġ„UV„ĠÇÈV¼UVţwmbJÇwˋa™XmǯKkkmŽƒbXšm¼V¼ǬŚ²¤ôŰÆƴô̐ŤǪnɆӨ¼ɆLÆłUĊšxŎƞȘǔˎǬǪnƨŮǬö°»šġ„„ÞÜÆĸÒĊ„ǀbƾèôÈ@¼¯þŤĸƧ°VĀ¯b@lÈĊ‚šʠń̐„ȘKǀŽֲॗţÿǕý@ʊǓƨóÆÑǖŃôw@΋ʈƆÅÈVVĊV„óĊÅ@ÞƒĬV@Þīš@°Ž„V@ĸĢƒ°XτƜĠ@ÈaÜ¥Őƅ‚™nğóĕVġUůƿŋ—ĕƒa±V—UťÇğÑ"],encodeOffsets:[[101892,40821]]}},{type:"Feature",id:"6207",properties:{name:"张掖市",cp:[99.7998,38.7433],childNum:9},geometry:{type:"Polygon",coordinates:["@@ÈÒŎÒk„mLUŽlŽU„¯nV°šš@°ɜb„ÞĠaÈ»ĸl‚š„LVUÈ@Ċ@ýUm„@@ÆVĠ¯Þm„LƯޏƒ„Ñ°VVwšJ²»ÆԚVlŤÅV™¦ĉ°ĉĖċwÝJzVxll²IVVVþšX„¤źœV°¦„VĊ@ÆbÈmǔLĸĠ¯Ģaô¯ĸmÆÛUƒlÇĸk°XyĊUǔV„ǩnmV»ƒa@ýnK°n@l¥@»ż„Ċ¤m皃@£ČU@mƒmVkÞUƐ±²¹°‚ĠwÅƑŃU¯™›V¯aÈŁšƒÇ»™ġn_°xŎKlxœklx„@Þw‚„„@Æm²b‚DzLlkšWXať¯ĊaœÑšK±w@wƒUÅçV±Uk™@@„¯š¯xƒU™±±UU°ōxVxÅÔō°ó¯UÝ¦óbÝþƒ@ĉÈóUV‚Ux„„@VŽUVÝwÅÈǎóVkk¯JǐkmmL@„™KÇx@bkš™@U°ķ²ó`ƒš™šmn¯°ƒUwlÅkUƒ`™¦ɛô™Žķz@ŽÅnÇ°U¼¯KmVk²ƒJƒ¼ƏÞķôš¤ULƒ@mnğ`™šÇnUxÇ@Ûÿ™U@ƒƒkŻŽ@x@móJkŃ¥VŹĉóÒĉlċ°ķ„Uƽ܃@›x"],encodeOffsets:[[99720,40090]]}},{type:"Feature",id:"6230",properties:{name:"甘南藏族自治州",cp:[102.9199,34.6893],childNum:9},geometry:{type:"Polygon",coordinates:["@@ލš™nKlnšwX¥WÝXk˜xÞUnƒ°aĊVnUUKlÞĶWXnĠ¥ô»„™@nmVL@¤°™Vz„JšanU@aÆwna@k›ƒU¯šyX_›aĉb™ƒ„wƒéXkWwÅaš¯V¥mƒ¯UƒƒI@ƒš@„mšb°aÈçšUš¥@»‚knwɜƇ°I°ÑÈmVU™¯Xa@w‚W@wšV¯Č¥l¯Uwnm@k˜aUaóKkk@™Ça™b@ŽÒWa¯IÇxÛam¼™VUƒxÒl‚@zÝÒ¯bÝaĉVĉwDŽW›zJ™mJn²mܯUƒ¯ĉ@ġ¤Åb@²nšmlƒ@@Ž„„U„ƒLVxšV™„U¼Ålma™b@ƒ°™l@WIUƒ¯@mƒ™@™™ó„™„@U›zţyƒXÇU™ÇVUUVLkbWakVWmUbkkƒKUÆ»nƒ°Knk@aƒUVmšnk»l¯Ģ›lw@_kKVU@ƒnaƒ@lUk@¯¥mV@kmbW™b¯Åõa@mkU@kƒÇŽkU@›`@™óó—bl¼Uxƒn„¼šlVȄx@blVkVVnƒ`XÈġÈ@ǃK£ÝJmUUnUĖmlU„mKUn™VÅaUw›Uĉ`¯n¯wW¼nxVŽ™š@bĉnƒ‚kIċŘkXUŽ±Ò™xšÈ@ŽX°`l„œV˜IȯĊV„ƒšVVan@VašUVażVmšblkÈW„ƒWIXa„alL@wVb„„V„¦lL@lĠ™n҄U‚nk‚šL@ÆÞkšÞšK‚bñþW¦Û„ċVƒ„ULUºkÈlŎUxÆxÞUUxšÒ‚x„@XbšL@lÆ@„ÒlXVln@„bm¼ƒJ@„Ån„šƒx@bnšĠm„xVXmbÈè@ŽĊ£ČW˜w"],encodeOffsets:[[105210,36349]]}},{type:"Feature",id:"6206",properties:{name:"武威市",cp:[103.0188,38.1061],childNum:4},geometry:{type:"Polygon",coordinates:["@@±¯¥@klwU»ƒƒÞÝmwKm¯™™ç@™kVÇUL¯lVUKġ„ġm@a@U„@X£°l°LŎÇ@aōVÝw™ÔƒKUŽÅš„WJ¯lm@ÛVWa™@klĉUmaƒLUanaƒ™ƒk¯J„™™±KkXóÜÅxƒ²Ç‚@„„nUÒĊb°@™ÆkL™Ž™XÇÆ@xÝn—xWxţ„¯¤ƒI@Æn„ƒVV„VlU²Æè„V@x²x™L›ÒĉbŦ°Wb™Xklބš@l¤šXĊ`„wl@ĢÈŎm@bšnV‚Ubƒ„@șÆÛLƒèǚUÒŦlĸ™`°ĮʟÆǓbĉôϚĊƚĢnŤé΀ÑĸĀĊ¦„@@l°lœ¦Ȯ¦ɆÞĊKŤ™ĵĸů„»mŁyġ™ķŭ@Çɱȭ¯mƧUĊķnŁŻ»UaU™˜ƛɞÝƨů"],encodeOffsets:[[106336,38543]]}},{type:"Feature",id:"6212",properties:{name:"陇南市",cp:[105.304,33.5632],childNum:9},geometry:{type:"Polygon",coordinates:["@@šÈÞ@l`UmVƒ¼œŽ‚@nnÆwVlnVVa„LVƒÈ_‚ÿރ@n„a„xÆ@„lš_š@VxnK@llLnxmÈŎJnbUxšI°Žl@n¦‚lÈIlmX¥„k°@šk‚J„k²é˜@klaUaVaU@@ÝnIWnmnx‚k„ºÞ„„aV™°„V@nw‚KšxôbÞ£šVšU„bšþšLn»mƒVw„IšJ°Ž@„nb@°°I„ġUkÇKVƒ™™@ů»lƒ„Lnmƒ£@anK@Ñ܍n@»mL@£™yk„UUmbUÞÝ@kyÇbó»™XUxƒWVzb±mÝbXaƒwUamL¯»@wUKVwm¯ĵJ°ÅUWVk„KVk°wÈVšVуlUšƒ¥škmVamknƒUw¯¯ƒbċ¥ÅKƒk™Kk„™VċVk£kKVw‚Ñ„a@kóyÛ¯ÇVk™ów›š—Xō¥Ç¼ów™Ž¯U±‚k„ƒ@x›IĉÒÅVmÈnšÜ@n°„bUbÝV‚ŽUnnJ¯Į@‚m¦nV܃@„„L°JXb‚Ñ@šaÈb@šllôLVb—b@lmnVxk°ċ¦U°™Ž@xX@xWbš°UVÇn¯Ò¯Jɛƈmxl@¼"],encodeOffsets:[[106527,34943]]}},{type:"Feature",id:"6210",properties:{name:"庆阳市",cp:[107.5342,36.2],childNum:8},geometry:{type:"Polygon",coordinates:["@@kw‚ĉ—»VamƒƒV¯wƒIóVkl¯™Km™Vō¯ÝWkL@bÝKō¦@Ž™„@š™Lx›@b@l™a@km@@l¯nm@UaÅ@ƒ„óWUXm¥™nƒw`@UUxķôÇ°ğ¦@„VJš_n‚‚IVŽnalxkX„JWn¯šnVƒLšxl¤nnVbklVX@xnxmV@bUK@nm@@xƒV—°±aÅnƒŽkUWnUaƒx@m™n@ƒ¯LƒššmUĀlU@lV@blLUblxklkIÇx¯°‚UXbšaVŽUnšV@°‚LUlnbšX@`°nVmbnÆmV‚kLmK™¦UŽ@X„y@kl@U„°K@¼XbW„ƒš@b„WnLVa„VšƒVz@xlVČ¥lbUxލlV„U@nÆWôn²™VJlU„Ƨ„LnmÜLXa˜n@mœw@wlUlV²mšblwšVȃlLލ„±@lVnUlxnkma@mškšJ@kXV‚U@mn@š¼VXUƒVƒlLnmVbôaVnWV»ÈUl°È¯ÆIn›ÆU@kk»mKkÆġk¯@»mƒk—¯@óÇlÇ@—Vykkl™Uml¯Þ™@w"],encodeOffsets:[[111229,36383]]}},{type:"Feature",id:"6204",properties:{name:"白银市",cp:[104.8645,36.5076],childNum:6},geometry:{type:"Polygon",coordinates:["@@VKUȚl@šè°šnŽ‚LnxÝބ„V¼kx@l‚¦²°ĊóĠ„™Ċ»š@ÈxšaĊxlwÈVŤa@¯²aÇ£ƒJk£lƒnUÞ@°šô™@y„wl»lIX¥Ǫnw@ÑÞWla„ÅlL@ƒUwĉakƒl@ƒš¯mwna°J„V¯nUVÓÞÑm£²óWaUƒÇ@óÝUçV»ÈkkW@¯‚xV@XlK@wX@Vmm_@wÈݙKU¯ÇwVwÅK¯VƒkƒJ™™™XkWVaƒImŽ¯Uk„ÇlVšœĀV°mxóšk„@¼ó„WxĉÜU@Ub‚zÛJÇk@‚ÆnVlԙ@kŽ„x™ô@ĬWL¯ƒƒK@aÛImm™@ƒIUaƒ@™™UŽÇêU¤VÒÇx¯ÒV„šš™lk@Wbĉ¦UbkWV_‚y¯Lƒaó„kŽ@b@nmbkx„°"],encodeOffsets:[[106077,37885]]}},{type:"Feature",id:"6211",properties:{name:"定西市",cp:[104.5569,35.0848],childNum:7},geometry:{type:"Polygon",coordinates:["@@„a‚V²wVJV_@„LlanÅllŦçÜӚ_šlnƒWaôk„xUš„bmV@È°lèšnk°l¦„`@nnL‚@ÈlÜIyVaV@ĊÛXwôƒ@»lƒô™nwU¯›ÿU™Èklƒ°Vn„JUblXšWšš„I„l°U„ƒVƒš—@aVVVmnL@„lƒ„UUw‚mkƒš£„bV¥VUVwۂƒlaÇÝރmk£ƒLUy¯L@WlkKW_XaWƒ—mƒ„ġU@a™k™‚ƒakXkmVwmŹVƒU™b™WƒónmwnWW£„KÈnV¥ƒ¥„ƒÆ_k™lW„bU¯„V°aôbnaVwmaōInÇmwkK@kmLUw™@™`ƒkÅ@ƒwƒb@m݄ĀÇ`U„ƒKUbmUUkÅxmm@›„»nUVk_Ý@™Ç™¦™VÇè¯b™aƒn™@@„„JV„°Žn„U¦™°ÆbXxWl„êƒxš„ĊaœbW`™zV°œ„@lmbÅx@bmV™bƒI™`™¦@ÒUVUI@ƃL@bš¼@ššŽ@„šlmxnL„°ULƒŽƒÞğޛ°kLUŽƒL™°™xVŽ„n„KVƒl@šzX@"],encodeOffsets:[[106122,36794]]}},{type:"Feature",id:"6205",properties:{name:"天水市",cp:[105.6445,34.6289],childNum:6},geometry:{type:"Polygon",coordinates:["@@UyȍVƒVUnn@ƒVU„`UblzšJnk‚@Vb„KU„°l„wš„„W°„nkVŽ‚UÈlš£°V@n¥šV„kl™kU˜±U„ƒn™ƒlw¯UkwmKUlmkUmnkym@ō@U„mWÈU°l°anlJškUKlU„¯Èm@kmWV»kkÝLUWUx±b™@¯ma@ƒ¯™IƒJUxn„m¼™K™ýƒa™V™Uݤóa™wLmxU@¯ƒUšƒb݃ƒ¹lmwmnXŽmJ@ÞV@UbVbkblŽ—@±êƒlI™l¯@ƒlW¦knÇJkm¥k@¯™Jmbóa¯bƒUV°ƒakXlšÅ`ƒ„„¦U¦ÇmƒLX¤mXnxm‚„ôšXša„VźUnŽUxlnlW„bššl@bĢV„ƒ˜nX„WbX`lLXk@Ž°KVz„Kl¤„nÞ݂Èkb„‚܁"],encodeOffsets:[[108180,35984]]}},{type:"Feature",id:"6201",properties:{name:"兰州市",cp:[103.5901,36.3043],childNum:5},geometry:{type:"MultiPolygon",coordinates:[["@@lW²LššƒŽ°I„l„šmbVb„KnbĊVlkš@XbÜU@Žkn°‚XIƒÆ™V„LšÓÞxŎUlôƒ„b°KzU`lXVaĊ¥Xal@šk™™Uƒ°ÑÈwUтV£ÈéVšš„@Vb„Jš@nnÜJ@b„L°„XK@īšóƒwlš@kÓmUÅmK@mƒ_k¥l¯™mkçǯ@nUƒaV™ƒwólXbm„™k™`ÛÔťèkkmÆkbƒK@U`UI±xUƒbWlX„mbVbÅÒólkƒƒIWJkšƒ@ƒz—KŻ¼™@™xUx󎃄¯LWb@ŽÅ҄„±¦U`nbťĀUšVb„LšŽ„U"],["@@ƒ¯lwna@mōȯK¯kW¤ƒ@@V@bĢnĢƒVLU‚°k"]],encodeOffsets:[[[105188,37649]],[[106077,37885]]]}},{type:"Feature",id:"6208",properties:{name:"平凉市",cp:[107.0728,35.321],childNum:7},geometry:{type:"Polygon",coordinates:["@@ÆLUxÈxV°šLÇÞ@xn`Ü@X@nĊŽÆwnJmwUx‚aUkšw@V@w„aVmlLXÝl@X‚VĢmV°@nl@UUUWK@w„ÿVI²Òlmš@nÝĊýVV@nšJ°„„šUłm@kV¼nK›ĢȤôK„blnKllVk²aĠ¥È¯ĸóVw@V‚_„xšmn¦VWôX„ƒÆ@Vbn@°m@kn@@lšb@k‚aœ@‚wšK@™šƒ@UlKVaƒWX™W²¹lӄw@_°›n@@_lKōķW™@ŽmLUWƒn™»Û@›l_Ç`ƒÛmm°ÅbWb@š—VWbƒUUKDŽÅaġlmkUġlƒ»—Lƒl™Um¦@Ž¯U™¤ÇkVUml¯ƒƒX™ƒƒx¯kVƒƒLUa@ml™IkyVaƒ_UV@„mmUVU„ÇŽVzUxUVU¦ƒa™¤l„nVxƒVk„@ƒmKUnUU@b™˜U„ƒ„","@@@Žż@™mlkƒġk"],encodeOffsets:[[107877,36338],[108439,36265]]}},{type:"Feature",id:"6229",properties:{name:"临夏回族自治州",cp:[103.2715,35.5737],childNum:8},geometry:{type:"Polygon",coordinates:["@@š@ż»˜L„y„@l™XI„Jl„ôkÆÑUanaWƒXkW@™yk@U„ƒLƒmUšwš¯„KVlKœ¯Ġ݄݄VKƒ¯mKnw™k@ƒ™@™™»@a„K@ÅVJVU@њ¥š_Uy¯š@£UKmn@‚ƒšó¼ğ¦WmĵXݎkŽVLmVĉU¯bm„ÝV—wWlXÞW¦™xkmmL™šÝŽœ„±U@Vގ™š@„ÅÈW°X„ܼƨyUĮnŽWŽnXÝxUx°lVXJlôV"],encodeOffsets:[[105548,37075]]}},{type:"Feature",id:"6203",properties:{name:"金昌市",cp:[102.074,38.5126],childNum:2},geometry:{type:"Polygon",coordinates:["@@šĢȼ™„Çł°bœU°šV‚ƒń‚ÆǖŰnšÆ„ōĬǔaʠůĭš_kķÆ¥VÑș„çÜKšÅ@DŽƒVaU™m@aōnġÇk@ƒxĉ_™Wk£™@݃±KÈ±aÅnƒ@ƒÝxƒ@kw›lkwōL¯wm`"],encodeOffsets:[[103849,38970]]}},{type:"Feature",id:"6202",properties:{name:"嘉峪关市",cp:[98.1738,39.8035],childNum:1},geometry:{type:"Polygon",coordinates:["@@llĊx„¦šl™¦š„kVVnšJVbǖV„kôV˜a„bnaWw„UXmmamUXkWKō¯Xm°™™»ĉÇ@UVƒK™ķkǼğb"],encodeOffsets:[[100182,40664]]}}],UTF8Encoding:!0}}),i("echarts/util/mapData/geoJson/guang_dong_geo",[],function(){return{type:"FeatureCollection",features:[{type:"Feature",id:"4418",properties:{name:"清远市",cp:[112.9175,24.3292],childNum:8},geometry:{type:"Polygon",coordinates:["@@lǯkÿƒaV¯™VaÈU„¥ÆDŽIlxšmnb‚Uœxl™„Uôl°kš„„Wl„š@ô™VwUanUl@„xVkšaX¥‚kU»„aš¯±@kka@ƒUwmUkwƒJk™˜„±k@ƒ™™L@ÝWUwV݃—xÇU¯ŽÇX@m™Åƒ@@yĉ£VmUwȗ»ÇšUn„lUnWU¯`Ukƒ@@„™x„Ž@bÇxX¼ƒVVš¯LšĀk‚ÝLƒ„¯@VŽƒĀ¯lnĊW¦kVÇôkUDŽUK@ţ™U@a™™ó܃UU»ƒ@™¦k@Vx„KVb„n‚š@„Æ™„l„@xšƒbWšnlU„lxÈlV„È°Æ„@¼™„@x„šWxœŎ‚V„šK°„š¥ššnƒÆkŎ@ÈÑm™„K@¥šk@™ô@„nôV"],encodeOffsets:[[115707,25527]]}},{type:"Feature",id:"4402",properties:{name:"韶关市",cp:[113.7964,24.7028],childNum:8},geometry:{type:"Polygon",coordinates:["@@W™Xk±Ñ@ƒUw™mUwĉwlmn@Æwn£mkIš¥ÇÅ@¥šaƒón£nWWwš£V`Þ@šnVml@xô¼„IV¥ƒkUmkamUkVWwÛ»móƒ£UVÅKmn@x™@kbmm¯a™Xka›VĉaUb݃ƒ²—‚lš„IlxnVVx@„lb@l²™°ƒbV¼lW¦™bUlƒwk@mVVbUxóš™@kƒƒX™ƒ¯lókƒVkš›wVma™nkwƒJÅȃ¦ÇVUbšŽU°„blĀ°ŽkÈ@x™¦Æܙ°@„°„¦óa™VUôlUlbXl@nÜV„„nKlŽnIVÞ°Wš„°U@bnm@¥šIVƒ²Ulƒ°VnalzXyl_Vyƒ¦lƒœLlxš„@ŽÞbšKm„knVWanwƒÑVwČº˜@n_ÞV„aVŽÜIœl@„˜KȚ„VJ@aš£È@˜™@km™„aV¯W@_ƒa¯KmbkÇkLmwƒ@Å¥"],encodeOffsets:[[117147,25549]]}},{type:"Feature",id:"4408",properties:{name:"湛江市",cp:[110.3577,20.9894],childNum:6},geometry:{type:"Polygon",coordinates:["@@@ƒkXƒ™@a„UUċlk„Jƒk„™@wVJXUWk°W@nKnwlUlš²ƒ„blU@‚lI„l@„XbW„šxnm@lW@w„wU‚JX¯VU°`ŎóˋkÝÝkÅ@ÇmğÈřmw™aĵV›xUہ»°™ĠǷnýmóX¥ɅĵҏÇ@°²ĊUĖ±ĮU¤Ç°™Ā¯ɐnżUĊĊĬV@脎@ԃÒU¼l¤nƒĠb„êVĠ°Èy„zVaV‚nUÆL„ašbVl„wÆ@"],encodeOffsets:[[113040,22416]]}},{type:"Feature",id:"4414",properties:{name:"梅州市",cp:[116.1255,24.1534],childNum:8},geometry:{type:"Polygon",coordinates:["@@„‚nԚlW¼x‚¦@lœVl™lLkè„a@zš¤ƒĖ„¼UxlnUKUbÝlU¼lb@„Vx„V„klJÈwV¯š@ĠlÛĖšnƒbkšÆźÞƒUÈôklmšL„¥‚LœW˜„„™nKUkVa°V„x@IVV@x°bUk„a™a@mV@„@y„w‚L„ÑUwVUšV„‚„U‚bÞVVann‚@XwÇÿš¯²aVamkXaÆ»@»nw@¥›UXaƒkbWa¯KUw@¥m@kwmLU»UU™J@kmU@UUWUƒ@ƒyƒanwmçÛl¯ƒŽ¯UƒmKUmƒwVkmÝXbW@XWÝbƒk¯@±‚w@»U@W¯Å@ƒÇ¥UƒU@ƒƒ™IU™ƒakJƒĀ„ꃰšþƒXkamŽ@Žƒ_J°m‚@X"],encodeOffsets:[[118125,24419]]}},{type:"Feature",id:"4416",properties:{name:"河源市",cp:[114.917,23.9722],childNum:6},geometry:{type:"Polygon",coordinates:["@@°VlmX¹laĢÒlm„@„„šVš£‚‚@¦Ģklynn¼lW°z„W„„°VbÈV@lÆbnn‚JškX„šVÆašÅ„W@™ƒUUw@ƒkaV»ÞkVaVLkmVwƒ»„ĕ™£@yƒblçkKkš›U@k¥‚wX»™kmӃ@Wn¯‚I„`@nlb„W™ý„¯ƒé„ÿlI@™XUmWUwƒ@@UJU„Ç„mKUV@x™„ţk¯¯LWƒƒnUxK@ű»Vwa¯š@¤WX@ŽÛ¦@¤ÇIȼWxXŽƒ@Wx—w›ŽUnVbÅèmVa±²UWl@Žk„lȄ¤nôܼXxlUnVlbVn„lU¦ƒJó»@wnkmU™‚Ý@U_™¤XxmXm¤„ô™b@¦Èƙ¦lJn"],encodeOffsets:[[117057,25167]]}},{type:"Feature",id:"4412",properties:{name:"肇庆市",cp:[112.1265,23.5822],childNum:7},geometry:{type:"Polygon",coordinates:["@@l@š¥„@V¼„Vôۚš@bšV@ŤVLȃlVÈólUX¥mĉ°k„ÿU°@„ƒÞKl™ÿ°KU™„UW»Èw@aƒšw@ƒ„@nm@w›£kÓVUVn„Kš™k¥™£Vamƒ@nkKkbÆǫma—kmLU¥™UmƒÛwmVU™mUƒJ—ÇaUxÇIn`mb@Þ¯b@„nJ@nl„U‚V„lVU„L›W¯—Û`Ç_¯`mš¯I™bĉWċzx±J™xš¯ÆUƒƒ_k@™šƒJ@Umb„šXôlLš˜n¦@¼ĊxlUXŽ˜xUbL‚Ġ„UnVĊwlšUš„b@lW„X„‚m²˜@ÞWxXš‚Unb"],encodeOffsets:[[114627,24818]]}},{type:"Feature",id:"4413",properties:{name:"惠州市",cp:[114.6204,23.1647],childNum:4},geometry:{type:"Polygon",coordinates:["@@lbšW°bnnlaš@@wnmÆLVUkÇlƒ@Xk‚V²±‚bnUÆçUaVmœ˜xXw„@WXwÇ»ÈJ@£Ü¥@XW@£°™‚bUx²¼@ƂLVw„mX„°K°Ťlšƒ@wVUnLȃVƒVIky±wkƒKU¯ƒÅkƒ™XġÑۃlwUwlm@m„nKWašÅm›¯óÇmğb¯alĉUwķbmb@lÞÒVn—šmĀŹ@VŽƒbVŽUnmakLm`@xĉkklVÔVJVn—lV„UnmJmaLUbl‚™zmŽkL™a™‚ō@@zš‚V¦UŽV²kJ„nÜU@˜VXUŽL@„lJƒL@bݤUnVŽ—b@xVnlK²„Vx°V„xlI„lkVl²k¤@n"],encodeOffsets:[[116776,24492]]}},{type:"Feature",id:"4409",properties:{name:"茂名市",cp:[111.0059,22.0221],childNum:5},geometry:{type:"Polygon",coordinates:["@@‚LnÇlk„KnkÆL„ƒUm™ÈxlUœJló°n@ššanŽš„„a@ƒ˜@X_@mÝóóU@a™aU¯mL¯ƒƒkV¯™ÇVwkw@V±Ŏ£@™™@šalw±Vk@m„Åm¯™ÿŃƧIÇ`ōô¯_UVW°IV‚ƒx@xkX@Žmn™wXƒWa@ƒƒkkJ@kVƒa±„k™kVmxmL@‚¯XXlWVUI@xƒš„lƒIklVȃV@b„šlW@„@nUxVblVxkôlx™n„‚y„šnIƻư„aXwlK„bVnƒŽXb‚L„¤„k‚L—èƒVV¼ƒŽ²IlĠVX„ynz°KVx°@VlœLlblKœš"],encodeOffsets:[[113761,23237]]}},{type:"Feature",id:"4407",properties:{name:"江门市",cp:[112.6318,22.1484],childNum:5},geometry:{type:"Polygon",coordinates:["@@lUXx°JWnnƚXVš„W„X@„šºVLV¯nU‚Vnb™ô„x‚aXmW™XIšŽUb°xlK„l¯œK˜xXÞ°ŽšXÈ¥Ü@„ĉޏU™‚çš»nóƒVma—x‚¯UÅU¥Ý¯@ƒƒç@ș@çĉÅUmU籃ĉKÝxÝ_ÅJƒk¯»ó¯nmèkǀšŽWxœ¼mnUÜġ°@¦@ƒxƒLkŽÇaVnUxV„™šVlnIlbnÆÆKX¦"],encodeOffsets:[[114852,22928]]}},{type:"Feature",id:"4417",properties:{name:"阳江市",cp:[111.8298,22.0715],childNum:4},geometry:{type:"Polygon",coordinates:["@@°„nKV°šb@bôVÞô@n„VlÒôÆUnlnn@lmkmVkƒaÈkÆƄ™k¥‚ÅÞ»ÆKXkW¥ÅLmÅkamJUkš™UƒVwUmÈbl„K„w‚@@¥Ģ¯VÛnm›»Xw™lƿ™@kbW™—aʵ@óL›l¯ƽ@™ƒƒLn°ƒÆ@nUl‚²kx™b@‚š@šō¤U²@ŽlxUxšÈU°lŽ„"],encodeOffsets:[[114053,22782]]}},{type:"Feature",id:"4453",properties:{name:"云浮市",cp:[111.7859,22.8516],childNum:5},geometry:{type:"Polygon",coordinates:["@@@V„Iš™l@„`V„°Å™šw²I‚wČyĊXša°Jn™°_È`Ü_°˜œX‚KVƒkUUƒVkƒ@mmI@ƒ°a@Ýnam_ÈJVwlĉX@„šlUšómaUmVU°UK™¹@ƒƒWƒXU™™WmÅXm¯IWwkVWlÅLݼÆl¦ƒšÅÅÇl„bUllnknm@kmVmóÅkуUW`—@@„ƒb™ƒm™b@™¯mkô›IkVÇwnš„VƒÅKmlƒLklmȁKƒšVĊK°²„`n˜¤n„U„bWl„xVx™LUx@°nXm`VklVxmnnx"],encodeOffsets:[[114053,23873]]}},{type:"Feature",id:"4401",properties:{name:"广州市",cp:[113.5107,23.2196],childNum:13},geometry:{type:"Polygon",coordinates:["@@Ș¼VxUnĊ¤@z„@šÆ@nÈW°ÈV˜w„ŽUÞVxÞX@ŽšK„šl@ބVaĊbœU@ml£k±lUƒkkJƒw¯UUw±ƒkLUm@w˜aUVmÞ£@a„KkI@ƒ‚KVUW@—ÛVƒmlIU±VU¥™@yğzƧǃƒšƽĠřšÅnī±m@ƒ²¯lƒ°@nÝÆóUll@XnÝVU¦mVV°—„V¼™Jƒn„b@°mbn„ƒ‚@²¯‚¯wVwƒ@@nmxX¤¯L@ŽVLU„m@@l"],encodeOffsets:[[115673,24019]]}},{type:"Feature",id:"4415",properties:{name:"汕尾市",cp:[115.5762,23.0438],childNum:4},geometry:{type:"Polygon",coordinates:["@@@‚„@VxnXWV@š„bVššJ„„V@ÞÅU¥Ċxš£UWU‚wÅUU¥WVUkĊÇnkV`°LV™„wƒƒnU@™„ƒlbĊ¯„Vnalšš@@çkUÝ¥ġaó¯ÅaÅLŻÆUýmy¯ó@ĉÆó„ȯw™ÆXbmLƒ‚@nknVxkx܄ĢҚW„Æl„V°„Ll‚²xlz"],encodeOffsets:[[118193,23806]]}},{type:"Feature",id:"4452",properties:{name:"揭阳市",cp:[116.1255,23.313],childNum:5},geometry:{type:"Polygon",coordinates:["@@V„Ȧ„Æ@X°V@@¼‚x²°@„lÞaWXX@‚aÞWlnUŽ„xVnnL„‚°V„@k‚mĢl@„ak™@mlk°aXƒ±„nwm±™²¯JV²@ƒwW˜—_mƒa„V»ƒU@m¯ĉUф™šJl™„ašbVn„lĸLlƅÛDZwÝ@ĉxó@è™@k™mbƒUĉ°kaƒ„@šmV„„ƒxUš¯KU_mlĉÈVlXUV¦ÆVxVŽVX™¤ĉwV¦ÝÆ"],encodeOffsets:[[118384,24036]]}},{type:"Feature",id:"4404",properties:{name:"珠海市",cp:[113.7305,22.1155],childNum:1},geometry:{type:"Polygon",coordinates:["@@„è@„Þ°V¦VƁ°˜wnb„UÆ»nçƏ@nxܤ²llU°VnÈJސ°UôéšķUklƒô£VVˌKÞV°£n¥ƒ£ȗ™Ýy¯¯mÅkw¯bÇĔğ@Ýn¯ĊƒVğōŁŻƒķJ@Ț","@@X¯kmèVbnJ‚™"],encodeOffsets:[[115774,22602],[116325,22697]]}},{type:"Feature",id:"4406",properties:{name:"佛山市",cp:[112.8955,23.1097],childNum:1},geometry:{type:"Polygon",coordinates:["@@Èb˜Ž„InVVšnUÜxn„šVV¦nK˜lnbÅǬlalL@mn„Ubš¤l¦™šƒLUmUVlԜ¤@xmnVl°_XVVmƒkVmș@kn@VƒUK@°KW£nw@m„@Ux°x°@±„mƒna@¯ƒa„mšIU»˜ƒU¯nUV¥ÞUWmk@Vk¯™Ukn›ÑWݐƒĊÛ@Ǧ™W¯Wݗw›Lk°ƒkL¯wVa™WJXšWnbƒwkVƒ™W@kĊ"],encodeOffsets:[[115088,23316]]}},{type:"Feature",id:"4451",properties:{name:"潮州市",cp:[116.7847,23.8293],childNum:3},geometry:{type:"Polygon",coordinates:["@@°ŽÜknèmx„b„z„@V‚VX@VnV@lšIVVV¼nKlxn@@¦Vx°LXbla„ŽWbœV°£¯™W@nW@™‚aUñVœwWš»@¥ŤÅUÝǓÝóV@ńǎkUVmƒIUwÅVWÇX¹›—@W„¯bkl@nlšƒb@‚kġŽn@l"],encodeOffsets:[[119161,24306]]}},{type:"Feature",id:"4405",properties:{name:"汕头市",cp:[117.1692,23.3405],childNum:2},geometry:{type:"Polygon",coordinates:["@@‚@U±°Iš±n²mx²ƒ˜@œWºXÈÆUVx„JUnlVȍ@ŃôUǔÞVçn»VyĢÛVm@»kaÝUǼóšÛÈķKċ¥X„¥Wwğk™ƒ¯@ƒwķKƒkUm™aƒbkš™IƒšVÒ°Ċ@n„VU¼ƒ‚„bn˜`X—„x"],encodeOffsets:[[119251,24059]]}},{type:"Feature",id:"4403",properties:{name:"深圳市",cp:[114.5435,22.5439],childNum:1},geometry:{type:"Polygon",coordinates:["@@ÞLš„@xšbV„šVšK°™X°Kô¥Vw@anU„胐š‚lkĊl@wn_lKnbVmU„aUź@nÿ˜™UmÝѯUƒbk„@ÆkxŻ@™aÇX—wƒJƒƒ¯LķÝUĕ™ó™ĸóêWº@b²nmĬ™Æ"],encodeOffsets:[[116404,23265]]}},{type:"Feature",id:"4419",properties:{name:"东莞市",cp:[113.8953,22.901],childNum:1},geometry:{type:"Polygon",coordinates:["@@Ŏ@ššblKnšykVa‚KnbnIVmUƒ˜kUmUIUә„ƒçmV@bUxó¦¯LW‚¯š™L™UUƒ™a@w™ƒÝKğŚ™ƾ„„ƨÈĠy"],encodeOffsets:[[116573,23670]]}},{type:"Feature",id:"4420",properties:{name:"中山市",cp:[113.4229,22.478],childNum:1},geometry:{type:"Polygon",coordinates:["@@‚XœÒlmšV°ôÞÅ@m„¯°k„±‚@@aX¹¯VݏÇIUmV¯kk‚±Û£mw@‚Őmèżmô™¼èVš"],encodeOffsets:[[115887,23209]]}}],UTF8Encoding:!0}}),i("echarts/util/mapData/geoJson/guang_xi_geo",[],function(){return{type:"FeatureCollection",features:[{type:"Feature",id:"4510",properties:{name:"百色市",cp:[106.6003,23.9227],childNum:12},geometry:{type:"Polygon",coordinates:["@@lklWXL@VšI‚l@XnJn@VUUalk@mK@kny@UlU@a°™„ƒUU@VmaU@Ua@UWw@ƒn@KmLm@alkšmnI‚m@an@VIUamWÅImwU@@a@K„X@JVL„UVmUaVkUa@m„@@Ulmkk°ƒUaVUlKXbVwVIkaVmUk@KVk@a„aW¯m@w„¥laœX@KmaškVmnUl@nxVKšInU@yVaVIV@na°KlxX@@_lmXšUV`VIV™V@„n@lšbn@@WUkValK@²yl@„„VUV@@K°L@KU@@UVaXIVVV@naVkVa@K@UUK@UUa™LWa—w@m@K@UVVƒ@mVUUVKnL„mVL„K‚bVK@UUIk›mI@mUIVK@IUK@VkLƒ@WU@mU@WmUk@ƒI@VƒJk@WwX_@amK@UUWkIƒ„ƒK@LVb@mVmakL@J@bU@Ux@xƒbmI@`ƒIwm@UbmKUaUWa¯UkJWV@XƒJUU¯LUmV@ma@kkamKwƒLUUmWVkkm@aVUUkVKnVVUmXK@UW@km@Ukkm@@W@U™kUy@I@aUUmbƒ¤U@kUmL@bmJU@Ua@wkLWWkL@Uƒ@VaU@ƒLUakKWbkUWVkKkLVLUV@JVbƒz@Vƒ„@ƒVmUU@kVmK¯@VƒU_™VWakVmIUKUaU@@bml@XU@@V@LmKUV„mVUKƒƒKƒbkaUXƒKUL@x@V@l@„mxU¦„V@ŽlL@V@Ln@@VV@„nlKUaV@nLUbmJnL@VWLkbmV„@@L„W‚„XLlx„VVIVV@x@V²blUVm„LVUœK@kWWXUlV@Xl`„LX„l@@VšŽƒn@VnbVš@lVUVUÈVbš@@`UXU`l@@XUVm@kš@xmVknUJVXUbmKULmbx@VlJ@LVbkKUbVLÇUUVƒUVmU@VaUkUKƒVUwmLkUUVVlƒbka™XmwƒKUšVVU@@V±Uk@VWUUm»XamU™bƒKk™`ƒ„™U@UnWW_kKmbUVUVmnUV@„nJVUlšUbU@UV@n@JmI@VmbnVUXlx¯ŽkKmnVV@L@V™bkV™Umm™@Ub¯LmlUƒL@VWLkmkLmmn£WmnKU_mW™š™bnbmxƒ@U¦UJU„@Xmlk¦@‚mnUUm@@Jn@lV„ÔVJnIVW„I@a„ƒÆK@I@aVK„IlŽÞnnl@nl`nbÆX²l@xV„@llbVn²ŽVVl@nn„V@IlW@Un@@kVa°KšnÈmVaVXUlaVƒÈU„VlwôUlynIVašan@lVXb‚Iš@n¥la@Kš_n‚@bÆx@XnJV„nKVz@`VXVšU`@bƒ¦UV@VšIlx„UnV‚K„XÈbšVllšbVbnVn@"],encodeOffsets:[[109126,25684]]}},{type:"Feature",id:"4512",properties:{name:"河池市",cp:[107.8638,24.5819],childNum:11},geometry:{type:"Polygon",coordinates:["@@lLVl„bVV@nXVlI@JVX„mšn„W°b„IVV@‚ln„@nalVUb„nW‚@kVkÒlbVKn²°bUŽlV²@˜X@`nb„aUI@ƒ°wlU@aXJVI@aVK@wUamIXm‚@XUV@@bV@Vm„ImnUUwVaVKXU‚nVK@akƒVwV@nL@UV`n@@X‚lnIUJl@X¦˜V@aUIVm@anƒV@UwnL@VlbVL@KVVXUWƒ„wUUVUka@UVJnUlbnalbVVn@°„„LV`Þ@šXVxV@@bVlUVVbXnWlXnmlš@XXWVXJmbUI@V„llUVkn@@VWV@Vnb„@VXUJVnn`lLVk„a„»lVšLnw@WV@lInw@WnU@U@m‚knUVó„K‚wUmUXUƒU@@wVJVIl@XKVVVbVI„J@Un@lŽVLnm„b@U@Ul@nUš°VUVJnnVJV@„@mVU@ƒ@wkUVwkKWk™yUUkU@alkÈ@lJ@x„Ilƒ@UUWVkUw@Kn@@kmaƒVUl™UUL™ÇƒUUKl@UUmL@aXU@mlUUwmKkUUVKVUƒaƒKUnK@U@Vl@XUWU„KlwX@šb@K‚@XkV@UwWJka@aUwmV@U™@@U@wUm@»kLWVkIWŽXnmV@VkbmKƒLUbk™Va@aƒa@@aVU@aVak£@ƒ±UkVU¯V™UUƒJVƒUIƒ@kxmUmWUbL›w@K@aU@@aVU@Kma@aka@_VWkk@UWVUKULWKULUš@KUnƒwVaUKƒxU@UmaƒL—m@kVmVa@UkƒmI@ƒ@KmIkxU@@K™U@mmakI@VƒLkmWkkJ™_U‚@V@L@n˜xXbšKVb@VVL@V@LUbUlmbU@UUWJUb@VV@@L¯K@LU@UVƒƒk@±z@‚kLUbVl@Xm@™akm@ƒU@UšUJU_™VWŽkn@`W@kw¯LmbU@UJUb@zmV™JULmwk@mVUn™lnb@L›Wkbƒ¦@x°nXŽƒb@bUl@LVlUnlbUJUxWakLUVVb¯„llkn@Vƒ@@nVbUlVbUnƒVUK@IƒW@L@bV@nxÆJnXVbUJm@@bnmJ™nkl@b‚nnK@L„m‚@Xx@VVbV@nb@UVVƒ„¯š@bkV@Vmz@lnLl@kŽVbUVm@mI@Wk™J@UWKkXkl"],encodeOffsets:[[109126,25684]]}},{type:"Feature",id:"4503",properties:{name:"桂林市",cp:[110.5554,25.318],childNum:13},geometry:{type:"Polygon",coordinates:["@@nU@J‚X@`XLm¦Vb`lšVXXWš@VblČnVšŽlanLnmVLšK@_Vaƒ¥@kUa„@VmVb„aV@XVVzlVVK@knKVmX£VKšLlbnš@b@llL@xĊôXaV@°È@¤„bn„V@@Wl_„V„U@W„nVamw„wVbn@„K‚VšLX@VmVUxlV@šnVV_nK@m‚I@Wn@@IšUĊ@@wVWX@@I°VVm@wmU@m@IUƒV™kƒlkUmmkÅV@@aV@@Wn_UKla@kšaV„šlVanb@k„@@KlVn@@aV@nIWW™UUaVU@™kKmwU@UImKk@UU@w@W@‚™k@™UkWƒ@mk_W@Ua@a™ƒƒ@—¯ƒmV£@mƒUUam@—kWakƒVama@UUm@nw@alaUmnUlVlIœV‚™šLVyk£Vm@k@UUJkƒK@kmKUw™KkWK@UXImyVwnI@m‚ƒkUlkUKkUVmƒw@kkJWUÈm@_k@@aƒaW@U„UJUwU@@IWKkƒmUUV@nVl@bVb@bU‚UXƒakw@ƒWUkbkKƒbm@™xUlkLm@@wmKUX@‚™UaVW™XVmU@@UUUƒxkmWXkKkUWaUaUb™L@`UL@LV`UXmK@VmakLVbkL‚xUJUIVbUVVb¯KƒV@Xnl@lVXbmÒnV@L@VWKkVUIWJkIƒŽUamUUbm@U„kU@JUbW@X„WxUam@kbVVUnUJmUUV@bƒU@UUV™@ƒVk@ƒbƒmULV¦U@V„U`VLUL@xVbn@UJ@nWJXXVŽVV@bkxVbUx‚Lšš@x„¦@šU‚lXUVVlULV@@šnŽU„ƒb@xl„nJVnlVknUlVUbmŽU@ƒbVš„x"],encodeOffsets:[[112399,26500]]}},{type:"Feature",id:"4501",properties:{name:"南宁市",cp:[108.479,23.1152],childNum:7},geometry:{type:"Polygon",coordinates:["@@lKnbnU‚@Ua@K„L„ƒlJVX@VnL@bW`Xxl@„I@U„Jl@nV@X‚V@nXV„@lK@UVL@JULVJ@nnJlœVJ@VULaƒLUKƒnmKULVVUŽ@nU„š`lIXlln„K@UlJnb@nšV@LV@lwnJ@L@„nJl„@VUbUn@l˜n„KnbVŽV@„wVLUb„xVm@LV™VKXLVKVLXU@VllUX@`lb@bnb‚L@ŽUV@bV@@b@Lœx‚KVanXVƒUUmVUUUaVUky‚UUa„ImK@mUUVUkKU_@W@UVVVIUW„UVaVU@UUKnƒ@k@al@ll@bnL@b„VUV˜X@Vœ@@b‚Knblmn@V_@aUalL@a@akK@kVKUKlwUUnV¥VmU_VWVIVaX@Va„alńK@LVJnalL@LnK„wlVUw‚mX@VXšƒlLUVnblaUmVUVwXU@Wm¯Va@ÞKnw@w™mšk„»‚UVW²a@_mW@U@I„y„LVUUKW@@™„LX@VUV@@yVU@UV@nwUUmJka@IU@ƒmƒVkaW@UwUX@`ƒ@kLWUk@mƒkUUm@k‚UUWkUƒkWxk@@VƒK@nV@UVaƒUUJmIkVƒ@UamLUbkVmamLka™@ƒ‚kmL¯WI@wJmwƒx@akU@aUKmbkaW_nW@_U@Wm@a@wkwUKmƒk@ƒbkb›w@mKUkkU@J@bW@kVWz@bVUa›VUx@„ULkJWbXVVXƒ`@œmJUVU@@Lk@WbU@UJlnXlm„Vx@Ln@‚b@K„LX„WJUUW@kƒaUVUbmV@nnV@n@lVLƒVmLX‚mXkV±@kxÅL›šUbJWIÅJ@I‚mXalkUamKkškL±aVwKƒUU@mÞnbWJX„m„@lbmKULWUUVkaƒbnn@Vl@VVV@VƒbVbnLWLXJWxXLV@@VV"],encodeOffsets:[[109958,23806]]}},{type:"Feature",id:"4502",properties:{name:"柳州市",cp:[109.3799,24.9774],childNum:7},geometry:{type:"Polygon",coordinates:["@@ƒwU™„aV@nVaUVklmkUUmmIkƒ@w„aVƒm@™U@VKUkVUkWV@™ƒ¥@w™™KVwUalw@aUUUWWXI@mVIm@Ua@wVKUKV_UƒV@U¥VK„n„al@„Uš@VU@V„V@aVUnVVIVmUUlan@VbXwWƒX@Va@IlVVƒn@VanVVb„lJXIVJlUXL@U@KmUnÑWakU@mkƒJUI@mk™@wUmmUV@JXaWIXWmaUIƒJƒkk@W„nJ@„ƒaUak@›kkJ@kUKU_ƒ@myUóWUkm¥kUmL@KUKm@k_UmVa@ƒk@@UmU@mm_—JWIUVUŽWLUlbVUJÇVUIVwƒKUVk@mU@n@lUL@Km@@l@L™VƒzJmUU¤m@UbV²U`U@@¼Vn@x@Vš@@VnUVx@blbXIVxU@Wl@@L™aW@kxƒLXVWVk@@U@VmLVŽ„L„bUVULVV‚lnLVxkV@nWV@bnKVVk@VL„VšÈVKšVVk„Unb@lm@@LVxUlVX@Vk„ƒJ@wkIÇ@kl@blVVVšzXllLUxlV@x@„UV@nƒ‚U@UImmUIUV™¯mVk@@V@VƒamnUKkm@@VƒIUJUaUUWLk@UJUI@xV@V„VWVnxƒLUômVV„@VkVVVUnV@UVkL@VVV@bVxla@bkXVJVn„`nU@bƒb@bVL@VnJ@„l@šV„aU@@_lW@UUU@Unƒlll@XLl@@UX@°bVWVanLlknVV@VVX@VVƒnUŽVLmbXJ@nllXX@`VXƒlmaXVWk@Wkƒw—J@„VL@J‚bnU@bn@@bVKUnVJVIVVVL²a@bV@@Vl@nUVakalmš„UL@VUL@V‚a@mXl@nK@UlK„L@Vl@@nkllb@š„Vnn@‚šnV„™V°l„šVInwlKXxlU°Žn@@ƒ‚I@UnVlakUJWkUK@anUWK@_ÞJ@U"],encodeOffsets:[[112399,26500]]}},{type:"Feature",id:"4514",properties:{name:"崇左市",cp:[107.3364,22.4725],childNum:7},geometry:{type:"Polygon",coordinates:["@@@JVzšl@V@Xn@ll@VlnX@@VWLnŽUVmUULVlUV@blnUlnXVV„K‚xnLlb@lnbU@Vn°KVV„I@WXUlI°VXb‚VVbnLVan@‚x„J@_nJ„a@wVwV@@a@IU@UU@WKXwWIXKmKUa„a@U‚UUUk@@Umm„albVUXVVKnL‚a@knƒWƒXImanÝV@„V‚LUx²blKl™nLVbklWbn@JÆIXJ‚IVaœ™ÆKlw²@lUnWWnK„UUK@k@mmU@mnUVaVU„b@lVXVXIWƒƒK@Lam@@KUwnƒWkkmVIV@Xal@@KV@VUnI@›„_UWWUkam@kkm@ka@mƒk@wkJWIUU@WXkW™XkWWLUUƒ@UakLƒW™XV±VIVWUU@anUWaUK@IU@Vak@@UUKWaƒ@m@ak@@wUkla@mUaUklakwVƒ¯¯@WWUkLkKmaƒ™kLUnV`UxWX@Jkn@bmlƒakkk@ƒb@l¯bm„ƒbJ›b@VXn„bVV@„ƒbƒJUkkKWVU@mœÛVUUW@UVUJWXkVkKmUL@WW@U„Vl@XXKW„XJ@XVlmbUxnnm@UlVnV@XVm¦VJb@šmLkKÇbXblVkn@l@bWnX`V@@IVV@ŽV„V°n@@_naÆVVbUVVbUJnzlVUl‚XkV@Vlx@X„VnxƒbƒKUK@b¯VVUV™L"],encodeOffsets:[[109227,23440]]}},{type:"Feature",id:"4513",properties:{name:"来宾市",cp:[109.7095,23.8403],childNum:6},geometry:{type:"Polygon",coordinates:["@@nVlw„@VJU„„IVVUšV°lU²V@„l¤Ub@bUV@b‚@„b@bUblšVa„KnLla@UnUWmXlJXUlKV@V_U±Van@V£nV‚I„yšU@K@kn@@LVK@k@mnVl@VU„LUxVJÈUVIU‚aVkXKVVUXJ˜In`@nnV@Vl@@„UbVnl`n@VL@LnKlVn¦VlôXV‚nz„@V`VL@llIœll@Vb„b@ƒmIXƒl@„l„IVJnbWXXJWb@IU‚nVVn@xlš@nVJ„I@W„U°LUaVUUaVJVIwlKUalKnb@UnLVWU_@KVK@_šKVa„@VKU¯VLVKn@la„aUkU@maVU„J@k™@Um@XmbkyVaUIUU@KV@laVn@KXKWUkUk@ƒaW™UUVw@aXKmƒVaUUkšmIƒlUU@wUa™xUmmU™¯™U@WƒLUmVIUym@UVmUa@wmw@çm@aWLU„™JUIUamKmL@™aƒx¯¥ƒkU¥U@±„k„UVmKU_mJUbkKm„ƒLÅǙ_@WWUXUmaVUkK™„UWW@nVxkUƒxmL@KkKmbUI@KƒLkƃbUbW@UbUJUXV`UnU¦mŽVVkxVLUL@llL@b@bkKVb@bU`m@knmaL@a›@@U—WVUƒU@amK@akkk@@b@lm„VL@VUVUbƒVVXUJUU@V@XV`lLUVVV@nnLƒJVbVlzUVVbVVnUVVU„"],encodeOffsets:[[111083,24599]]}},{type:"Feature",id:"4509",properties:{name:"玉林市",cp:[110.2148,22.3792],childNum:6},geometry:{type:"Polygon",coordinates:["@@VJUXVVXlWX@V™xVnX@@`ššULWŽUXÅbWK@mULUUmJ@n¯b@l@VULVx„x‚XU`VXXJVI„V@nm`@nUŽVXn@lWVn@b@Jn@nU@Lm`@Xn@WJƒ¦U@@VnL„lV@@Xl`nIlJnkVL„w@KVK@UšaVL@bVKX™lUUKVK@I„VšL„a@U@WšLUlVL@bU@@blb@VlbUxVbXUVJ@xVL„U„lV@VU„bVLnKl„XJ@L‚b@an@VanL@`VLšKV_UWl@U_„a@WVInlVUUUVm@I@W@wVakIWm@U@ƒXwlaVbnI@ƒm»Va@aXaVLšU„»@aVa@k™KkL@KmU@WƒzUK@wU@VWUUVUUKUa@mKmbUK@_nWVaUkVaUaVUVLXKVƒVUVmVI@UkKkLm`UkW@UwWW_„UaU@WakXmK@xUXƒJkƒUUWUk@Wl—mJ@km@@aUKzmyVk„a@kkWVUU¯lmU@@w‚kkmV@Vk@mÅIƒ‚Ukƒaƒ@Ub@m@UUU`mUbWaWmb™X™XKWIXUWm@љ@y@UkIUJUUWLUWƒL@UkVUxW@kaWbKWnXxW¦n„m`XLVlUbVbUx™I@JmLUKUb@VW@@bkL@b@VlU@xkš@L@lƒxXxWXX°V@VVVbUVV@UVVbULVnVJUb²b‚aUb@VVVVInlV@VnXaVUšlI„VUb"],encodeOffsets:[[112478,22872]]}},{type:"Feature",id:"4504",properties:{name:"梧州市",cp:[110.9949,23.5052],childNum:6},geometry:{type:"Polygon",coordinates:["@@VbXblVlLXWln„wVV@VV@UnšWUXVbš‚@VWXa@kVK„UaVaVkšUlyX@Vaƒ—VmUwUaVU@UÈymI@aU°@š™nWV@VaVaw@IV@VmnLVK@kmmna@™„™VbVI@aV@XbW`U„„LUVVx„@VbUV@bl@VLXblJn¦lL„°°@n™@K@UlLnK„a°LWbnJ„¦UÒV„UllLlVnKnbWnn„V`„w‚@@Xa±™n™l@XKV_„WVkVa@kVyUa@wU£UW@UIVW‚@@a—wWaX_WKkVmUULmak@UJUI@±m»™—k@m»VyUIm™nmmwnkUmVaVIUn_mW@»Vk„@VwkmmUXa@IƒaVm—mƒ@Wm_U@mIUWóLmUk@laXmmkUK@UmKULUUmWULƒ@VakU™@Ub@bƒ¼™VUKWb@bUbn¼@„mJUakbWx@„@VXnlJUb@x@X@JUnVVUVmkUJ@XƒbV`k@VXU`™LUK@_mKUbm@@b@„U`@nlV@b„UnbVbn@@`VbUbVV¯bm@@mJXb@bVnUllVXUlbUl@LU¦VVmŽkLVb@b™l@V@XlK@V@nUJUz„°mŽwmLmlXbWVU@UUUlƒIU@VVmV@@¦‚bXbWxX„WlXVWL@LUmkbU@@LVVVJUblzna@WVnš@@lƒIUVnbV@Vlƒbkbm@ULUKV°ULƒ@"],encodeOffsets:[[112973,24863]]}},{type:"Feature",id:"4511",properties:{name:"贺州市",cp:[111.3135,24.4006],childNum:4},geometry:{type:"Polygon",coordinates:["@@nL@xn@lKVkšwn@„alLlaXV@„lx„bVWV@aUa@aUk@mVUnVl„XL@JV@VxVIVƒX@„b@bl@@`ÇnXVlI@l„xUnlVVLkllV„@nmJUxnzWJ@VXLlŽšLVxnL@l„LlŽVI@V@lUnl¤Uz™Kš@„Vl@š„L‚l„Lnš‚b@VnVVU@k„a‚Knxn@VkVJ@ńUlakmWIUaVanm@_UK@UVWUa@klXam™U@Vmƒ™VIXW„@lUVknVlKVLXŽVXšW@b@VlšnnVL@KXL‚Kn@lb@UnW°@Va„X„WVb°aVa@I¯aUkUaVKVwƒaXk@a„a‚™@wkm@alanUVw@alK@Umkw@UƒaUmU@WXUaUK@UW@UaVWI@¥Xa@w@WWšVƒXwƒU@mKUXUWVU@a¯kl@akU@UULmK¯VUVW@U_m`U@@xVbUz@lUbUlƒXU`WLk@mš²šWb@Ž@ƒxU_mƒXmmamLkUkKVkUƒVу¥mIXa¯KƒbmLkK@V@Lmš¯@ƒ¯kKm¥kIWaUKk@@aVUUaƒ@UwVUƒKVƒX_WaU@@bUJUaƒš@šmbnn@lULmKUnU@@J‚xUbUbU@mX™š¯@VŽ@bnJÇz@VUVVbVxUn„˜UbW@kz™VUlUbVbƒŽUL@lWb"],encodeOffsets:[[113220,24947]]}},{type:"Feature",id:"4507",properties:{name:"钦州市",cp:[109.0283,22.0935],childNum:3},geometry:{type:"Polygon",coordinates:["@@@IlVVlnL‚@œxla„al@n„VLlx@x@bXnV@@`mXX`lbnaVL@blV@b„wnx‚I@xXJ°nK‚l„š@lbnKnblUVanKVb„@lUnJVI„VUb@V‚U@m„L@Ul@Xw„llVVXV@lVnlVn„l@XVlK„@@_VWVxX@lb„U„nV@@JlbnIlmnVV@UwVK@U@k°a@mnIVVVK@nXLÆaVWXVK™™@_W@Umšw@UXWWkUUVWUIVaƒUkJ™UVWbUmU@mkUJUU@UVab±aVaUIUmVKUaVUU@VUUaUUU@W¯XWWw„w@k@Kl™@wkV@U@alK@aX@@UmIUWUIƒ@mmkXU`U_WJUnUJmUk@@amLU@UVW@UkU@@VƒbUWVUk@@wmKkUWLUWX@JmIƒlUkkKWKkLWU@UKWa@bU@@a@_UKWƒUUUmJmw@nV_@ġğKóLmbU¼VÆ@xUXƒ@Um@wklVnUn›lkaUV@„lV²WVklWXXbWlkVkIm`UUƒLƒUU@UWƒx@XU@@lWLU@kbUbV`UXllUV@bmb@LnKVbULm‚šnVVIV`X@"],encodeOffsets:[[110881,22742]]}},{type:"Feature",id:"4508",properties:{name:"贵港市",cp:[109.9402,23.3459],childNum:3},geometry:{type:"Polygon",coordinates:["@@n@VzUJ‚nVŽ„K@XšVš°nVVnšwVb@xVV„knJl™VVUbn„WL@bUxVVXš„bl@lVXkWƒXwWaa@¥‚@nUUUV@„JVkVVV@XUWanknK‚xnƒ¯VyVI@m@UkL@W@Ušk@aUalKnUUV¥@KVkkaWVkUVkUm@aWanI@n@°aUUVaUa@_m@UamaƒV@akU@mV_@ƒa@KWIkƒmLUKƒaUVU@ƒkƒVUK@wUIWVUaVwka@Uka@aV@@aUKVk™K@X@Vƒb™KƒU@JULVLkVWšUL@aUK™b@VUL@LƒxUKmlkImJk_@WU@ƒkmK@UV@„¥XIm@@Wn_@KmVm@@I@aUmkXm@UWV@mn_@mƒUUJWIUWV_WƒwU@mUknVVmxU@@VUV@zU@UVW@ƒK@šX@VLUVƒKƒz@J@VnX@`±bUXVƒ¼™lšn@xmxÝL@‚Ubn°@XWVUxUVVnkbWVXV@Xš`ÆȄKnƒlLVanIV`nLVUlƒ²ƒV@V¦„l°¦„w‚b@šnKnLVbVJšIVƒXK@b‚n@ènx@xVbUnV‚"],encodeOffsets:[[112568,24255]]}},{type:"Feature",id:"4506",properties:{name:"防城港市",cp:[108.0505,21.9287],childNum:3},geometry:{type:"Polygon",coordinates:["@@XV@X°°U„lxkbVlVb@nkbVl@xl@@b@n„‚XbVL@Vl@UbV@@JVLXbmV@bVVUXUJU²šW„XlKVb„@VVXKlXšWlXXWV@VXJlI@x„l@nlbn@lln@lbXalIVK@ƒVwœUVb‚U@aXylUX@@aW@U_UJmU™nVKUamL@Kna@aVUkkVWU_ValaV@XK@kV@@W„wVXV@„V„KVVn_lJlUXkWaXWlkXU‚±kU@ƒVUlbœkVmUmlk™¯Ý™™W@mb@¦VxULm™kJUU@ma¯wƒmkX@VóJ±bUVUXÝWk™lWXXlƒxUaƒbƒIğ™Ç@U@mVUKkkm@UJm@XnWV@x"],encodeOffsets:[[110070,22174]]}},{type:"Feature",id:"4505",properties:{name:"北海市",cp:[109.314,21.6211],childNum:2},geometry:{type:"Polygon",coordinates:["@@VaVLnK@IšJVwUaVaUkWKn_mƒX¥WwXm‚LXalbU£UyV„Å@ݙwm@™°l›LÅUƒmk™mwÛaƑLÝUUm@ȣƃV_„Ó@£UƒƒUVƒ„™¼U°W̄™ÞVbXbôx@b@bmV@ǃ™UÝ@@ĢU`m@ŽnxnIVV‚VX„VL@`@bV@@aXbVL‚@XVlKXLlLVl„knJ@I‚WVXXKlVnL@xl@UVVX„a@UV@VlX@VUV@nK@bl@nVVIVmXIV`V_lWnn„@VJVXnJ"],encodeOffsets:[[112242,22444]]}}],UTF8Encoding:!0}}),i("echarts/util/mapData/geoJson/gui_zhou_geo",[],function(){return{type:"FeatureCollection",features:[{type:"Feature",id:"5203",properties:{name:"遵义市",cp:[106.908,28.1744],childNum:14},geometry:{type:"MultiPolygon",coordinates:[["@@@UnUlJn„w‚JU°VL@bnVšU„wlJ@XƒŽXVlU@klVUJknl„UllL@bUJ@xULUlƒ„UblVkblbnw‚UXmla@„wV@VK@L@UXaVKVLXWƒUVa@U@Im@@W@£UKUakKWIXU@al@@llUnL@W@Un@@VlUV@VIUanKl@Xb@lmxVb@b°bb@nlJVVnnJ@b@L‚V@ln„@LmV@Vx@blnVK„nlJXIlw„J@҄b@nlK@Un@UL@VVVVUUUVK„l„@VUVL„J@UVUUw„@Wm@™„UV„ÈVlbUb@JšLlŽX@@x„„ƒLmŽk@@nlx@bUJUzVJ„@@LVxUV@bWxnLnVVK@_‚K²xVbV@n¥@aVI@b„@l@Va„Knb@n‚`n„mmý„W@ƒU_šwV@VlVV@Vn@n„˜@nI@Jn@°¦VaUU@™„mVVWVaUńU@aVKnƒVbVUmmU@a@kUw™m@aUUmUUJ¯lakU‚aXaWUUaVƒkk„amkmUnVlULƒVlJ@XU@UJWUUw„k@aU@WbkWƒL@U@WU@@XUKmV@aUVwUĕUJUamUUVUÑm™nIVJ@kl@XalJVn@KVLœ¥@UWIXWmU@mVUKnUWLUKUaWUUKVU@U@anUny@UlUkK@w@a@aVUƒ»UkVw@Wmk—JƒÅmUUVmwXalLXWWUnam@XkƒJ@UVU@U@W„@@U@I@Wl@Ènlw@KXLWb„lVUkalKUU„VVaV@@wnIlaUmkUƒKWU@KkUkLWaƒKUUWUn@VƒK@LnnWJUIƒVkUWVnV@V™@@XƒK@VUIUJ@IWJkX@VVJ™IƒVkK@I@UVaUWk@m„@wnUWKk@mxk@@„lV@b„xmb@x@VUmLkUƒJ@nVV@b@VkLVbU`¯I›l@™U_UW@UU@™™ƒK¯wm@™xƒL¯¥kIƒ™ƒ‚@bkbƒ@Ua@ƒm@kkW@XVbmV@ŽkV@bWbUbV@„¦ƒxXlmVk@ƒ¦™bkaWL@KUImK@wUK@VUI™b@bmK@LÅy@akXW@kbWlXblL@ŽULUbƒ`@U™kUymX¯@mšUJUUJƒL@Lm@@WX@lU„VlšXll„@l@Èk°V°Ž„X@VU@UVll@XUJVXUVm@@VXLWlnV@Xƒšk@mVULnxV@@bm‚kL@VWLUbU@UVm@ƒb@ķ¥UnmJ@UUVƒkkJUšlÔU`UIW@ƒ°kLUlUI@WVI™U@mWKkXk@ƒ‚WU@bXšW„@J@xX@l@LVl@xšLVxXX@x‚KnxVknb‚KVV@U„L„WlXU`@nUlšX@llVXšVU„KlkUKlI@anKVLXKVaUIVWV_VK@VnLlU„»VKVL„m"],["@@@KlKkUUVVX"]], +encodeOffsets:[[[108799,29239]],[[110532,27822]]]}},{type:"Feature",id:"5226",properties:{name:"黔东南苗族侗族自治州",cp:[108.4241,26.4166],childNum:17},geometry:{type:"MultiPolygon",coordinates:[["@@VV@XkV@bUbWJU¼Vb@Vnb@bš„@J@bƒL@LV@UVƒlUI@a™KULVb@bkJmx„šlLVxknVJk„‚xnKmnnL@bn`WIXlWLU@UxVbUVmKV„XI@JVIVJ@U„L@Wš@@UmUXUlV„UVJXImm@K„L@UVmVXV‚„LXblKlV@LXV„LlVVnkbmJ@xnXl@šbXa‚@Vana„ÒšL„m‚VnIl‚Þ¦°k@b„@@lV„nJlUnš‚VX_„@lVlK„šV„UUxVLVWVIXJšUlnnWlI@KUaUUVKn@VaVXV@na@ƒmw¯@mUkJUamI@lk@@am@@I„ƒUmVImUUw˜™@anUVaUU@LU@WaWUXWW„wV@VwnU@L@ynbl@@X@a„J@nW@@Vn@„lVLlxnI„lš@@UWKUƒnIlJXIVllIVVš¼XK@aVI„V‚@@bn@VKXLVKVVVInw„J@UWI@mX@WKnI@KmU„UVJUL@V„KW@@k„@aU@@W@InJWUXwWI@Wƒ@¯wkaVaUIl@nŽValIXWWI@UUm@anwWkXWWIUbk@UJmIUamKVUUUVVama¯VkIVVUlKnXVwX@@WVaUUVa@IlƒaVmƒkna›wk™UU@ƒU@mUVƒšUVwœl°LVbnJVU™¯la@mX@@UWKXU@aV_V@@JlkUƒ¯@V™nK@km¯k„U@ƒWUW@mmƒU@™kmlU@wkL@WƒUkL@VmLƒJ@b@V@bknUUVK@UVKUK@Uk@Wa@LUVVnUbmVk@@UU@@aƒV¯K@U@UU@WmUL@aU@WV—w@ƒ˜I„xXll@UX‚K@KXXVJna@wWaƒ£naUKV„m@UU@mUmalm@@XkVm@U@VƒLmWU@kkWxU@@bVV@VkXVlƒVƒ@UUk@@ƒmI@KUw„m@UmVƒUUwU@lwkV@IUa@mUaVIVKVa@w@U@™UJkb@n@bmJ@XmlVUxWXkJmUkUUVW™xUlU@ƒaULUšmbU@@‚WXkmƒL@xUV@nUxÇm@„XLWbnlƒnV‚nnUV˜U‚nVVz„@lbUVVlULVb@V@nUJkwm@Ux@bWbUK@UULka›JbƒU™U@U@lUK@XUJmn™J@bU@UwWa™x@zkJWnUJUUVšVV@bXn@xVb@J™L™m@X™w@`@bkb@VmXUV¯L@mW@@n@V@‚ƒL@K—IW@@aƒaUx¯@U„m@XbW@@L„V@bnVWVkKUzlV@bÆa@lnI@VV@@LnVVKUaV_VJVbnU@bn@‚‚nX@yVIVxXKVLlUVaXU°J","@@@KlKkUUVVX"],["@@UUVUkUmV@ln@VXVK@K"]],encodeOffsets:[[[110318,27214],[110532,27822]],[[112219,27394]]]}},{type:"Feature",id:"5224",properties:{name:"毕节地区",cp:[105.1611,27.0648],childNum:8},geometry:{type:"Polygon",coordinates:["@@UkVƒ@k‚W@Xn@@K„KVIVVIn™°@nWVzšl@V„_VaVK@kKWaXklaX@lW@bÆz@KnL@ašaVJ@UVL@xnLVJ@LXKlbša„¥l@nUWk„wƒ¥U@VaXa@amLkUƒKmƒ¯kƒmkIUaƒKUIWƒkKm@anw@mlwXIƒmƒUk¯@a@amUƒ`kkKWVkxmUUak_mJmw@w„mXUW¯X›_@WnI@aVwkWWýŃU@WLkU™aUbVV@lUVVnm@kUmV¯™kK™LƒwmVUUaWV™aaWw¯wƒÈ@VULUVUUƒK@nWJkI™l@Umxnbm@kbUJƒa¯bUbVxmLUV™aU@VUUWxkVVV@bUV@XWbnlUbƒbUJlbUV¯b@z„`WbXnmbƒaƒwUwVWUƒbUxmbU@Uam™@Vƒk™VaƒwVaUƒWI@mUKóz@lUlÅ@WIƒb@xXxml@XklULWKUmwUa¯KUXWJkaULmKkLWbkKUVƒImƒƒWa@kUaULƒW¯LƒK¯@kbƒL@b™x@J@bmnnlUšlzU`U@@Uƒb@„m‚n¦°bU„Vx@bkVm¼mx@mk™mVV@bkxVn„aVV@bU@mL@b²`lIVV@lXLlš„bVxn@@bl@XllIVšnbVšn°°wlbXw@mVa°lVnU@mš™VLVbn@@b„@@WVnUV@Xlxn`VznJVb@L@bV`V@šUnwšU„@WUXKV@UUlmUUlaXalLšm„bšIVbnJVIlVVaUUnWVXn‚VL‚k@ƒnWnblnlb²x„xVKVXlVXLVW„LlUVJna@wVL„¼@JVX@`@nnx@nWJU@Vx@XXKšŽUblxUš°„LVKVVlL@KnbVUnJ„IlUšƒnKl£VW„x„IlJ@nšVÞUVVnb‚VX@V_°lnK","@@@UmWUwkU@Um@@VkL@V@„„‚V„VkV@nbVa@ƒ"],encodeOffsets:[[108552,28412],[107213,27445]]}},{type:"Feature",id:"5227",properties:{name:"黔南布依族苗族自治州",cp:[107.2485,25.8398],childNum:12},geometry:{type:"Polygon",coordinates:["@@‚V@IöalK@UV@@KUaVIVVœLlaVbVWnX@‚@LnUlxl@naVLXVVaVU„J@lUUanWWI„@VlV@Xbƒb@V„n@VmVVbk@kU@V›V@X„J@zn`ULW@kK@_WVUK@LUb@Jlxn@nnWlU@@b„x@XVVU@UbVb‚@n`VI@VVLUlUIUV@KmL@VV@XIV@@lVLVmXV„@WLXLW@U`šnkb@Vl@UL@VVV„L„llX@`lIXb„J˜IXW„L‚aVL@ŽXXW‚Ģ™b@bmK@L@°@Vnxmxšn„K@xVn@VkL@V™Lƒakbl`VnnxVnUlššV@@VVXV`@šœk°JV_UalK@U@aUU@m„IlVnK‚V@U@wnaƒw@akU@ƒl@nwl@XLmV@xnƒl@VXUb@V@JlL„UšJUI@UlWUƒnLVUUaVwV@XKWkXJm_@amKnmmLwlƒUIlmUwkKƒ™nwlI@aUaVKšL@bVJ„kVUU@@K„K@a@I™ƒ@ama@UUaV»XIVa@alU@WUU¯IWVUbkVUKWLUwUJ@zmWm@@amVUaUIU`VbULmU@KU@@UmJ@kÅb@akUVylLXUmU@aƒU@KX@Wan@Vƒ°@Vw„b@bX@˜J@L„K@@U@mX@@n°KVUnW@Ula@a@_šx@WšnšK@IUa@wWm@aUUU™VVVIXmlI@yšwXbVxV@@ašInmVI@WVL@k@VšV„V‚aœIlbVK@VVLXa@aVwn@lxVI@m@UUaVKUkVUkaƒ@UymUV—VUmmU„mmkXaWK@ƒÈnVw@mVU@w„KlnXW@V@naV™VKUk@KVIUWƒ@mk@KXU@Um@@lVƒk@UVJna@UWaƒL@a@ƒXa@kmmVUUk@mkkƒamJ—ImJUUmIm±aUUkambkamVUU@VlbUbVVƒxX„WVUU@VUakU@UmUV‚U@mnUVVnUbVJ@b—UW¥kLVamVkUaWJU_UVWKk@@nl„UVVJUXm@Vm@UnVlmbnmJUbULU@@UUKWVIWxnJVb@xUL@bUJWIkxƒbkb@xVJƒbmU@kW±LkKUkVa@a¯am¥ULkalÑlKXUWƒXƒaVakImVƒ@ka@UUƒJ¯aƒX™mmb—KWU@wUUƒaUa™KmU@UXlWb—¼WLUKUb°„UlVbkbVL@VƒšƒJ@nVlUbUXmJ@VX@lbUbU@@bWb@VnLVJ@bVVUz„ŽVL@lnL@b™VVVULmKUk™Jkbm@ƒxVb@V—kƒKVnnV@b@ŽWXU‚„nV„l‚VVXVJUXlVXbWV@VU@Ubk@@KWbUUmL@JnXV°XJ@_‚`UbkXVVlÆkbƒ@VLXVV@‚V@k„KXX@`V@@n"],encodeOffsets:[[108912,26905]]}},{type:"Feature",id:"5222",properties:{name:"铜仁地区",cp:[108.6218,28.0096],childNum:10},geometry:{type:"Polygon",coordinates:["@@°a@aÈbVUlU@aVKnVV„VUlyX¹lWVa@U™VƒnUVU@m™@mUl@„mÞw„@‚xnIVbna@KVI‚J@kwV¥ƒUXÇVkVW@kkKWU@aXUWmnIVa°VXbmL@VVbnVVVUb™VbšJVbVKXkVKVanU@aWnWUWa@U™nk@mVIVK@wXxlLXbVJVlKœbl@VI@mšaXalVV„VbX@@ašalnkx@b@V‚b@Vnx@bVVUXn¤WXn@Vl@Vlzn@š`@I@KUU@ƒV£namVkXa@aVK‚nnU@anVlKƒa@UUU@amk@»kƒU¯@aš„VWnkWmkImU@akaVm@»VUV@UKnkW¯XWlkUKnIWaš@nmlIXmWUnwUwWm@wULmaUJkIUaƒaWa—klwkwmJmU@bkJ@XUJ¯W@XbWbUKUkWJUUVKnn@UmmXUWa@mU@@UI@WmXVykwm@kaULWwU@¯ƒlKUUVU@mU@UkmaUbmV@b—š‚xVnVUJVnƒ„@Jn@@bl@@knJVblInV°@nx@„mbU@UWUbm@ULVVVb@LkJmXkm™VWIUJUXUKVwƒV™UƒŽkLkUƒ@W`Um™kVmIUƒ@kƒ@@a¯lÝ¥kmJUƒn™KƒÑmbUb@Wb™ak@mWU@UbƒUVVkLlbUVƒkXaWK@LkxÇmk@@X@J@Vƒ@@X@VUV@V„IWln@mbXVWXkKWbnxVUnV„ƘInl@XUxVl„¼UV@b@b@xlLkV@VmzmV@b@VUVVLXVVbVLXKmVVLU‚@nnVWXXJ@V›¦UK@LUmkIWbk@@lUImJnšVÒVUnVVbVIVĖUxV‚@bnUVL@WV@@X@V„KlXXaV@@bƒlVxXVVIV@@WkI„UVKUkVmlnnŽƒbllU„VbXVWbblVkb°ŽVInVVV@bšnVx@l@bnVVnUŽUam„UL@bƒVVÆUbUXU‚ƒn@šVVUb"],encodeOffsets:[[110667,29785]]}},{type:"Feature",id:"5223",properties:{name:"黔西南布依族苗族自治州",cp:[105.5347,25.3949],childNum:8},geometry:{type:"Polygon",coordinates:["@@VL@Vl@@IXW@kVUVbnW@XlKVVnU„VlL@b„aVbƒb@xX‚°ÔUxV@kbm@VxkxWJœ„V¦ƒŽ@ÈnšVKšxWXJmV@n„Ò@xVbn@@blLk`VX@bššla²JVUlnn@U±lw@wnw@mlwVIX@@m@klKnk‚a„KnwmmXkƍVm„Uš¥l@nb°n@„aVwVmVIVnI@a„¯@mšU°ƒl@@VnI@JV@UV@b@IUbVJmXöºƒzllUbVa@aXUl@„U@llLnKVaUa@UmK@UšwV„bnKV@VwVK@UXƒV@Vbn@‚w@U„WnX‚@„a@m„I„™@UUKlaUaVk¯ƒVaVLXK˜»XaWk¯mƒkğwmW@mIƒVkwƒJUIšÇVwU™UkVKkƒm@UkmU@WÅwm£Vƒ„m¤¯IkJWa™_™lUbmJzÝJk„ƒUÇVU„ƒ‚@bU„Ýn™m¯LUb@`mL@VkL@VƒUmmk@UU±Umka@kUƒ@ķymUkk@mmkÝmUaUakImV@V@VÅLƒ¦ƒJUXmJXšWb@n°Æœx‚¼nV@LlbUŽUbmL¯@ÞbV¤nbVx@bUVlblIœ™@KVVUnVJUn@VlLUlmLUUUxmK@I@@VW@@bU@UJmUkLVVUl@b@V"],encodeOffsets:[[107157,25965]]}},{type:"Feature",id:"5202",properties:{name:"六盘水市",cp:[104.7546,26.0925],childNum:5},geometry:{type:"MultiPolygon",coordinates:[["@@ôyVL@nXJV„Ub„x‚bUŽlšU„@ŽšnŽVbV@naVw„a‚VUXVx„x„bnaWmXaƒ_@y°aVUkaVI„aVamkXa@WVU@aUUlUXwVV@UVšbVUnKUwVa°a„bVIlan@manw@VšklJXI@m„LVVVUVK@U„ǃk@KUa@UkaVU@UVWV_XWVXVWlLXKlLXaÆKšwVL@akKm@Uwƒ@@XUVk@VUI@wWK@aUV™I@UkK@ƒmL™Wƒ@kImJƒUÅVmkXUW@UJkx@nmx@xkxV²m@kmUV±Ikb™™@aUWl_kK@am@Ua@wƒÑ@mnUWIX™wULm™@DŽU¥›ƒXIlwUwn@laU@Vw¯ÓW@w„aUaƒb@akKƒUmVUUkL@WmXUaUV@lWX@Jk@@UUKULmLUJmzkKmVX°VšUnWKUL™ƒƒL@mU@UnVJ@b@„UV@Xƒ`m_@l@@bmbXJmnnš@°˜wnn@ŽVLX@V‚@nVl@nk@@b‚l@nn°WlXzW`XXVKnUlxVbUb@‚V„Xb@Ž‚VxÈbVlnbmn@ŽkVUL@„ƒŽmLUVVL"],["@@@ƒ@UmWUwkU@Um@@VkL@V@„„‚@„V@VkV@nbVa"]],encodeOffsets:[[[107089,27181]],[[107213,27479]]]}},{type:"Feature",id:"5204",properties:{name:"安顺市",cp:[105.9082,25.9882],childNum:6},geometry:{type:"Polygon",coordinates:["@@lL@bUK™xÅLWbkKWLkKUXUWWXU`UX@VUVlb@VVb@L„l°xXx‚bšbXUVb‚VnU„xšKlL°šnUlVn@UmVU@kUUVašblVXKV@ƄXþlXUxnU@mVK@_@ml@UU„@šblU@KnLVyUw„@@UmkšWVw@UVK@VXzVK@n„VVUUW@kVJnlaš@nKW™kaWL@U—™õb@JU@mU@@_WWƒL@lUU@WUUK„@lakÅUUlWVa_@`WIU¯mW@InKVVXa@Ll@VaV@@UXUWakUVWUIUW‚UkUƒƒmVXW@@amUUm„L˜l@UUa„wn@lašIVlnLVKUUšU@amK@kUKƒVyUU@aUImK@UXa@aV@VakaW@@UnIVWVaUkƒb@mWƒX@Vxm@UaU@W„@VULUxU@mLƒaUŽ™x@VnL@VVbUbmLkK@kƒVk@WV@bUbVakk„yõ¹nWUIVa@J@aVUU@@ImJ@Uk@¯„™V@nƒ°@bmJUUJUnUxƒbm@¯Žmak@™¦ƒVUnŎWlnnmxƒLbmlkL@l@nWVnlÆU„VnIlJ„@šXnK@„lL@VšJVU@bXL@xVJUl@VU@W„@Vxn@"],encodeOffsets:[[108237,26792]]}},{type:"Feature",id:"5201",properties:{name:"贵阳市",cp:[106.6992,26.7682],childNum:5},geometry:{type:"Polygon",coordinates:["@@nŽlLX„VJ„LVblJ„n°ln„„LlVnKlU@nUUa@WlX@l„n@‚Vb„@la@a„„šlJ°¦„Kšwn@°x„LVkUmmwUmk_la„bšK@UlK@UUm@wƒL™mnwmw@U@¯@KnL@aša‚ġXWW@UKbƒKWX—JƒIWakJ@_kWƒkƒKUU@UVKk@@Ula™mV_X@WKXKƒ@WUUnUK@kU@WJU@@UnK@LVUVJVkUK@UUJm_@UaVaV@UU@Wƒw@aV@Xkmmm@kw@IVa@KVLXU@`lLX@VKm_@yƒI@WœU@UlVl@UanU@Uƒm@U„aWaU@Ukƒ@XJmXVbkV@ŽƒIUVUbWUUKmbk@kwmV@K@mWUXUakb›KUUUJVb@LU@@VkL˜š@VXKlbXšmL™@kbm‚UI@lVXUVƒU@mULWy@UUL@VUx™Xnl@Vƒ@VxUzmK@LkV™aƒ@VVk@@n@`UL@nmV@bmJ@Xœ`WX°WVƒn@xnxnIl`VbnVlwXUlLl‚„_nV@b@bl°„V„nWJkx@nmx@b"],encodeOffsets:[[108945,27760]]}}],UTF8Encoding:!0}}),i("echarts/util/mapData/geoJson/hai_nan_geo",[],function(){return{type:"FeatureCollection",features:[{type:"Feature",id:"469003",properties:{name:"儋州市",cp:[109.3291,19.5653],childNum:1},geometry:{type:"Polygon",coordinates:["@@஼jpnr’``ŽpRVHʘ̤žZt^JÖA˜[†CâlTébQhRPOhMBcRSQiROE[FYdGNOEIH]MgEAMLLIAG_WMCSL@ED]PCLYC[ZIHgjSxJTMbHNEFCMEE_HSDFHSLECRNSFDRICHNADGPI\\RZGIJTIAHLDQOHG`GTNCOIC@eIGDWHIS[kiE[FMbECZS@KKS[FDWsCeRuU_DUQNOE[LKGUBM¨EDQP@HWHGDImXƒCog_~‹I_fGDG|QDUWKBC\\ore|}[KLsISBHVXHCN`lNdQLOnFJSXcUEJMCKSHOUMDIm_‹DI`kNDIGEYFM\\YPEEIPMSGLIKOVAU_EBGQ@CIk`WGGDUM_XcIOLCJphHT_NCISG_R@V]\\OjSGAQSAKF]@q^mGFKSW^cQUC[]T}SGD@^_ˆaRUTO@OHATŸ”"],encodeOffsets:[[111506,20018]]}},{type:"Feature",id:"469005",properties:{name:"文昌市",cp:[110.8905,19.7823],childNum:1},geometry:{type:"Polygon",coordinates:["@@€hIJ¤Ī¯LQDaFßL[VQìw€G‚F~Z^Ab[€¹ZYöpFº lN®D´INQQk]U‘[GSU©S_­c‹}aoSiA£cŁ¡©EiQeU­qWoESKSSOmwŸćõWkàmJMAAMMCWHGoM]gA[FGZLZCTURFNBncVOXCdGB@TSbk\\gDOKMNKWQHIvXDJ\\VDTXPERHJMFNj@OwX@LOTGzL^GHN^@RPHPE^KTDhhtBjZL[Pg@MNGLEdHV[HbRb@JHEV_NKLBRTPZhERHJcH^HDRlZJOPGdDJPOpXTETaV[GOZXTARQTRLBLWDa^QAF`ENUPBP…\\Eji`yºEvåà"],encodeOffsets:[[113115,20665]]}},{type:"Feature",id:"469033",properties:{name:"乐东黎族自治县",cp:[109.0283,18.6301],childNum:1},geometry:{type:"Polygon",coordinates:["@@ªVLP`@PEdNRAHOPEAKHEVL`GZBJfvdTAXNNTZJFPrHHNpKTD\\ILHbEVd^J‚OHLh@NNBnHP`\\xH@NBRLJTlŽNv_^CTLd@bNDVFbxdFV€UPBTKOGEOUO@OEBXQP[H_EI\\EbeYa@UO_J‹MEJ_IEDKJUGMDcNUd_FMTEJSGoZ]EIYGO[YW‘gEQ]a@WHEDQKUSDUGAbYBUpSCYNiWqOSQEoF[UcQISWWNMSDe_cLQ_UBiKQOOASQAWgS­ā]ZaŽSPÝZ]XMXSŒ[^oVËNgNKlE RôEø"],encodeOffsets:[[111263,19164]]}},{type:"Feature",id:"4602",properties:{name:"三亚市",cp:[109.3716,18.3698],childNum:1},geometry:{type:"Polygon",coordinates:["@@®ĂhTBXTRPBRPjLVAR`dKf`TC‚NXMTXRJVdE\\FpTRrPjXZMTDVoZABaVHTCLVCRGF@X^bFR’hZXP\\ZHHMA[^wBWXJlW¤EJ[bCTOF‹WWMm@ILMGWQ@DQ^QNWFSHEbF`OXNbO„VNKTEPDTLTCCVTREfvfEHNbRAENH^RJXCFHNFRpVGHWISDOTMVCZeGamaLoLÛD¹¹ėgsia{OųE—Tt‰lɂwr}jŸR±E{L}j]HąKÃT[P"],encodeOffsets:[[111547,18737]]}},{type:"Feature",id:"469036",properties:{name:"琼中黎族苗族自治县",cp:[109.8413,19.0736],childNum:1},geometry:{type:"Polygon",coordinates:["@@bRFnHNbHŒgN@NPEnbXP@bND`NT\\@\\QZb@`@J]V@XhžDpW„nCJGHGXO@CR§FANHVKLF\\MPVR`CvVfQtDPKpGHG@S`WJP~^dSTHWX\\RHTFACQTIAUPOU@MG__IaYSFQK‘NSbORHXCZeTFJg„B`YBMNMFi~IVDV[tGJWXGDQRGF]ˆJrALgESLSAYDGIaFeXQLS\\MKSLSQYJY}eKO[EHiGSaK[Yw[bmdURgEK^_kcSGEOHKIAS]aFSU@Y]IWFUTYlkP_CUOUEkmYbSQK@EMWUuAU\\M@EpK^_ZMDQ^OXwC_ZODBrERURGVVZ\\DTXcFWNIAWJWAYUUFYEWLQQaCIZeDM`cLKRGpanJZQd"],encodeOffsets:[[112153,19488]]}},{type:"Feature",id:"469007",properties:{name:"东方市",cp:[108.8498,19.0414],childNum:1},geometry:{type:"Polygon",coordinates:["@@ºŸx‹JYZQ”IŠYXLl@dR\\WZEn]bA\\S~F`KXaDeTiNO^EEKWEDQXITBXaWaDQMUJOIaTWf@NJV@dSxGZ‰Fu_@WMKAUˆ}AQ@MwG_[GOAmMMg@GKP]IUcaFKG[JSCoLGMqGEOYIMSWMSBucIeYA_HUKGFBLOFGPQBcMOF_@KO©UAtERadwZQ\\@ÊJÒgòUĪRlR°KĮVŽLJ"],encodeOffsets:[[111208,19833]]}},{type:"Feature",id:"4601",properties:{name:"海口市",cp:[110.3893,19.8516],childNum:1},geometry:{type:"Polygon",coordinates:["@@ńZƂtĢ¬æßFuz¹j_Fi†[AOVOFME_RBb]XCAKQKRSBQWSPY\\HbUFSWSPoIOcCOHIPkYCQ]GdGGIFQYgSOAQLK`MFUIGa@aQ\\GGUFcHKNMh@\\OYKAigsCgLSF]GOQO]@GM]HyKSHKPW@Pxi@EMINYREXWRQ@MQcFGWIAwXGRH\\yDI`KJIdOCGRNPNtd\\UTMbQYi@]JeYOWaL[EcICMUJqWGDNZEXGJWFEXNbZRELFV]XQbAZFrYVUBCLNFCHmJaMIDDHXHEhQNXZ_TARFHVB@DTQIRR@YHAJVnAbKFUEMLd\\c^ÍÞ"],encodeOffsets:[[112711,20572]]}},{type:"Feature",id:"469006",properties:{name:"万宁市",cp:[110.3137,18.8388],childNum:1},geometry:{type:"Polygon",coordinates:["@@^J@ZTVbET^JBGLFPTHld]`FLQhcVanx\\\\ZbLHTGj\\FLP~fIZRZPVTQFSVAFJE^NDLEE[~LjsxVTG\\NZZNGlLRRGLJTV@hPZANN^@T\\NEPPbDZXO`d^HSvcJDIV\\XZAJUFCLNP@PQ¤@[ïKLÑIÏ]ÇE±I{uƒ­YśUćFcYUmsVeBSVgB[RO@aYYPO^]@UVaNeDShMLG\\EfFVE\\F`"],encodeOffsets:[[112657,19182]]}},{type:"Feature",id:"469027",properties:{name:"澄迈县",cp:[109.9937,19.7314],childNum:1},geometry:{type:"Polygon",coordinates:["@@T\\GJCXJH@fJDDPNCNJENN^NLHBNSx@DDYbBLLDRbjZTj@`XXTlG^Xr@PJLW\\WLTlWR@HDJTD@X_PO@STMDNTMVV@NLDM`M\\XM\\JNBH[PYZ‡úYzŸ`Ċ\\ÎÝd]c[NKVFLEBaUmBIZGQ@JQSR@CUAEGBQ`SWYRMFgWGCGJCbNnIDGMEDKVAZUEqBYRa^WEUFKYQMaFWXEHIFWMYHCrXVIIiaK@aMCUYNSIISTwXALKH@XWXIEIJQCG[IEQDE_XSBaa[AIPW@]RS[FWS[CD]PEBYNGFSaSyJG]@ugEUDQlGHiBKHUIoNSKqHFaPMICK]UUHIPDJMuCA[SCPIDIOILGAEmU[POPBVSJDREBGS[QXWSGcT}]IO_X@TGHoHOLCX\\ELT@LYTD‚aFENF\\lj"],encodeOffsets:[[112385,19987]]}},{type:"Feature",id:"469030",properties:{name:"白沙黎族自治县",cp:[109.3703,19.211],childNum:1},geometry:{type:"Polygon",coordinates:["@@D\\RV]dTXELnHr]^@LETBBRTHPi^[@U`QTHDJ`MGSogDIPKdJ`WVNHCXHl_DJR@AH`FBVPUJLHKNTJOFFZON[ZEHFCJlMJ_ŒCn`CJVNGPLTNDFIdVTWEIPmRKMc_kDMWGGUTAtJLK~\\f{pqD[LAVXRCH{HC`eŒJ`}@W^U@I@_Ya[R[@MSC_aMO@aWFmMOM@‹haGGMEmaQ[@MESHaIQJQ……MckBIw[AOSKKAMPSDSLOAV_@@`KJRbKRDfMdHZERgAWVsDMTUHqOUr@VQXTT@Tƒfg‚L^NH\\@heTCZaESNObHPƒHeZF\\X^ElM^F^"],encodeOffsets:[[111665,19890]]}},{type:"Feature",id:"469002",properties:{name:"琼海市",cp:[110.4208,19.224],childNum:1},geometry:{type:"Polygon",coordinates:["@@TP\\pATHTGlZDJGAQjE\\Rb@jVBDCN`JZ[NCNHNXbULPrP\\KNbMTLjJJRFP`“pNLZz^FLRHjVPZ@hxVKbHBHMNNJFRlLzGPnNHhIrHHADcPWdUAmEMVQDSKYHY\\EhBN^HpXGNDBNNBnIß‹Å_g{³So]ã@ORO@KMEDIVYB[WJUICudGTc]P_YWaCOOMFS[]@MMYBgOU@ISHKQQkKMHYY[MSHwUit}KF\\KFMCF]EIUBETSROUKTLT[NKTWREfJbCHBZKTFTKh"],encodeOffsets:[[112763,19595]]}},{type:"Feature",id:"469031",properties:{name:"昌江黎族自治县",cp:[109.0407,19.2137],childNum:1},geometry:{type:"Polygon",coordinates:["@@`ZĤd–`òüˆ˜ “BSPGP@VSbQ`‡@]HC~T^SE]N]FkW]E[fY„GGOPaTMbFDYfS@g[MGK]h„e@SSSRW@UVqrPVGNStCXUhBFQGYNcCeLQQaLI@_`@EUwcEaCUaMc@SK]Du`MSkKI‡~BVNL@X`‚EvYŠwHcTU@MIe@SXJbIPNVCRXbWbSAWJCRXFFL]FMPSjCfWb_L}E[TaBm^YF[XcQk@WK‰Z“JYRIZwŒ¹ "],encodeOffsets:[[111208,19833]]}},{type:"Feature",id:"469028",properties:{name:"临高县",cp:[109.6957,19.8063],childNum:1},geometry:{type:"Polygon",coordinates:["@@jD`hNd\\^dZädĒH´Op@ˆùZY\\OAGIMN[[W_NCNMKU@NUMSNCTSP@`O@WSCCI@GXQSkXKX[IK@OWqH]SkWW@_SiiYQaKCAKZaCCw@MTGAMKM]FMMIMDSM_HGHRPKCBGSJJIYH[QOJCHMBDGQJECMTDQKFGTCEGTF`NFEDMFaGSNwIiTGhYJD\\KZODC^@FTKND`XBHKJNKFBNhG^FJMPcHEZF\\QPRjQTAdgNOPgQaRSê"],encodeOffsets:[[112122,20431]]}},{type:"Feature",id:"469034",properties:{name:"陵水黎族自治县",cp:[109.9924,18.5415],childNum:1},geometry:{type:"Polygon",coordinates:["@@R]NC`YL]FoN@V[vBXVFNL@TRZalnVFVP`DlOZkVSXEE_F[EUFeH[NKTgfCbMVU^@P]ZObZP@\\QhATUfAtUasñiāEoI]eYǯ@aKmaeƒWuCºKÜKpnbHbYfUDSNCPJTRAHJTDJSfDNLHXC``VBNGTYCQDIXMDSP@xLNEFRNXBIpVNLXah@RgF@`qOML@LJNSPLbaHAh@Jdj"],encodeOffsets:[[112409,19261]]}},{type:"Feature",id:"469026",properties:{name:"屯昌县",cp:[110.0377,19.362],childNum:1},geometry:{type:"Polygon",coordinates:["@@\\OnVBFKHPJCJOJTDB\\vDINOCGJVVL^JDONEbrGTLpMVJLGjAHGRkVChF@vH^zIbTETMHAZOFC^\\DXT\\EffAP\\PdAV@UIYfS|S@YPICMeM@sC[_A]VQEwyHSMuNcAUlQJMVGMS@mVBZPFO\\CSFQK[LqDMACiUa@[QiFBRIHYCHkGSBS[oSOqB‡IE^QHCRWHIXsHU\\UC}JEjMNAN_ZƒAIhSEYfWDQGaPMTL’ERZTJb``NHV@"],encodeOffsets:[[112513,19852]]}},{type:"Feature",id:"469025",properties:{name:"定安县",cp:[110.3384,19.4698],childNum:1},geometry:{type:"Polygon",coordinates:["@@JjDNdJ\\FbKPXfZ^Ij@RZNaVSc[MsMOHQPDJcLIJ_zCG[HQxWJBHXdENRR@XQFWZQQGOFSWUCI[WCJuRGLXNMPLhCl[Ta@SqGgJMGOmyHkKEQMINMAGaGULgwY@UOGiKQ]EYyMK”oO_QEIIKiNSMa[LqOKOaVMWMGMDY\\_IKrL\\ERT[DEPYOUA@nNTUHINkRBVMdNvGTxzRF^U`BD\\@tfNDNOJ@Z{TeTJZ@VU€cB[OBOeeQT@^OXBJb\\AbWTF`RCJFH\\RDJIJFXW@WLGBKxWTSJJMTVZND@bbL"],encodeOffsets:[[112903,20139]]}},{type:"Feature",id:"469035",properties:{name:"保亭黎族苗族自治县",cp:[109.6284,18.6108],childNum:1},geometry:{type:"Polygon",coordinates:["@@FJp@fxpQ\\ApN\\GNPNBM`HLMrXLXj\\PEHnI@WUCEM\\GTc\\GZYHTPBHRCPTd€H\\K\\@HXi–BJILJJAVNTOZJNtFPC`YxDPWci@IBgbGKaTOIM@KNKrP@_hE@QbgKWUMJoWAQMFEKM@wTONCJWRCZDHSAM_UD_GWMKeCITSCGIQBGXUHQoMEEGWDQIG]FMQBMaFGueFeSQDUSDSKOCSFMLƒUaPWM_PaEGFETMX]RCRR@HXKN@JNnXXEŒSPaDI\\£FkXWIAX]xB\\GN"],encodeOffsets:[[112031,19071]]}},{type:"Feature",id:"469001",properties:{name:"五指山市",cp:[109.5282,18.8299],childNum:1},geometry:{type:"Polygon",coordinates:["@@TCNOLBTLBPx\\AJdl†NR†RIbJTGNF\\@RcIYbmHoLQdKN_fCJYbDRRXKZFVEZVXBXIJBXMdESW[CUYHUVQFQAqsEIMPYMSBUIIJKAIj•GW[@[LGScDOGQOAGSYZ[HSd[HFNVD@XmJFG[OWiWKNqGKN_MAMO[HoM[BoRewo@Y^HpITSFENc`MVCdHNIVCLJFI`NFIŒP`@VZbaf[FFJG`O\\WRFA@PVPFPPH"],encodeOffsets:[[111973,19401]]}}],UTF8Encoding:!0}}),i("echarts/util/mapData/geoJson/hei_long_jiang_geo",[],function(){return{type:"FeatureCollection",features:[{type:"Feature",id:"2311",properties:{name:"黑河市",cp:[127.1448,49.2957],childNum:6},geometry:{type:"Polygon",coordinates:["@@VÈÞ@Žkx˜nXŽ°VÈa°V@kôw„b‚š„JVškXlVUx„„@ŽlL@xkVV°ƒ„VbxlVUnVxk@ƒ„ƒKkŽVb„Il„@°kVl„@„™lÆnkll@@V„VXƒŽš@V„²bUlƒVlV„U„VÇn@nkJšŽlkVbœ@›x²V@n°VUnlKU„n`@n°bWLnVUblVUVVbknV`°kkŽl@@V°@nz„J@XšxlWXb°n@bƒĠlbXb™bVbƒJ@Všb„a@„„@lbUbšVmnœ@lšVmnIW‚œ@WbÞ@„n@x°@š„ĢaƐéϚnœ„‚lČ¯ĠŻÈwm@ôçU™mm£Xy°UV™›@wÈ£Ǫ¯kõÝçUњ™Uķ‚ƒĢkVфÆšÞU°nŎ¥ČUĊx°m°¦żVƐœx°ƒÇ£@y„UônރÆ@Èĉ°Kô¦šW„kWU—bÇ»@™ÈĕWÇÈ£ŤU@›n£ÆUUKVamanwŃmÝJ¯k@JƒIkaVaUUÇbkaÆÑkWmÝUۙ™Ý@™ƒwnU±ƒ@kkV¯KUkƒJƒ¼U¦ƒšÅ@ówķaķůV¥Uaó@Åwmƒƒ_kVƒwĉ‚ĉmmn_V»™a@U™ƒVwķóƒ‚U¦LǫéóXÇmōLǓÇķxÝkƒƒĉ™kmakbUĶ°@W¼„@bƒšÈÆ@Ė™L„l@„°J¯„mkl¯L݃±L—amJ@¼ƒ„™VƧUó„™UX˜ċb¯ńVbkÆÝI@llx„k°V²šV@Uxގ˜L@b„@b™`ƒšÇzkókݤ@ğ¯Wƒ™LĉǙLmmnċVkbUaƒL@Ž¯„‚bU°ğL݂Ý@"],encodeOffsets:[[127744,50102]]}},{type:"Feature",id:"2327",properties:{name:"大兴安岭地区",cp:[124.1016,52.2345],childNum:3},geometry:{type:"Polygon",coordinates:["@@k›ƒϙmƏêġb™ƒ¯@@wƒmÝ@XV@IlŽl@bUxl¯VlV™bV@ULVlUV™_kx™VVV™ÈÝJ@„¯šU„™lm¯x@xóÒĉ¼m„¯Wƒxţ@Uz¯ƒWwnUwťƒ@knƒWƒ£óVƒUUwğyó¦WI—Vmm™I@±kwÇ@@bƒ@ĉ¼ó@¯wó@¯aó¼›KՃaUwmWUwÅI@aƒKó@Ua™LƒaƒVÅwō¼UUÝl±I—¤VxÇx@zkJmnn‚mbnz™xlŽƒl¯ČkJl™°@„kb„Žmx@x™@kêmVnŽWxôXšxU°„bWLóJnÇWĵ„V¦™ŽƒUUb™b™ÆġK™šk¯™VU±aXmċÑUwĉKġ„k„™ŽVxk„ÇKkbƒIƒ‚ÛXWl¯bƒŽ™X¯K™bĊš„„ÞVƚnŽĸ²lxUŽ°n°òÈb‚¦—xVbƒŽƒ@¯„Vx@¯VķÞČlĊ°KĸŽȘI°¤ČIôŽò»ƨnȰKǬ¦ôWŎÈƨwlƒnKVXmbX`lbšwkVW‚XXŽ„L°a„ƾaĊ£nƒ°@°¥ŎzÞ¥‚»œalwôkƒJ„a@ĶK„£„bU°ĊxźVÈUĠ¥ƨ™VI@XU°x°Ln¥šw°UmwXm݁V¥ĢŽ°@nU@mÆ£š¯lKœšÜw@aÅU‚¥UaÝIkmV²‚nn@Ķ»@Uk¥VKÞ@ÞÛ@ƒkVmĢa@_ƒJómƒǖ¯Æw—óÇa@alƒUwšwĢřšk@wÆWXUWXƒWa™m@_ƒ»ÇéXaĸwVa@ÝKkUWkX‚kšKXxƒn@lĊV@¯m¯nřÆwš¥"],encodeOffsets:[[130084,52206]]}},{type:"Feature",id:"2301",properties:{name:"哈尔滨市",cp:[127.9688,45.368],childNum:11},geometry:{type:"Polygon",coordinates:["@@°`„_šJlUšŽ@„„@V¦°JUšŽnLôlnŤ@@šÈaUÒVbkbl¤ƒzk°ÇVÛô°IlVUVôU„xÆU„Ž@bźĀ„º@¦šb@l²‚UVlœ@°ÒĠxšnXxÆVô¼Þ@Üx²KލlƒVÑ°UȰôlwô@²ƒĸ°„lanV@„šVŎUll@bÈnÜm„wĢ@la@ÝÞb°UXb˜lŎ²ÆškšV‚I@ŽnJnĠŽ°knƒÜbĢwna@a˜kÞKƒĀ„a‚™œ‚‚IVbU¥wĠwkô˜xnLƒċVçkaUƒ±IUmnġW„°WôĉšalƒÞÅĵ¯@W¹XÝaƒb¯a±X¯ºLƒaVƒmkLóƒƒbkaƒVUKVkkKV_@aÝykk±L@ƒÅU@yV_™aU¥ówÇx™@UkVƒn@lƒkÅlwšWVwUkĉmkklW@šašbVwnWWƒ—wWL™™@Ušƒ™UƒÇLšÇmƒ„@wƒJĉƒL¥@ƒÝ_@a¯y„UWw¯ƒ¯Uġx¯aÝXVmaU£ó±›¯nwƒa¯óÅVƒXman™„Uƒ›lUXkWa@mkI„›ğaƒm™IklÇU™„kĊƒƒzkKƒš„lU„ōĬlš™„@ŽnX°@llUxŹ²mKĉVWwk@UbUK@bmVmI—ƒVmwaWxXlWȁšmºšÞÆbUxV@ĵńWÆĉLkWUbƒaWzkbĉ`U„±LklōwUVÝ£™UW`Uwk@mk¯VkaõVX@WbL™K@XƧºWzxƒK@lmX@bkVVÆk¼Vbk@Vn"],encodeOffsets:[[128712,46604]]}},{type:"Feature",id:"2302",properties:{name:"齐齐哈尔市",cp:[124.541,47.5818],childNum:11},geometry:{type:"Polygon",coordinates:["@@Þ@ށĠKV¯a°ƒ@„KVblaČU‚mnnšKĊȚKX„°ŽĠ@Þ£ôllÈy„™š_@a‚ƒ@a—KݍVwU@±™¯Uƒlkw@kÞJlÅUa°ŃČaW—šVôƒƨVšU„ƒ@»nI˜b²Kބ°Klkn°ƒ¯I@ƒƒkšK@ĕÇń™@aƒX»¯@VĵlaÿVamI@aÅÝउýƒĊȗJƒôȁÅkmƑۃ@kxġ@@l™aVk¯»ƒīŹaƒkƒ¥Å¯™JUaWU@@w™aƒ»„KUkÆkUm„UmwÛ±±UUbUŽUXƒwWwÆÝk™lkUanaWwnKl™kal¯ka™ƽa›kÅx™a¯@™amb¯V™lÇwÛĀ™V@x™šmêVƜVV‚aôV„wÈx@šˌx„¦VÞ¯VšlmX@‚ƒL@¯Ua¯LmV@„„°X„ċK™V™ƒ@UƒÈ@‚¥@w—ƒġIU™km¥Źwƒ¦¯lmn@°kxVV@¦óam„n¦l@nx™lĉVóšmx™n™ÒĉĀĊ¼„þ„šǔêÞ°ˌĠÞÒ°ĀɲĀƨźˤȤƨĊ°w@£nymwnkUUV¥ôÑVmkÆmUUVa™mVIkmô„lxkXÞþƒbl„ƒl@kV„ƆƒV„xV@š¼VÒ@šŽUŽšnnނJ"],encodeOffsets:[[127744,50102]]}},{type:"Feature",id:"2310",properties:{name:"牡丹江市",cp:[129.7815,44.7089],childNum:7},geometry:{type:"Polygon",coordinates:["@@U`lLUlVL„Ulb„aô„lKnŽU„„b‚K°¹²W°b„aÞb˜knyUlUkamř²L@m°@lšmš²n`ôÅlK„x„ÜKnxV@„l@œƒ›ÅXyW_k@™wm™ŹĕmƒX™»‚ƒÛ™l°ƒôšÈ„»š—ô˜ô_WW@Uœal»šwU@@wšUVƒš@VƒXI@w‚Ģ͑ÞȻ›aU_@mUkly@¯óV»XmWUXUWmnm¥nUUaWLk»Æ²IÇa™wÅaÝ°¯nUa±a™ƒ™@¦õÆğ„@„™@Åb›xU܁nÇłlb¯¦„ôó»mƒ—@±ƒUk@Wwƒa¯xU„V°ƒxXbǎŁUV™™ƒK@¹ƒKUaȯ@ōݙXƒal™ƒlÛkalÇUǫÇńÇakbÝƆ¯nlš¯Ž@¼™VUx@x¯W¼™Æ¯šmĖ„Ĭ¯ČƒVk‚ķÅmxœ°ô²V¤‚bUnÞW°bĢw°V°„XxƒV°z@bÞ`@„‚¦„KĊŽ„I@xƒŽn„™ÈÈK‚„šV™„@VššXK˜xX„mXUx™a™b@‚kXllĊnVlUx™XkxlÆk„m@U„Vlš@ÈwôxV¦šbU`@zÆV@„²KllÞz@b"],encodeOffsets:[[132672,46936]]}},{type:"Feature",id:"2312",properties:{name:"绥化市",cp:[126.7163,46.8018],childNum:10},geometry:{type:"Polygon",coordinates:["@@ऊþÆÞ@bnJUb‚ĀnblŽĊš„„ÞlĸwǔÈŎKÈnôWǬê‚KV¥„ĸôUxš„@VšbU¼m`nnĊŽĊ„xlUšmkaVÿšLšwš@°»UmbKmݙUšwUmVknKUUl¯ƒKU™ƒUȃ‚™nK@ĠkX±lX„°„L@¯¥@wV_m›ĵ¯Ww™L¯ƒUkōƒÇVU™l›w—V󁱃¯aƒVka°wVk°mÞ¯Ŧřƙl™²™Ŏk™U@ƒmUkb¯ƒķŽ±„ó@kxȯó¯VUÒk„ÝŽ±LÛwÝ@ó»ÅUWw™mğw¯Ñ›@UkV±@k™a@¥ƒ¹Źÿ@aƒÅVƒwóVVUkU¯JÜóÈUl¯„yk£laUaVÑÇb@™ţ@kmómK™V¯IU¥ƒ@@ƒ™kV™Iƒ`@ô™¼„blU„lƒ™bÈb@xÇKkĢɳaÅɆō@ƒŽVƒK@z™@@¥ÆKnÜ@@aۏUw›wnU‚ķ@ƒ_ƒV°Ž@„klVššnULVVÞbVl@°™@nx™n°LŚÆlV„ȃmU²@VmĠLƒx„n¯xkWƒzšJ‚wnLmbXbW°šÆ‚™²™@™Žšx@JVx„L‚Ā²Æ°I¯º‚È@ÒnÈ"],encodeOffsets:[[128352,48421]]}},{type:"Feature",id:"2307",properties:{name:"伊春市",cp:[129.1992,47.9608],childNum:3},geometry:{type:"Polygon",coordinates:["@@ƒKƒ¯kWW²ğl@ŽmLšÇ„„VVš„Lk°VVmLUlVn™xšVnނLnaVŽ¯¼™@™x™KUĀlb™n„`n„Æxô@VbU¦ĸŰĸbôxÆ@„™V¥„»„IVl°LUŽll@²„mV„x@ššÞܚÞVnŽlXÅÒlbÈaVVUblb„J@I°lÞIn‚Æ„mxnbUbVLÅVm¤@œţVǤXÈÇĖ@šÈ¼˜aXVÜaXbWŽnzŎašř„KôbšUlw@¯naÆKnUU¯Üa@mkkVUĊm„™żÝ‚ǖŽ‚K„™°L²lÆI@ƒ¯¥ĉƛVaÞk@ÝVaĠlnUVwƒœómaƒ@™wĉ@™a™VƒxamX@aƒ@UaÅLƒaVWƒ_nWm£nWm_ÅV¯ƒm@m„󤁚ݦƒ¯ÅalmX£ƒ™VWUŚw™mÇ@@IV™„WUw@ašI@„k@wŎ»Wƒ„ƒ™ÅVaœK›Ika@¥lUkUlwÅwVyÈwWU@a¯U°m—Ç@UçƒaVa¯mV»ÅwÝUlƒUk™V@k„mUk‚X£šw°@@ǃaÝIƒƒam™Ûam„¯lğmmI@J™U™l±ÅōŽ—kWa¯VÝa@Þkbġ@ƒxÛnÇm@akkōVōl±škšÅšťŚÝ°¯nUl¯xlb„U°b²„ô‚˜Uœxšk‚VÈUŎ„Vl°„šKXxĶ°nœU`@x°¦@"],encodeOffsets:[[131637,48556]]}},{type:"Feature",id:"2308",properties:{name:"佳木斯市",cp:[133.0005,47.5763],childNum:7},geometry:{type:"Polygon",coordinates:["@@nš„b‚„ÞJ„b@ȯ@™xW¤Vlƒn@lšUVlk„ÞVÆxU¼°nUb„bVèÈ@˜ŽnIn‚@šĢmlUw°™żƒ‚VUn@lnL@VôbšwĊ‚lœ„JķĸĢl„wôwƨxVVUƒŦšxšLź™Èš°`nnĠwŎJސĶwôJ„@¤Xn܄ĸlšn°¼È°lŽ„„Uš‚b„xš@„l@ÞÞÈm°„lôwšL°¼ĸ‚°Þ²nĠ@ôwÞ`ŤI„V„ÒĠU„„@„VJĸbƄ²@°ŽĊKšœ„JĶaĢȰ@ô¥°nš¤‚bČUš@Vx„mUw@a݁ţƒÇ™ķƒ@ĕķīU¯²@ÆmVÑô¯X¥ċç@™ĉ»U¥ÝţKWVÅkUVÝŎUmǍÝx¯aķxÛUóL¯a±óōb¯™ƒÑŃVÿƒ_Åķ„a@UƒK@wm@Van@UmmLVa—@VImmXUWƒÝUřƒKUwÝUUƒkVƒk@l¯X›‚Å_ƒJ¯k™Jm„ÅLƒa@¥U@¯Vƒz¯@ƒ`@¼šmxƥšŏKÛk@±laÛ@@Xm@™ƒ@xƽ@WŎnšˣĕÅ@@aÅ@@nÝbǏ¯@ƒ_U›kUWƒkb™wÝU@ç„Wlw@anIƒ¯lyœX°m°VšašÛšm@„mVwÞK°ƒšXlaXmm_ƒ@UƒkwÝK@ƒVI™ƒXmV»ƒI@aƒ¯ğW™bġaU_¯JU¯ġŽƒ„ĉ„k„ō`±nÝÆk„™bóĊ¯Xƒ‚ĢX‚mVn²JV„lbUè„ČmK—wlóğx‚xV¦UaJ›šƒbƑÿÝL—l@bmbġx"],encodeOffsets:[[132615,47740]]}},{type:"Feature",id:"2303",properties:{name:"鸡西市",cp:[132.7917,45.7361],childNum:4},geometry:{type:"Polygon",coordinates:["@@‚LšKVVnkšbVšÈb‚²U°VnklVlaÈL@anU°ÜmXV`œnôLƒèšxlŽšLX„˜L²ašVVmÈX@ķ˜lnU„Èl`ȹš@ŤŽ°U@x„KnnV„mlnnUl‚lVnnaŎwlVÞ҄@n¦šLVŽ°lšwVk„Lšaގl„n҄š@xmLÞ¤Wnœ¼‚WÈLVVUxlÈô„„WVaU_VKšKXUÆbn™‚nôK„bÞw°bÆWXamVwœK˜™Uw¯WUk„UlJUwVUa™@@kmyzm›ĉw@kVwškƒW¯ÅKU_Vmƒƒ™xU@aW@@kK@w„a@Kƒ@@kVUƒaky°_Vm™kna¯K@™ƒL™wġk@@IÇóX™ƒwVakmV@mwXUWanƒlĉ@ǙUw™KƒƒóšܛNJۄm°@›w—Å@ƒ±b¯Wƒ¹„WVwŹĕ¯kVmōb¯w@aƒwmV™UUb™V™IkaVwķ™xk¼›b@VXXó`󗙘ƒ¼Çó™¯„kŽÜš„š¼WŽn„źĖnššxl@X`WzœÆ"],encodeOffsets:[[133921,46716]]}},{type:"Feature",id:"2305",properties:{name:"双鸭山市",cp:[133.5938,46.7523],childNum:5},geometry:{type:"Polygon",coordinates:["@@™UƒƒUwó™mÑÞÑUÝÝUkmmŃyV¯ī„¥ƒUÿĉ¯mÇkaWbÅX¯aÝxƒaóLmmšÅaWV™LULV`UbƒXóƒkÇVwUUÇKX›»XmÝ£nK@wƒ™mÑkƒÝ™bƒKUl™x¯kU™Km¥ƒ@ÝÑkUōxmbUmkVkmmnkUƒmmƒL@w¯Vţ™@Ǻk_ƒÇmV—k@ĸVx‚VÈ°lLkllšUbōwƒnVW¼nlUx¯XmWUnÝ@™xÝUó¼¯J@LVbkJWnkb™W¯„ÝLUxƒn@‚™n™Ü™b¯U¯n›Wkz„°mJ@bkxƒX@èÞVšxlaX„lVVœ„`°@ȐÞa@mÆ@@bÆ@ˤĖm™Xōƾ@@wš„n@@WÜ@kb@²ÜlŐLƦ™nw™@»„_°@„y°UV@@¦„bÆKnƒšI°l„IÆ`œ°W@k„llUV„ÞVVx„LƚÞVX„WVnnUJ˜@UbnKVnm@Ubn@@x„L@VƒbÆĸ„`UĀƄ„Ò°šŎa²ô°bôKÜVĸw°bÞwȎVnÞōVUÆlXU"],encodeOffsets:[[137577,48578]]}},{type:"Feature",id:"2306",properties:{name:"大庆市",cp:[124.7717,46.4282],childNum:5},geometry:{type:"Polygon",coordinates:["@@mÇ@сǰ¹¯J±ÅÿƒKUw‚I@™wšš@š±Å‚™X¯WanamKx™I„ylX°wƒm„wğKUn±@nVDŽUƒÅkƙ¯Kšmmwš@@¯UkÝaUUVK™mU™lk@ƒ¯„U„`ĸ@V‚mœxVxܐ@bÛ@m‚ÅL@¦š@@y„L‚U„Ŏ@ÆɅɴblġÈL@wÇaša„ƒkkVƒaš»@ó¯_ÝJ™wÇaÅXny›U¯¥Å„@w™bÝa™Lmm@@ƒVUŽlbğVmš™¯Xƒm_ƒ`¯_Ux™m™L™a¯b@mƒaó¦Çk™¤V„@bóJknVx™VXx±aƒLUbVxkLVlLWlƒ@nX@VÅbWlÈnƒx„bWšÅbmŽ@xœbml°b™„XbW„XVmnn`ƒLmšnbmb@šk@mwU@@š¯Jlbk°lbkšmLXxmbVbkllšÅނxX„xVWVVa²VܲnxƒVVnÅlVlƒL„¼šb@xV@XŽVbšIÆ°„¦„lźb„Ĭ°¼Ulšb@kĢ@lw„@ƒÜlnȂƄóȘI„ĉ"],encodeOffsets:[[128352,48421]]}},{type:"Feature",id:"2304",properties:{name:"鹤岗市",cp:[130.4407,47.7081],childNum:3},geometry:{type:"Polygon",coordinates:["@@Þ¥‚™ô£nƒn@°„ÆUn`mXn¤mX„`UX„bÆKVb„@@bnW‚b„wšUšbĊ@šx„@nbšWVmƒ_mm@ó»Um„ŘWXkĠ»²¯‚¯nķšwŎ@ĊšŎK°bĸUnјKȦĠÈbÆknJššÆUĢV°IšŽšVƾƒwaV™ƒƒkÇ¯¯»™mķkۃWm@£ƒóIĵxݏōIğxmm¯_ǙŹš™K™wťŽ„UVUŽƧwóxƒxġkĸķƒIk›ĉ™xóa@UmK@kVmUŻ„¯šVxkŽġn™‚@mmJ¯n°V@bXVÇxUzÆxkxlVkV@¦lbœJ›LUbšÆƒ„X„ō¼@xƒl@™J@bVxƒXUš@JÈ@šn™xVÆUXš‚„W¤knÆb„°"],encodeOffsets:[[132998,49478]]}},{type:"Feature",id:"2309",properties:{name:"七台河市",cp:[131.2756,45.9558],childNum:2},geometry:{type:"Polygon",coordinates:["@@²mŎ_lƒĊƒ„ƒĢV°°IV`ĢbšaĠX„°@b„JU¼Wnš„UJ@„ÞLlxV„„@n`lIUa@K°Iô»ÞVšwÞ@VmnX°WVwmkX»‚U„mŎxVak™lkkKǯUUwÇWUn™U±b—KWƒ™Kk™w„çóK›mU_nW¯ÛmV@bÇKkbkUml¯U±VÇaU™™amlUU™LK›„k@ƒU@mwÛLƒŽƒwkLóÆm_™±™nkŽ¯@@n±KnŚlbkVV‚mz—lWXº@Ķ°"],encodeOffsets:[[133369,47228]]}}],UTF8Encoding:!0}}),i("echarts/util/mapData/geoJson/he_bei_geo",[],function(){return{type:"FeatureCollection",features:[{type:"Feature",id:"1308",properties:{name:"承德市",cp:[117.5757,41.4075],childNum:11},geometry:{type:"Polygon",coordinates:["@@lLnlmxn„„IVVlUnb@VVxXJWL@LގVnnV„J˜_@wkmšK„b‚x„wXk˜WXXšKlb²K@nVVVb„L@WlU²„lKVnUJVz@VVb@lżmVUVnbôaVX@°Ub@lWbXš@b@bVb°x„@VxÈLVlšaÆ@Þb²k°@lVUŽ@Xn@VW‚LXb@¤VXšKVVVLnm°_ƨ¤@aUIVa„alkX›°k„™V@„alwUVy„U@k󙰃na°UVUUmUÆw@mkLVUƒWVI„WšLnn@xlVnK„myU@ƒU°UXaV@U¥ƒU@Uƙ@aVUkWU¯ƒaU@WLUV@bkbmKULmKkUVUkmVIUwlWV²™Uml°U@W„LUwVm@UUK@_ƒKUUÜaXw@ƒVKUU@mVIUUlmnIVVVbÈVlKnbVKš@nI˜@nVnwVLVK„K„„˜Vnb@aUIVW@In™°@lVnIš@lWĢ@°UVL@b„@VyUUƒa@w@WUnU@Wǯ™K@UkkJWaÛbmk@mVaÞU@amkWƒ@mXUKkÿƒ£@a„kl@Um°UXwla„al@nmlXnW°znW@aƒwV™@ƒakbĉ¥VmU@ƒIƒVƒUƒJkUmWU™KbmkUaƒKkUVU@KV@@klw—™WaU@kmƒXVènbmlUUƒKƒX¯JkbƒI@JmIUWU@ƒLml@XkJ@U™kƒK@aVKwWa—IWwƒmUƒ@mU@J@UaċU™aUUƒVkI±ƒk@UUƒ@UbVVm@UVKƒLƒlkIWaULUWƒXUJU„ƒ@WbUb@lkXUxm@@JVn@J@b„nƒb@Vkx@bšLU‚Æn„JšaVXnKVVmzX‚°V@_lJXxWXƒK¯bÅamUƒ@lUI›bñJ@LÇKkIÇ`kxWL@„ƒ@@bUVUb¯xWKk„Å„VlULW@ƒŽn¦Ul@I™lmUUUVm@kWƒnkKma¯XUKWmnwVwÝL„mŽ™VUbUVWb@Lnxm„xVŽmbXx›¦@„nb@`™„ƒVƒ@kbƒLU„mVUlkbVXkºmnm@@xk¦šbĢÜlš"],encodeOffsets:[[118868,42784]]}},{type:"Feature",id:"1307",properties:{name:"张家口市",cp:[115.1477,40.8527],childNum:15},geometry:{type:"Polygon",coordinates:["@@k™ġۙal¥@wn@nml¹UWlaVknUVƒ„Kla„@„Ušƒ@_ma@ƒœ¥WwnaU‚wnƒmw@KXaVUVašUnmWUk°™lƒnUVUXWVw™IWVóKUI@WXƒxUU@mma@kUKWLkw@yk@ƒaVkUUċaUU@Wk@Unm@UVmLm±IUƒkJ™kWƒ@a„I@m@U„ƒVƒ„Ula„@VXVƒXmVwnkWKƒKU_k@m¥ƒmX_™JmnU@km@U@KmU™VƒU@U™@Umk@@LƒmW@Û£Wƒka@wk™@aƒI@mmk@mUa@UmUƒIƒwW@aWUƒbU@kbÇ@kwƒ@makVUk™U@aƒm@aU@mxkUƒbƒKUXUƒ±KXVWLUK@wkU@V™@WXUa@WbUxƒJIƒŽ@¦VèVVX@±ê¯KUIƒ`¯UULVx@Vƒ@UKƒIƒVkLmVkKmš@nUJÝbkIUJVXšVVxVbU„VJ„Un™°bV„mlU°„XnK@Ul@lVÈVUXšx@W„@VXšV‚KÞb„n@VnbV„m`ƒUx™kW@UVkL™Km¼@lUnUJVnV„XV@Vm@@LV„klƒIkl@VƒWlŽULWKUL@mJ„@blbUVUlmzUJUxm@UUbċÜk@Ub@VšLVV„¦ôbVŽmšUKUkU@m„„@VlVn¼WbUJ¯@@„°šnIllÈl˜@nXšWlLœk‚J@bkxlxkxlXUlklJƒšXL@bW„n`@nƎXxlL@xl@Xb‚LœKlVlIXblVUbUJW@lX@VL@VVŽšXšJšw„n@WnL°K„bVbl@VI@K„@U@nmVmV@XUWI@aXm@™VUUkWmn@lmUUk@mUmK@UnwVĉ@ƒƒmU_V@XJôVVUšLVUn@šllUnJl_n@šml@XŽlLlw²LVJUL@VmbVblVXmVnlš@Ť¦„nn@܎@bšl„@@XV`„Unb@VlLVb²J‚Xn¥ÆÑ@¥Þ@"],encodeOffsets:[[118868,42784]]}},{type:"Feature",id:"1306",properties:{name:"保定市",cp:[115.0488,39.0948],childNum:23},geometry:{type:"Polygon",coordinates:["@@VbXWš@@UlV@xVLXKWU²LV„VW„L„alVnwV@@b„n@bšVVllUnb„@lxÈ@laV@„aXV@b‚X„x„J‚nV@VVb@nnl@n„J@blšl@„ašƒU_VWUwVUškUm™Ukb±mVwœU@VIUW@UWk„@VU@ynL„m@IV@‚bnK„LVaVmnIlaXwV@@WVL°@@xnX„@V`V@VbUVVLVKnwnL@ll@@_V@VVnaÆ@œKVXÆ@nƒ@wƒKmU—™Wm@km@kÜKXU@ÑW±nIUwVƒ„Kla@I°wU±kškmm¯mƒ_ƒJnƒaƒwW@IVaUama@wƒUƒmU@mVw@aXk@mWa@£km@aƒ_kVmUnWW@¯bƒkUmk@ƒVÇm@@kUU™KUU™@UVUamVUaWIkb@xU@@amUkKƒVkam@@kVUkUWmKmUkLUb@xmJƒ™U@UImVÛVmnUwƒJƒU@VƒX@UWm@Ub°¦UšmxklmX@`ULU@@UW@@xkn¯@makV™UmxUb™°ƒlUšƒbUbƒnUJƒUUVƒa™LkbUU›JUU@mUUUƒJkaƒ@™xUIWJƒUnƒJ@V™zƒ@kb@`@bln@l™bƒŽ@X@š@š„@Xl‚bnbVb„@„„VJlInlšbVw@U„K„l@lbnan@Vb‚JôLn‚UzlV@lÈLVbVK@LVx—VWXX`WxXz‚bV`UXV¤nx@„bVlVnVlUL"],encodeOffsets:[[117304,40512]]}},{type:"Feature",id:"1302",properties:{name:"唐山市",cp:[118.4766,39.6826],childNum:11},geometry:{type:"Polygon",coordinates:["@@„@VVl@²„lJ„UVVšbČVVb‚@@InV„@‚V„nXx˜JXb‚xUL@b„Lšl@VlI@Wnk„KV@VXnJ@I„Jla°I„W„LVVnkmaUç„WVkôaܯ„@nV°wnJlaV@VUnUUaW¯wXWWwna@£UaWKU¯ƒ¯@aVUkKUamUUƒn»‚an™„IVwUWlkš@„LlWVakU@K„_lƒšbÞU°@šy°n„@„KÈkWW™ţ¥ĉōƒkġWUw¯£¯ƒÇwţwƒ@kK@kƒ¥ÝwÅbǤېťV™lW°@ĸ™x@VVVULVLkl@V@Xƒ`Ub@Xm@UWbƒk@ÆVbnLWV@lnXUbl‚@X¯lmU™VkKWLkK@_UK@U@UmmUxmVXLWVULkU@`W@ULUK@XlJXzV@@xml@VU@UX@Kk@WbUK@Xn`ƒXmJnšmškxUVbUVlVVxUbV@nKlL„kVKÞbVKXI°KVšmVUIUKULVxVJVLkV@Vƒ@UbU@WUU@UbUK@b@nƒV@VkLmb@b"],encodeOffsets:[[120398,41159]]}},{type:"Feature",id:"1309",properties:{name:"沧州市",cp:[116.8286,38.2104],childNum:15},geometry:{type:"Polygon",coordinates:["@@@ln@UȄŽl@Vn„l°aX@mXnVlU„`@bln@¤Xb@nWl@bUx@nnV‚„„V@xnbVbUb@J‚X„x„b‚mXa@k„UVwlW„k„KôVm@w™kkK@kl»Èƒm™VKXkla°@XVV@VI@ml@@Vn@VX@V@J„@VxUzVVšš²blVk¦@šĠ@@»š@VK@VÈLlK@XnJ@alIUl„a„VVbš@„n@a„U@WUIV@mUn@mKXml@lL@LnWšb@XV@@a„VVb„V„@VV„IVWÈb˜IÈ»ƒǟlWšaVUÅUƒƒ™Um@kVU™WVkaUwmaóUƒJUU¯ÑU¥mk™¯UaƒKÅnÇyóXmWÛX¯aċbÛa›J—W™ÝU¯»ƒaóóUm@IƒšVVl@bƒLUJWLX@@xšXUxl¤V@V„nVUV„XVbVš@Ž„@@VVn„°VŽ@ţU¯VƒUmƒUWV@mUXƒaƒbUKUwUaÇKn„ƒVk¦Wb@VnLmV@bkV@n„xW`Å_UVƒV@bƒUklVX@VmlUƒx@VVL@x—VWVL@VW@UUm@"],encodeOffsets:[[118485,39280]]}},{type:"Feature",id:"1301",properties:{name:"石家庄市",cp:[114.4995,38.1006],childNum:19},geometry:{type:"Polygon",coordinates:["@@la„@šy@U„I‚m„VXIVJšw„@lb„IVVnV‚@VVœIVVlašK„bVU„VVI„mVa„aV™„kš¯VanwšVlUnb°@lm@wX@@VV@VK@_nWlknwV™¯¥Van@VX‚@„W@U„V„IVxnmÜUnUVJV@„šnI@wValKnV@k‚mU£na@mVk°K„LVa@UU@UƒmknWWkXU@aWW@@km@UaU@@klK@UkaWaUnamm@U„a¯wWU@UkƒL@ŽUn@x™V™lUXVJUb™LmU@aUWUkmKkLUUm@mW—XƒaƒmmkkWUm@@U¯JUUm™kU¯@mKĉxÝwÝ¥LƒUóŽmwkUUUWVkKm™kKmLX„lxVLVxXJ@nVJnz@VWL@`nX@šƒxƒ@kVUUmJmIXx„JV„ƒnUVƒ@UVV„@LUšƒ`UXVVƒ„ƒlXL@l@b@VmX@b™xn°™UƒbkKWLXlW@@bƒK„mKULmakLUlmb@šXb@xmXU`V„b@`lLx@nWVXL@‚°WlXnlb„KVK„XVb@˜X@l_lJ@V@XnŽ„I"],encodeOffsets:[[116562,39691]]}},{type:"Feature",id:"1305",properties:{name:"邢台市",cp:[114.8071,37.2821],childNum:18},geometry:{type:"Polygon",coordinates:["@@nKlLnšlLXUVVlVnxô„V‚KÞ¦ÞxĊwnL°@lVnšVV°I@Vn@V‚lXnl„n„b˜WnXn@VVlKnLVlVX@bnVšKVaUIVWškšU@wVm@¯@U¥VmU_°lšK„k‚w@LX‚Va„U@wšUƒUUKlUóW@UVUœUlƒ°K„wlKU_na„KVnlKkkšWWa@IœJVa@IlJnU@„KVUUmVlaXUl@lm@kXWÝÑnkƒ™±™k@wğ›@@U@mKĉLmVJ@zmlnŽWLUÝJU_ƒ@@šmJkXUVlbklÝ@Ýa™b¯@¯±JÅwġaUU@ƒkU™@mVI±bUKƒL™WUXƒJkaƒLóKULWbUVkKmnk@@bmLUŽƒl@b@mnmJkUULƒaƒbnŽmn@lVV@¦n@„l@b‚znx@`Vz@b„xnV@xl„lbnKVx"],encodeOffsets:[[116764,38346]]}},{type:"Feature",id:"1304",properties:{name:"邯郸市",cp:[114.4775,36.535],childNum:18},geometry:{type:"Polygon",coordinates:["@@„bVKlVnInm‚@@a„kVnK@al@nmlLVUXaVKôL„Klb„IVWšX„KVL²a‚JnUš@lV@„VVĢbÆx²I°Ž°@šaÞbÞ@lkkaVUlWnI@™„@V`ÞI‚VXKmnk@y‚InUĊKƒÇkUUamUUkƒƒ@aU@U™ƒk@WUwVkVJVkkw°a@„mK@UX@VV„LVW@wšwVa@¯Xm@@lUIWaU@UWkXWmU@UwmUkKmn@lkVƒ²™VƒaULUVmJUUUwƒLma@™UmkIUm›L—mVšmx@b™LUamKÅL@VmbkU¯KÝamzkJUb±Vkb™L@lU@WIkJƒzkKmKƒnUalWkkKW@@nkbk@WW¯XUVUJ@XlJ@Xƒ@XlWLkUƒ`VUnaWa„UV@UVIƒaUxUUmVƒK@I@W@DŽU@@U@bƒ‚@nmKXmx™@UxkVWUX„@`VLlL@`™zX‚Ýb@b‚„@VUVkIUJVz°KVlnLlKnL„xlLVVUVlXUJ@nn‚„I@mVUlbn@@Žm„@bV„nV"],encodeOffsets:[[116528,37885]]}},{type:"Feature",id:"1303",properties:{name:"秦皇岛市",cp:[119.2126,40.0232],childNum:5},geometry:{type:"Polygon",coordinates:["@@lnV@Xb˜škx@lU@@LUVlV„LVbnl‚ašLXVVn‚l„I„V„U„JV@UnĊ¦la„bš@nJ°UmƒV@„wn@VU„JVI°bnWlXnWVLVK²b‚akk„lI@aUaVƒUwVUUalaVwnUVak¥šX@W‚kœLVÓm„mUK@_lWš@n_UK@alÅ@ğÅƑŃݍmƒ@їţÇlƒLƒ@¯m™z¯@ÝV™ak„ƒ`@LlVUbkXƒK™@klVXUxƒJmšbm¼V„nVVblLUV@b„°V°XLVb@¤mbXxWX°xXŽVbmVUVU@kbmI¯xmUƒ@Û°óbUl"],encodeOffsets:[[121411,41254]]}},{type:"Feature",id:"1311",properties:{name:"衡水市",cp:[115.8838,37.7161],childNum:11},geometry:{type:"Polygon",coordinates:["@@„KVlV@X°xƒb@VnnmbVŽXblb@VkL@lV@Vbn@@l‚@XX@bWVXlmXnlV„V@@VUbƒK¯LUl@nmbV¤n@l‚LXnlVUV@ln@lb„UlLnV@bV@@wlaXJVbnUVbVUš@VVšLVVn@VVX@@U‚KXU˜U@wUK@U„wVnk@UUWlk„V@a„UVUÆ`X_ƒw@mlU@anUmK@UXal¥„UmƒÈLVbVxVL„a„bVW@nXU‚Vn„„V°UŤV@Uƒ¯Um@Uƒ@@U™UaƒWVUmUUƒU@k£Vw™W@wW@XKƒIUa@wU@@al@UK@_mKXKƒbUU@aVKmš@Xmƒƒ±@kbÇakLğVaUw@a@ƒmkUJƒk@ykw@£ƒWX@lknk@WVkbUŽVnUVƒL@‚mVkI@JUb›I@JXb™XllkLUmƒLmbV`kLƒx¯Lk„›VUV@VôXkVVL„V™V@xƒVUbW@Kxƒl™L¯kV`UnV¦°@"],encodeOffsets:[[118024,38549]]}},{type:"Feature",id:"1310",properties:{name:"廊坊市",cp:[116.521,39.0509],childNum:9},geometry:{type:"MultiPolygon",coordinates:[["@@la„Ušš@šUnL@VWbklWxnIVV„V@X„JlbUlšXVbn@@K„mV@@X°WVInJmn²@lmVbnL@amKV_kwlmX@@LVamaXaƒaVU@UnJVanLlUkaW@UaVakK@IlKUU@an@ln@alKUƒkIVa@a@klaUKUV@UkUV¯šKVƒV@kUmƒU@@a¯ImJUU@VV@UL@Uƒ@@WXUWa@Ukwm™@ƒX@@w@al@@aVIUmVUUUVWUknK@I@™l¥kU±a™™UUVyUwƒ@@I@UUWm@@Uk@@nUJU@WU¯@kbWlULnšÇ„k¼@llLšl@xUnóŽƒLƒlkXUxƒV@lWb„I„`°nnn™llŽV²¯x@JkbƒLU„VxmJX²@ÒWVÛL@lln@‚Xn˜šnV„L"],["@@@kX@Valaa@KWI@UXW@WanaUIW@UaUKķŽk_W@UVUKUš@bƒ@UamxVXnJUbWVXLVbn@W°kb@U@Wó¼mIU¼k`V„@bVbl@„lX@lUôVlUœIV`lX„Vn@lUlVn@„l@UVaƒIUWl£Um™VWU@@UUKlUUUnƒVL@KšUnLVWUa›@™U"]],encodeOffsets:[[[119037,40467]],[[119970,40776]]]}}],UTF8Encoding:!0}}),i("echarts/util/mapData/geoJson/he_nan_geo",[],function(){ +return{type:"FeatureCollection",features:[{type:"Feature",id:"4113",properties:{name:"南阳市",cp:[112.4011,33.0359],childNum:12},geometry:{type:"Polygon",coordinates:["@@lKl@nVV@„bn„@VVnm‚nL‚LXx@š„‚VLlKVU„IXWÜ@șlbl@XUĊUlwnW„LÞw‚m@ÞUVmnVl@nX‚JXLm@VnnJla„I@VkxVb„@VŽln„J@knKVn„@°aVanal@XK°b„‚@š¯VJXIš„VK@al@nV„k‚@nK„a‚b„@XL@blVVKVLXK„@VaVI°mVaX@V_@a@yUkVw„VšIVašJ°™@anIlaV@nKnXÆm@wUUV±UUWUKnaWwXUWmŁ¯Vƒam@kakImƒUKƒ»lan@VXXa˜W@@UlUUa@a@UlwUƒV@Xal@@anIVaUK@V™XmwVmUmV„LXl‚@nalLnal@„šnKlkV@@UnJ‚UXnl@nVl¦V@@VnJ@nUVVVVIn@Va„JƗn@@K@m„kƒa@kmWVaUI@a@™k@@aUL@mmaVIUKUVƒ@@IU@mƒUmmL@K@UUUU@mW@@nU@ğ»mVmbk@klW@UXnV@LƒJm„™lUnUJ™UUUWƒƒ@UnkKƒxmLa@ƒ@@lUU™bmUVWk@@nkUmam@UakJU_ƒVm@ÅlÇLUVmVUwULƒKU@ƒk@UƒVUlU@@Uƒ@UaUUWaŎƒzJƒaWLkl™b@bmL@„kKƒabWŽUVƒ_@mV@b¯JmXUbUK™¤ÇLUU@b@JkLWmkUWIkJ@VmX@JUbVXU`¯VV¯blK@LXKl„UV@Um@@Uk@kxWŽkbƒL@KkbmL@‚UXmaU@@l@x@blX@xUJ@bULUlULÇ@@VšnU`W@@nÛ¼U@@VmKUkm@VVX@@xǚ@bUbVb@VX@@x‚LUb@lƒ¼XLlbUlVVU„Ub@n"],encodeOffsets:[[113671,34364]]}},{type:"Feature",id:"4115",properties:{name:"信阳市",cp:[114.8291,32.0197],childNum:9},geometry:{type:"Polygon",coordinates:["@@VllInJlknJVkVU@mXlUÞ`VnV™VU@U@y„@nXlKV„nJVkXKWaXI‚b@yVk„VUkVwn@‚K@nW@k„KlUXVVUlbnUV`n@V_V@llX@@V„b@bV@@nlVUb¯‚WLnbmb@ŽnLnK˜b„U„bVWnLlaX@VVUX@Vln@`kL@ll@VXVJÈIVl@XÞJ°Una„LlylU@UXKlnn@lanLWWnbVI@KXKVL@LVWVL@UVKUIVWX@@XÆJ@In`@lJVI@a„WšÛnK@UlK@UU@VK„nlm„nXal„UllLUbVVšknJ@nV@Vm@a„l@@xnV„„lJVUU@™w@aƒk„@XW@_mWnUlŁUmVKV@VXwW»XƒWaUwnkWUkVUƒU@@@WlaUkkaƒIWVkm¯xmIUmƒLUVƒaUIó»m@mmwXk@a›mk¯¯l™@wƒmkLmmU@UbkUWJ@XUbƒJ@b@l@znÆmK@Xk@Ub@lm@ƒI@akmVKUUVUkU@U±JUbkƒ@IWmkxƒa@UUV™UWVkIUaW@UlLWn@VkJƒI@VkK@L@bmKƒkJmUUaUKWXk¼VxnJ@„V@@VULV¼ƒ@@UkaUlWL@U@W@IkKmL@KULUWULWKUXUJmIƒb—KƒŽƒ²UW™nWKUUkLUƒmUUam@UU™@ƒmUL@xkV@„VV@bmV@Vk@mwkUƒVUx@mbX‚ÇnVb„‚UL¯šWŽnUVLVb@xnlWnU@UVUVVUbVVlVkn@llVUXUWUXVbUJ@bmLUJnb@nVK@bl@@š@bVJUbnX@l„b"],encodeOffsets:[[116551,33385]]}},{type:"Feature",id:"4103",properties:{name:"洛阳市",cp:[112.0605,34.3158],childNum:11},geometry:{type:"Polygon",coordinates:["@@VVUllLXl@LWn@J„@bƒKUVmnL@`VblLnbV@„b@JmL@LnV@VV@¯„VJVnXL˜@nm@aÞ@‚a„k@m„IšmVbXL‚ynLšk°@°aVJnUV@UVVXk@WJ@VXLlUnJVnnƒ°U@»°U„wl@šb„WmUXƒÆ@VLXU@m@U„a@I›mkb™a@naWW@_@WXUV@@U‚ƒ²@„K@I±U@¥kKWLóLlƒa@£Um@kWKXU@mlLXUVKUU±J¯_@`UL¯Wmk@Wa„kkƒlUnƒVUVaU@KUU@mmK@_ƒa@KX@VaUIm±™k„aVKVUkw™@kaƒƒW@kbkL±UUaƒK@UUKVak£ƒ@UmmL@lƒIkmUƒ@Ualw@UƒJkbmIUmn@WKImWk@mUUnÝV@ŽnÝxƒKmXkxĉVWVk@kaċšÛ@WXƒJUV@zŽm„VWnbUbVbšLlUnŽ‚lUÒnWV—VWnk@@Vm@kxm@Un™l@Ll@@V@šXnƒškJV„šV@nlVXx˜U@l„n@aš@VLnWĊ¦nxš@lbVKXLl@ރVLƒ„XJl@XXl`lIXVl@Xl‚XUVšK„wV@lanx„zUbVJ@VVX@b"],encodeOffsets:[[114683,35551]]}},{type:"Feature",id:"4117",properties:{name:"驻马店市",cp:[114.1589,32.9041],childNum:10},geometry:{type:"Polygon",coordinates:["@@n@„b°UƂXnVlnLÜ@VLœm@n˜@na@J„„m@k„@lVšVxXX@„V`lLV„XVV@VVÞLVV°„²@lašbnxV@@b„Lšmlm„_VWnIWUna@lšLšbnV°ƒVL@KšV„LVUVaVLXK@mÆXna@wVm„a‚@Xw@KlL@a„@Va@wUkaWnIVƒla@Kn@Vn@VUl@nKVn„J@LnK@aVkVUUWƒ@VakUVanI‚²X‚W@UUU°KnUVLl@XaVK@ašU@KUI@W@_lm@KkLUKV_Uƒ@»@UVJ@XV@@mVL@K@U@Kk@VwUUm@kmWL@VkVkzƒKmb¯VÝI@WUkÇJUIUWk@@klK@_km@UVWUUW@kbmKUXƒaƒV—amLmK@namaXK°VakU@mU@@aƒa@UW@kkU@U`m@U_mVkaUVWUkVƒL@lmX@ŽLm@UxVlƒUUl@zaWJXbWLUlmIUƒkLmWƒ@@z@VUVUšUmÝ_kVWŽ@nUVUlmIklmIkJUkƒl@n@Lm@؃IUbm@UJUUVU@mmI@UU@k¥mUk@WmVmI@VU@klmLƒ™k@mbkKmb@WkƒKUŽVnUnnxšW@UVLUbmJ@bk@WbU@V„kx@V@bVbkV@V‚@‚—XWbUWm@kb„¼VLn„lJlb"],encodeOffsets:[[115920,33863]]}},{type:"Feature",id:"4116",properties:{name:"周口市",cp:[114.873,33.6951],childNum:10},geometry:{type:"Polygon",coordinates:["@@lšnb@xlJ@UnLlKXUlJl_„KnV@xVL@bkbVVUè@šWb@„Ubmš„ŽkšVšmbX„VJnUl@„a°@@b„LVbƒlXx˜InmnLVw‚anJÆw²IlmnXVl°VVbÈaVb„@lkn@VWnLlUVmÞUUklƒkƒVkUaVaVaUw™K@kkaVWmw„_„‚l@nU„VVb@b„aV@VV@zXJl@@kl@šlœk°WVnÆbnbUšVJ„Iš@VKVm@k™K@_kK@a@aU@@wW@@k@aUW@IUWVUnLlUlVXKVwmk@W@—VWa„¥@k@lnƒUIÇKUaU@ƒUUVmIUV™Uk¥ƒVma@¯k@Wanwmƒ„@@n@@m@UIVƒkUVamUXWƒaV™U_™@ƒmUVUImW@aUIĉK@VmI™b@lU@@n™JƒkU™@KƒIUmmLk@UVm@UŽm@@LkbU„mJXlbV‚@xUbƒ@@bkK@LWx@ƒbUn@xmbÅW@nWLUKUbUVƒK™U@LUK¯„mU@šVV@xULUŽVL@bU`WšUz¯aUamKUaƒ@@xkX@x"],encodeOffsets:[[116832,34527]]}},{type:"Feature",id:"4114",properties:{name:"商丘市",cp:[115.741,34.2828],childNum:8},geometry:{type:"Polygon",coordinates:["@@XVl@lLȃ„@VkV@V»UanƒWX@VaÆÇô@ÈaVX@xVJXUÞU‚aVLĸbXKl„V@šm°Vn_ny˜XX»mUk¥lK@a„_@yšInaVKVa°_@WXI@ƒ@K‚VnIlbnaV@„l„@‚a@_w@ƒlwUKm™Xa@UV@š»Vƒšw@kUKVUUm@w±VUXUKUwmJUUƒ@km@@±mXkmUI™@mm™KUwkbWakLWaUIkJmŽƒX@l@@VUX@JWbX@VbULWbƒlUVULknlV@bVJk„mb¯KknWmk@@nmVkx™@ƒVmU¯KUnUL™@ƒJUIV™maÅaUm¯X›l™kk@@lk@WI@yUUU@ƒb@aUaƒUmVk@ƒƒ`nxUXlb@lšLVxUbUbVbUll„k„VlÝVUnkVmKUXm@klƒ@ƒnUx@xnxƒn@`VX@V²x@V@b@„Wl@zU`VUVVb„L@Vƒb™W@bkXllkLWV@V„@VVÈwlVœ@@X˜K²Llb„WnnÆL@VnJWn"],encodeOffsets:[[118024,35680]]}},{type:"Feature",id:"4112",properties:{name:"三门峡市",cp:[110.8301,34.3158],childNum:6},geometry:{type:"Polygon",coordinates:["@@WKUmUI°ƒU@@UmU@KnK@IƒaU@makKUa@_‚KnmVU„L@a‚ƒ@IXm@KWkkKVkUU@aUW@UUIVaƒymwkbU@ƒx™LVUWWkk@WUkJk_WWk@WI„ƒUK݄k@WKULka™@mwĉ¥mXUK™@@bƒm@k—VWwkU@m™UUƒlI„™Wm@™@Uk@@KškVmn@lwn@@Ul@Xm˜UXUmVсkmkV™KUaVamaUXnƒ‚@ykLUKƒ@™WwKmKnUm@UmƒƒaU@mUk@kL@lƒxċxUnkVmnXxWb@`kzWJ@V—LmVUn™lmUL@lW@Ub@VšXUbš`VLUbUJ@nmnUlUUm@@bUJlnU„š‚U@lxkbƒ@@XƒJUnƒ@kb¯VVVmlXXlJlzn@VlkVW@bkK™bmškŽUbVb„lƒXVxšKÈnšwÞlĊKlšVnKlwX@lL@xlUnVn„@šl@lmX@ƄÈb°¼ÈwVJlx„_°xšašlšUÈxlUnbVxnL@lllšbm„n@nb‚@@V„L@V„@@„VLšJnIVVlKnV„_"],encodeOffsets:[[114661,35911]]}},{type:"Feature",id:"4107",properties:{name:"新乡市",cp:[114.2029,35.3595],childNum:9},geometry:{type:"Polygon",coordinates:["@@XVlL„K°bUblbUbšl@nX@W„XVVKVkš@@Žmb@„Ubn„W`kL„LƒV@VVLnKlVXIlVš@@a„@l£nWlƒkVa„@°bnUlLVlna‚bnUVUXKlU@ƒ@lk@a„I°y„@ôkUU@wšmôšnkWakml™UkVmkUlmUUm@nkUKWanamU„LXW@U‚VnUln„`l„œblL°KXV@ĠJ@L°„šJšUVw„anK@UUImmƒkK@¯±Um@IVmUmmÅnWaUK¯aUk„w@W±kVƒx™U™VƒwƒnÅJUIWaÝJóI—bm`ÝbÅImJUI¯¥¯@mU¯UƒJmnUVóUkl±V@zXl„bWVXL@bm„mº@@XmJUXU°llk„@nWJk@U„@¦U`m¯ŽWx"],encodeOffsets:[[116100,36349]]}},{type:"Feature",id:"4104",properties:{name:"平顶山市",cp:[112.9724,33.739],childNum:8},geometry:{type:"Polygon",coordinates:["@@l¤UbVL@V„LVb²VlKlaX@„„lbš@lxUVULƒbšln²VJUbW@@L„b@`nL@nVV@LVŽUbUVm„kVl„ƒlXbl@Xn°ŽVK@_°`²IVVV@VUVJnInaWK@Uš@„K„LÆ@nmlXXWVUUw@klKVa@knyVkVanI‚JXUl@XbVUl@@aša@mXk‚bnK@UlK@UUUVaXaWmkUm¥n—WmXaWaœkl@VmÞb„KVL@aVI@mUwVm„@KōméUL™KVaUk@kUK@U˜WXI@VlKXU‚@VVnInVV@VLlK@UUƒkKU_@ƒWWUwU™@klƒn@ƒƒ@Imb—@@m›nUKÛ@mKUkWVXxmbVLXŽVVU²VV@xÅnmWmLU@kbmJ@b¯š™IUb™JƒUUxVl@z@bU`W@Ub¯nUJUbƒ@WLUKULkU@aWKƒ@aƒbmL@ƒlmUk@@bUL™ƒWJUI™°@ƒŽ¯aWLk@mbUb¯b"],encodeOffsets:[[114942,34527]]}},{type:"Feature",id:"4101",properties:{name:"郑州市",cp:[113.4668,34.6234],childNum:8},geometry:{type:"Polygon",coordinates:["@@@nWVUKÅ@W„nVnI‚ŽV@œkƂšwV@šnn@lxÞlnôJ˜zXJl@nalUČVlƒl@²UlkôVVUnm„I°VnV°@°¦VJnIÆJÞan_VmU@ama™@kU˜¥kaUklw@UIV¥kVUI@ƒmmUÅmUlƒwVU@amU—JWbUakVƒ—Vé¯Im`ƒk—@ƒwVWmLkU¯ŽƒXkWmLmx@UUƒbm@@x™J@LbW@UUVWUkVKƒ@ka™IUamKUkkmmLƒUkJUVWXkWmnÅ@ƒKƒL™@@VXLmbmJUIUVU@ULWVkK@nWVXL@lVn@¤„b‚kôKXKlL@¦²V@JƒL±@„@VU@WV@X@`XXmb@Žšblaœn@Jƒb@V"],encodeOffsets:[[115617,35584]]}},{type:"Feature",id:"4105",properties:{name:"安阳市",cp:[114.5325,36.0022],childNum:6},geometry:{type:"Polygon",coordinates:["@@°kVaV¥kVmUkWkWVkVKUwkkmKUU@a„wWWXWakKWkXmlašIVmX¥ƒU@a„@WnK@kƒƒ™V™I¯ƒ@KğI@WU¯LkK›akƒƒ_kmmVU@VWXƒKnVmbXbVLmln@VVknlVUnVlkšlnXbmlmlXblnÈlWbn@@nšK@V„L„bVV°VVzšlnš@V™xƒI™b™ŽU@WLUa¯V™UkWõ@¯kkmxk¼l‚„XUlVbVLnlULmU@lƒLkVUlƒX@xW@¯mUƒ@UmIUW™L@aXa˜kU™¯anƒWk°@k™kKmmUIWaambUkkKmV¯aƒ@UblŽk„mXk¤ƒ@@b™@UbULWVnb@lUVVnmšnVVU„J@bWXX@WJkL@blVU°UV@XlWnXUbW@UVkVšVWbnLUJWLUK@Lnn@blVU‚„nUblxVUVJXU„a˜@Ub„LnUVV@mVIVVn@UbV@‚XbmbUV„_lVXUWanJVI@WkI@WVIVU°WXXl@la@mX@lLXl‚kVbœm‚X„ylIXJV@@kšKla²UVa„IVyÞb°LlVna@UÆKnLVbšK@anwU™"],encodeOffsets:[[117676,36917]]}},{type:"Feature",id:"4102",properties:{name:"开封市",cp:[114.5764,34.6124],childNum:6},geometry:{type:"Polygon",coordinates:["@@lUVbXa˜InV@bUV„x‚knVVÆnn@„VJlUU¦VJ@kxVllb—¦lVš@nb@bVŽUn˜aôJÞIXbVJÆI„m„xšUšV„w‚U²l@XƒxVl°bVLXb‚`XklUnmVblLœ@lmšx°LVK@UXIVašWlL@Ukƒ°KkVaVUXmmI@UÅKmmƒXka±K—L@W›@kUÇxUUƒ@@UXUlKkklW@ašX„a@UƒKUaVUUV_@yXk@ƒ@a@U±w@UUW@_„mmw@wVw„mUaÇbUa¯UUkmWkn±JÅxmIbUxmKmn—JWw„kUaƒK@a¯@ƒbk@mVUIWƒ—Lmwm@Ua@WJUb@LUl™@UUmLUbWJ@VL@VmXWWzUJUꄘ"],encodeOffsets:[[116641,35280]]}},{type:"Feature",id:"4108",properties:{name:"焦作市",cp:[112.8406,35.1508],childNum:8},geometry:{type:"Polygon",coordinates:["@@V@VL@x@bXŽWV@XkššlUŽWX@J„@nI@KlL„KšUVaV@œJlL@KUk@KÞL‚l²_‚@nWlL„UVVš@nLWVUJVn@anV@a„wÞUVLVx„b„@lW„@lbXn‚Vn@@¼šL°mšKVn@bnl@nVK@blb„L„W„U@VWLXV@nlKn@lVVbXw°nV_@¥Vƒl@XI@mlƒkkV¯VWnI@W‚@n¹nƒ@aWKXUƒaWk@yk@k„ċUkVmbk@WI—yóImÝkkwm@™mU@™xŁ›lU@mJƒX™ak@ƒx¯V@¼¯Vm„UmmIkVWK@UXIl@UWVUU@mVUI¯b¯@™lmKzWKUa™nƒJ@nƒlbÝ@@b"],encodeOffsets:[[114728,35888]]}},{type:"Feature",id:"4110",properties:{name:"许昌市",cp:[113.6975,34.0466],childNum:6},geometry:{type:"Polygon",coordinates:["@@lI„VnKlnVlnLVbšJlb„@ULVlUXVVX@‚a@KšI@wn@„aVV‚@nwnKlX„W°lVnKUX„x˜@„ln_°JVIXy‚XnW@U‚K@UXIVanKVVš@Vk@KVaXI‚@Vbn@nx˜KnaU™l™ƒn™Va@ƒXa@™VçUUla@aUK@wmUƒLk`kIWVkLmK@V@XUlƒn@JXV@nm„™bU‚óIƒmUa±@@ÑóVUUk@UlKVU@akWVUUlUUaUK@UUKWbUkÅJ@XWaƒ@XbmJ@nUJ@bUKƒLÝaUnk@›lXbWbXnm˜n¦lVXnWbUbVV@VkL@VmLaWl@n™b@bk@UVWak@WVImJUbUlmz@lUbkL@lVx"],encodeOffsets:[[115797,35089]]}},{type:"Feature",id:"4109",properties:{name:"濮阳市",cp:[115.1917,35.799],childNum:6},geometry:{type:"Polygon",coordinates:["@@lLXbW‚XXƒx@bVVnLllVxULUl‚XXlVlUnlŽU¦Ub¯l˜nœK@V‚bVb@šXbVL„KVxVVnIlašb„a„¥lU@wnalLnVVlVLXnlWVXn@@lVI@WnU@mƒÅW¥—aW_k@WwXy@kmƒ@wU„mš„š¦šlUxVLV@UwšJ°xš@VX„@Vb„@š`VX@VX@llšIVbnJlI„bšV„l„˜J@ƒmѯLóa@ƒƒKUa„k™ƒ™Xƒ@UK@wU@ƒlWUUݯImW¯aƒLUKU@ƒkƒ»k@mƒwƒa@UnKWI@ƒUU@akVWK—k@a±ƒbóUWKXUmk™KUmLƒbUx„„@lmLXŽƒ@@b„VW¦Un™JkbWnXl"],encodeOffsets:[[117642,36501]]}},{type:"Feature",id:"4111",properties:{name:"漯河市",cp:[113.8733,33.6951],childNum:3},geometry:{type:"Polygon",coordinates:["@@@Lƒ‚UnVxnIWa„@Xb@WÆIVlXaVL@VVLVbkVVŽUVlX@bUVkLV‚l@VVôU@Ò²@Vb„nôJVšanƒ@mWU@I„mVk@WkI@wmak™@wlW@w„@VbnLVb°bVyX™V_@aUKVVK@wUU@™™a™K@kmbXVmJUXƒ`kn™nƒK@aU@mw™akb±@¯ƒUUÝKUUU@WU@VkLUKU@mUmJUU@WVkL@UWJ—X@VVL@lVlUbšLVKnêƎ"],encodeOffsets:[[116348,34431]]}},{type:"Feature",id:"4106",properties:{name:"鹤壁市",cp:[114.3787,35.744],childNum:3},geometry:{type:"Polygon",coordinates:["@@ó™™n@xVVólƒ@¯zƒJ@bkl@@„kVWLUVmVXbVJnnlLlš¯@Xlm„°bVš—lWb@bšKVXnJ@VV„°nX@@w„WVklU„K@knVVKmkUKUaVkƒWkl»nwlŽ°lö@lXšV°UVbXKV@šša„Jšw@Um™™kUy¯UUUƒaƒK@U™L@mm@XaÇkkmWank"],encodeOffsets:[[117158,36338]]}}],UTF8Encoding:!0}}),i("echarts/util/mapData/geoJson/hu_bei_geo",[],function(){return{type:"FeatureCollection",features:[{type:"Feature",id:"4228",properties:{name:"恩施土家族苗族自治州",cp:[109.5007,30.2563],childNum:8},geometry:{type:"Polygon",coordinates:["@@VK‚bX@lbUVnL°„@VlVnUl@VUX@„aVƒmaXƒlašUUU@wmaVUn@Vƒnmmk@m™U@kna™aU¥Vam™X_@WƒU™mW@_kƒVaVKnL‚lœ@VVal@k¥@kUW@kUKVUlUVсW@kÇaU»ValmkUVUVak™@aƒV¯_@W‚UkmVUlU@aœƒƒalI@akkVWUaWXUWwœWVbÆ@„„l„alIVK@U™m@UU„W@al²a‚¯UağÇm@ƒbkk@wƒ@@W™aULmxƒIU‚™ƒb¯@U`UX™JmL¯aƒKX›WUL@aknmK™@aWUXaWm@I@UÅmVU@™™aUV@b™VƒI@WkU›bXkm@VakwUKULWKXmJ@XUK@ƒmL@KUwVaUI@KU@mmn™mXka@»V@@UUaƒw¯yVk@ƒUUVmmkÛÈU@mWUnmx„šmlUbV¦UlbWVUL@UUƒ™IUmÇKV„VbUVVxkn™LUxV`VX@š„„kJVVUXWaUVVlUnmKUbkI@WULmK@L@LVlƒLnmUIWV@aknƒ`VXUJIVlUVVbUX@¤mbnLm‚m@UXk@mm@Ukaƒ¥@kV@@KkU@aUKWbkLWVkIVŽk@UbVlmX@bU@@mmL@bn`@Ln@llVLVk„@XVVU@`VXUš‚¼k`VULka@VllVIn¤VU@@bl܃bkx@bkL›škKƒn@bn@@b@JUnV`UnVbVKlVXUlbn@°ƒVx„@@b„nVbUllVn@V—VK@UnW@UVUšlnk‚VÈޚxVb„VVI„xVaÆ@@aka@UVaU@@a„k@Wl@nbVIƎ@Jk@„L@VlXnlla@VJnw@UmwXU@aVK°ÒnllnLlb„xnKVaV@l¦²nVl@llL„x@XVVœ‚Ķš@našx@U@al™XUVa‚LÈþV°XxWXkK@šmLnlUb@b‚xnLVlVVkb@UJ@xWXXš"],encodeOffsets:[[112816,32052]]}},{type:"Feature",id:"4203",properties:{name:"十堰市",cp:[110.5115,32.3877],childNum:9},geometry:{type:"MultiPolygon",coordinates:[["@@@a@w@kV@nbVK@ƒnUla„@la„Ål@nlVakwWX@WkLšaVmšwV@anK@UlIXmWkk@@mmLkWlwk@U_mKXwWK@U¯K@UU@ƒVUa™kmƒkI™yUUVUmanU@mlwkƒ@_mWXaƒUWU@ǃ@U@aUaVwUKUIƒVkK@UWIXƒmaV@k@Vm@UnwlƒUamk@V@„ULUamxUJkU@Iƒ`WkkK¯XWak@@W@IUV™LWJkXkaÇVUKƒ@kUmbmUUƒUKƒbkKWUkI@ƒkKÝ@@aƒUm»nI@mƒU@UnWV_@aUmWbkLUl¯b@a›kkk@WkkJm_k@UV±@J@b›nU@@WÝIUJVbXL@nlJkx@„Wn@VkJmb—LmUƒ`VbUL@xVn„@XVƒŽ@„mVVnnJVbU„ƒx@„V„nVUbVVƒx@šn„™bUK@bƒ„@bƒJ„šm²„VU‚lbXzVJV„„JVbn@@Xmb@V@bVJÈ@‚Vnkn@°aVVV@šX„KnalLVmšUnnVKVlnLWlXX„Klk°š™šXŽWškLUVVV@nU@ml¯nmbk@W`Å@mb—LWm¯UƒxnêVèk@mbƒVƒnUK™@kKmXk@@JUI›lÛLllnbVnlJ@LULnlÆaVLnŽV@nkVJ„@lkô@²bÆm°w„L„WV@VXšKšVXI@W°ÆVšK„b°U„JVIVV„¦XKVL@l‚InaVÝnUl@@bX@‚™nmVL@lVL„lVLVUnbVW@xXn˜bœU°¤V@š™„a@kWKUUn@VlnL@UV@Ü»@mX@V_ƒakaÞ@VK‚¯@kkW"],["@@mUkUUm@nllVKXXVK"]],encodeOffsets:[[[113918,33739]],[[113817,32811]]]}},{type:"Feature",id:"4205",properties:{name:"宜昌市",cp:[111.1707,30.7617],childNum:9},geometry:{type:"Polygon",coordinates:["@@°`„U@blšUbUVlVkn‚ŽUbV¼Èb@l‚XUÒkVUVVL@lVX@ll¦k@UbU‚›@kmKULUbl„@`nXšŽ„V@XW`nšUbV¦šbmb@lšV@nnlmnU„m@UVnb@xVV™VkbW„nb‚VnVa@an@UaVU‚JXnWlXX@l„¦@ŽlKÆX„bX‚V@VV„@°¯°xXx‚XV@nV°UVWU_VWXkmaVnWVkn@lln@lb@UVLXWlnX@˜aXUmaVK@UXU„U@WVI‚W„XXV‚U@¥VKœ@‚Uގ„„‚a²LlV@kV@UanKma@UVUnK@UVLXyVL‚knJ@UV@@UXKWUXaV@Vb@mVLnKW„m@aUUm@@UkK@Ula„LXKWaXI@alKlmUk@wVKXL@m@WWn@UVa@K@wna@aW_XWWkXbVW@k@U¯WWwka@UUaVIVƒkU@m±@U@@wVKkaš_@VV@XUVwU¥‚šyUkm@V±ÈUKk»ÇL„m˜mLk@ó£kmWwƒm@U„IkWKXwWU@ƒkLƒwkbmaƒbkK@VƒLkmWIUKkUUƒÇIǫJ™XÅJULVŽÇLUVƒ@UK™@kI@WVI@UaƒWmXVVUL`±kÅLmKkƒƒkƒÅ@Ua›XXxWVXŽVbUXll@bkJ„b›„@bkVUVlnV@X"],encodeOffsets:[[112906,30961]]}},{type:"Feature",id:"4206",properties:{name:"襄樊市",cp:[111.9397,31.9263],childNum:7},geometry:{type:"Polygon",coordinates:["@@@Xl@Xb°WlLXl„_@JlVVInwVbVK@ƒ@UnlVbk„mx@VUnl@U@nbW„XJ@VlL„UVJVLUxVb@b@VȄ‚@XV„VWbnX@`l„kx@nmVnbUVVVšzlJn„šlVb„UV@@V°L@VXLWxnLV`l@kxlXnK@nl@XlWn„`Xnl@@UVa@VÈKš£VLVanW°U@UVU„@„`VIn‚mV@„nV@Xa@aVW@UšalkXKšblI„yƍXnlJXbl@@VV@nklU@`„nVK„LVKVb@V„U@UÈK„UVKšIlUX@V`lIVbn@nblVVmV@@XXJšUVV@knKVn@`@X‚VnK„wlLVmUUU@ƒU@aXL@WlU@UUW@UmU@KkLWaXkWmXUWm@U@ƒnk@UmK@U@UaUVUUKV_@al@namWUI@KUƒK@aV@WUIƒbƒ¥ULUJkIm™ƒK@U@K™V@U@a@UkU@K@wVaUwlU@mUƒULmKUkV@@anIWmUK@I¯„mKkl@LUb±lUakLmk@WwUKÝVUIm`¯n@Uk@makJU_@ƒƒJma¯ImwUVkKƒb™aUÅ@wWaU@VU@mXIVmmUkJkwm@mIlUKWzUK@VmLUV@VnbmLVbU@@lkU±KbƒƒÝV›@UL@¦VWUƒWXUJ@XƒVWV@VULnbWV—bW@kmWXUK@Vkam@kkm@UlmXUŽnbWlUXV`UX¯VmUU@Ul@Lll@nnJ@LƒnWmbmš@b™`ƒš","@@kUUm@nllVKXXVKmU"],encodeOffsets:[[113423,32597],[113794,32800]]}},{type:"Feature",id:"4211",properties:{name:"黄冈市",cp:[115.2686,30.6628],childNum:10},geometry:{type:"Polygon",coordinates:["@@VVUnWVXnVJ@„‚U@V@VXŽV@@IVJUnŽ@V@L@KlIVlVanLVbnVlI„ƒn@@a@Kl@@I„JlI@aXU@KlK„kVblJXU„VlU@V„bVkVKXn@VlxVa²I@VlVUxln@bšJXklaVWnLmÅ@y@k@ašI@W@aXIlVVaV@nnlKnLVW@IUa@a@K„UVVlI@wXKVV@IUƒla„@lUXwWƒnƒnalLlxXLll°@XwVKVaXIl™nb˜@nln@Va@U@k°ƒUmÆUVaXI„JV¯ÇUmmkU@WaKmakVm@U@aVKkkmKkVmIkÇ°£@aUUVaVVnKlkX‚mkƒ@ƒlUVaX@@Um@‚™UmlUXV„UVU@w‚K²¥Ua@I@UV™l@U™V±UIUÇ°»VkUmVI@a@U™m™ĉ™¯V±bŹĖğaÇL¯lmŽkX@‚óĀ@ŽmšÝêb±WkLƒn@xXx@Ž@b@V@LW@UbƒlţXƒ`kxWnXô¯¦ÆV@L@JVLƒxkK@V@bkz°l‚lXz@J„UlVla@XUV„bVKXnW`XXV@laVV@V„X@V¯xƒx@xULVbUJ@n@LU@VmmakbUK@b™IWWUUVkUmkLm@VJkb@nUJƒ@`V@kX™aUaVmmLkUmJ@Uk@U„±lkzmJUb@b„VUxVXU¤ƒL@JƒX@VlL@JkLUVU@mnUl„¦@V"],encodeOffsets:[[117181,32063]]}},{type:"Feature",id:"4210",properties:{name:"荆州市",cp:[113.291,30.0092],childNum:7},geometry:{type:"Polygon",coordinates:["@@ÈJV„lVVLXJln„K@UlL„anbla„xlK@„XVWxXLlƒJ@V„nXxlnô¤l@nKn—‚ƒÈKl¼VL²Ç‚Un@Vl™zŽV¦UxWVU@@U™`lbUL@xV@²@@nlVU„UJVb@VlbXx°XVWX_VKUwVKVa@UVKUUVk@KnblaUU@wnWl@UX@lÆ@@a„IVmUk„™šxVJ„U„bܙ@Uk@WWnk@Vƒ„™Vm@I@m@Un@m™XUlVlUnJ@knJVU°@@aÆLX@ƒllL@¦nJV@XblLVa²U@UlWš@VX@`@LV@@bXJlIXml_lJœU°b„KÆLnVVl‚@ö—Vƒ‚mXaVIĢllUlVnLVlX@@b‚ašnnxšV„L‚bn@°ÆXmmkĉƒ¯w±™™™Uċ@KÝÅƧŃÝ癙Uw¯ƒm™¯k@W‚kV@¯UIUJW¼kb™Uƒwk@W`@¦Uônb@VƚlÈ@VU@ƒƒ£UWWnUÆUnmJkUÇ£VWUI@aUU@WkI@Uƒa@JW@k£kaWVUKmnkKƒb™kkVWb—VmUUmwU@kk›@UakUUa@V@nlx@lUb±lUbnnWLUyk@UamœUK™@mlk@Wb@VXL@x@xWI@a¯Ž¯V@bVn@LkKmL@`XmKmVU@@bkL@V±bk@Uaƒa™L™KUVƒIƒ„™W™XamVVbUK@b@Lm@UWkxULWVUnm@UlUX"],encodeOffsets:[[113918,30764]]}},{type:"Feature",id:"4208",properties:{name:"荆门市",cp:[112.6758,30.9979],childNum:4},geometry:{type:"Polygon",coordinates:["@@n@lxlInVUnWJ@nUVV@Xb@xVƚb„alLVUnx°Jnb„I@„V`lInbl@@V°mn_VJÞUVLXx‚@nllKVb²kVa@KlknL°ƒ@JVLXnmJ@bU@VlnLVKV„@nX@lUšKVaXal@VKn@¥°L@Unw˜bnašV@KV@VUX@lVXI@KW@@IXWV@laVL„„KlaXUVVnkVWV@lwXblIXWVkVmšaU£VaUmVIkU@y@WakKUamU@UUK@kmK@w@@mK@LƒV¯™U@WwkmULƒamVVUU@ƒƒIƒbUKUa™kmƒm@UakLmxU@UÒWlULţÿmwkIUm@a‚kÈblW@UVƒUUk@JW@XkWWUkUKUIlw@aUWknWUUmnIWƒ™aUwVaۚƒaƒVUI™wƒšVlUnƒJ@bÅ@@kVWk@mX@xVVkbma@LUlVVUL@VUbULVxULW`UX@V@lUXWaXlWXX`@bmb@x@LUb@VmŽXX@‚@nWKUL@xVlknkL@bWJXbWLƒKkb@VlL@Vn@VV@bƒnX‚mLUK@nUaU@WbXVWL@VU@@V"],encodeOffsets:[[114548,31984]]}},{type:"Feature",id:"4212",properties:{name:"咸宁市",cp:[114.2578,29.6631],childNum:6},geometry:{type:"Polygon",coordinates:["@@ÞƂLČ@šV‚š²š°xĊ„nlWnŎ¯m@aƒK@„„°‚n„Jšwn™VIUaÆJšÅ@wšwV™XW@aV_l@²V°lĊwlaXLšwlUkalVVaX@lVXI@a˜UXJ@U°UU¥VIVKVklanLVa@VÈIVV@nk@aVa@mV_@a„K@klKUa@UnKWk@@lU@@UW@@nUWUwmaVIXƒ„lV@mLXblJ@kV@kk@KU@WƒkUWVÅwkLmW@UmL@lUL™KULƒak@maUUÝwUJƒIb›KUUƒ@š™aWK@kUWVkUwVw@™mÝ@™I@wkW@a›ww@LU¥™kƒJ@nVJƒIkVVnkV›UkyUIUl@xWUkaW@@°kz„ŽWxkLUWmzk@@bVVVš„b@‚@XlVœ@Vl@bVbUn™`Wn—@Wb„VVI@`„LVbXLV`mnU@@lƒL@LUŽƒak@ƒLk@WbUJn¦@lVb@xVb@n"],encodeOffsets:[[116303,30567]]}},{type:"Feature",id:"4213",properties:{name:"随州市",cp:[113.4338,31.8768],childNum:2},geometry:{type:"Polygon",coordinates:["@@„@nš`lw„k„ƒ„UmUVWX@lk„@VanUĠ¼V@@mX@@nVV‚VXLmJVLnK@b„V@@J„@VUn@VaVUUUVWVLV@@Kk_@almaVkUU@WVƒVUVLXmmk@wUaUKUV@°™@kmaUaÈmW„mUƒVklaX@lVnxl@@UnaUk@ƒVUVwVK„nš@VVn@VbVJUknUmmVmk_Vw„KUUm™Vak¥@UVKVIkW@UmIVWkIVƒkmmLkwmVUƒ@LƒUU@VVXL@JmLUbmK@UUKmkKUUmVUaUnÇlk¯™mJUnmLUaUJUaWL@UkJ™ƒUƒ@ƒaklkU@¯@KWLUmUUWVkbƒLƒŽUKkbU@WX@JX@@LWJkUW@UVU@@L™Umb—amx@V¯K@¦mŽULk@WbUb™LkVW@kVVxUb@x@LlV@V@b@VšU@L@V„LnšlJVIVK„¦„aVJ@XUŽ@b„LV‚@LVJnXmbk@@bU`VLUVV‚b@V@VnL@Vml@„@VXnWVXnWlXblK@LnV@VVX@VkV@XWK@b„VV@VV"],encodeOffsets:[[115830,33154]]}},{type:"Feature",id:"4209",properties:{name:"孝感市",cp:[113.9502,31.1188],childNum:7},geometry:{type:"Polygon",coordinates:["@@VnXK@L@°lVlk„b„@„VšlI@VXKVbVIVbnKVmnI°šlŽÈkVmVbnUVVlLnVL@VnLVanK@IWKUUV@„V@KV„nUlxnKlnU„lJUXnJ@VlXUJUL@Vl¦UbnšVVƒLUxl`UnnnmVVlnVK„bšmVX@a°Ý°LšaXJV@VUnKVXVK@LnKlLUbVVX@VwVJVn„@@UU¥V@@UUK@ƒmaUVUkkJ@L@K@UmVUI@JU@W@U@UV@ƒUIWmXUVmUUÇ@UVmIlmnmakK@akaW@UwVUkKVnUlKVwk™ƒVU_WKUkVW@UXaWkUa@w@VU@XaW±@IkbƒKƒb¯L@WƒXkWƒ@UakL@UV@UmVUmL@UXWVL@ašUƒVUUUVU@yUUƒIUa@wUKWVU@kƒ™™Wk¯UkwVKƒLUx™K@nVxUlUUWVUmw@wƒUUyXWlX¦WbUV@„U‚@blbUVVbXXƒl@lVL@bk@lxkVVnVx™¦ƒ`UnkL@V@L@Ž‚@@xnL@lVL@VnVVblLXb@‚@zlVUJVnUbV¤™bUnUlWXkJWakxU@UXml"],encodeOffsets:[[116033,32091]]}},{type:"Feature",id:"4201",properties:{name:"武汉市",cp:[114.3896,30.6628],childNum:1},geometry:{type:"Polygon",coordinates:["@@nbnm‚knJVUÈ@@Uƒ¥VknmV@VUlK@IkK@U„W@I„KV£UWVwƒU@aVanIly²kVƒl@@VnIlVnKUnVbšblWU@@_„‚VI@mlaUIn@lKVnUlVVXXšJ@aVLlanbUnV@@K@mVIUaVK@w„w°w@UƒW@UUUkbU@WWX_WmULƒaVU@WkbkUƒV@IWyk¯kly@a@UlL„wUK@I@KÅUW@ѱUm@wl¥kaƒ@@_Vw@ķƒa@akw@ƒkKW£XVUVwVwUaU@VUU™™xWKkbĉx¯k±Uk@U`@bWXUš™x@x™ÆÅIVbUJmš™xƒImƒ¯@ƒ™Umx™nUVVbnJV„@Lƒ@@ŽkV@bVnƒ@UVULlx°VXlššl„V@XUVL@xVb„JVV@zUVVVUV„™V@bUKWX@VnKUVVnU@@VlKVb„@lX„W@X°K„a„Lla@JX²Wb@ŽUV@@xVbXlWb@VUXVlXLV`Uš„lŽUxkLmVUŽlLUVVxX@lb@blL"],encodeOffsets:[[117e3,32097]]}},{type:"Feature",id:"4202",properties:{name:"黄石市",cp:[115.0159,29.9213],childNum:3},geometry:{type:"Polygon",coordinates:["@@VšUVV@VbUx„aWUœblUVmnKlX@bXJVIlVUxVVVIU‚zlx¯š@‚VbnL@x‚x@UVaXK„b˜@Xk‚WU_Vm²klW„XVK„Žl@nXV@@w„mlK²X‚aÞén™@ôÿ@lWn°kUKmmUљUmm@ƒwkImWU@UakL@bVLUVċ@™bUK@alIXKWK@™nXnKmkUVwƒ@¯b@L„lUL±W™n@KULUaW@kL@lƒL@bU`@nUb@bmlU@UÇJ@UUbmKkblŽUULUJV¦¯V@VWI—V@bWJkUW@UbkUlbkV"],encodeOffsets:[[117282,30685]]}},{type:"Feature",id:"429021",properties:{name:"神农架林区",cp:[110.4565,31.5802],childNum:1},geometry:{type:"Polygon",coordinates:["@@n`lIXll@lœl@b°aVklKXaVn@bU`mX@V„V@nmJn¼„V@bÞ@lL@„lJXVlL„aVLV„nVnalV„@VLÈUlblWXIšKVU@J„™š_‚@an™na‚X„m@KmI@mkk@KVkWWw¯w¯°ƒ@UUU@WƒaÅWkL@ƒ¥@kWWXkWmIUVVbm@@bUbmUU„ƒbW@UVk@mVkU@U¯ƒmKVUkaW@aULƒÆVbƒb@VÅ@Un@VƒLWl¯Lš„"],encodeOffsets:[[112624,32266]]}},{type:"Feature",id:"429006",properties:{name:"天门市",cp:[113.0273,30.6409],childNum:1},geometry:{type:"Polygon",coordinates:["@@@K@UlKVm„_š¥UwUmlUkwl@@aUK@k„kWWUaVUka@aV@ƒVUXaW¥Xk@WWIklm@ÅxmI™VÝUkxkaƒ„@bWJaUL@„W@™l¯UULU‚ƒbƒkV™Ua¯bm¤UnÇUkmUšUx˜b@VkXÇal@bVnlJnxŤĀVKXkVÑV@nwlKVbn@n„šlVbVL„a„J@„VV‚UnU„bVKlnXxV@°š„U@KnL"],encodeOffsets:[[116056,31636]]}},{type:"Feature",id:"429004",properties:{name:"仙桃市",cp:[113.3789,30.3003],childNum:1},geometry:{type:"Polygon",coordinates:["@@VK°VškX@@ƒVK‚bXI@a„ƒlblwÞVšUnJÆwn@lkXJ@X‚WVz„V@xnx‚VXUVVVkUw@mšLVw„KVU„@Um@alU@„@@KUƒmIUaVUšmnwmw™mb@aW@UkmKkUkVġkUJWbnU„õ˜@UkmUÅKƒL¯a›VkIk`WnkJƒ@xVLUVVbUbk@WlXbm„VxnxUblbUV™@@VUV@nVL"],encodeOffsets:[[115662,31259]]}},{type:"Feature",id:"429005",properties:{name:"潜江市",cp:[112.7637,30.3607],childNum:1},geometry:{type:"Polygon",coordinates:["@@UbVxšbX„mJVnXVlmVX@bkxVJVLVlXXWlX@@IVl„V‚U—aVwV™lnÈVVmn£°aVbUš„l„aVUK@mVU@Uš@VUkaVamwUwnƒWaXkl@VaUaVUUK@w„WI@aU@@K@_UW™@kX@V±VUbkKWaU@mI@¥kK„kW@ÅK@b¯@UVmI@lmIkVkUWVnšm@@V@n@JUnƒšU„@ŽmlXXl@@V"],encodeOffsets:[[115234,31118]]}},{type:"Feature",id:"4207",properties:{name:"鄂州市",cp:[114.7302,30.4102],childNum:1},geometry:{type:"Polygon",coordinates:["@@°¥WóXmlw„_ŤW„kVaX@@K@U@a@WwU@mWk@ƒULƒWkX±lUnV`XWl—@ƒaWLUb@Vw@wmKUa@°™kw‚yVUJUUVwkUUJWI@akWmLUnkV›aXVƒbUxUVWX¤lL@„lx@b„b@ĸUx@`„@lbk¦@x‚n²VƄX@"],encodeOffsets:[[117541,31349]]}}],UTF8Encoding:!0}}),i("echarts/util/mapData/geoJson/hu_nan_geo",[],function(){return{type:"FeatureCollection",features:[{type:"Feature",id:"4312",properties:{name:"怀化市",cp:[109.9512,27.4438],childNum:12},geometry:{type:"Polygon",coordinates:["@@@n„‚@b@XnJ@k°x@aVUnl‚UXnV@@VnJWUJV„nIVV°ŽUbVVVL@Ž²LUVa°V@aV@nm‚UXblLXWVXVmVLVK@an_„`@X@l°„VlXXW`nX@Jmn@b„@nV@Lm`„bUb‚n@VUVl@nIVbUlƒV@LkJUnVV@xVblVUbU@ƒzUKU@mx@xUnn@@WV@lbUb@šnVWXX‚V@VIV@VUnJ@VUz@JWbXllI@VXVVL@ŽVn@„„Wlb@„Žl„XVlL„aV@VJ@XX`„kVwVl@bk„‚bUŽlVXIlƒnLVa„mVwV@@nV@XaVJVbX@lwV@n„@nV@VWnIVVUŽÆ@Xx‚a@I„UUKmk@mVƒ„IXmWUš™VJnUVU@anaVwk™›U@UXa@W™@m_@a¯@@K@UVƒ„bnK@blIlbXa@WW_n@VƒU@¯bmyƒUkUJÇÅ@WU@kWKÅwƒnm°KVkmankVWnXVWV@UƒƒwXkV@mƒ„UlLnaƒVaX@VUn@VnVK@xlnXWšU@a™@@klak™Vw™mUaV@™wmIÛ`m—@mVUXmlIXƒV‚I@K@aU@UaV_UK@wkUmmUKWXŽmVkUƒL@mƒƒU_nK‚™@aVU@Ukak»@U™™@ymUƒ„¯™ƒUUƒVKkam@™nka@ƒmwkLWb¯mkaƒ_VaVKUƒ™IUw@kKmU@WK@UnƒmaULkU@wUalWV¹U@@WUI@WU@‚_@W@U@mƒU@WbbUK@Um@@UmbUwWWkk@WU„a@anUUwlWUwUU@wlJVUnnV@@mnI@m‚K@U@w„a@wUm@_mƒVUUaVUkƒƒƒ_kċUk™VWLƒ@mlU@kn¥W@UwUWV@VÝU@lXLWVUbVLXlVIl‚knmU@VUJk@@„ƒ@™kVmwmVkxU@@XmVUb@xnKVLl@VxUxkIU`@bWVXX@JWL@bkb„¤@bmUUU¯Kƒkmb@V™VU„VVn@@„Vb@`lnœxmb„lUn‚bk„@xU„mV@bmWbUV@VJ„Il@nVUb‚K@nn@VbnJVIlJVkXJ@X@lmx@bnnWVXJWXU@UlU@mk@@llb°x„IUbnJ@VWbXVmI@JVX@bk‚@bWL@JUXUK@U@Uƒ`n@@Xm@XVW@@nX@@`ƒImxU@@JUI@KƒLmK@UÅUUV@VW@™¯kUU@UamVUUmJ@n„xmLKƒkmJkwkKm_mKXU@aƒU@b@Wk@ma@zUJVUmbUlU@™xnXlWlXXblK„¤V@@nUVVLkVš„l@Xb@VVK‚nXKVx@znW@X‚@@lVK@X@JXbWbnn@JUamLVVXIVxnK@aWUX@˜x@VnI@WlI@anV„IVxk‚l@lbXXšxVVVJVInbV@@ln¦ml@XXVWbkJWb","@@XLVKVXVKUa@UUUmV@l"],encodeOffsets:[[112050,28384],[112174,27394]]}},{type:"Feature",id:"4311",properties:{name:"永州市",cp:[111.709,25.752],childNum:10},geometry:{type:"Polygon",coordinates:["@@lxUXV‚lXUVnlVĢ„JVbUXVJV@XUW¯„VIUK@klW@Un@„nl@V`XUVL@l@šVx@„XXW`UnUbšxUlVnUšV„lb@VnJšUVVVInJlUšVnwVklKnw„LVJVšV@nIV@nbVa@KVVVUUa„KV_nVVJ@_VW„nV@n¥lI@anƒl¥X_VKlwVlULUVVVš@šU@VXL˜ƒ@IUmn@VU@wmKXUWU@m²šl@VIXWWkWUkWlkIVamUXamUnmWUU@@Un™lK@XJl@kVUk@mWKXkl@@aVU@UVWUUVa„In`VUVLnw@U@K@Uƒƒ@w@UVmUUƒ™°K@UnV@bV@Xk@KVm@amk„aU£VWUUmUUwm`UbULka›KXU@kVmU™@aV_UWVIn@˜y„XXK@klmV„V_kWVUn@WUU@UƒmaU@™wnwWanUmmXkƒam@UakLmK@b™xUUUU@Km¥Vaƒ¯@ƒkUaVUlm„UU@mUUÇmUk™Uyƒb™bUa™XUWWbÅLmL@V™aL@WWXUKmmk@a@UUK™XW¥kU@VƒUkxmVkUWbUJnVJ@nVJXzWxkŽ@lVbUX@VVL@`mbUnšŽUn™VV¼k@Ulm@mwLƒb@lmLUK@UamƒWkƒK@£Ua@ƒ›UkJkUmbVlkX@bWbUŽVŽnnUVl„@bšbVK@VX@lb„V@nU¤šx‚²„Knblb@x„V„ô@šlŽ@b@l@XWxnVl@„VV@XLVl‚LUŽUXV`šbXXmJU@@bm@UUkLW@UlUKWUUb™wUm™L@nklVVmVXXm@@bUKlÆn„‚XkllVUVVL@nUbV‚@V@nnV@xUn¯U@JW@UX@xĉ@™`m@@LV@b"],encodeOffsets:[[113671,26989]]}},{type:"Feature",id:"4305",properties:{name:"邵阳市",cp:[110.9619,26.8121],childNum:10},geometry:{type:"Polygon",coordinates:["@@XIlJšI„VVK@n@VVVKnLVwVmnLVK@U„@šw„J@wVIƚ°X@ÜȄUÈxll@kn@VwVaXJWXn@@WVL@UUKVKV_U@@aVK„x@U„aV@lk„@XylbUaV_šVnal@W„U@a„I@aV@@aVUl@Xm‚UXWaXml@@kk@ma@V_UnUV™UUWJUa@kkaWLUmk@@LUVWUkJWkK@¼UnWJƒIkV@b@JUIm@Ul™V™m@Uw@a@kWƒXWKUknW@ƒWUU@k™mx™UkVmIUJUU™VmI@UkaUƒV™UmVk™wVaVmX_WW@ƒUw@™@kUKWVU_k@ƒmm@@VkX@lVLUJƒX°WVU@UIVWUaƒIUġmkVUkWUVWkwWXk`mI@¥kUVƒUƒUn±@m›XkWknV„UVmmU@@XƒVƒUk`@Xƒƒƒk@¥¯»mbĉó@mkU@kU™ƒƒ™KmX@˜UnmL@lULkKUƒWUU@ƒbUaUnƒ@Vb@l„¦Ub@l™@UKmnƒKUnl„UVVbUVn„@`Vn@xƒb@x@VL@nmJ@nU@mmUVkI@xVVVxkXVxmV@bƒbXVl@Xl‚XVxna@Vn@@VVL‚aXaV@n„‚@@V@X`V@@XVJ@XV@UºkXVb@xlVVKnbm„@VXLV@n‚lL@VxšJV„ULUb„`lb°nXalKnx@„lbšmn@lbULV„„V°š„ƒnV@zšš@Vl¼lb@VUV@bšmLV`„„@n„KlVnU‚XWVLnnlV@xVLU`VbV@"],encodeOffsets:[[113535,28322]]}},{type:"Feature",id:"4310",properties:{name:"郴州市",cp:[113.2361,25.8673],childNum:10},geometry:{type:"Polygon",coordinates:["@@²zVaVlnVl@nšVk„Jl_XJlIVmnL@mV@VXn@lV@‚XzV@lyV¯²U@UlJ@XVKnVVIXl@UVLV`@n@J„I@mlI„KVLnUlVUVVLXašKVLl@nb@ŽW„XV°KUnVV„L@xVJ„L@b@LUVVVU„˜VXbmbVbn@@lUbm@x@XVVVŽ@@˜@bkImx@Vm@Xbƒb@l°XU¤„a‚L„mnL@bl@@™VUX@VxnV˜anLnƒWƒ¥XKVwnUWXmVIUWÆLVx„L„w@wVmlU@¥XƒWUkwlÇn_Uw„WV@VU°wnU—ƒy@aVškVlnL@lVn„w@VlJ@b„X„x@bVKnb@U@WVUl@@Vnbl@XLlK@aVLVKnxÞn@a„LlmUaVU™ƒm@ÅknUmaUKmVk@m™kk@UlWUkVm@w@kUU@W™U¯™¥@w„Ç@aVIlUV@kUWU@UUm»@k@mKVkUKUwƒaUaUa›@k„kUWJkImaU@UK™@maUzk`@zƒy@XmJkL@UUJmUkV@z›@kŽkVmK@¦UbWL@a@UbmKmwUK™Xk›VUUkmVkw@UUKmL@WUIWa—JW_k@@WmI@mk@WkWULUUVKUUVm@šU„bš@‚nUǃ@U@w„™V@Ua@aƒL@ak„›l@k™UƒJƒwó@@L@V@„™`@œƒJ@xnn™šmV@bkJmUó@ƒn—JW„UUmƒU@UV@Lk„WlnnmVXbmxšxV@nbV„V@XVm@UVlXU`ƒUŽkn@lWLƒW—zm@UJVXU`@bVšUn@lWVœLlbVKVan_VxnVVVUXV¤ƒbnl@bUn@LWlU@@amU@V¯L„šVVUn@V@x„„@V@L@VmxUKUVm_ƒJUbVV"],encodeOffsets:[[114930,26747]]}},{type:"Feature",id:"4307",properties:{name:"常德市",cp:[111.4014,29.2676],childNum:8},geometry:{type:"Polygon",coordinates:["@@l™U™mkUwUyV™@VW@¯Va—VmUU@KVUVUVLnaWƒnkUÓV_@mVU@݄w@ƒka@kVmƒUmK@IkaUamKkXWaUW@WUk„™@@KVU@aU@™L@J@XÇVUKVak_mWkLWakVUbmLUUmlUVKUU@kUWW@UImJ@xkLkKm@@Xƒ@ó݃@UUk@UKƒV™ƒULƒKƒXkWWbkaƒIUƒWU@mUk@WLaUJġ™ƒ@@XÈÆVIl‚„Vnz°aV@U„m@X`@XWbkakJ@amLƒaU„@V@L°@@bn`š@@XWb@VœVlšUxmb@bUVmVUI™šXVWnƒJU„@nnlVLƒV@JbWzk`m@UVK²V‚x„k„LVl„@Vn@V„„°xVKVkœVVlUblx@bU„‚Æœ@@nVnUll„kx@VW@@VkLWxUL@bÝ@kKkVõV@bkXVVUVƒ@ƒVkUkV›LkV™a™@@™ƒ¯xUxmX@JVb°WXkK@Vm@k„Vb™bn¤‚xUXkJƒblxnXÆK²l‚_@Wnašn@ŽUL@b‚JnIlV„@lUœ@@¯ô@lWȂIVKVm„U@aXaV@lwVXn@@K@UVKUUnU‚bn@lWšX„ƒlJnUšLšKV@„„l@²a@UlK@aV@naVX„WV_nKlL@KUm@a°U°@VXL@a@wWmXal@„k„@VLn›V@@bl@VnX@mwVa²aVU@mk@"],encodeOffsets:[[114976,30201]]}},{type:"Feature",id:"4331",properties:{name:"湘西土家族苗族自治州",cp:[109.7864,28.6743],childNum:8},geometry:{type:"Polygon",coordinates:["@@@KšL@wnK±nƒnm‚—@WUk„ƒÜÈn@n»@mVamk„mšU„„l@V™nmmU@wUan¯VKšLn„VWlInyWUœI@WWk@KXU˜n@mnUmU@WœƒmkV@ƒkXašaVaUm‚Ikƒƒ@kaƒX@ƒUm@UKWU@UkJWkXa@IVy@UmIUVU@UJU@WXWmU@™VakaU@@Xm@Vm@wnwV@VL„yV@VakUUa@wUUVmlI@K„UVkUamJk@VU@UmVaƒan_@KmUƒ@@anm@ImWX_WWUk¯ƒ@k@Wƒ_m`@bULUKUnUWWXkKWaVmnU@@b¯UUbVŽ±K@UKUUVa¯UUmJUƒVIXmI@UU@WmVmkUV@b¯w@lmI@W@aƒ@m¯LXbmJVLklWL@V@XXŽmbVVU@@VU²Ul@VlX@bš`Xx›zUmkUVÒlŽ@bXLWxXVlš@V„bkLma@nmVmULVbmVUb@lnzmbUÒVl@°nLV„lJkn@bmJk_ƒVmmkblxÈx@LUb„xVb@V™n@JmLVŽUš@„nV@¦VbnJ@lVVbkx™bm@UxVLV@n`UnVVV„kl°z„xVb@VU@@ÆlXnWm¦nbVK@XVVUVVl@X„KUV@nVL@WnIWŽXLVKVLlxUbVKXVWbn@@UnKVLVb„JšU@aVU°b"],encodeOffsets:[[112354,30325]]}},{type:"Feature",id:"4304",properties:{name:"衡阳市",cp:[112.4121,26.7902],childNum:9},geometry:{type:"Polygon",coordinates:["@@lšV@XV@„mXVlXL„W‚X@l@bVxn@šŽšUVkn@VJ@I@alU„JXIVm@»‚LXllIXVVU@Kl@VnXKlb@lVbXIVVUšmVVU`@nbl@@lXLVVVKVbnXWJ@VXbWxXb„Ul™VK„¦nLVVUVVbšb„K@U˜LnK@Un@VxlUV`UnnL@VVL@JV@VUnxnKVbV@@VšIVUnJUVUl@nW„XllIUa„KVbÞLV¼²`V@VIUwlaVmXa@IWanK@U@m„kVƒVUVaX@lšnaVLÈ@‚¥@kkJUWJUaƒXkaUm‚wVXJ@_lWUU@¥n_‚KkamUK„™@amKƒnKƒbV£¯W@k„aWan@@UnwlJ@a@—@UUU@W‚wn@Va@km@UanaWa—UVƒUUVU@K@aƒKUI@wƒKUUVm¯LWUXƒ@mak@UK™LWbUKVUkUmVUKƒLkJ@nƒJ@I@mU_UK@VWkUJmUUL@WkI@V±VU°kzU@Wy@kUm@UWU@@nmKUnkJWIk`ƒIUlm™k@mUUkUb±yUX@VUV@bk@WlXL@nVlUl‚k@WI@ŽkLmš@VV@XVmnnVWbnVUblJXkVl‚XXlWXUJk@±™@nXVWVnL@xUVm@Vn@J—„WK@U™V™@UUVUVKUkkxULW`k¦m„@bkJm¦U@ƒmUX@`UImUU`ƒLVbUVUU@LUbmaU@mJU@U™UIƒKmxkLUl"],encodeOffsets:[[114222,27484]]}},{type:"Feature",id:"4306",properties:{name:"岳阳市",cp:[113.2361,29.1357],childNum:7},geometry:{type:"Polygon",coordinates:["@@@wUklmUUmU@@UVm@wUaV_mmUKmwkIkJmUUnm@™™@UUƒbUKUƒmÛamm¯xVLkbÇƃUƒVUzkVUlƒUUKWLX¦W@ƒVUUUaƒKUbmLKm„@akU@aƒmVaUUVIVWkk@wkƒƒ@@xmLlmÅwmbVlXlÝIWVkK@kkVƒL@VWKU@Ublnaƒƒm@b@bšnW`@XUJk@UUWKƒk@UKƒnn‚@xmLUVm@kbVbV„nV@V„b‚@KnV„LWšXŽÆVĢ¦VblŽš„n„UJWz@ƙVóUVbkV™aÅx@¦lVUbVVknWKƒ„k@ƒwƒK™VU„Å„ƒl@zkb@`m_mJ@xX„mbVbœ@llV@n„@llbXL˜UXalUšl„alVnwnLVKlšVbX@@I„V@blJ@bVL@VVVUXȤ‚VnkVÑXmlbnš‚„VKkÑř@UmaVç@±XUlI„xlV„@VaX¯lUVVUšVJn—V@°°nŽ°„Vxĸł°¦šb²¦lJ@U@aUK@kUm@_m±VIXal@„Kl@„bV@K„K@k„m@UmUUaƒK@_UJƒaXU˜@Xmš_VmUk@WUk›@kU@a@m@UƒaUUU@al@ny‚XXWWwkly@¯n@@bnV@k@mVI‚„œVlUUmlU„JUw„I‚bXƒVaUal@K„b@ƒVKVkXVl@VkUU@ylUœVVaVL"],encodeOffsets:[[116888,29526]]}},{type:"Feature",id:"4309",properties:{name:"益阳市",cp:[111.731,28.3832],childNum:5},geometry:{type:"Polygon",coordinates:["@@„ŽÆxXL@l‚V„@ĢšVI‚bXKl@nVV@„XVŽ„JlbXalX„W„LVKš„„UVLl@VV„@ôބ@@Wn@lLlK@wnIVJX@VX@lVVUL‚VnkVVnKValUXblKnXl`UbVLÈU@W@IšKV@@bUV@Lš@lƒXV‚@VXXblWnLVblb@JnL„VUn@llb@„ƒx@ÞUV@nU`VÔmlX„mbUKUVUV@LVVUn˜ŽUb@°UXš@U‚VzVxnlVškšVnlVnaWƒ@wnIn`@_la@y„kƃVƒšU„L„xl@„ƒXLlmUUVakU@¥ÆwšblUUaôVšU@ÅXyVImƒ™ƒkUaġ¥ÅUWX™ƒKmU@Lƒa@UmUUƒUalan@VUnK@wm„m‚L@V„lXLVVl@VI@WX_™m@a™¯mKUkwW¥UK@_UWWLUVkUWL@WUIkVƒU@JƒwkLUUmJVI@WkXm@VmkKUIU@mmm_@VUV™@™„kJċwUU@KUWkkW@IWW@km@klwkWVkkU™V¯m@kWLU`mIkmkXm@@`@L@xUKWkU@VL@JUU@mbUKVa¯WVnL@`lXUVkU@xW@UbUWVU@UJ@„lnU@m‚nÈmVƒa@bUL™wUb™@@VkxmUUƒ™UV›K@IƒUƒmk@akm@wmIƒŽkK@b™VWXkm@wULUmm@UVW@Ub„mbkKƒVn„U@Wl„xV„U@UXmWUXmlnbUl¯Lmn"],encodeOffsets:[[113378,28981]]}},{type:"Feature",id:"4301",properties:{name:"长沙市",cp:[113.0823,28.2568],childNum:5},geometry:{type:"Polygon",coordinates:["@@lVUllXkx@lln@‚XX@JlXXl‚V@LVVČxlIšƒš@VU@Un`nnV@VJlLUnn@lW@XUJnIVVlK„x@I„VlUVJ@XXKlVVUXKVX@`VLX¦lxVŽnLš°‚an@„„‚bkmVaV@XL@U„KlU@llLXUÞJWkUknaÆxnŽ‚knK@w„@l„@xllUXUJVVUb„n@blV@bnƒ‚LnKVa„LVbVV„UX@W¥XKVL„VVklUVy„U„VÈÅlaUK°wnnÜbn‚V„VL„aVVš@šn@VmnVlIlJna„@Valkn@na@amwm@„UXw˜K@aUUVUUaVa—wWK@kU@UaW@kKUUƒƒ@k™W¯XWan@k„™mmÅ@@I@U@KmLkaVUƒKkLWVUƒk@UVmU@am@kkk¥ƒUƒVUK™„maUb@ŽUb™I@aƒKkkWm@W¯K¯b@VmaULVxUXlVk@UxVJVbUb@xULƒ@ULWW—LƒĕmxVVL@šVb™KUwƒaŲWwX@@WƒUWLU@VbkV@aU@@VUnmJ@VUn@VƒLUK@U‚mUIk@UÇmU@@UW@J@LƒbUmVI@aUmW@@bkXUx@lmLUbm@UbkJ@V@XmlUbkKm@ma@kUaVU@aUK@mImJUIkVƒUƒVUakbWwka@UWKkLUamKUXm`Å_U˜ƒULmaU@@lUV@X"],encodeOffsets:[[114582,28694]]}},{type:"Feature",id:"4302",properties:{name:"株洲市",cp:[113.5327,27.0319],childNum:6},geometry:{type:"Polygon",coordinates:["@@X‚‚Unw„Ė˜KXXVK„@VK@wVaUaUIVwl@kUVWUwVKnb@U°a°LXŽ‚@Xnll„L@bšJVa@VanbšƒVL„U„V@al@@UV¯ÅÇ@Ummk™w@¯ƒyVwnUVVVUkmWV—nKVUƒa@WXkVKn@lUVU„VVVXIlV°VnI@VlKnV@mwVm@LXKWkU¥wWwƒƒ@k@m„X@KX¯V@VUVa@VnKWkœƒV@VUkm@aWa@wkUWwkmV£VÿXUVL@mVIXaò@nW@ašUš@@am™@aUU„UmXmWUk@ƒƒnUW@_maVm™wUkamaUL@aƒwƒW@akI@UƒxUm@kmKUk™lUŽ@b„zV˜m¯xUVU@ƒXVxm`kÈlxXVW„@¦kVUn@xƒxƒKUwÅKVXUJWnXŽmVUxWL„¦XŽm„mK—bmUUwW@UV@šk@ƒšVLnŽlbLm`@¦VVkX@`WIUŽxVnlb„WVbXIV‚lI@l¦Ç@UKmbk™W@UbUVU„ƒl@n@VmLXb@JWbUnkbVxUJUxWXXlWL@V@V@XXJWx„zUVVVVKnXW`@bkIUl‚„nLVJUbUIWVXlWV@XklVbnn@xlš"],encodeOffsets:[[115774,28587]]}},{type:"Feature",id:"4308",properties:{name:"张家界市",cp:[110.5115,29.328],childNum:3},geometry:{type:"Polygon",coordinates:["@@@InWVw°wš„@š@šblUœKlUlV„U„@VUUUlW@aöUlUlLÞ@@aVKXwlK@UX@@UlwkƒVkUm@m›@ÅVƒ@akwVaUk›UUlUL¯wƒƒ@UUmƒ@UkƒKƒlw±UULVn@l_XyWwÅ@VUUmJUXU@@mmƒU@kxW@UaUIWbU@@mU@UxƒnUbmKk„WJkUValƒ@aUkUxƒlW_@WUIU@ƒbkKWUJVnUb™bWb„lU@nl›„@XnVmV@n—mWV@LXl@X›JXVmzkJUXmƒ™KULm°Vb@xnVmnUšk@ƒƒ™VƒnnlUb@nm¼m@Ûǃ„Vl@X˜mnm„²ŽmL@x™K@LUl@nULÆx@V@VXVWbXX˜l„@nLlm@bVKœX‚W„L°bnUš@VaVUš@šmšVw„JnwVK°zn@V‚Vb„a„@Ċ¼"],encodeOffsets:[[113288,30471]]}},{type:"Feature",id:"4313",properties:{name:"娄底市",cp:[111.6431,27.7185],childNum:5},geometry:{type:"Polygon",coordinates:["@@lL„nJ@xln@bnlV„‚„@JœLVUšŽV„nVlw@Uš@VašxVK@a„bnUmÇnV@km@ƒ‚I@VUVVXVaX@@wlVVUkW@_mKXU°‚UbVLnaV@‚V@IUKV@XlVL@w@K@_n@lWlnnJV_XK@l°nšU@WVU@kV@nbVK„V—lƒ@nLlƒ„LXU@ƒlmkw@nW@UKVa¯IVn@@aVUUKl@nXVKVn²a˜ŽXblKnLlmVI@KUU@akLUaVa‚UXm@aƒ@wVUVKnLnWlXl‚n@@U@anUVm@U‚Inm@IUK@UmKVmU_kVUwm@@VmL—K@VƒL™aUaVUUUmKƒ¥ULkšƒVWaXwWa@UXImWUaULUUWKk@WnXbWŽVWnk@UV@bU@@bƒJ@bƒV@XkŽmb™UU`VbkaWzƒ@klU@ƒb@VƒwUL@bV@U`ULVL@VUK@Xm@XWWIUbUxm@@lkkÇwƒVÛÇW@¯Å™UJ@xƒI™xƒ@@VULmKUnUxmKULUUm@@‚ULƒU™JkIWJ@b@LJUW„kJWnUV@nn˜Ü_nJšxU@VbšnUxlškb@lš@"],encodeOffsets:[[113682,28699]]}},{type:"Feature",id:"4303",properties:{name:"湘潭市",cp:[112.5439,27.7075],childNum:4},geometry:{type:"Polygon",coordinates:["@@Æ`n_VWnLVblKXL@VlbXxlaVb„U„VlUVJnInJ‚@VL@bUVVb@lnbn@lLVank@W@UlIVan@VanK@kVwlW@aX@Vn@bUJVn„a@K‚IX@@VV@nŽVÈl@VJn@VVL„K@UVm@UnIVm@UV@@blUUaV@XK„V@XW@XxƱ„bVxšLUa@™UKWk™@wmmUalk@WXUWkXUVJVaUImKƒVklJ@aX_mWULUUVUƒyXwWI@W@U@UXKWkXWVwU@±_U»ÝKUaƒLVbkJkƒWmXk@UVVŽmIUV™J@UU@UamLmwUVU@mnJ@VUnmV@b@Vm@kkWmXmKULUV@x„Ž@bWnVUbVblK@bVV@LUJknmKkLWa—±bUmULmWk@VLUV@bm@U°JUbVLX@@mlxkn@„WVƒKk„mK@k„"],encodeOffsets:[[114683,28576]]}}],UTF8Encoding:!0}}),i("echarts/util/mapData/geoJson/jiang_su_geo",[],function(){return{type:"FeatureCollection",features:[{type:"Feature",id:"3209",properties:{name:"盐城市",cp:[120.2234,33.5577],childNum:8},geometry:{type:"Polygon",coordinates:["@@„n@‚°ĀÞ°@¦ULWKkx@bkLWb@lUlVXXJVbƒnUKmxXV@bm@@Xš‚„LޚܦXlVnš‚mzVJ@n@‚²ÞôkƃÞaȰĉ‚wnljÜó„éVÛnĊīČlj‚ĉ@ō@KÞUlU@ƒkklÇÈњÑlġXɛ@UġƒƒaU@U_ƒW@n™@kaUL@VW@kKmkUV@bkbWW@bkzma@ƒJWI@KUKULƒ@U¦™`@XUJ™U@KmXƒw¯KXkmy@aUIWJXXmV@K¯UU@@bVL@¤VLXbV@@JVXVK@„„JVn@bkKmakVVXUVVVlI@`U@nzVVƒb@¤n@@UlKXLVVšI@V@nV@V‚@ÈUx@šóVōšƒkÅWó@mU@bk@Ýwk@WbXxm@@J@zV@kVƒbV‚nLWVUX™WUXUŽWLUŽ@Wl°z@VkxU@UVWIxWJkbƒĬ„nW@@bUl"], +encodeOffsets:[[122344,34504]]}},{type:"Feature",id:"3203",properties:{name:"徐州市",cp:[117.5208,34.3268],childNum:7},geometry:{type:"Polygon",coordinates:["@@XKVX@WnIVx@K°Lnll@@I°K„nVašU°x²mlxš@VanU@aƒk@akmV@@w™@Ua@aUwVwUw@w›@UK@£kaĉlóIÇVkŽ±@@kUKmVkIkxW@Ua¯UUm@UVI@WVI„JV@ƒ@Um@Uana„U@m‚I@J@XV@XaVlkXƒVaUUWLUyVIXmWak@ƒXkJókƒJUL@KWkk@ULU@Wa™lUIkJmI™mk„VbVš@lV°kXUKWKULU„mb@VUlVnƒb@VV@IVKUUmU@ak@@bmV@xklƒUƒU@UKmV@nƒJVbkXƒKUamLUJ¯UUVmI™bVV—Ll`@LƒLU`m@kXUVU@V„lxUK@xkIWbUKƒx@V‚kVVn™b¯@@U™@ƒxk‚mbkLÇK™b™@@XnJ@LmVklƒ@@XƒlUƒVkxƒakVVb@bVnUbU@@x˜VUšVb@š„ŽnIĊ`šXVVôJš_„K@xlU²Klk„U„@VaVVÈm@kVUVmnamUUaVƒXIVJ„@‚ç@¥nkVLn›„@@XVK@VUX@JVUV@UnVJVLUJVLUVlšnI„b‚KnU@m°™VanI@anV‚KVL„an„lK„blš„KÞk@¦@¤@„VKnLVK„L„KVzlWšLX@VmV@VbnU°@Ualk™˜WXLVU„KWkUUWšƒ@£Wa"],encodeOffsets:[[121005,35213]]}},{type:"Feature",id:"3206",properties:{name:"南通市",cp:[121.1023,32.1625],childNum:7},geometry:{type:"Polygon",coordinates:["@@VJ@bnzWl°L„xnW@LšVVI@Wš_V¥„@VKVL@LXJ„I‚@nbly@aXXla@aVUnllLX@@UVKlbš@@m„XV`V@„bĢ„lkČÇƃȘ¯šwnĕVĉVÿšUƒUĠƒŦğlXÑVǵ@±ōLʵĖ¯lÇbÝÞ¯xk@Çkķé™n¯@ğŽġƴǫ@kVVlUbƒL@xULǂóLUl¤@nkVV°VLkxVb@l™aUXUKWĖklVX@¤UšƒUkb"],encodeOffsets:[[123087,33385]]}},{type:"Feature",id:"3208",properties:{name:"淮安市",cp:[118.927,33.4039],childNum:5},geometry:{type:"Polygon",coordinates:["@@šnźUôÒɴ胚l¦nĖV‚kbmš„X@xVlVL@xUb@bUJVnUx‚šœ„lKVLÈx‚m„zXV@lW@XV‚b@bȚVxnb‚ƒVIXa°L„aÆVVaXUlK@aXIƄVlXKVUlIXalK@alwXLVK@¥Ý¯¯ÿ@ƒmVk@aX@ƒm„īlaXI‚wXJVUV@lw@U¯yb›UaƒUġUÅaUKVknaġm@kUm@wÆIV±nLÆw„ÇnUUkƒ@ƅÝU¯JÝI¯¦Ul@bƒ@@VVL@l@LƒLÅmƒL@b™@UaVaUWmLUKV¹KƒLWKX¥WI@mXk@UmaUVUU@VmL@W™bkIUWƒUmVóIkbmm™@UbVLUxmJkU@bkJWbnXU`Wz™KUÞÈlVb™Lmx@„kè@Æ"],encodeOffsets:[[121062,33975]]}},{type:"Feature",id:"3205",properties:{name:"苏州市",cp:[120.6519,31.3989],childNum:6},geometry:{type:"Polygon",coordinates:["@@ôèĊVnX°¤²„lxƒÈÜ@²x@J@b@X‚`nIUƙUUV@bl@VVnL@L@xƒJ@X@blJXnW@@`XbW„kVƒ@UbVxƒXUxkV@LóxVbUVWš²šVJĸklUǬ@ĢƳĠ°@šmƒī°»ÈÇ¥ULUU±a@bU@¯ƒU@KnImUVWUk™mXUVU@lIVaUUVWKUbUkWKU¥n£WakJUkUL›K¯L™KkƒVIn@VaUƒVUUƒ›UkVk@ƒU@amUkJƒ@UUlwX¥W@@UkVmk@JUakL›@kk¯ÝmJUn@nmVXlmbVVkn@„UJ@±WUxV¯a¯KōbżÇxUxƒšUUlWL"],encodeOffsets:[[122794,31917]]}},{type:"Feature",id:"3213",properties:{name:"宿迁市",cp:[118.5535,33.7775],childNum:4},geometry:{type:"Polygon",coordinates:["@@XbWnUJVzXKVVUbW„klUWbU@@W@IJ@nƒVmbVbn@@V@„UŽƒIUJ@XUJ@VVn°VVbX@lwlJnUVL@l²@lÈUôJĊklb@¤VLœ@@xVxUxVx@bVbš@@xU@ln„mnX˜mXLVmV@X@lxVnVJôL„LXa‚x@b„@@KVL@bn@@m@™@alLUUVaU¥nIV±‚I@mXI@aWWXU@LlUXWW_XWmaUwǙ@aaWUX@@kWUƒynÇwUKkL›ƒ™VwUmVI@aVa@wUKUk@wƒWn™laUmĕk¥„™ɳçóÑŹV™mmzkVmm@a@Ióƒk@@LWU@`—„WbXLWlkImJVn@`nXVbXŽmL@Vn@‚l@nUVl°Xx°U@LVĠ@z°˜@¦UV@Xn@VJmV"],encodeOffsets:[[121005,34560]]}},{type:"Feature",id:"3207",properties:{name:"连云港市",cp:[119.1248,34.552],childNum:5},geometry:{type:"Polygon",coordinates:["@@@‚lzXxmÆV„„@@¦„@l`XnlKšXXm‚KnLla„b„@„xmbm@kL@V@Vl@@VUXšJX„mbš@@„°Æ@èÈzlW°XĢJlÈ`lInbšWV_@mš™@UUķnƒôw°ÆmnaVƒVÛVmĸ»Ģw±Ý@@mUIny™UmWkۥݙƒK™@Wn@@aWUnwVL„mUaWIUWVk@kkJUVWLUkŃWJ@bkLWVUbÅUƒb¯KWbUJ„WXX`WXkV@KWVXX@bWJ@nJU²mJV¦UbVVkK@b@š@nm@@aUK@Lƒ@@awWbƒKóKUIUmkwW@U@UnWK—nmWƒn@b„l@bmVUb™@kw±n¯w™VUb"],encodeOffsets:[[121253,35264]]}},{type:"Feature",id:"3210",properties:{name:"扬州市",cp:[119.4653,32.8162],childNum:5},geometry:{type:"Polygon",coordinates:["@@VUXblVVV„b@xV@kz„V@l‚wVLUbVV@VU@VbUbl‚b@nkĶ°IÞV@Ɔ„VlmVƒÈÅxmKU²ÅJ@xVn@lĢnmbUlVLÆbĢV„V‚bœV‚aXk‚@VXKVVWšXVWXUmKU„aWaU@™¥@£XW‚UUV@@ynam_VWkUVUna@ÆV@mnkWmXkWU„W@k„@@akklƒlWUI@UnKl¥™I@VVma@a@I@U@a@anK@UmK@ÅVUnJl™kI@aVwka@mVIUW@UWL@WÅbmIƒƒULka™UWƒUxkLUKWlXL@VƒImƒÅVƒU™mĉL™Uól¯I±l@ÒUbVbUVVXUJUnVV@lnbl@"],encodeOffsets:[[121928,33244]]}},{type:"Feature",id:"3201",properties:{name:"南京市",cp:[118.8062,31.9208],childNum:3},geometry:{type:"Polygon",coordinates:["@@k@ma@kUUVmVIUWVUUaVa@Ѳk°Jôk@Wmk¯KmX¯aUakKƒƒWU„@XU‚LXaV@@mUaVUUl@VmkaUXm@ƒWUUna°IlmV™m™IUW‚@Uk@@aV@VVX@„V‚I°»nm„U@VKVan@m»UaU@U_@WlIUa™aVaUala@¯n@‚ƒkaUkUUWKU@mwkUUmmL@K@ƒLmUUVƒKƒVÅImU—JƒƒVkVVLšèVLVU@W„L„V„š@nVÜULVŽUL@bW@XbWbkJƒUUVUxVXmVk@WUUkVmIƒV@„nbnVWbƒJU„kUULƒa@Jma@XkK@VVL@L@JƒLUVU@V¼ƒnXlƒbm@kbUKmn@lVb@VXXV‚UV@b@LVbÆxXbl@@lV@U„VV@XVK²VlIš`„UbVbUlVVn@WXn@@VUV@„@KmbVLXқLkKƒV@nX@VVUV@b™nVllbšmnb„IWVXU@`lLlknVnmlLlbUmVInK°nUƒU@l@VU@Vn@„ƒ@alI„`VIXaVaVa"],encodeOffsets:[[121928,33244]]}},{type:"Feature",id:"3212",properties:{name:"泰州市",cp:[120.0586,32.5525],childNum:5},geometry:{type:"Polygon",coordinates:["@@lUU@@y@In@WwXal@Þxl@@anVô@ÆX„lŎ™ôU@™Vw@ÇUU@@m@U™JUUWKkL@Vm@@£„aUUmyV@@_kJUUVUUWlUnblL@aUmƒI@ƒULUW@IU@WaUK@£UK@aV@°V@LnUWWXIla„VV™@£UWlkXĕVLVWšb@kUalwUKU¯lU@mk£VôKȁVK@w„KVaUkķlUI±™ğ¥ÝUŹš™Ž¯ôm¦ƒĸ™‚@XXK@VVXUJ@nlbUx@blJkšmIUV@ÆnL@VmL@b@b@V@J@bnb‚U@UšJk¦mL@VVJkXk„ll@bƒ@@lƒXXVWlXnml@nÅU@ŽmbUVlVUXn`mb@zU@V‚VWX@¤š¦V@Xb"],encodeOffsets:[[122592,34015]]}},{type:"Feature",id:"3202",properties:{name:"无锡市",cp:[120.3442,31.5527],childNum:3},geometry:{type:"Polygon",coordinates:["@@nLƒÒlxUVkL™am@™ƒkVWUULUxVVVbUV@bVLU‚nnź™ÞVĠ¦X™VUUaôw@KlUVw„WUwVa„@lUXƒWa@_X@WmkI@a@W„I@w@KmKUUk@@aVUšVVÅmJ_@W@a@I±wÛ@ƑÇkw±ƒ¯£mWĉUóçƒK¯VkUWK@XkV¯UWabƒmUa™UUb™lln@b@xƒbXŽWX`@„VxUblL@bn@Vb@`m@XbWnn@l¤„n@xnVlU„™VLÆWœkV@VbÞJ‚_nƒl@nKVU@aU™U@mVk°WVLUV¯bVXŽ˜bXlVn@VmL@x—V@bl„š‚@œnW@X@VVJ@²VJVU"],encodeOffsets:[[123064,32513]]}},{type:"Feature",id:"3204",properties:{name:"常州市",cp:[119.4543,31.5582],childNum:3},geometry:{type:"Polygon",coordinates:["@@„L˜ŽnxUbVVƒL@xnnW‚nn@VVXn@‚yœImx„„°ƒšL„a‚¥n@VkšKVw„W@nX„VJ@b‚@UVn„ƒ@UnUV@L‚b@`VLklVÞn„Æ@VaXLl™ÈJšmmVUK@aVUUaUUVwVKXVlUš„n@šblKVUkw„ÑmKUVUI@±UI@U@WmX@›™kƒ@a˜U@wnK@UUmWk—aWU°aVUUK¯XUl@nVŽVš@bUVmLk@m„`ÝIUaU@›lÅXUKƒškVmU@wƒmk£m@XmWan@@_Uam@@akKVaUw@ƒW_XW„a@w@akmm@mL@UJmnUKƒ@@XnJWLkKUb@„Vxk„WƒL—aWVUImVULUK@L@lkLVVVllb„m@@°kbVbUbšbVbkJ@XV`V@Vbn¼"],encodeOffsets:[[122097,32389]]}},{type:"Feature",id:"3211",properties:{name:"镇江市",cp:[119.4763,31.9702],childNum:4},geometry:{type:"Polygon",coordinates:["@@šVĊKšn„VÆUn„„J@UWKXkVLlKVwX„šVlbVK„„nJÆaš„ķn¥°óÇIkšWKUbÅ@mƒUÝlkUK@_a@KVUVm„@mƒVU@@aUIWƒ@mƒXUx™LUlm@¦ƒb™K¯„ƒƒnw›Jzm@UW@UmmXmm@w„KUUVamw—ƒKm@UbUL@ŽƒVmn¯¼JƒUW@UUU@@bl@@VŽVXšJšnnU‚‚k¯JmbVV„Xn@VWlbUnk@VVUŽVb@nU@WbKWVƒ@XV„„lLVb°bnW°Lnl@X"],encodeOffsets:[[122097,32997]]}}],UTF8Encoding:!0}}),i("echarts/util/mapData/geoJson/jiang_xi_geo",[],function(){return{type:"FeatureCollection",features:[{type:"Feature",id:"3607",properties:{name:"赣州市",cp:[115.2795,25.8124],childNum:18},geometry:{type:"Polygon",coordinates:["@@„`l@Èbln„@„KVLl@„V@bȎlnšKXkVlVL@„lJnb„¦VKVVnX„W@w°@VU„mln„UV`šU„bVUV@„xnKVI°KXKVkVL@al@Xa„LVlULWV™VVL@b„x@VXVmb@x@V™VV@nn¤„šlb°b°KXXWbX`lbXx‚z@x„`VIVUnK„L‚x„WXLVKVbVLVU@wnW°b„@nalX„‚mXVJn@U²mKkVl„U@@xlnœaVmlKnœ@JVLlŽnVššl@XXÆèVlUX@xVLXVšb°W@wnUWmXk@K‚LVwUmUkUKUw@wVaVK@kƒ@WnkUKWkwlmXL@KVUlLVKXmWU„L@ašL@malaVk@aa‚ašƒnXš@VVUblb„Jn˜ƒXa„V‚wn£„K@UWmUk@ƒUaWIV@b™JW@KmmU@aUUUkmKkVKlUU™nKVU„lVaV£Å¥WUUK@UkUUw@m@mIkƒƒUUWƒLƒK¯Uw°¯@wUKUbƒKmƒ@kkKUL@UUKV¥U@manw@k@U@Wm@@U@Wwkm„wWaUU@UUmV¯kwƒ@@kmƒkKkUW@UK@ÅV@XWWkXa@Ul@Va@KVaUUU@ƒaXwla@UkVWaXk@K@lmkUmV@Vmbk@ƒ»XIƒ¥VUkƒVUVU@anKVUƒKUalU@wX@˜™@a@K—@ÝwƒL@ŽUnÇlUIkJmn@ŽƒbVVb@VmnkLƒV¯U@ƒ±l—IWmƒ@kaUI@aÇU@K@KUIkbWbƒJUIUyƒX¯ƒUbU@méUUmUk„WK—xWIkJm@V¥U_UJUwmVkšƒUU@ƒƒƒ@knƒwm@UmkWJkL@n@VW@@‚U@knm@kUml@xÅxƒ@@XUJlb„@VX„JVxn@lbV„@lULnV@VlnV@bWV@bXL@lVLVb„V@blLn@Vl„K@xln@bX@lašLVbnKUVVb„KlXVVkxƒV@nnVUb‚lV@@z—°WWkbƒIk‚WL@LUJ@bUI@b™`@UmI@mkK¯XW™™mUV¯@UUVUUam@@VULWUJƒIm`IUJ›KUkW@Uxn‚WbnnmlXbmIUVmV@Vnb@V™LUKWLnÒVVV@V„UL@„kJUV@bƒÈ@ŽšV°šŽ@XVV@l@xUz"],encodeOffsets:[[116753,26596]]}},{type:"Feature",id:"3608",properties:{name:"吉安市",cp:[114.884,26.9659],childNum:12},geometry:{type:"Polygon",coordinates:["@@lxnb@V@bV@ln@‚n„‚lInš@blVXK‚nk¼@VUKWL@b™L@`UXU`ƒ@V¦XLĠ@lJ„¦@„nV@l°nn@‚mVXnaš@nb‚K„n@l„IVƒš@VanJ@_lKVVnš„L@L‚K@Vn@VbšUVanKlLnbnJVbšnWVnVVanI@‚Vb@L„bVKVanXVbVJVU@aXLll„bôlƼXxVLVK@Xn@ƒxnVVVmb@LnVVKVXV@@mnaVXUVnV˜K@_UaUmšwnKV_‚anKVLš»„K@¯ÝU@›™U@kWlUn™lknK‚VnaUkma@ƒUIUwl»Åw@ƒVwV@n™‚n@ÈXlKVmna@kVw@anm‚@n_WWk@™™mUkUK@Im›kLUn›bkm@wV@kƒlUnLV±m@UInWƒkWmbƒ@¯amX@xUVUKUaULWKƒXwƒKmLUVUJƒ_@wyWwkaW_XaWW¯L¯akaƒ™m£@mUUš@U@wnaWU@Uƒw@aUKšUXUVKUkƒKWbk@@bUKUlWL¯LUJmLƒwU@UVƒa™VU_ƒVkmƒnUV¯@@xƒXmWUUULƒ¥makI@ƒUKUkWl™LkmǍ@aƒUk@UKƒLƒ@kmÇak@ƒ_VlkL@`lbnšlLVanLnbmVÆln@škJlbknmKUbÝmmwULUK@bkLWKULUUma@Kk@UV@L@llbVzšxUxnl@bVLmŽšŽ@IVJXœVlƒLV`@bn²@J™@™V@Xmbñ@WbUJ@bm@@LUĬU‚„¦lV@xXb@blnUV"],encodeOffsets:[[116652,27608]]}},{type:"Feature",id:"3611",properties:{name:"上饶市",cp:[117.8613,28.7292],childNum:12},geometry:{type:"Polygon",coordinates:["@@„„@„V‚š„„I°`nm¤²@bVJUVVXUl@Vmb@xV@XbmVVœ@lkLmbn`VbnU‚@Va„UnbVllUXV„a@w°VW@_VWšLššnVlbšLVbnl„KšnVK@IUW@_@am@™‚ÑUólK@U@WU@VwU@UI@aUU‚aXƒƒ@kwmJV@yX@k‚anƒƒ@mkwVmmI@aUU@aUUW@kVkV@@anKš»„XVWnIVUl`@_„W@wlUœV@UWKnU‚bnŽ°InJl„UV@VnI‚b„Wn@VklL@l@Vn²m@U`kI@bWJƒnV@°VXnJm„XVmx@VVL@bkLmWULUmU@ƒbWXb@llnX@‚xkxVV„nVV@¤nL‚nVxnJVXX@˜ššbn`VI„b„@„blmlLnaV@„blWXnlUnbl@„ƒšKVanUVmm_XK@kWWnašU@UnaWUXa›ƒXamUkKmXUWƒLX¯WakKm™nUWwXa@KW_„aXWW_@WnIVl@XU‚LnWVknK@ImyUUÆbXK„Û@W@IÆUnƒVÝlkVK@mUIVwkUVaUm@aVIVyXIƒaÈwmmk@UnanVUmÅaó»lwšW@kkUVmUK@WKLƒUmWULkamK™Lk@Wa@wk@UU@U@mbUIWVKUXWmkUmVm›U@LkakKƒw@w@U™¯ƒ‚ƒUUn¯l@bmn@xkJWxkL@VkI@mƒkmJUI@V@b@VVxnbWlkÈkVƒLƒbkKmVƒL@V@²nxW‚kLUL@xlKVx„bXmVnšWJ@ޙ°@n™xUKUw±`UImVmnU@kalm@akwƒU@UUJmxU@@Uƒ@kU@Um@@Kn™ƒVm@k™KmkU@@WUnkLWxkVUwmKmLkU™bmKUbVŽ@xUnkJ@n±ŽšUxVXUšWJ@LUb™lUnm@ƒW@nknUJUVm@kXllknVbÆK„VVbš¼V„@šUl"],encodeOffsets:[[119194,29751]]}},{type:"Feature",id:"3604",properties:{name:"九江市",cp:[115.4224,29.3774],childNum:12},geometry:{type:"Polygon",coordinates:["@@WUkVUkmaƒVUb@mVUam_nalK@kU›nUWaU@@wna@UVkUWVUUI@a‚±n£m¯_ƒJ™ƒU@ƒƒƒĉ¦Ul@UV™Km™mLlm@ğ¹m`Uk¯@@UVK¯™@UUK@amkmKkVVUa@UkUƒKƒŽUa™L@VVXUJ™@ƒnƒ@™š™WUbƒnVb¯V@LÅlÝIƒJÅkݙm@Ua™WUU@UmUXmmwVUUKWUX±mUam@kWƒzUaVmÇw@aÅLmKXƒ‚UWKkL@W¯IƒwVw™lkUƒJ@Um@ÛÈWŽKUxWkƒaUU@KkLVl@„UKUX±KUb@nVVUbUVmaUlUL@„ƒaUL@‚@nUlWzX`@„V@lx²„@Vlb@bšVÞ@°nl@UxVL@lUbVV@n²xVUVmnUÞb‚a„J@IšV°xnbl@nbÆ@VwnK@VnXlK°xnUlVX„V@Vl@L@lk@W_XK@KƒkWxUL@J„nVx@aX@VVUa˜IXlmL@bVVX@VbnK‚a²XVWƒk°a„@UnV¤nbmLmW@XbmJUbVL„aÞK„L@K@U@aVKlbV@nXlJœxV@VnšŽVȚ„ÞKôbźĕČmV@ĊšŽ²xÆIšV@Þ¦ĸ¼ÞVlŽVÞnxln°Jœk‚LXWVUVUVwnJVI@yn@lXlaXmWI@w—»ma@UmK@akKkXmW@_kaWakKWk@@K@IšWƒkUa„ƒ"],encodeOffsets:[[119487,30319]]}},{type:"Feature",id:"3610",properties:{name:"抚州市",cp:[116.4441,27.4933],childNum:11},geometry:{type:"Polygon",coordinates:["@@°V°UnÜ@n@lnLlV@bšV°L„lnLllVzVVXlV„V@@L@xX@WlX„m@UVƒL@V@n„°škVmVUnKlaXxVbšnlU@lVVnaVI@aX@V„šJš@V„@b„b@šVbš‚@X@lUL@Ž@VlIVm@wUVanLšalVnKnLVxlUXwlKVm@k@Una@mWIXKWUÛVƒk@a@UVWn@@kl@@W„XlW@_Um@UVK@a„LnalInWV@@xnI@¥‚K„—šm@kKmƒnk@mlI„¤laXbVblknV@U‚KXVlUXa‚@@Unw@±mU@ak_±a@ƒUJUIƒVKW_Xa@aWU™šK@mmUVa@IXa@UWmšannlmX¯WKXwVUVwƒ@XUlK@klJXa@kƒkmm@Uwƒw@¯ƒW¯kw@WmbULƒaUUU@mVUU™WmkUb™KmkkK@aƒkUƒ¯¥Uƒl—ƒm@akU@mš@KVIVV@KUkUVUkaƒUWb—„mƒIkaVaUU™@mW™„b‚b@bUlkb‚b@n™K@bƒKXVWnULkKUV@LWKknlxXŽVLml@X„Ž@lULUb@xVxVLVlVnUxK@LWlXnmV@x¯X™aWUUK@wVWUkÅçm`@mn@bUx@lmbUnkLÇWm@mšU@Ux@„Æxk¼VxVJ@„nbVlmbUmLklmškVlX@‚VœšV@°Þ"],encodeOffsets:[[118508,28396]]}},{type:"Feature",id:"3609",properties:{name:"宜春市",cp:[115.0159,28.3228],childNum:10},geometry:{type:"Polygon",coordinates:["@@@VlbnK@b@JšLlUnx±ĀXxÆW„X@lš@V„@@blJ@nX@˜xUbVVUbVV@b—VmnmJœ„@bmbm@klUbƒLmbœš@lVb@xUX@bVVVbV¤@LVV„bXlVw‚LXÜÇn@@V„IlVškUx„x°J@XlKXLV„‚WnLÆK@bÈxUnVb„ylXn@Vbn‚W²XV‚LVVUŽnxWnnV@VVVšXVbn@ޚÆl„IÞJÆk@K°UUa„mVa@UUUš»@wV@VƒkkUKUVW£U@UmW@@aXkVUnVlKVV„UUkVmU™@kWaUanU„VVamIX¥W@@aUaUVW@_mW@UnIVVn@VbVm@bVL@anKVUkƒWK„UXV‚Ikx‚@na„bVK„b@nVJ„_V›@Vw„‚VUVVXUlUUaV@X@VblašbnKlkVaXaƒ¯@m@U„KVUn@WƒXkW@@w@KU@UƒWkUUUykkmKƒk¯K™U@akUmK@k@mmÛ¯V¯U@‚ƒL™¼UKmLbU`mL™xVnVb@`—LmUVUUWmb@nU@UWULmU@KnaUUmU„wmJ¯IUJWIkVkaWVUIUlWaUIUVkKmbUIƒÒlVUnnŽ@VlLUJ@bUX¯@ƒaWVUKUXƒKUbm@UwKWa@a@VkUWn™@Uak@mbX„WJXbm@mL—aWVk@™wƒL@WmanU@knwWmkaWL—KWUXaƒU@¥l„UVVVbnwƒ¥nKV™»@aUk@a@UƒJ@kƒmLma™@mbUWnm@ULǺ@LXnmxUŽm@UbkbW@@akLmWk@UXmJmUkV@VUXVlULmKUxkL@lmXnJ@X‚l°Vnb@bU@WbKUX@VmKUX"],encodeOffsets:[[116652,28666]]}},{type:"Feature",id:"3601",properties:{name:"南昌市",cp:[116.0046,28.6633],childNum:6},geometry:{type:"Polygon",coordinates:["@@šXš™„@„mš@VIUW@UšKVb„„LlV@VVbUŽlUnLnl@bVL@V°šUL@V°@Vln_Ġºn@‚knKnššLVU@VkĊ¥Vk@™Uƒ™»UaƒUÅLUalmkklWn@VUVIlm@m„Xn@VmškVa@KXIV™UWVw‚™²@m@U@VK@k@W™Ua@™ƒa@aUƒ™@™IUƒW@@bUJmbUU@kkV™mUaWwkbmLUVUn™lWbUbklmL™akbUaW@U@VbkVWVUUUVƒUx@‚Uœƒ`UI@mƒaULƒamb@lwJWUƒVXLl„UVmL@bUK@aUnUam@UUmJ@VnX@`UXVŽVb@bX@W¦nJUbƒUmVVbXb@lVšUnVlƒVUUkLmUUVWl@bX@VnV@X¤VUVLllU„U@@x™¼VV@V"],encodeOffsets:[[118249,29700]]}},{type:"Feature",id:"3602",properties:{name:"景德镇市",cp:[117.334,29.3225],childNum:3},geometry:{type:"Polygon",coordinates:["@@VVX@Vbmz„xUlU@mbmL@V²xVbUVVblbX@šVškVykValKVI@bn@n`lVWnX@l„L@™WKnƒVIVa@¯nK@alIXJVIVWUw‚ƒn@nU˜„nK@alI@a@anKm_™a—™W@UWmIUwmmK@£UUƒmUUlwwW@km@kWaX„aV@VnVKnXlK@aUK@UnwWUnƒmIUW@¯mU„XI@alJV_n@m±@U@kkKUlm@ƒXamJ@UVUkƒmI¯JmamVXL@V›UkV@xƒX@`k_UVmJUXƒW™¼mL@bU@UllX@VV@bVV@bnJUnlx@n„Žm„b@lWŽ@zU‚nIlx„@W„bVV@bVJV@UxV@@X@VkLVôÒ‚šn@@b@`VX@J"],encodeOffsets:[[119903,30409]]}},{type:"Feature",id:"3603",properties:{name:"萍乡市",cp:[113.9282,27.4823],childNum:4},geometry:{type:"Polygon",coordinates:["@@VWnL@UVW‚LXaV@@ama¯Uk@WmInW@klKVwnLVKUkVW@UlUnVnIVWl@nXlK@bX@laVan@VnwWm@KȹVK¯m@kmU@ƒƒ¥kIğ@WKU¥„@V_VW@_šK@aXKVL@Ul»mWLkU@am™kJƒm@kmU@@a@UmakwU@›„Xlƒ@VXk`UIW¼kWWX@‚œ@l‚xV¦XlW@Ubn„@ŽmUkL@UmJ¯UkUWVUaƒUlm@UXWl„nUJ@LmLU˜nXll@bUVUUmVUn„Ž@¦šxlŽnn@VÆÈU°kbV„VxllnL@VnVVUl@V„„anL"],encodeOffsets:[[116652,28666]]}},{type:"Feature",id:"3606",properties:{name:"鹰潭市",cp:[117.0813,28.2349],childNum:3},geometry:{type:"Polygon",coordinates:["@@@XV@nlšL@lUnš„mŽ@Ln@@VlV„@@VV@nwVI@V„Vlx@bknlbV@nmnUVJ‚_²‚VxVLšw@mš¯@ÝXIm™nUWƒaUwkL@wVKlKXmw@±@U„KnUlL„a„KlUlÇXkmaUw@U@a@Uƒ™UkwUJ@zWJ™w@WbkVWUL@VmUklUaWakbƒ£kJ@nmln„lL@Ž™nƒ˜L@¦mJ@wU@mXkJmbƒK@bUL@VVn@`kXƒW@Xk@@lm@UX@V@b„lÜUXVWLXJ@nmb@V@l"],encodeOffsets:[[119599,29025]]}},{type:"Feature",id:"3605",properties:{name:"新余市",cp:[114.95,27.8174],childNum:2},geometry:{type:"Polygon",coordinates:["@@m@@WULUKWwÅ»ókƒakkWK@bUVUIUamWUbULƒa@KUa@mJUbmUXU™mUamImakKmLUb™VUam@@UL@KƒKm™UUkL@`mIUb™@U„@V@bVl@bš¼UŽmL„¦mxUaUUƒVkŽ@¦„VWbXV˜LXKlbXnmx@lmVnb@X„Kšxl@XU˜bnKn@WaXIWƒnal@Vbš@XmlV@U@bXb‚LVxn@Va„LVWVLXU„b°@VW@aVIkK@UmVmkU„ÑVJnalLVUVJXbVkVJXUlblUXJVI°JnI"],encodeOffsets:[[118182,28542]]}}],UTF8Encoding:!0}}),i("echarts/util/mapData/geoJson/ji_lin_geo",[],function(){return{type:"FeatureCollection",features:[{type:"Feature",id:"2224",properties:{name:"延边朝鲜族自治州",cp:[129.397,43.2587],childNum:8},geometry:{type:"Polygon",coordinates:["@@Wxĵ„mš@„ó¤VX@@xܼƨš²xWxƒV„V@„XVƒ„„„ƒbWšXllaÞU°Ċ„@ô¼„LôÝWanV¥ƒÑnĉ°¥šÅX¥°¯@w°w@»°k£°mÈŹ‚mÈbƃŎ¦„K°z@Žkxl¦UbU¤šššklV„KŤÞȰ@@bšV@nVVUlÞ¦lUllœVlU°ÑU¯Vƒ°w„bXxl@VŽ²„˜@n„ô¼ƒó°™kmVk²ĕ‚w@wV™ÞÞ@@Ġƒö»˜¯œ@‚„šbnb°mÞ¯°V°„ÈJmX¥mam™UřƒUƒlaU¯™ƒ@w™Kk—l±n@@wƒkÝVUUl±¯I¯b™a™lƒ@™kLmakbƒ@ġƒŹé°™Þb°šékƒƒLm™„wX™‚aÅb@bVlƒbVb—ÒVbUb›UUanwƒakbVŽUV›ak„¯„UŽƒLmxV°UxnôŻX@J„Xkl‚bkbĉaƒbƒWU„ƒ@ƒk„WUU¯@@klmƒ@@™Å@aƒwWXlKkI@WbUaVIUanUƒƒ@ĕƒ¯K™„mUnWUwm@£ċèkUmbUmm@@nkJUalwk@@nmWUan_óaWmnw±KœIƒwl@UmƒI@an@@mlUÅmV_™KUkƒ@U`@_ƒKUmU™@U¯™mmb¯@kb™ImV¯ƒƒLkbƒKƒƒÛ@ÇnɱJóaÝĢkb@„›x—ÒÇllœ@‚Ž²V‚„ÆUVV„UÇ°X„óxlV¯„lV@bƒV@n—x›@—¤@„șŎnxV¼knšJ‚nšKX°˜¦UlnVbUbÆVnÞWVX¦llšb@l°œVJôÒnLVbšbXŽ"],encodeOffsets:[[131086,44798]]}},{type:"Feature",id:"2202",properties:{name:"吉林市",cp:[126.8372,43.6047],childNum:6},geometry:{type:"Polygon",coordinates:["@@ôl‚zšaÈV°„šK@„mŽ—LWl™nšVxUV‚È@ŽÝĬUÈn‚ôLša‚„²VmĀkV@„ĠĊnU@b„V@b˜@nl°UVnÞaôJ@bš™V„¦mlkššbmVXx¯@Vxm„nbƒ„šbÈK‚V@bÈL„wĠyônšmnbÜ@nn„V˜x@n²K‚„„J@k„al@nxÞU„Lź±Vwkw¯LWWUš™kŎīVwƒw„°y„Vĕ°wÈVlkÛ»@wW@Uô£@ƒn™ĶƒXwW™aUamKóÑUI¯›@k™akkW¥XUmÝÅUVaUa‚mVk—¥W¯™Lm™IlmU»mwȚō@ƒ˜£kJUÇk@am¯y¯UVwƒa@wġx¦ƒKƒƒ¯X°Ċ¯¦U°ċWULÅa±b¯@UkÅWmVƒ™ƒkIUlóŽċ¹™`óIƒlX„WŽXxmbUƒLݏƒbƧ@ƒx¯bƒÈ—l@xƒš¯zƒaݤ@nšm„VWb²bmn¯J¯Ò@n„š"],encodeOffsets:[[128701,44303]]}},{type:"Feature",id:"2208",properties:{name:"白城市",cp:[123.0029,45.2637],childNum:5},geometry:{type:"Polygon",coordinates:["@@ó™ǩŁ@WlwUaƑwÛÅÇéĉamKƒōÇ@Iƒ™ôġVƒȁÑŹçƒ™ÝUƧċĉwóóÝ@Ƒ»ğL¯ll²@ƆÅV@¦m‚Åb@nmlU²VxšlUn™@VbnW„bÇbk҃š„n@èlnlšU҄Ž°Lšx@¼ĉb@҄šUŽċxՃènLVxƒÒƒbÅJ±a@_ÅJÅnƒŽVb„Kl„nUÜĊ@„Uš™xXVÆn„mšVššJÞ¯V™ĠwšƒXw°xWL„x„KV¦ôU„wVÝǬóÞޙ¼‚‚„ÞkŽVôȘxބU„lVn¦ÞšĊa°w„b°@šbÆw„lŤL²`„z°@V@@™nJVnl@@¥nUmmn„@mwnmmUnk@mlwUaƒLnƒ›wn¯°anƒWakI„ƒÇmXwÆamUXUlJXa‚UUklKUknmÞV@‚K@VWÞ@VkUwVƒ"],encodeOffsets:[[127350,46553]]}},{type:"Feature",id:"2207",properties:{name:"松原市",cp:[124.0906,44.7198],childNum:5},geometry:{type:"Polygon",coordinates:["@@„šźèȂÒU„óĢ„š@JŎȄ‚‚LnŽĊbÈêÜƃxVbkx@XǪłôš„kÞ`„šW„b@n°ašbšKšnVw°`š_X`W„š¦„ĊIkmVšakw‚K„x°UÞb„U@lšƒl@°¦œVW„šaÞbšxÞI@mVI@ƒVkŚUWK„¥nL‚a@ƒ„@ȍ„@°ƒÆ@nU@KÞalkUwVékUWw„™kU›VkkƒJk¯@»ókƒV¯ÆÇI@bĉô¯@™ķw¯nmmÅL¯wƒVƒUÞy@UówÇLkmm@@UóxkkĉmL¯wVwkWWX™mLõm@kűV_ƒƒô»ÛƒÆ¯@™Va™VšaĠVlmğwķUóÝƽ£ÇJkbǫaƽLW@nxݤkzƒy¯XɅm@VšôÇX¯Ė¯ºÝnUŽnLVlUÔmV"],encodeOffsets:[[126068,45580]]}},{type:"Feature",id:"2201",properties:{name:"长春市",cp:[125.8154,44.2584],childNum:5},geometry:{type:"Polygon",coordinates:["@@„U°xÆKnn°mĸxš°@Ċó@aÈJ°Å„Uôl@¼l°„IllœUlVƒšXxlVUêVxkllnÈUVll@Vx²IÞ¤VUlVnIôlރlwô_„›„bVaĶLXÅÞÇ@K˜¯@wÛaƒçn¥š¯WXyW¯XwƒUmmÛ@ma™nómğzƒxÇK@aUÇL™a„ƒmanƒUw°@WwnU™al™nkƒ¥šU™@aóIÝbUm¯Vmk—@@aƒU@amVğĉ@ƒlUnÿ±Uƒ™bóKmVÇÞī@ÇVUUw‚™šmXk˜Kn@ƒ™L¯ƒÇU™byókōè@b‚n@lÝX@x¯ô@ƙUV_maXm@aóƒJWxnX@ŽVVnĖVnUJ@nōÆǼV¼kxƒLklÝw@xƒx@zV`ÅbmxU±xU„nnm‚kn‚ŽğU™bUŽ‚šUb@šÅ°Ü„󼄄U`Ʋ@lön‚KšnXWlXUx°xnKĊllôw@Vn@lnÈKôx@VÝz„V"],encodeOffsets:[[128262,45940]]}},{type:"Feature",id:"2206",properties:{name:"白山市",cp:[127.2217,42.0941],childNum:5},geometry:{type:"Polygon",coordinates:["@@Ušl¦kÒÆ°„IlÒU¤ôz„¼lJš„U„n‚ÆXVl°@²aÆbVKČXV¯°¥¯ĉ°W„„„L‚¥Ģw@x„bUx°V°zn‚‚b@ÈlVŽlIœ@˜w@m„U@akU°ƒkUôwWƒÈ¯VUƒVUƒÅ±U›@kÈk˜Ñœw@ƒlaÞġƒUÞ£@ƅ‚KnÑĢ¯@W‚aUaVUVkkw@a¯@¯™Ý™ƒVXnW@@WkXmK@xkKUb@bW@Uw¯„mmb@WKUbmUbUaWbƒJĉIVW@I—l±LkšmU™bUm™@ƒnkKWa¯n™@„`Ubma™„ĉL@bƚ—@W`ƒL@n¯‚Xb‚@kb@x™Lƒ„™@V‚kL±™™mlUIU¥mL@lÅx@_laƒƒ@U—aƒV@kmmƒK„£ƒƒLƒƒmKUnÅKVbmXVlèĉUUbml„ĢŤƒIlŽ¯bǦœl‚@ô¼Ģ„@x°„l¤„n„a„l@x™b"],encodeOffsets:[[129567,43262]]}},{type:"Feature",id:"2205",properties:{name:"通化市",cp:[125.9583,41.8579],childNum:7},geometry:{type:"Polygon",coordinates:["@@ÆlXnĠxĢ°lÈ°š„K„°kXm‚@¦Vbk„ŤJšnݤk„VÞVVkȄb°y„™@w˜k„Ç°a„wƨ@„aސ„K‚VnaWwXWƒ„kôJš_ČºôVkƒ»óyV£kуJůlÑk¥V™ša@wƒkƒbƒmk£¯ƒ@wġƒó»@›kÈ¥°ak„JÆ£ƒġnkVaĊVkçWUnUaÆLVmnL„„‚KU™±@—„m@a¯U„bmV¯m@_ƒK™™U™ƒaƒÅ™Wó¹ƒ@UanmWak@@wmI@y™@mk„JVa™@UaƒIkJ@n™@Um±kkxƒm™Ik„ƒbÇm@Ž°bXn„V@Ž°ÈmlÞ¼¯XVº¯Lm„kWWXLmVVlknƒ@@lnWƙ„Vxbmšnšm„¯lÝaVȁè@¼V„„b™„ÆŽ°ÞUVšJ„„kx›I—xƒƒƒIV¤™ÒXxmn"],encodeOffsets:[[128273,43330]]}},{type:"Feature",id:"2203",properties:{name:"四平市",cp:[124.541,43.4894],childNum:5},geometry:{type:"Polygon",coordinates:["@@Ɇn°W„zlyÞ£mwX@ƾKǬblaÈIƾ¤ôÞĸVĠxnmmVƒ²w‚VnwÆaU_@y„w@wÞxlk„KlwU»È»ŎÅ@mVIUmmĕUU@mWXw„Iô‚@bWnnbU`‚šV@Å°ó@wÞW@km@aŎ烙@m°Ñ°Inm±aXaƒU™n@mƑšU¦@šÇŽ¯aU£šaU™ġ¦ÅҙJōUŻókUÇ@™¥¯ak¯mUVak@@aċçÅaUƒm¦Ý`XbƄ@n`ƒI™xĊÞōÞml@šUb@Wl™_¯JkšÇUÝÆÅb@n™„llUb¯„±a@ƒ—ƒWĉJġĀ¯™Unóšm¤œxôaVnƒxôI@x„V@bmƙ„@lnLmޯޙxVb¯þ"],encodeOffsets:[[126293,45124]]}},{type:"Feature",id:"2204",properties:{name:"辽源市",cp:[125.343,42.7643],childNum:3},geometry:{type:"Polygon",coordinates:["@@żôŎVšIÆÑĢ¥Vš™bV¤°bȍ@™V¥ƒ™Þ£lÇUUUÝlƒÞ£™mţIlƒUa@¥nlWƒ¯ƒL¯™kÇġ¯ğwWmÅk¯UƒVU„„bWlXlmnƒbUx¯xVVknlŽUbV„ÇKUb@„™VnbmlnzUº±bmJUbWÈnèm҄š@X`WL"],encodeOffsets:[[127879,44168]]}}],UTF8Encoding:!0}}),i("echarts/util/mapData/geoJson/liao_ning_geo",[],function(){return{type:"FeatureCollection",features:[{type:"Feature",id:"2102",properties:{name:"大连市",cp:[122.2229,39.4409],childNum:5},geometry:{type:"Polygon",coordinates:["@@‚IÞmVk@wXWÜbnwlLnU„@‚nLlbXW@a‚wnbl@XL‚aš@Ċ¥@LULnJ@xVnmV@VXXV@VJkn@VÜKXXôJlb„xl@„IVbnJVLUbn‚lnVw„JVU@ƒXU‚aUUlwn@°ƒn„VKnV°_VJšwl@nwlV„IXWlIVVnK@IWmkIVaVU@WÈUlmU@U„WUalkXġŻ@kIƒ»mm™akUm›ĉUŁV»²ġVĕ@aUU؍IɃ`ȃ@kƒw@ƒUƒmwĉ™@ƒWķсIĉÇbÝLkymbIƒwÇmÛbmbU„¯ÜõÈkÆVbŎxnXVÆnšǪ¦„bš¤Uš™xÝnĉÒmĊVȄ¤Èš„bƼ„Ā„„ÆÆބźb„VVbX„‚°²¤"],encodeOffsets:[[124786,41102]]}},{type:"Feature",id:"2113",properties:{name:"朝阳市",cp:[120.0696,41.4899],childNum:6},geometry:{type:"Polygon",coordinates:["@@na@UVI@m„ÑW™kaV¥UI@wl@„aÈbšm@wVašk„@@K@kƒ™@a@UUmƒUUalmU@KÇUű¯@±kUKVkUaƒaU@¥m@@¯k@WLUmkn@mmIkm@amU@wVmkU@Klk@U—m˜aXIWWUL™aULVbƒmk@UUmUk±™_Uym@mbkImaX¯WW™xWKzU@WƒkJWwkV™@Um@UbVVVVXb@VWX—@WŽ@Vkb@V™nUK±aUUlwX™ÇWKknU@mmUkƒLUVƒVUUVƒUaƒw™bkKmwnIƒ™kJ@nmbƒ`kmVkLWwUm@UUU™K@UmaUa@UUaWK@mUƒ¯Wkk¯VmUUŽ„xVXUVmL¯ymXkWUbmXUKƒVknWx¯JVnkLƒl@VVxnxlĀVL²WlX„l@bÝVUn@bnlÜaXblIVl@šš@Ȧ@VmbXV‚@@x„VVnUn@`°@VnXU@K@„VV@VmbnVn@ln@b„xƒ°Ub@bšLV`Ånƒ„W@@lUšnnWVU@Vbkl@Xl`XxV„UblŽkX@Ž°¦V„UVVbUlkV›@UbVbkLUxmJkXšš@b‚bœxVKÆlXX˜bnŽnala@ƒUk@U„VVklKVUXKVU°KVan@VUnLšKVL„WVaU_@mmUXa@m˜wXwVkVWXk‚k@›„k@klm@wXKl@U@KVUUUVaUƒV@„alL„xUx@b°°VnnVšxlIXJmx„LUVlV@bnX@Všb„aVx‚@XJ@b‚n@VŽVXȄl@llX@lU„Vô°°@ބVbn@‚V„k„@VW"],encodeOffsets:[[123919,43262]]}},{type:"Feature",id:"2106",properties:{name:"丹东市",cp:[124.541,40.4242],childNum:4},geometry:{type:"Polygon",coordinates:["@@lzXJ‚U@š²x‚@@Vš„@bUVmKUn„°n@lnVK„„nV@n@VlV„°WbXn@‚VzƒJ@¦@bkb‚bUl@bkbƒJ¯zƒWULWbklV„nb™¦VJ@„„K°U„kl@@W„bVn°@„Všm²U˜nX`„UÜLXmVXlKVbUVVnUbn˜ƒX@VUL@lUbWxš@²kl`n@Vlb„@nUVWVLVU@aV@²bl@ÈmšxWX„VÈU„JV„l@„„la„WnX‚KÈkÈ@Va°bÆm„@XV°IVV°UnalƒVUn@UwVU„@@VVJ„I@bl@XK@wWmXU‚UVbkJVXnJVI@mƒknwlKXL@`l@VI@UUaVKÞn„aVm@aÇ£XW„U@aÇUU@mbkKm£™@WW™ƒL@@Kk@kl›U—bWKUkUU¯UõÛƒmUUaVU„U@WU_W@kVkJƒ_WKkV@bUL™¯¯ƒ±mk¯ġƒğÑ@UmwƒKUakƒ™ƒa@a„m¥ÝƒIUWmk@w™mţ—L›KʝbȗKWĢklVbƒX@VV‚knÇV@XUVUblJXn@J"],encodeOffsets:[[126372,40967]]}},{type:"Feature",id:"2112",properties:{name:"铁岭市",cp:[124.2773,42.7423],childNum:7},geometry:{type:"Polygon",coordinates:["@@XJm@¯šmXUlnVbUJƒU@bV@UJWL@VXLmJVbkXlJXxVL@b@V@n@b@`Vbk@lxknV@VV™V@bUL@bV@@bVK@VXLWLXJ@LV@nbWJ@IUV„x@LVJUXVxVx@VV@@LXJWL@VU@@L@VnL@bVVmVX@@VVInJmbnLWVnVULVVU@VVmX@@JVz‚l@„nVVKVXރ@mk_lm„UUWV_nJlUÞÑÞVVUVƒVL„UVJ@I„Vna‚@@KV@XwWknwnKlalU„w„aĉݚwšJl_@aUaƒKUUU@WU@WXUÆ@@UVK@n@UnVVšblK@bœllb@b„bW@Xbl@UlnLl°°bš¦nKlVnI„V@UWU@WXkƒw@am@nm@aVw@I@KUaVIm±XÑlknJVnVJšaX_VaUaVKmwnkmmn@lU@U@mnašXlKUmUIVmklaUK@UlUVUW@U™kVm™a@UUU@JmUU@@bmb—KWV¯XUKm@ka@UVKVk@aUKmLkKUUÝUmbXbÇJ@k@WU_@m™™@klm@UXKVaUI@KWUXaƒÇWk™aWUkWUL±U@lUU@ƒUJƒI@V¯JmIm@@aU@Uwƒa™@UV@VkI›V¯aUkƒWkb@bVL„@@VVVUXW@Uaƒ@@b—‚ÝbUV݄@ŽƒLmUkVUbVllLUV@LššXŽWbUXm@U`@„kxlnnJlbnIllšLX„lVlUXmVK„n‚V@L"],encodeOffsets:[[126720,43572]]}},{type:"Feature",id:"2101",properties:{name:"沈阳市",cp:[123.1238,42.1216],childNum:5},geometry:{type:"Polygon",coordinates:["@@ȚĊÜ°„b„L‚lÞxUbUn±‚@ÈnVÆL@xnLšlUVƒbƒxkImJkn@V±LUxkV@bšbšKVKnzVl@L°@Va„xÞUlbôxVVœ@@V±bnŽ@llXL˜ŽöXĶŽnal@nkVJVI@aU@@aVK@ašUUUU@lmkwl@Ua@_@a@m@U@aUKWwkIlWUanIWK@UXKVIU@@a„VVIUa‚mVknW°™n@WI@KUƒmULWnkVkUWƒ™KkkmJkamIkmlw@ƒV_n@VWXaW™™@KVUkKUkValUnV„K@ÞƒVUÞa˜@a„@VbX@VWUU@Uƒ@UK@ala@IkKmUUa@U@ƒVƒkk™WVwU_@KÜUXbl@V¥XUVmƒƒƒXa‚kŃlUUkIm`UIUJW@UIKmkm@UUJƒImmU@ƒVUXU`mIUbUK@LƒJUU™l@Xƒ@UbƒJ™kU@ƒŽn„m@Uam@@ƒ™aUmLKƒwƒ™mWXUK@kUaÇa@JUIUa@aƒKVUƒUXmƒUy™_@lmbkLUKWLX`‚n@bVL@JXL„‚WX@Vnb@Vm@UbnVmL@V@x@LUbVV@V@LƒUVl@mb¯U@xU@UVVV@X@VVblJ@bn„VKUn„x@llnL±¤™b@k`VXÆK@„kV@¼kl@bWIUl@VmLnbm@@JXXmb"],encodeOffsets:[[125359,43139]]}},{type:"Feature",id:"2104",properties:{name:"抚顺市",cp:[124.585,41.8579],childNum:4},geometry:{type:"Polygon",coordinates:["@@„XVl°bœUlJ@UVUš@„bVxV@@bn@nJ°I@U„J‚I„VV@V@k²VVKlXXVšb‚lÈX„ŽWbXV@LVJUbWL@Vkn@lšš@nV`@X@lÈIWanaÞVVVlLnKVL@bUlUL@Vlbn@VL°WXU˜Lna@aV@nV@IVV@VšbUnšl@V‚XnKVa@U„UnyWkXaƒaVk@ašašbnm@_WKXmWanU@alaU—l@XJVLVxX@˜wnKnVlwƒƒ™@V_@a¯¥@UkKWUaUU‚anK@IƒaU@WUaVw@klUVyUUVUUÇ@Iôbša@mnUma@kXa@UWak@Wa—l@a›@WUƒLmU@U`mIUU™`mUk@@UUK±nkJƒbUam@kwm@@a@UU@Ua@@K@ƒVK@kmKU_UKƒUUaĉWmkkL@`™LƒnmlkLkbmK@k™@Ulmb@b™„@Ž„xUVƒIUlmVXXƒxm@™JUUk@WUk@ƒakx±@¯x¯Umb™KUUVmUU¯UmVVn™WkÆ„lWb„„„ŽUnWVU¦k@WaÛV@LV`UxšXllU„@„@VVbnVlL@J"],encodeOffsets:[[126754,42992]]}},{type:"Feature",id:"2114",properties:{name:"葫芦岛市",cp:[120.1575,40.578],childNum:4},geometry:{type:"Polygon",coordinates:["@@ll°X„ŽnV‚@XLVb@VVbnb@VšLVV@VVnXxlKnU‚l„_na@mlI„šmJnxlLša„xVbU„VV„UVU„KVlnnV@lmXLšÈWŽkxVV²bVLšm@Ula@UX˜@XW@UWaUUUUVan@V‚š@lUXxlIX„V@‚yXLšw‚ŽXXW°nblJnan@Vzš`l²nVVVl@„nUaVKšbVKnXVaUaVUšyšnXK@kVK‚@X@m@m‚LXa„LWƒU¯„w@™ƒa@UVw„¥°™ó¯¯y¯ƒUǯ»›w¯Iƒm—¯Ç™UUl™¯»ţKċÑţķm¯w@mU_ómk¼VnU`±IkbVlƒnnŽU¼±Lk`@X™Wl¦UbmVUxkXVlkbllU„Vb@bkVmx@XVV@Jb±aULkKWXkWmX¯aUJmIkVm@ƒxU@n„"],encodeOffsets:[[122097,41575]]}},{type:"Feature",id:"2109",properties:{name:"阜新市",cp:[122.0032,42.2699],childNum:4},geometry:{type:"Polygon",coordinates:["@@šXnb°lš„VlnXVJ„LlVnl@zÆxnK@b„blKVLn@@V„aVLVK@L@Vl@XVVInVVKVwlUXwlKšL„ššVVb@aV@X„lUXbVW@n„lWnXKV@@V@XUVVLUVV@@bVVV@@ln@VbVUXV‚I„xVanJ@UšIVWšL@UV@@¤V@nInw˜W„k„lnIVx‚lnzUVÇJ¦VVÜLĸUnW@aV_šWĊXXa‚Knkl@nm™L™a@alUVw²K@UlmnIlJ„w„aVU™kmK@wÅKmU@DzVmVaÝwkƒKƒaÛ¯șĉķ¥ğ¥ƒ@kUWkƏī݃ƒ@@akU„K@KWIUm¯nƒU¯JmwUVmIkJÇLm@™UImJUU@aW@U@@nUb™JƒaƒbXVWn@UVmX@V@b„š@l@Lƒ@™lUb@x™nÇaƒbk@@xVJU¦lbXšƒÒ@nUJ@Vmb"],encodeOffsets:[[123919,43262]]}},{type:"Feature",id:"2107",properties:{name:"锦州市",cp:[121.6626,41.4294],childNum:5},geometry:{type:"Polygon",coordinates:["@@nJ@nlmVnXKl@@°n@@¦‚V„bVbUlVL²l°@ƲÈV@LV‚knVb„VVnnWVU‚@XmWU„a„bšIVa@mV@X@@bVVnIVJ@š‚nÈKlInJVUnx°I„V°mVnXJ@LƒLlV@b„@ބƐĬXllV„@Ġ¦ĸ¦naWW@In@manK@UVkXJ@alk@»lU@ƒÅLUWl_@ša²£‚Kkm@kƒwVmULmƒ@akIUa@U@WUUVU™aÝ@ğ›wkƒƒmĉ£UWƒ@@bÇL@m—a@_mKƒlƒXUwKƒLţÓ@UWw@K@U„I@m™U@UV¥„@°UnJ°@@_™KUwƒW@UnaWUmmI@m™ķwUaÇLóVĵwݙUUW™¯šƒ¦Ux@V„b@šƒxV°X„ƒKWbK@n@nW‚@UL@lWL™m™zUVVbUbmWXXWJ—b˜n@Vkl@LlVUn@xnV@bln"],encodeOffsets:[[123694,42391]]}},{type:"Feature",id:"2103",properties:{name:"鞍山市",cp:[123.0798,40.6055],childNum:4},geometry:{type:"Polygon",coordinates:["@@l„œxĠŽÞ@šbV@@w°Vna‚@Uk„V@K@UUUVa@K@w@UnKmUVan@@Uma@UXWƒWK@IUK@amW_XKVLlKna@kmKVak@VU„@VmšU@anIÆan@‚a„šUVnb@blLV`ÞLlU„bna‚Kn@naVU@¥°IVK@anUUKVaƒUVak™@mJƒkXƒ™UVwkƒVUUa°U@Wƒ@WlkXWlIXUlJlaœx‚IVVXLšll@nLV@lLXl„KĊzš¥maUƒlkXaVK„X°y„Ila@aVkala@a@¥„IUy@WmXaƒ¯kU@U@mmUƒƒULkmm@ƒ¯VmnLVU@a™ƒ@U@±w@™VWIkymLUUkJWXƒJkUmxk@™xUI¯`mUULmƒ¯„m@kxVVbWV@„UVƒIUx@bkšVšVVšxUbVV@V@zšJVXU‚lnk@@lkLƒlƒLUU±Jkšm@UIUVƒLUVU@™K@UƒnnV@l@Ll„ƒaUJ@zn`@nWlƒIUVUUUV±Ln‚@nmL@VUVkLVlUxVLVlÅXma™@@akLmWUX@JUnVJVkXJ@X@`WX„VUVUIlb„W@bVUVL@`Un@¦U`@bUV@z@Jm@@XV`„LUL¯J@IVKmKÅI@J™nWVnLnšVxV¤™z@bmV@VUV@bUL"],encodeOffsets:[[125123,42447]]}},{type:"Feature",id:"2105",properties:{name:"本溪市",cp:[124.1455,41.1987],childNum:3},geometry:{type:"Polygon",coordinates:["@@lb@Vn„lnVVUb@šVJ@nnJ@bmXUx@xVbkbkŽWLUxnl@Ul@„xWx@nUV@¼Ull„knkK@bmbnl‚LVJX@VIVJn_lJVVšXUmnU°VVVUnVVšLna°V°w²@lw„bl@XVl@VVšIn@„wWWnUVk„JVUƒw@šƒ@anaVkš@@lnLlalKnk„mšK@_lKnlĊXVb„VVLV`nL@lUL@„@L@‚VbV@@V@bn@lxn@Vb„alI²mVL@Vl@nVš_VVnJV_‚@nV„K‚V@Xœ‚@b˜kXbl@XblylUUkš™@Xa@UVIlK@UUWVU„Llm@UUUnKWU@K@UXm„XVa@U°KVUUWUk@ašUVKkaWkƒKUknaWa@U—@m@mk@ƒaUJk@@_WKkLmx„l@nUJmIUWlIUaVWVXn@xWLk@@aƒJUI@Uƒ@UVVxm@UVk„mb¯VUU¯JWUƒ@Ån¯aUbÇ@ÇlLmWƒXkbƒƒk@UƒƒIÇVƒUXW™wÇnk@±aU@@bUVUKUXmVƒ@kaUm@k_±l™@XwVa@kVK@U„Wm—VaUmVUUakLUWWnÛKƒVW_—m±V™nƒU¯@Umƒa@Xk@ƒl¯V"],encodeOffsets:[[126552,41839]]}},{type:"Feature",id:"2108",properties:{name:"营口市",cp:[122.4316,40.4297],childNum:4},geometry:{type:"Polygon",coordinates:["@@ĊĖƐn¤„„°Ċ¯ŎWšô„@xXb‚wnKl@nX@VUVƒKmL@VU@Ux݄@Vlb„x„U@VUb@b‚kœ`‚IUlVUn„V@@UV@@JnXlK@bš@nbÆWUkUKVwUklKVU@UnK@mm²KVUVVVU„JXk@mm_@yVI„bkƒ@K@kmU„m@VšLV@VU„KVUVJn@l™²IVV„K„klK@kl@kmVUW™I@y@UUUVa™wUUU™l™@akmmVaUKmIUaƒJk@ƒwkaóIWWÛL@UlmUIU@WW@UnUUm@wmIVK@Kĉ¦™@bWKk@max@bWXkamKƒ@mVkKmxÛaWX@xUlÝnJ"],encodeOffsets:[[124786,41102]]}},{type:"Feature",id:"2110",properties:{name:"辽阳市",cp:[123.4094,41.1383],childNum:5},geometry:{type:"Polygon",coordinates:["@@š`Vz„‚Wn„VUV„L@bVbVJ@IÈbVb@lVLXW‚n„š„x‚LnKVŽšb@„n@Vbn@mƒ„V@šl„IVa„@@WškVV„I@KVLVanJV_VW„UV@nn„JVI‚Vn@na@alLlmkƒVk@»VU@mXwƒwk@@VmkVwXKllaUa@wVwnW@amI@mUI@™VaUUkmmƒ@UkaƒL@ƒUIĉyƒLWkkKU@mKk@™kWKUUJ›wkbkIWVkJWXkl@X„‚@X¯VVbUVl„UxšVW„„lnIš@l‚Ub„VUbVLmV@bUL¯J@¦UVmbm@LmbƒakVÝKU_kK@amaVUƒ™bm@ÅbmJ@b™VUnƒ@UVl@UbnL"],encodeOffsets:[[125562,42194]]}},{type:"Feature",id:"2111",properties:{name:"盘锦市",cp:[121.9482,41.0449],childNum:3},geometry:{type:"Polygon",coordinates:["@@Vbĸx‚š@nnJVnXŽmb@V„XVxšL@`¯@mI¯Vƒ@U¦@VšV@nƒJ@V@LXx@VŤÔ„K‚LVx„W„knL@`˜b@nÈK@a„@VXĊ¤„nVK@aVU@UnU@ašyU£Uwm™mKXUšm@IÆJnLUL@J°IVKƒKU_@Wn@@I@yVU@aV_@¥Vm@_UKUV@aƒXkaVJVUƒUXW@_@WWIUlUIVm@IVW@IU@@VU@mƒUVVkJ›_l@aVa@UƒVƒwka@UރVwV@@UnK„LVU@UmWk@mLxWa@wóƒUVUIÇÆĉ¦¯¦¯xʟJ"],encodeOffsets:[[124392,41822]]}}],UTF8Encoding:!0}}),i("echarts/util/mapData/geoJson/nei_meng_gu_geo",[],function(){return{type:"FeatureCollection",features:[{type:"Feature",id:"1507",properties:{name:"呼伦贝尔市",cp:[120.8057,50.2185],childNum:13},geometry:{type:"Polygon",coordinates:["@@„m@Łkƒ™Žƒklƒôƒ@£kJ°ý™ɅķÑó¤ğLĉÅlÇğŁW¯¯›™ƥóÿlwkţÈéÝƛó™°ÞÅxV¤ĉĖWƒ¯lȭţυ̃ɱÿķƅˋğɱřÝţϙȍƧĊţ@¯kWKUKm¹Å@ķJU@ƧÑƧ„ō¥˹Ɔ@L@„Þ‚VLnš@VōČWJX¦@JŻbU@ţÞmVU@ȁýóbkWWLƒƒÅ™¯UWġkmóƒ±UŹôV¼ƽ¼ƒł̥ĖƽǬʉxĉŽŻȗKΕ̛ʵƨʟÞ˹»Ƨţ»Ǖō˷Ȍ±ȚʊĠUɾɜɨmÜ֞߼˸ƅȂ¯ǖKˢğÈÒǔnƾŎՂ@šĊbôô̐¼ƒ@ĊôĊŽÞĀ™xšĖƧL±ŽœŽ‚Uš°U„°ĬƒČ°ÜƒêɴȂVł°@ƒ„nxŎèƒbȄÞȌ΀ǸlŽ²IlxĊl²ÒmšôĖ™Èl„ĵºm„ÈêVþ„xɛČʉÇĵVmš„ÒƒÈɆôƐŰǀĊ°ÆǬĮƾb„yĊ@ĠšƒXǀċm»ôw°Ûk¥Çm¯ç™kkÇǫţǕéX_ĶWǖīŎaÆĵĸĊ@ȚȘ‚™ĊLĢĉ„VÆĉʊÇĕóaU¥šĉ°mkÅ°ġUĠřk°mƒÑČÿ˜ÛƒWĸ£ʠšÆxÈÞŎÞ»ʈ²ĊÇČalÒ°Ť±ĸz„ŽĊKȲm¤Ŏ@Ò°¼nyȂUźīǖƳÈē°@šÝĶƒ@ƒÈkl¥Ççkxk™›JXÇƒUÅ@˜£k»„óƿīÛ@lÅJl¥óý@¯ƽġƍÅan™ċ™°é¯¹"],encodeOffsets:[[128194,51014]]}},{type:"Feature",id:"1529",properties:{name:"阿拉善盟",cp:[102.019,40.1001],childNum:3},geometry:{type:"Polygon",coordinates:["@@™ƏnǟƨʫšŹɆÿ°¯ÆV²ˢ™żÿ@ÝÆŁȰ¯ȀƳĉó™™@ğkyš¹@īš›ƒwl£Źƒƒ¯Ŧé@™ÇÇxŋĉƩUUŃōL™Ç™ĵóÝnƒóç@™™ó@ġƒƱ„¥ƒç™WUçÆōƒ@é—çťK™çȭVһƽ̻aW¥ȁ£ʵNJǓƲɳޗǔlżÞmĠóĬȂɲȮ@ÈĢŮźÔnĶŻǠšŎȭœгŃċóȭţΗÆƑÞƧÅΫóȘǫɱȁġlÛkÇ°ȁÈnšõl¯ô„ÞɛÝkĢóWĊ„zÇɼʝ@ÇÈķlUČÅÜķnέƒǓKȮŎŎb°ĢǀŌ@ȼôĬmĠğŰōĖƧbЇƧōx@ķó£Ål±ĀƧīXÝġƃêĉK°Ýʇƅ@ΌʉżÅÒϱʈ@˺ƾ֛।࡬ţશóЈèʞUš¤Ґ_޸Ƒʠɽ̦ÝɜL׈ɛϜóȂJϚÈ@ǟͪaÞ»Ȯź"],encodeOffsets:[[107764,42750]]}},{type:"Feature",id:"1525",properties:{name:"锡林郭勒盟",cp:[115.6421,44.176],childNum:12},geometry:{type:"Polygon",coordinates:["@@ʶĬĊIȘƨƨŽ@ĬÛĢșŤĉĬƒĀóšU‚ÈŚÜènŦƐȤȄłϰUƨťƾÑ܆ğɲƜǔÈèʈƲĊƞƒšɆ¯̼V˺Ò˺ȂŤVĢêU܃x„Āˌ˘ƨ„Æ°ѢmÞżU¼ÆlŎ@ĊçŎnÈÒͪŎźƒĸU°lżwUb°°°Vš£ÞlĠĉĊLޏɆnźÞ„n¦ĊaȂīġŃ¯Iĉůl»kƒ„™Çý„¥Ŏ¯ƒén£ġљÝȭxƒÇ™@Åçķ»óƱŎ¥™çWÿmlóa£Çb™yVÅČÇV»ÝU¯™KĉýǕċţnġ¯»ÇōUm»ğƒÑ™wƏbċÇŎċwˋÈÛÿʉÑ°Łkw@óÇ»ĉw™¥VÑŹU™mW»ğğljVÿŤÅźī@ř¯ğnõƐ@ÞÅnŁVljóJƒwĊÑkĕÝw¯nk¥ŏaó¦ĉƒV¦Å`ğуÑÝ@mwn¯m±@óƒÛKˍƏǓ±UšÝ™a¯lƒōšșk„èƒĬގn@ŤġŰk°ċx@œĉ`Ƨĕ°@ţÒĉwmĉ@ƒƒnƒƒa„™¥ķnƒÞĉVóÆókĉŽķ@ÝkƧƧÛaƒ°Ç@ÝÈU˜óbݼ@„ÛÒV°™@V¼ˋL™ÞɅŤŹǠVÞȗŤÇĖŚōbȁƜ"],encodeOffsets:[[113817,44421]]}},{type:"Feature",id:"1506",properties:{name:"鄂尔多斯市",cp:[108.9734,39.2487],childNum:8},geometry:{type:"Polygon",coordinates:["@@ĶL²ĬVłƑkkl@Ȏ™ŘWńÈĬȗ¯™ºlz@ĠššĊôŦô„ÒĠ°kÞܚ™n@¤„UĸèĸbŌÈXŽĸLlÒĢxɲÆ¤ÈÛƾJÈÝ°UšÅĶ»²VW¯ĸJôšbk‚V@ôlbnĊyÈzVôašb@ĸ‚ÞUl°yǬ²Ǭm°ššk„±lbn°@È»˜JX„VŎÑÆJ@k„LšƒÆl²™Ġ²ʊůĊġ‚řóƛÞÅ@m„ƒmLUÿóĉƧ@™»L@„›`ČĸmšȗÑţů±ĉğl¯Ā™wǎƒçƧŤÛI@±ÜĉǓçō°Uwô™ǫůķƳř±bÅ£™ÓÇwnÑó@ȁƽ@™ƒÇƧĢón»ŏĕóĊ¯b„Å™™VȯÅImƒōKU„™LǓ±Ýxċ—ŋ˜V±Āȗ°™„Źl±šÛ@WÒȁŚŹНŚÅèŌô„¼°ȰɞȂVĊ"],encodeOffsets:[[109542,39983]]}},{type:"Feature",id:"1504",properties:{name:"赤峰市",cp:[118.6743,43.2642],childNum:10},geometry:{type:"Polygon",coordinates:["@@ɲŁĢljĊwƾōÞĭ°_ŎŃźȹƒUČÿl»¯ôķVÿǬƽ™ɅġÅÑǫ»̐ʟȣU™¯wVWݍÈġW»Þ¹m݃ɛŎÿŎōͩůV¹›ō™éċ™óŹÅVVĢǩʈ@Ėċ@ķšÛšV°¯xÇÅţ¥™»°Ûô™ĉʟ„¥WýČ¥™w‚灻±mnÅķ¥ˋVƒbUÒġ»ÅxğLƧ™ƒbWĖÅxš¦U°ÝVóŰlô²@š¥ÜÞÛô„V@²±`š¦™„™¯Ý@„ŽÅ„VÒō¼ôš™¤V²ŹĬÇĊƑƒţxƒç¯Lk»ʟlƽýmłÝÆƏ@mö°Ġ@ŚŹĬţÆUĀĠNJĠŽX¼šnźVUҚ¦Ċxȼ@ôlx¯łʊÒÜĀˌÇČxƍČÈƐašx„ÒĠŽn¼ŎVȐ‚¼Ģ°ŤmǖČĊþšLV°ÞŽU¼ċÈUƚzÈa‚¤ôbkŽ‚nXĀšè"],encodeOffsets:[[122232,46328]]}},{type:"Feature",id:"1508",properties:{name:"巴彦淖尔市",cp:[107.5562,41.3196],childNum:7},geometry:{type:"Polygon",coordinates:["@@²@Ζǀݴʶհĸ„˜ƒ¦Ķ™̒Uˌ¼ӾÇƾ¼̨UÞĉ˜Ƨ—éÝ»ƒĕĉ—ƐȍœōǪakó‚ó¯a@™ôţ™aV¯Þ¯°@²él¥ĵğťwōxó¯k±š—Vó@™aóbUÇyĉzmŽkaóŽU@l™aó‚ķIX°±Uĵ¼™Æ¯VÇÞƽIÇÜÅ£ɱŽġwkÑķKWŋÇķaķçƒV@£šmۙlÝğ¯ƒÑťóǿƴȯ°Åł@ÞŻĀˡš±ŽÅU¯°ɅĀ™źƧʬmǠšƐ"],encodeOffsets:[[107764,42750]]}},{type:"Feature",id:"1505",properties:{name:"通辽市",cp:[121.4758,43.9673],childNum:8},geometry:{type:"Polygon",coordinates:["@@ôƲĸ¼Æèš@„ÈȮwƾ»ʠĢ¥VÆ@²¥@»Ŏњ¯ĊJŤ£k»ÆÇX¯̼ōšī°aX£ôƒƾȁź¥„ƒ™aôŤ™ĢL°ƒĸ@Ȯ¼ÈÒʈŚôVXůÆaĠƛÈKƒķšĉôÿ@ğÈĉ™»ÇVn™ĉV›wXĠÝ°šČÿĸwVƒ™¯¯ǵ±™ĉ‚ǫ™ÅÅm»²Ż±ƽIm¥ţÈķ@¯šƧJV»ÞUÝç¯UġºU£ţŽóaÅÅlƒƒ™Ƨī¯K¯Þ݃ğL̑ȍƽ@ōŎōĀƑɜnÞݺX¼ÇĢގUX°xVšʠȤ̏Ǭ¼ÆÒɆĢšŽǫƾUĀóĸ°‚k¼ċĀƑVŹȺōń¯`ÝĮƽŎĉxġNJɱłō¦"],encodeOffsets:[[122097,46379]]}},{type:"Feature",id:"1509",properties:{name:"乌兰察布市",cp:[112.5769,41.77],childNum:11},geometry:{type:"Polygon",coordinates:["@@ʠǠÞĸɲȺƒÒȂƛŎaƙÈĕȘţUÝźǟɆţšÝˌKU»š@U¯ÜÑ@ƒÞ»ôaV—ÞÇÈ@„¯ÜbƨƨÞlĸ@ĊôlôÅĊU„Ýĸmš¦ƒŽ„bm„„„Ċ@n‚ĊxŤÑ@¯‚ƨĖĊ_@›Čwl¯™ƒȭL›Ý„»ƽ¯ķů„Ǔ@ÇǓbċ™ÅÅÆwÿĠÇU£óaƒ¥¯aŎğĠţkw°»¯ůlÝĵkǻݰɱƧǫaóôɱ»Çk¯ŃóƒʇŐŻ›ĉNJŻĢ„Ž¯ÒÈUl°ƒx°n„Ò™Ĭón™Ċğ°ÇŚĉ¦ʵVƒ°°ĬÛżÇJȁńʇʹó˂ƽŎ›Æţ¦"],encodeOffsets:[[112984,43763]]}},{type:"Feature",id:"1522",properties:{name:"兴安盟",cp:[121.3879,46.1426],childNum:6},geometry:{type:"Polygon",coordinates:["@@ÆXnlŎ°@LVLĠþœxĊUȮĊnU„ĠV@żaW¯XIŎġƒ¥Ý@K@w@K@I˺ŻŎ¦ƨƒƨÒŎIÆ@X@VºnX°lŎ@ƾĉˤƒȘǷȘÑÝݚÞbVţĸÿŤxÈĖƐŽêÇKnĸ¥ô@›ķÞUnÒl@UŚaƒīˋƒ¯ÑƧx@±kXřƐƏÛéV™ˋ»lō¯ĉ„ÅÇÓǫޗĖġV@ğ»›°ĵ„ÇÞǓ¼¯m˜ÛÅŃĉĠÇƾb²çƒ™šéż¯VƒƒğÞml»ōÑV痻V¯™¯šĕÆU¯y°k¯¯V»ôDŽѰa@Źk™ġKţšóŽšbƒ„Ź¦ƽȂó„W¤¯b™Ĭ̻ŎW°ÅÈl¼ţ¤ĉI™°ōÒ@¼±¦Å@UŽġ¦ʟŽƽ¼šÞĢÒm¤„êō°ƒ¦Èþƒšl„k¼ĊŰ°JĢńȁĬ„°ƒżn‚ÇbV„ݼ@¼óĸţ¤@°Ånšl"],encodeOffsets:[[122412,48482]]}},{type:"Feature",id:"1502",properties:{name:"包头市",cp:[110.3467,41.4899],childNum:5},geometry:{type:"Polygon",coordinates:["@@źxżĀǔÆǬVȘĀŤ¥œÅƾōôˁʈͳȂŃÈIÜŻ¯ī„¯ōm™¯ɱĖ¯ƒķÒÝIÝ»ÅV™ƒlÅôфġ™ğVmÞnnƒWçkW܁XƝÆwU»Șĕš£ĉÑ𱱚Åk™„ƒK@lÅIō҃UW‚—IǼ¯@m‚kaƒ²™l¯™ǫnǫ±¯zkŽÝVķUô™˜l²ô°ŎwŦxĶĠk¦±ê¯@Ý°U°šbóŤ@š°bôlôǩb›ŎƏȎĊ˜„ĖÞ¼˜ê—ƨÝĊ"],encodeOffsets:[[112017,43465]]}},{type:"Feature",id:"1501", +properties:{name:"呼和浩特市",cp:[111.4124,40.4901],childNum:6},geometry:{type:"Polygon",coordinates:["@@ʶUĊ¥ÈřĠ¯šĉômšīƒÑ¯m„wk¯ÇV°ÑƒżġĊljǓɱţǓ›ƝóX¯ƒɛÒóa@nÝÆôƜŚĉĢʉŰĊҙ¤ȗĖV¼ÅxWƞۂlXXèm„ÝmUnšĠƒĢóÒkƚ„ÆUÞ¼ÞJĸÑ°„ɲĕš°Ŏn"],encodeOffsets:[[114098,42312]]}},{type:"Feature",id:"1503",properties:{name:"乌海市",cp:[106.886,39.4739],childNum:1},geometry:{type:"Polygon",coordinates:["@@Ș°ÇīXњŗ@ȍlkƒlUŁ±īĵKō¼VŽÇôXĸ¯Ž@šťê„°ź„k¤„x™œ@Ĭ"],encodeOffsets:[[109317,40799]]}}],UTF8Encoding:!0}}),i("echarts/util/mapData/geoJson/ning_xia_geo",[],function(){return{type:"FeatureCollection",features:[{type:"Feature",id:"6403",properties:{name:"吴忠市",cp:[106.853,37.3755],childNum:4},geometry:{type:"Polygon",coordinates:["@@nLV‚@šVLšaÞbn@@l˜š@bUVlUV„zVx™¤kÞVèšXnš‚@nm°a@UƒÑ„@VŽXnV@Va„UšŽVKUUU@@U‚@@KVa@U²@‚wXkWnk„±lLnU@UmmVKnIVWnI@UK›@UK@@UVKXkmWLWUXmlkVwUyVa@w„w@aVI„K@aVÈw„KlLVV@LnV„VVnU‚ܲ°WÈIUÆ@nÞ¼‚‚@¦™@UÞUVW@UxUxVn„b„K‚b¯ÞU`VbǬ™V@XXÆVVl°InmnUôƒ°¯‚anam£œWVX‚KXmškôaVU@ƒVak@@wmaƒn@K@UÛUWKXUƒÇƒ@UI™b@alW@akLUKV@@Ukw±Iš›nL@kmwkWmk@JUIƒůVmnnU@m@UƒK„VKlkUwkƒƒnVUKmbkI±š—KƒkmVkKƒb@U@aƒVkUmn™`kIlaUK@UUKmbUIݚUa@mUa@aƒ„m@UUULUK@bmKkbWI@WXwlkXƒWa@k@kKƒLVkkK@L@JUVmzUKlwUUnW˜£XVlKUwVU@aXI@aWaUw@W@_nam@¯‚UkWVkUWaU@nwmJkUVkWVUmUkJ@ImbUaƒ@@WÅ_mJknmak@@mƒXƒaUV@„ƒxUšƒ„@‚ƒ„@VUnkVƒ@Vn@`ULUbWLXVW@kbUJ@XW`@ƒnÅĖWJƒ@—m°@xƒxšbnUa‚w²lƒÞ°xŤIVVULۂWbšbkVVXÆ`UbVL„@kx°LlV@Vœ„WbƒJn@bl¤ULV„°@lmL@ƒƒ£U@@aUwmKULVxUVVx@„™@kU™@mK¯LÇa¯@"],encodeOffsets:[[108124,38605]]}},{type:"Feature",id:"6405",properties:{name:"中卫市",cp:[105.4028,36.9525],childNum:3},geometry:{type:"Polygon",coordinates:["@@°@Èb°KnLš@lVš@@ƒUwVUUwVKnLVx@bV@„¤@„nK@k‚¯UƒVKk£@a‚m„IXa›ƒ@UkU¯Klwƒ@UKVaÅ_UWlU™aXa܁VKUUţJ¯w„ݱkxVbmŽ™a„w@wn¯˜„@XIÆĕ„m‚@X_@WVIlaX@WUXKVaVK@_Um„@lUVm@U„ƒ@„ƒV™„w@ƒVUÛwm@@W@ImKUkU@Ua‚aXƒ@wWaUKkw@UVaUamLU™nk@»±`¯@k—W@Ua™ykbƒI„„@VWJkLWUkJƒwU@ƒn¤mL¯wm@Umƒ²XVWbnV@bmxƒVkxUblLUV@kVWKU¼ƒŽkUƒ@mn@JnV@bUnmJUn@„k‚@XlxšLVVnKlLVV@š@LkKULVbk`WL@lkXW@kVƒ@UÞUlÇX™lkaUbmV¯@@L@šƒV@bkb@xƒlW„—bƒbW@—±@UJ@IU@mVk„VxV@@l„Illœn@Vm@ƒVUbl„@JLmKÛXmVkU›KULU`@LĉwƒKUX„lVUl@Vb„JX¦̼bÞxŎxɜĖĠ„Ŏaô@"],encodeOffsets:[[108124,38605]]}},{type:"Feature",id:"6404",properties:{name:"固原市",cp:[106.1389,35.9363],childNum:6},geometry:{type:"MultiPolygon",coordinates:[["@@Vnn@°xnK‚£„mV@„xlIXVlKXI@Uƒƒ„JlašzVbX@l˜°@²_@¼mlVšnKVbUb@VlxVLXb@xW„bVbV@VlnL@J@Xn@Üx„b„W@nl@nblmnIÆ`@X„@Vbna@aVUUWVkƒ@kbWakbU@VwšW@_l@nmn@@alVlk@UkmVak@@a‚UXaƒL@¯@KVa@axWI@KnkVaVJn_lJ@„X@‚m@nVanUVb@mXLlJ„VWnLla„VVaVX@KXVVkVKlknKVa@aVU@KXb@klJUknUmƒ@K@_UW@alIUamaU¯kJma@IUK@U„@@UW@@aXLVƒVJVaXIƒKlaUkUV@ambUUJkIWJ@wUI™V@JU@UwV@@Um@™nU`@UkUmVUxWUUV@aÅb@aWXkKUUƒUUaWK@wnm@IVU@aXwm@UmVaUalk@anKUwlƒUwlkK@wmaƒUkmmIk@VmkUUbW@UVUnW@kV@xkVmbVnU‚™@UbUV@a›k@kkW@„kLW¤@„nV@VU@W_UV™UU`VLUV@IUVõVULU@UUUJ@wmkUJ@šWI@l@bkKkbVVƒbVbUL@UUJ@Vm@@L@xbVVVLVlVwX@Vb@bmUkbk@@JWIUVÅw@Km@UkWKXxWLÅ@UVUnWK@xkVW„@KULwWVXVWzXVVKVXkV›V@VUbV@U„VV@š@LXxVL@V„b‚Ž„LnKVLVxXVmb@l"],["@@@J@aƒU@LWK¯UUxVVn@Ġ„„LUW@UbUUUa@KUX"]],encodeOffsets:[[[108023,37052]],[[108541,36299]]]}},{type:"Feature",id:"6401",properties:{name:"银川市",cp:[106.3586,38.1775],childNum:4},geometry:{type:"Polygon",coordinates:["@@šUšwVK@UVWÞUšbšw„V@knV˜@@KU_VK@K„ƒn@W_XWlL@Vn@Ċw@Ulaœ@Wanamī@aƒ»ŋó@aÆÅɲÿUaV_°ÝaƒLƒaUmVwVwX@VUVݚ@@¥Ý»@mVÅÇJ¯XÛ±VUmƒUmU@KUUkKƒLÇxUŽ@bƒLUJ@bƒx@xUbVzUxklWnXV‚KnXWlUL@V@ŽVLœ@VL@ŽmJUXmJULnn@VmVkKƒ²mlXWlx±@@VUb@L@@VV@VVUL™ƒVUbU@WmUƒ@„Ò@V¯bmn@VŽƒ„@lVnUšnVWŽXVl@¦VVUn@x‚š@‚XL@¦‚lXxš„Vb"],encodeOffsets:[[108563,39803]]}},{type:"Feature",id:"6402",properties:{name:"石嘴山市",cp:[106.4795,39.0015],childNum:2},geometry:{type:"Polygon",coordinates:["@@U¯ķó±ÇÛ¯™ķmbXb›@kb@Vĉxm@@UkKWXX`m@ƒ„@LULV`@L—@mU@lƒU™x™aÝVUX@VUL™x™VkLWVšš@J„nVLXVlŽUV@zl‚VL@V@b„„n@lU²WVLlLVbUŽVxUx@xǀL˜xôҜk‚K²ŽVa‚U@wXa@W™ÈĉUa@‚bÈk„m@¯"],encodeOffsets:[[109542,39938]]}}],UTF8Encoding:!0}}),i("echarts/util/mapData/geoJson/qing_hai_geo",[],function(){return{type:"FeatureCollection",features:[{type:"Feature",id:"6328",properties:{name:"海西蒙古族藏族自治州",cp:[94.9768,37.1118],childNum:7},geometry:{type:"MultiPolygon",coordinates:[["@@„V£°š@laœXô±źwš™ô@„Ulƒża܍n™Kƒw@U„aƒ™ša²L‚mÈLƚÈxlaUa„wÞmÜbÞUšnJ°a„kôƒ‚ÑkwÝVğwÇ@ÝkkV¯¥@ò„»„nŤ¥XImw@mVwša@Åw™mLkaW—wƒ¥l»kçƒó„»@ƒWÑĉŽğ@ĉ„™‚Ń„UwóřVómĵ»™™Ý@VǕ¯kšÝĊÅk™°ÓUklkU±šI„ÇÞkƒ±@šƽJƒ™@UġIk@W¦™VÑșÓÅnťKULnŽ¯X›ƒ@¯mUÛ@WřmóKknōbƒxÝ@ƒŽU@kw@ÿÇLţšÝUkšmwƒŽk™lċVŚU¦™ŽƒLkUWlÅÑ@aƒ@ÅѱUóġŹ¼ƒÈĉmŻ@@wkw™Kl¯U™ġ@—„lÇU™Ó¯_ƒ‚Waĉ²Åló¼VbknƒKǎÅ@ƧĢō°Ý@ğ„W™ÅxUUm@™‚ÝXۂW„ULUè¯@mbUaƒLƒbUWġxIUJWz™a¯b™y™@ōÈóLU`ÇXUl™UĉV¯n›mÛbǕLklƒUĉVƒšóaġ„ƏbġKţnkbÝmmnÝWȭȃŽÝXţWókUÇl¯U¯‚ġUɅĀ@°¯„„š¯„VÆnmJ@ĊķnóJUbÝXUlVškL@lVxnnmb@¤Vzš`ÞÞŤ@„VnÆJV„°b„UôJkzlŽkl@²óš@ÆÇ°kĖƒšÇbÛU@lmb™XV˜kzƒV™ŽɅĀXˢlń„ĬŹ@›éÅ@ĉńÆ°ğbUšlŽɜ_°‚@xŦ˜škbVbƒKĢ„ŤVŎŽ°@żÈźlĊ„ôKôb@nôxŦ„Æ@ôŽŎL@þÆb@šnnšWˌbÈx‚InaŎxlU@Ѳ±ƒğVUĢƒƨbɲ@Þ¥ôUUķWVô¯ĊWʶnôaŤˁ@£nmnIôŽǪK°xUXô@Ŧa°m‚kXÆÞVŎkĊ°ÞLȄôyVašIlwX°UVwĢÑÜKôw@nV@œm°nmŽn„Ü‚ɞ£VbmŽXnƒ°ÜÒ@xx@V‚b²UlbkxVnšJUnVVĊ°KȚm°nxÇnn¤±¦@ŽUXVV@„lV„„bmVVȁŽVxšÒ™°šIšbźaȃšbVwš@šƒVL„™ƾÑ@ƒŦô¯ĊkôÑ"],["@@„@šƒ„@n„òVœa‚w²bVxšxÜaČVô_ĊJšIVmšL„a°@Ŏ¥XlK@ƒšk„l„KVbUb˜@nUĢn‚aÈ@lmǬ»Ġ¯œn‚mnƒƨVy™Ñǖ™Ġ»ɲInŽ‚@@ÅĢƳ@¯°™ôV„KÈbVIÇ¥¯@Ýó„™@ÑnīWKšƒk™‚k@¥š™¯™Åa™Xƒ±VÅw@±Ġ¯@»™š™n™Wmw@ƒ™@¯ƒVƒUUWçƒKĉ„a±VkkƒV¯w™x@šUJ‚x@bknÇb™mÅ@Uw±U¯¦UŽ™Kmš¯I¯Žť¼ğĊ™@ǃŹÈ¯@Ý»ÇnˡJƒbÛèÇnƒ„ÅK¯„ġĠŹW¼Ålm„@¤n²ƒŽÝb@b„š¯lƒ¯@ƒšÅ¤W„™¼nV@x„„°@Vx„@lbUblbX¼W‚œšÇ²lšUŽ@¼ŽV¦@bÇlVxUbVxÞbVšœbm¦ƒVV„"]],encodeOffsets:[[[100452,39719]],[[91980,35742]]]}},{type:"Feature",id:"6327",properties:{name:"玉树藏族自治州",cp:[93.5925,33.9368],childNum:6},geometry:{type:"Polygon",coordinates:["@@ɆÿĢV°°VÈklVôŤXÞW„ȮÇÞXnmÞnlaŤmĢLƐaĢƒôb„™ĊU„VlkǖKÜaœn°mĊUšVVkÈWV_ôKŎǚ@šz°ašbXyVI‚JĢwVX„a„KVbna°@VçVKXƒÜÞWšn@VVÆwXšĠƒÞ@Ŏ¯ƨġÆ@ȍ„LlmUaô»ÆkĊ±Xb„°`šÔV‚kȘƒĢ@Všk°šLlx@xż@Ċn„Çź»ôĢ²VÆ҄@@bÆÒXklV„KšV¥Æ™ČUšk‚l„nxl™çƒ¥ċç@±m¥ƒwÅJƒ@™™™Vƒ„mÈIléÈa°U¥™™@kÞV‚K²ÑWƒ°w²Ñ‚K²ñšyƐ„ÝšVmw„»kkWĉ—JWUƒVÅwƒL™mÅ@@ƒmw„kn¥Vу»°™°@@»„¯„Lla„JônV‚UůƒU@W¯Umѯ¯k@WykU@¯„wV¥ƒkVwţƒk»šwWǜĉĶçšK„ƒÞ™ÇaĉbƒI™lUƒ@kwƒWƒXUƒ°w™±@UšKn£Wĉ—KWxƒkĕVƒšamwXw™@™„Wmnk@aƒVkƒ™bĉLƒl™Imm„wUÇ‚Wx™nÝJn@¥Æ™kwƒaXƒÜĉ™¯ÅV¯¤mkƒx¯kķܙ²VWôŹVUƒƒ@V£™¥@ƒ°wn@™m@¯@UbUôķŽmn@ÆÛ@ÇýVaUÇĊVƒ@Çlğ—¯xÝŤ™lVÈÈVƒx„ƒ¤Vx™„kK@™@ƒx@„kVƒĖġ¥kIWbXŽŎx@nƒxÅUW`ƒ_—@±ŽUa™LUxƒK¯„WbkVlb—bmŽƒLÛÆWIUwƒWkwÝV@kI›ŽéUb›UUk™V¯Km¯k@Umݐ¯m¯›m—L›Þĉ‚ÛUm™ġ£UxkKm°™Lw›šk@kšƒVm„ƒKVUk›@¯a¯Ģ™móKUU™x™ImlÅn™™ÇbXèVVU„°„@ŽšŽ@„‚xXnmš™ššŽ@¼ğ°@²ÆxU‚„²šWÆb°š™š@¦llš™„XLmĬ@҃šÞô°@ȦUJÇaƒLóU¯š@°ġƴ@Ɓ@mɱJğ¼ǕššÒUzƧ‚m„n›mğ°ǫ¼knÇ@bġmmV—@VaUaƒLƒk™l@„kLW‚ō¦¯@ƒb™KUn™JĉIó`ċUÛb™wUw±ax›bñUmƒƒ@™„ƒ@—bƒaƒbǏÅXm˜„ƒÝ„ÅôVbގ™bl„UšÞVޚ„U‚°„VUxƒ@U„V„@l`™¼nL@Ċ„LW„„¤kXķWġXUVVVķ„UbVb@°kVVxÈa‚@ȦĊbšaźJ„U@Ț„„˜Vœƒlš@XkôaWƒĢ™Þ@laĸUÆb²mÞLĠ™ÞÑôbšÒĊa„JVbm¦"],encodeOffsets:[[93285,37030]]}},{type:"Feature",id:"6326",properties:{name:"果洛藏族自治州",cp:[99.3823,34.0466],childNum:6},geometry:{type:"Polygon",coordinates:["@@ÞVŤ™ÈK@ĀlxV@„Þ@„wŎalmôLšnXÆÜ@nV‚°@œ„°WmVKŦLÆmȚԂҚUX¥l@ĢJVš@„ŽƾI@w™W°™™Ån¥›kÅÝVwôƒÈç„@lÑĊĕša„JnaÆLVw°kny°UnkÆVȍĊll¦„Vƾ@@™nUźƒÈǂIn°X„wÞKô¦VWV£„@£°ókċ±I™™am¯Va™»ČĉV¥°™@m„k„¥l@„Ċm@ašU™mwXƒ@wÆxšmĢ_„`VnÆbšKVw„@@ƒnUVğVmVVöIlŽl@@çÛmƒ£UDŽw°@VUƒ¯»m¯ƒJōĖÅLƒa@»ĉĢ±`U_k`ÇçšóƒkX™lK@ƒakÝރš£WċkÝ™kxƒJݯÅw™xķxmIÅx„@k±J@ýŋš›¤UœkŽmV™°ÅÝxkwmġƒnÝVU„š¦ƒŤlmšóXk¤™UKƒç™@mVkK@klīƒ£mš¯VUbƒW¯¼ċb¯ĵam¼mVX„m@k¤ÇX‚ÇbƒUƒ„¯J¯„¯È@˜™bVXVҙ¤V¼kxݚV„@l‚V—„WxÛ¦Wš¯šmKnlŽkŽ‚šU‚@nƑUĉ„Ý@ǺۄċUĉ¥™UƒÞŏ™z±òL±Ò¯xX„±ÒLÝU@lššV¦¯‚ÇbkêÇJƒnU„šš@š„‚ÆI„xn¦‚‚@²Č脦‚è"],encodeOffsets:[[99709,36130]]}},{type:"Feature",id:"6325",properties:{name:"海南藏族自治州",cp:[100.3711,35.9418],childNum:5},geometry:{type:"Polygon",coordinates:["@@VxƒŽńƒš@ĊĠŽĊXÒ°UƾĕÞm°£nb@‚@LUUW„Ûº@nlÆǬšĠ£ÞV°UXb‚VȂǵ„éƒ@kWanm°@™x„z„K°¯ĠVšƒVƒkw™Lnm°kÞxÆa„¥@‚wnĉƏ@™œ_l›š_VwšmĸèŤÅČU@™˜Wn@ÑmKU™nğƒK@ƒ°¯UÿV£nmšLl™„UƒUÛé±óókkmƒnƒakV@Ç°óÝXƒWəÞťIţxmm™VÛUVȂÓnWyȁĉkƒVš°WnkĊa„¥‚_œK°ÿWna@ƒmU¯wƒlÝIU¤UXó¥ÝLƒx¯WmJÇÈŹ„mV@šƽ@ƒUk¥ĉkċŽÅUml¯Vmz¯lUxÅKmbƒI™bĉĖk҃@Çèó„UxÆޜlm¦šÆ¯ššX@x™Ž@Ž„²ÝlƒÈ™JV²klVl¯ÔlšĉƙްlUǖÞ@ššĶ¼nŽUôôŚ"],encodeOffsets:[[101712,37632]]}},{type:"Feature",id:"6322",properties:{name:"海北藏族自治州",cp:[100.3711,37.9138],childNum:4},geometry:{type:"Polygon",coordinates:["@@ōmġxƽUm±Lǿþġԙ@kxmWƒb¯I¯‚mIUx@bƒbŹVǎƒkĵbƒlĉI¯¥ƒUšm@ƒÆ¯È@šašóšUlƒČ»@w›œ»›wXaƒƒó°ţç݄kUƒaV¥ÅbÝw¯lmnšKlxU„™„ğU¯°ƒLƒyšw¯@mnXb‚l„@ƒêȁǶUWa¯VÝUğ¤ǫ™kÅ@mܹXƒVV@K@ma¯¤ÝnƽĖ¯V@„ƒ¼„ôlèk¼„¦˜xXŽlbnKšÆx@Ž™bUx@nnxWJţ¦ƒmƒ¼ñ@Ž°¦lUÞlÈ@ĠxÞUlxÒó„ƒl¯bmI™ŽÝVÛaÝnƒxVbkbÇwřÇKn±K™b„šƒb@V„xšLmŽÛŽŻbk„ƒVó@™šŹxó²›Wkb™@¯U¤ƒźĊ@lUX„°lÆôU„ƒlLX‚aœV°wšxUb°xÜôÈKVkÈmlwškÈKšwšK™™VUŤĉŎ»„»„Il¥na°LV»²¯Üy@wĢƒ°ĸwlwĢw°±„_lVkš@°ƒbƒÆ¯zƒ‚„š„@l_„@Ģ±lŚVlUaރ„LVƒnKlnȏ°IllČa˜wÞÑ°x„UU™@wƒVkmĠLô»„KÞýôaÞ¥ôĀÞmƁ„™‚mUƒŎV¥Èl°²°a²¥V„@@w„amm@Ñn@Æ£żƒVƒĠ£@W„¯Þƒšl@š»@Uk@"],encodeOffsets:[[105087,37992]]}},{type:"Feature",id:"6323",properties:{name:"黄南藏族自治州",cp:[101.5686,35.1178],childNum:4},geometry:{type:"Polygon",coordinates:["@@ôl²ôÜê„VƒVkš™KmnU¤VĀ¯°@„„LmĠVšnLÈL@alb@al@n°Vš_XmWUÈamaVIn@n‚aV£œóVWƒ™U£°ašxÈ¥@™‚aĊwȹ@óša™ƒğbm@k„w@mƒaÆw@ƒ„In¯mmƒ@UkkWƒÑÅ@@kċÅçVkÝJÅkVykŹl¥@¯š™ĢU܃X¥òý—mmX™ÝÅlmU@£™Wly™XW»Åbƒl@aI›»k@klm@UxUUƒVƒ¼¯Xƒl™aUnķ‚ƒI@x™@¯„ƒK™„ĉUU`óšlČ¯ô@¤ƒÞJ„k°xVŽ„n@ŽmbXŽ¯Ā›L`ƒ¦ĉbml¯X™ŽUŽl„ȂĊXzm‚ȁÔU‚ÜVšUnnŤwŦJɚ݄XÞW¯ô@ÈlU„b„mln"],encodeOffsets:[[103984,36344]]}},{type:"Feature",id:"6321",properties:{name:"海东地区",cp:[102.3706,36.2988],childNum:6},geometry:{type:"Polygon",coordinates:["@@@҄bš¤ÆI°ôU¼š°UŽnnWx™š@b¯L@lUUWbXxWl„ƨnxVUllš„XVŽUŽnL@lȀý²KVnƾ‚ĢwV»ƒ@mÞ£nÆƒÞÑmL™ƒKUaVżĕƒWVk²ƒƒÆÝ@ƒXw°@„ô™@a°wóUUmIk™™aVmÞwmknyƒ¹VÿƧnŏm£X»˜™naV±„Ýw@ašb@aƒm¯„ĉVó¦kÝWKUU@WanU™b@ôǺĉxb@šÇ¦™w¯bV¤„šUX›ôU¤bmm@UJnbÇbXVWn™`¯Umk@@bka@bÇK"],encodeOffsets:[[104108,37030]]}},{type:"Feature",id:"6301",properties:{name:"西宁市",cp:[101.4038,36.8207],childNum:4},geometry:{type:"Polygon",coordinates:["@@@kmKVUƒWk™VkUmwƒƧXkWwXaVV@k°K@aš™XwmmV™¯V»¯óÅJ™£ƒamŽ—X@šċVţÆķç™nUx™`kœ›`@šÅmĊx@Žƒ¦U¦„blVރŤèô¯„„Wbœx›¼œŽ@xċ¼k„™V™ô™bÇ@Å°@„™n„V°¦ĊJ„kĶa„lȍźU„a@aVwnJ°°J„anXlwš@ĢÓ"],encodeOffsets:[[104356,38042]]}}],UTF8Encoding:!0}}),i("echarts/util/mapData/geoJson/shang_hai_geo",[],function(){return{type:"FeatureCollection",features:[{type:"Feature",id:"310230",properties:{name:"崇明县",cp:[121.5637,31.5383],childNum:1},geometry:{type:"Polygon",coordinates:["@@uŏu»GPIV±ÐɃŜ{\\qJmC[W\\t„¾ÕjÕp‡nα|ěÔe`²„ †nZzZ~V|B^IpUbU†{bs\\a\\OvQ’Kªs†Mň£RAhQĤ‹lA`GĂA@ĥWĝO“"],encodeOffsets:[[124908,32105]]}},{type:"Feature",id:"310119",properties:{name:"南汇区",cp:[121.8755,30.954],childNum:1},geometry:{type:"Polygon",coordinates:["@@`y”ĉNǕDwǏ»ƒÖLxCdJ`HB@LBTD@CPFXANC@@PGBKNECCBB@EBFHEDDDSNKAUNBDMNqf[HcDCCcF…@EFGLEBa@ACoCCDDD@LGHD@DJFBBJED@BGAEGGFKIGDBDLBAD@FHBEF@RFDMLE@SGANFFJBANPH@@E@FJjRIACDMDOEKLFD@DbDAJI@AP@BGHFBCBGDCC@DCA@CECGH@FKCEHFJGBFDIHACEDNJDCVFBDCRKRLDLITB@CjNJI^DBCfNVDHDFKHAFGDIICDWBIF@@CFAjFJNJBBHD@CJ@AEFJ@@DH@BFBCPDBMFEQGDIFCNDHIP@HDABFACBJFHEBSZC@DP@@JDBƤ~"],encodeOffsets:[[124854,31907]]}},{type:"Feature",id:"310120",properties:{name:"奉贤区",cp:[121.5747,30.8475],childNum:1},geometry:{type:"Polygon",coordinates:["@@~T~JjZdDbLXDLCB_J@@FHFZJJIAGH@HGR@BENBLID@@LFCDF\\FpDBDb@FAHKFE†@dEDDdC\\GreNMACVMLBTMCCFCEGFAA@DAFDLMHA@OD@BMEWDOC@AS@KGAI_DcKw„ÕísƝ‘åĆctKbMBQ@EGEBEJ@@MBKL@BJB@FIBGKE@ABG@@FMFCPL@AjCD@ZOFCJIDICIlKJHNGJALH@@FPDCTJDGDBNCn"],encodeOffsets:[[124274,31722]]}},{type:"Feature",id:"310115",properties:{name:"浦东新区",cp:[121.6928,31.2561],childNum:1},geometry:{type:"Polygon",coordinates:["@@EN@JJLNHjLJNR^GRYVBNZJRBV@PDvbLNDN@LGNER@nCNQNuT_TIVFV\\Z\\XnDrI|[Ʉś²ÏJUHOƣ}CA@IO@@CYDATGFIEDAEBBAGCO@GJMCEDCJRHEFANOCADAEG@@CI@FE@BDIC@AGIAIMiEEB@DE@AJCXJDCJEHGBELGCUCeMAD]CIJiM@DSAKJKCLQDQACUECDMIFCBDJGECHAEIWCK@GLMCCGEACNKCEJG@MMBMC@@CIJUINT@JAJSTEPZZCP"],encodeOffsets:[[124383,31915]]}},{type:"Feature",id:"310116",properties:{name:"金山区",cp:[121.2657,30.8112],childNum:1},geometry:{type:"Polygon",coordinates:["@@L@BIHFN@@EE@@EFBDGDAADVDD@@EF@CA@IIsRE@GDAF@BF@CV@|FBCHBLCNHAFCADBMDCFZXHILBVEEQA@MWFARJJ@DCX@@TEFBLHAAERE@AJABRPBNK\\BrJ\\VHGND@CNADKDADQjGAGNC@GJ@FCFFHC@JF@@dLBDSFADHVG\\DTEPDDHJALIJkJDJCDIPE@YDCBiK@DONE@EH@BAF@HLJA@EIA@ALKNA@@FIFAFHR@NALadsæąyQY@ƒA±DʼnXUVI^BF@FFF@HBJEDFFGFEBSRkVEXGHFBMFIVW@GAEEFOIAIPKABGWEKFSCQLQBSEIBC\\FdBLRR@JGACFDDEF@AWB@LJJYNABBA@CUEGPaO_AIE@MYMFIGAEFECHSAAKAO\\[JEDB@E@MMA@@AGBKMGDFFCDDFEDFJF@NPBAFLHFH@EDDHBADDC@DDCDHHCDDFDABDAD@FEFOBCJ[D@HEDDNJBDDHABJIBBvGLBJAH"],encodeOffsets:[[123901,31695]]}},{type:"Feature",id:"310118",properties:{name:"青浦区",cp:[121.1751,31.1909],childNum:1},geometry:{type:"Polygon",coordinates:["@@RUNKdOFDJCbRFMLAHPLDN@JGL@@APBWYCKN@TU@SHGCEJIDIJKVIZVNM`iNY@CIE@CA@KBOEGEUFCCSADEIEFCDDDIDDHC@CKIeDCG@IG@DHWFEEGCH@@GO@@O]CNpeEQDBFME[JC]DGF@CKOA@QSB@GB@@GW@@ED@AQIJIAAFE@@DO@CFI@KNG@CDACAFEGKGBEGBDCCAIFCCLIECFI@MBCLDHGNAHSF@DMB@EEKBA@@C]DEICFG@ADBHGFKCDAKKHKD@@FHGAANGEEFCHKCECBCKG@ADKCNE\\[A[I@@mGBDQQEO@BCE@AI[AML@JGACLOAFKEMM@EQKC@CUCBCCBCHEA@FF@@FM@GEAJK@GNF@EXPH@FD@M^@HIADJCFDBER@DK@@DE@CAKFOCCBDHIBCNSB@GFC@GQEEOWFICGDUAEJIDBTAHJHEB@DIF@NE@H|HBDBEH@DKBAHEF@HEEUB@FGFGCCCE@AHOB@NH@PRLVNNFBX@RC€PbAvMtBfH@DJF@ELBFA@EH@HNED@FFB@HLC@CJ@@DJ@PIRf@HE@CFF@GPHD@DKE@FFBEFFD@DEFCA@DD@IjCRFBAHFDKD@HF@@PM@H@BlbDJDBFEF@DLXB@HCD@@IFCBIFEJD@FDC@FBALLF@PAACJERACAJCBD@EL@JD"],encodeOffsets:[[124061,32028]]}},{type:"Feature",id:"310117",properties:{name:"松江区",cp:[121.1984,31.0268],childNum:1},geometry:{type:"Polygon",coordinates:["@@@DLDFRN@FNELPBDKHB@INK\\BBJF@ADP@RFCRHA@nJ@B\\[\\MFLDBCH@DLDADFGLEDFFMHBBGH@EC@GLLLCBLDHEAGBCH@DEFJ^C@DB@LAFFA@CNE@GTMBGHKCAD@NEJFDKJDDJEDBCDHAAFLHFHBEBDDCH@LMJ@DEP@@CF@BEJBJIBRC@@FX@@HA@@HTA@RPBDLE@CHD^\\INFAERCfFMo^D@PP@@HG@HDFFXECGH@@JDHfCLJ@DGDCCCJCCEDJFCFTBDDVEHFPFLAB@NBFCFKFC@CHIACNOHWHCAAFIDD@CDAGEI@ACFMF@R@R_@GQED@EGFEQEDE_IAHKAEXCQUOQCUDEN@ZI\\DDmAMHCICDSOC@EG@BKHIGMIBCGOCSF[CUHCGEBCTKA@cE@@IGDEEEDI@@HMDBHiHCRCBCLMB@DMCGH[UqI[AMLOAAQIB@BQFBFGBAKFE@SW@CDI@QIEBNXB@FRUFKAGJYWDENCCADBBEMGKDGAAD{EU@@DAEE@CB@HQFJt@JDBE@@FC@"],encodeOffsets:[[123933,31687]]}},{type:"Feature",id:"310114",properties:{name:"嘉定区",cp:[121.2437,31.3625],childNum:1},geometry:{type:"Polygon",coordinates:["@@F@LI@IDKJADKIEJICADGACFECCJ@HKCAFOHAJI@aCBEE@ICAEB[GFGCKL@FGEIFADMLCAEJM@ELQECEIG@BE^QKKLQCA@EHBIGQ[GEHOMGGDHKH@JOECFCjCBEFDNCACMBCILGTABDLEEOEIG@GFIMM@CGKFBFCDE@@GEAGEEACIcGaHMFITIHDN[AKF@FS@OA@BK@IHM@KCGOKBENaQIDECcPMLQVFHFB@BFBKLGD@FAJOVGIACQ@A`LPCB@JEF@RU@ANS@@RCL\\HIFpRBFRBBDKLLDADJDGBFDABHBEDNF@DGBBBADKDAHC@\\JJFBDEH[DEFDH\\LX@XLBLbT@DNJLDCEL@VJABJNDHB@HBHYFBAA@GNFB@@AFB@AFABFLFBHFCL@HJBAFBLC@DN@HN"],encodeOffsets:[[124213,32254]]}},{type:"Feature",id:"310113",properties:{name:"宝山区",cp:[121.4346,31.4051],childNum:1},geometry:{type:"Polygon",coordinates:["@@ˆmÖoÖiƒ½[s[YEUJU`SCIEBCCWJY_LIICDWU@@FaBCJIB[ICH[@@CDKEE@MK@@IMCAEBCH@AMFI@SMGEFGB@FK@BHCAIFJNQD@FEBDFMBKGACG@ECWH@@CDDTOEEBGEK@GC@EE@GPHFR\\JHGA@FDBKRLL]RAFH@FJFDKR@FINBFKDCNEBFJEHK@DLEH\\HFADB@JFFDA@bIJGBEPDBGLI@DDEFBDCHDBIJJFCLIBCL@JKJE@ADHDBHJ@HIBBDFHBBAEIJ@BJFAVL¢ˆ"],encodeOffsets:[[124300,32302]]}},{type:"Feature",id:"310112",properties:{name:"闵行区",cp:[121.4992,31.0838],childNum:1},geometry:{type:"Polygon",coordinates:["@@T@@ELE\\BCMJGJSNEbGdHDJFBJAFIEIFCEWG@@gMENSFCVJFAxR~B@IH@AIiI@GE@FGEAFQPDRiV[\\DFSGMHAXHDOMCJCDETBBNVJJI@DD@ANNNH@FILDDMFBDHNDHKL@XDFGLD@EHGFD@DDB@CDDHCDAEAHG@ABOJ@BIaC@CECLKPFNCDCJBiQEIF@@@OGBMIAEEBMTHF@NKEC@QFEGA@EBCKAACHCLJHEFHHB@AFCAIEACIC@HG@KCCDC[ECEED@KC@KJMAAFQ@GHG@BHIJYIGE@EI@A`KDWCaKcCiY}I}S[CYJM@CFDVPRRVWDFžLBBG`JCFRFEFFHC@RF@HQ`Q@E@ENBDJ@HFCB@DCCEJBBGDGXMPBDGJ@DEDELEDMA@DJF@DMZ_jMNYUUJILCJIJDFGH@TSVM@DLXZ"],encodeOffsets:[[124165,32010]]}},{type:"Feature",id:"310110",properties:{name:"杨浦区",cp:[121.528,31.2966],childNum:1},geometry:{type:"Polygon",coordinates:["@@V@CXJDKJZ`XIDDFADJvSRMDM@mFQHM@KCMKMuaOCU@BDAJSX@HKJGD@PNJCJWAGT@R"],encodeOffsets:[[124402,32064]]}},{type:"Feature",id:"310107",properties:{name:"普陀区",cp:[121.3879,31.2602],childNum:1},geometry:{type:"Polygon",coordinates:["@@F@@FHDL@HFFAPFCSDC@@XGFDH@BDLHNACEFA@ERCIMJEDBAGL@@EHAFENHHJ\\ONQBQCIBC[MKACKI@GGGH@I_G@CW@[DMHCDIBMTDHN@JNHEH@FJFPKFACSBKHDJNABDMDECAFiDEDFDIPG@GLHCNH"],encodeOffsets:[[124248,32045]]}},{type:"Feature",id:"310104",properties:{name:"徐汇区",cp:[121.4333,31.1607],childNum:1},geometry:{type:"Polygon",coordinates:["@@RADL\\NCPHFfLJaJ@FWLGMGIK@IFMDOYYFOTSBI@IMSAMSACFIDNDCPWGGBHNET[CU\\QjOCERFBEHF@@HjJBJG@@J"],encodeOffsets:[[124327,31941]]}},{type:"Feature",id:"310105",properties:{name:"长宁区",cp:[121.3852,31.2115],childNum:1},geometry:{type:"Polygon",coordinates:["@@HFFB@HF@DCAELENSJADCNG\\CX@@D`H@JHGHHJ@BINBFUGEDO[MCKQB}AwQEBUIEDMTNF@hH@FXEDFJEJIB"],encodeOffsets:[[124250,31987]]}},{type:"Feature",id:"310108",properties:{name:"闸北区",cp:[121.4511,31.2794],childNum:1},geometry:{type:"Polygon",coordinates:["@@CSG@BQGODUPWTOBQAAFMECKBGEMFKEOHADDJARMR[PGI@TEJBNG@ADBFND@JL@@NFFCL@D\\@DG\\JJADI"],encodeOffsets:[[124385,32068]]}},{type:"Feature",id:"310109",properties:{name:"虹口区",cp:[121.4882,31.2788],childNum:1},geometry:{type:"Polygon",coordinates:["@@bA@E@QHSXBDIMI@OHCLI@GTWBIACQAYIOFGCENBBARSPOXCVHPARH@DT"],encodeOffsets:[[124385,32068]]}},{type:"Feature",id:"310101",properties:{name:"黄浦区",cp:[121.4868,31.219],childNum:1},geometry:{type:"Polygon",coordinates:["@@NEHFLAFDHDPEAMZUHQQ]IMKJG@EPERABHBGRUCCNGV"],encodeOffsets:[[124379,31992]]}},{type:"Feature",id:"310103",properties:{name:"卢湾区",cp:[121.4758,31.2074],childNum:1},geometry:{type:"Polygon",coordinates:["@@VDHQGABAFQFOH@LIiKKHEXI@IbAFZB"],encodeOffsets:[[124385,31974]]}},{type:"Feature",id:"310106",properties:{name:"静安区",cp:[121.4484,31.2286],childNum:1},geometry:{type:"Polygon",coordinates:["@@DLLB\\NPGLFHUDMYABEeKEVMAAJ"],encodeOffsets:[[124343,31979]]}}],UTF8Encoding:!0}}),i("echarts/util/mapData/geoJson/shan_dong_geo",[],function(){return{type:"FeatureCollection",features:[{type:"Feature",id:"3706",properties:{name:"烟台市",cp:[120.7397,37.5128],childNum:9},geometry:{type:"Polygon",coordinates:["@@ŤLšLllVń²è°xżĢĠÆl҄šŤbœ„V¤ĊXnŽlĢVĊ„Òš„È°ĊŰÞè˜L„±@џn»VUźċ²»ÆkôVɆkĊŃ²kŤVVwUUVmUaƒ@KkU@ƒmUmmk@UwUkmW@UVIXa@ƒmw@a™KULƒaƒx@Uk@UbWU@yULmK¯@kXƒVUwm@@JUUknWKUVƒLUbU@™wWykIƒa@w@mUI@ašUVynIWa„k„@@W„bl@@knmƒK@wnIl™°Kna@V¥ğ@ġUķ»™¥@UōJƒX¯¤k@™wmI¯‚k@mwƒak@@šlX@bUJ@VƒbknWxkLkxlŽšLVlkLmŽšb@bU@ƒbU@VbU`Vb@n„L@Žmb—U@˜VnUVmnU@mm™@kIUWVIUK›VkkUJUnmL@VmLUaVWaXamU@™™U@KUUmVƒU—JƒU™VÇwğn™mƒ@mXĉV@l¯xnô"],encodeOffsets:[[122446,38042]]}},{type:"Feature",id:"3713",properties:{name:"临沂市",cp:[118.3118,35.2936],childNum:10},geometry:{type:"Polygon",coordinates:["@@˜bXlƒl@zlV@lXXmŽkbVVlš„U@Vn@@Vmb@XšKšVX„WJ@XXl@„‚ŽÈbVLšUl`„@XXV@VVUxVbUxVbš¦„@‚WnXVJ@bnVUzl@„°Æx„U„KlU@mUUnUlUVWVUnVV@XX°V@Všll@Vk„aXVl@Ux@bmbXLlKlb@b@bUJn@@„„b@n°x°K@an@@UlLVKVbXb@bVVnK°LVa@UVa@™Xw‚KVxnLšU°@naV@UWUkWƒULmV—wÝKUUla@aó_@mƒK@aUU@ƒWUkwVm@aVI°W„@@IUw@a±¯@¥kUVUm@a‚wkw™@ƒK@kVKk@maXalI@alL„WXblaVLVU„V@LnKš@„l@w˜aXašLlnUl„LšmV@n°J@_VmnIVym£UKmI@WnIVm@anUVmÇ_kġIÅWUXÇm@U@ݯÅ@ƒ™@naWƒ™IVW@IkK@klKn@naWIƒmk@ƒaƒbkKkLWn™WkLWmk_ƒ@UaVƒUKmLUw@mn£WwUmU™ƒaóV@UkUm@UKULUwmJUX@WW@XҙzVblJXŽWXk@UVWK—X‚¤UL@xU@ƒ@ƒVUaU@@XmVkLmWkXUyÝLmKXnVŽ@n@l™x@bWLnVVn™`knULmxUl„„WLXŽVb@VƒK@z¯x¯¼Wx™KUn@bk@ƒlƒVVVz"],encodeOffsets:[[120241,36119]]}},{type:"Feature",id:"3707",properties:{name:"潍坊市",cp:[119.0918,36.524],childNum:9},geometry:{type:"Polygon",coordinates:["@@l@@UšK@Ž@L@bX@@VlL@JƒLUVnX@`ÜXn`V²mJ@bU@@n„b@l°xnnĸVƚ°@„ƒĊ£Þ@lWnÑnkʶJmó°w@kk»V@»ƒ¥k@V@kw@wVm„a˜Å„mšaô£ŎƒXI@mln„Kla@mV_UKƒ@kUkw@alW™IU»™mƒ—@WUIl±UUÅU›bkJƒ@a@wUKUaVIÆmXIWaka@m@Ul£XKVw@ƒUIƒJUkmJ™ƒVkU@a„ƒWK—ImVƒ@UxmL@bX`WXU@U`ÇkUak@@°UblXk‚mLUKmL@VULóƒƒVk@@Vlbn@Ub@ċaUJUbƒIUlVLUVVbVKX„VlVXU@mb¯@™VmKUwLWx@šUb@VUb¯KmLUU@aWaUaULkK@Vm@@b¯L¯w@mƒa@ƒm@UUU@U¦lJUXƒVƒmkb@nm„XVWŽkb™IVxUV@VUbWLXVƒLW`Ux@nk@Vn@x@VkJ@œV`mXkŽ@V„xV@lVššI@VULš˜VU„IV`°bVXXx„V@VWVnL@xV„Ub"],encodeOffsets:[[121332,37840]]}},{type:"Feature",id:"3702",properties:{name:"青岛市",cp:[120.4651,36.3373],childNum:6},geometry:{type:"Polygon",coordinates:["@@„@nU˜JXLƒ„@blVU‚š„nIVl„IVJ@„UxWLk¤@V@nlbXbWJÅnUJVbVL@x@b„ŽlIœaÆVVVk²VJ@X„˜šnV¼šJkX@blxlV„@VLU`@nkbƒLkm@nWJō„ó¤™bƒn—ƃbUn@xlxU@l@„¦@¼UŽl¼ĊUnW„@šnĠmÈxšU„V˜I„VnUVV@LšV@šnVWbXb‚UVbnK@UnKVmVIllœUVLUJVXlJš@nnV@nmVUUm@—˜Vna@ƒK@mUaV_UaV@„aV@@a™anlKUk™KklwlKXwlm„a@UVI@akW@™l@„bnxl@°nJšxl@°£„WŎIUÑn»lašmô¹Ŏ¥VaUUkƒmkġWɱIUUŹ`›@kk@ĉƨřV¥_Ç@™Ĭƒ¤ÝL¯m¯£ƽóķwUW±ī¯kōaĉĕ™kğmó°ƒbW@UKkLUaƒVmz@V@ŽUxVn"],encodeOffsets:[[122389,36580]]}},{type:"Feature",id:"3717",properties:{name:"菏泽市",cp:[115.6201,35.2057],childNum:9},geometry:{type:"Polygon",coordinates:["@@@¥šIVUÈmÞ»@UlU@Un@VW@UVmkk@aVUUKVÝ@UVknK@UV@VVnIVƒ@wnƒmwmKXaWaXI@UV@Vy²blkVKkam™U@kb@Um@VmUkmƒKmkXKWwkU@Ulƒ@UnK@UVUUm‚KXwšUVL„w‚K„U„@@Wl@@wUkV¥—@@I@W@_V@VWUw@UUa@aƒaWa—@@_mKUw™l¯amzmV—@WK™nU@kƒWLķaUKbÝVmV@UWÇbÛ@ƒX™°UbW@XŽm„Vlk²UJUbmLÇxÅWUzl‚¯Ll„@VkK™XUbWJ@bU@¯@™ƒkbƒLmKka™„@l™_WšXºVbUz@J‚n²V@¤lX„Ž„nV°šLn`WbXLôVlKVUšxXn˜lXLlU@bVV@„XJWLUVnVV@„„@n‚l„°nn‚V„KÈbVXÆJU°VnXV„kV@@xVL„@šWlb"],encodeOffsets:[[118654,36726]]}},{type:"Feature",id:"3708",properties:{name:"济宁市",cp:[116.8286,35.3375],childNum:11},geometry:{type:"Polygon",coordinates:["@@nam_nKlVLXa„Il`š_@KVVXI@m@w‚ƒ„@@k@Kšnô@n`VbV@@L„L@KVVn@VX@‚VL„Jl„š@VUUƒU@Uam@Uk„wšKWaXamkJmIUVUÈblašUnV@kVKl@@lXL°kVJ@VÈnVJUX@V‚LXl@xVLnU‚@VK„V@a„IUaV@„bĊU„x„K‚kVJXUlV„ƒ„UVašI@WUI@KlUnw„mWk@WXIWƒ™U™L@Wna@Um@@UƒVk™UUlanWW@kkU@y„kWk—aWVUlÝbUU@kƒJUIU@@ƒ™JmaókƒLKǃUUkKWLk@WbkUUaƒbmKn¯°¥V@XwV@VanaVaU_@Wlk@WÈ@VUÈVVۂm„aklKȯlLVUX@lK@aX@@kV@VmV@VwnJV_UWUwƒX™am@kW@wVUkKVIUUVmU@UV@IVK@aUL@aƒV@Lm„UKmx@ŽômLkUWJ@šnXmlUxUL@Vkn›VUšU„@V™L™`Ub±LkV@kUKÇbÛ@ƒU™Wó_mJƒ@Wk@@Xƒ@ƒVLƒxUK™VWxLVnUV@VmL@Vk„@VlVXxWLnl‚Ln„VlUnn@@VlaV@nšlbULkl±aUzU@@VWJXbWbnLnxm„@xU„mJUUU@@VmLUl@VUÞVLUV@bllUn@VUXm@@VkV@VݼÇnUV™J@¦nnƒlnVlL@„Þb°KVV"],encodeOffsets:[[118834,36844]]}},{type:"Feature",id:"3714",properties:{name:"德州市",cp:[116.6858,37.2107],childNum:11},geometry:{type:"Polygon",coordinates:["@@„¤@VmbVXnVVbVJššX@Žll@z„lVInl@„@bVxUbĠ‚l@Èbla„IšxXVWb@L™@n‚ULWVXXšWWLnL@`@LUVVL@lVn„JšU@UUk‚a„™nš‚Vôô„b°¼V‚ސXš˜‚œIÜbČa˜bôW„XÞWÈzÆmnLVJ°ÈnlV²lbnW@™@UƒUV™šmnwmkkKWƒkla@mVIUKUa™aUwmn™JU@@amIk@@bVlkX@mmUklUUƒƒa@_UaUUƒV@wƒw™WkXmW@I@WUaÝU@UXaWUU@UUVW@UUUWUn¥nUVa@m@k@alU@wk™LWa@UUm@@wnmU™wla@anKn_@alK@ݙ_ƒ@@WUUUmlkaƒIƒyU@UwU_Wa¯yU_mWUwkImm@InWWUk@@UVWV—kW¯U@VƒL@b¯b@l±¦@šVV@lUbV„@škxVnUšl¼XV@b@lV@nIWxnbƒ‚™@UU™LƒxÅxm¯ƒaUƒ™wU@mUÅVÝKULm@bmKUXó@"],encodeOffsets:[[118542,37801]]}},{type:"Feature",id:"3716",properties:{name:"滨州市",cp:[117.8174,37.4963],childNum:7},geometry:{type:"Polygon",coordinates:["@@Vb@`„bV„kVlnV@nlWUk@al@nJ@bV@šInmVxšbVbVLUJ@nkb‚lX„lLnlmx™nUš„V@V@šmXn˜lbĸ@nnVx‚b@lnXV@UJ@nVxšxnxVbÆVn¯ƒĕ‚@@wÈçUÇlķVIœb‚@„Çmk@¥k@UkUK@aWakUóJW_UW@wkkWK@U@Kš@XUƒƒUkmUUalKXala@U@kkWlkÈl@kšV„mVIVmU_‚a„ƒƒwnwVW@wƒwUƒ@wU£ƒwkJWIyUI±bk‚VUJ@nmV™Ukl„Xmx@lnbW„kVƒUkLWŽƒxkKUUmUkb™J±—LÇxUKmkUmkkW™™a„mUaVkšJÆ_²KĠ@U„W@w„U‚¥nUWwK@aÝUkÅVaVK@akLWƒƒƒ¯I@bnbVx¯JW„ñšWbUL@šƒŽnV@VmbkUUV@IÇak@@bWak@WJUœJWL@bXV@„‚@„V„Jlb@zUlUŽUImšnbV‚mz@°UV@V™bV@@V@L@xLmKUnmJVX„J@VkLW@UVUL@b"],encodeOffsets:[[120083,38442]]}},{type:"Feature",id:"3715",properties:{name:"聊城市",cp:[115.9167,36.4032],childNum:8},geometry:{type:"Polygon",coordinates:["@@ô@VWnL‚an@VKÞLÆUnVV@šxV„„bn°Æw„wšKVVš@„maXwmJU@@k@aWUk»V™Umlw@™UƒVa@kUU@™²¥@k°a@a„K@U›ƒU@mmm@ów—ѱ¥¯@@w™Kmw—I›¥kU¯UmakJmIUaƒVkKUkm@VUUa™Uƒ@UaƒKUK¯@™w™UVŽUIUKVw™k™¥™wƒbVŽ@xn„@lWnXxlL@`„XlJX¦l°XxW¦@¦Ul™n@Ž™@@Um@@VXVmx@¯bllUnUJ@VULVn@b„xV‚VL@b„„VlnVVblV„ÈnVlIVJœLô„lJ@xl²„"],encodeOffsets:[[118542,37801]]}},{type:"Feature",id:"3705",properties:{name:"东营市",cp:[118.7073,37.5513],childNum:5},geometry:{type:"Polygon",coordinates:["@@ͬUǪlô@°Uœw°ōĠ¯š»Ģ炻XÇ@w™wƑa™ÇƒkwVƑ¯@řķUmm¯w@kƒa@mV@@anIU±m_ÛW@_mWVU„K@IkK@UW@@a@K@™L@Vk@±U@UV@lm@mUU@kLm„„xV¤@xV„„x@xUXmx„xƒ„bV`UnUJƒn™U@lÇkkllX@l@VkbWbkLVbnVVl„„WV™@@L@VXLll@xVXX`ôIlVXb@bVLVll@@¦nlƒÈ@›aUJkĸVÈÇè@x"],encodeOffsets:[[121005,39066]]}},{type:"Feature",id:"3701",properties:{name:"济南市",cp:[117.1582,36.8701],childNum:5},geometry:{type:"Polygon",coordinates:["@@²¦˜Òôxn@nn‚@V‚œ„°VlXU˜UX@Vl@XVmX@JnnlJVxnXV`°zXbV`VxV@„z„JlbkŽVnVV@X„@š`@ÞkL@bm`mL@bkbšxnVm@xn@VV‚@XbšKl@xkV@b@l@nUbmVm¦XVVV@VUXVVV@XVWb@VÞVVb@X@JnXlWšX„x@x„UVV@aVKVUX@lK@UƒIUWnIVmnL‚K@w@K@UU@ša@UVU@¯nyUman™VJVVk@ykaƒIƒU@@ƒWU@aXK‚IV›XIl@Xb@al@Èb@JVUlVna@UmU„@™VKXaò™Xƒ°IUwma@aU@UU@wVW@фw@a™I±`kbƒUkw™UmJ@UkmÇUUkmKknUVƒ@mJUkaWkƒa@KmKkUƒLmyXa¯_@WmImmbƒLmUkVUbUVƒJ™bƒUkkWJkUƒl™IUm™k™Lƒ›„lK@knaVmkI@mWaƒLUK™UU@@VmLUVLWK@UUUƒWUkkVmx@„Vl™¦"],encodeOffsets:[[119014,37041]]}},{type:"Feature",id:"3709",properties:{name:"泰安市",cp:[117.0264,36.0516],childNum:5},geometry:{type:"Polygon",coordinates:["@@n¼šŽW„nxšL@x°@š¥Uk@ƒnwlUVl„XVV@VXL‚KVUnK@UV@šVVL„KXb@nlJUnmb@lkLƒ‚„œšKšlVnšJ„klVXIll„Vša„IVUValUnV„K‚annnJ@X°`Wbnz„KlVnL‚Ž@L„bXl‚bVlnI„@VUU@UmVƒ@U@Uš¥@VmV@@_Ua@m°@@ƒ„kmUUm@UVmn@nX‚@@a„anJVUVL„mlIVJn@nkVLVa@KVmVLXVVLš@@U°bn@VaV@@K@aVkœbWaXUVymU@aUImWXƒ@™¥UaVwUaVwUUU@WWƒ@k_™VUKÇa@ƒƒnmxkV@LVJ@X™JUbƒVƒ„kUWVUIlƒLƒwĉVƒaU@VbƒJ@bƒUUL@mVUK@wWkK@UVWUIÇm@UUI¯lWK@kk@UL@lmU™VkbÇaUVVnJlIn‚WbXb™LƒxVln@VbV@V„UV™@kƒƒIUK@UWm@UU@LƒK@KU@Uam_ó@™m@L@lƒ@„@x@nWJUU@L™`k_ƒJWbUKkmLn`mb"],encodeOffsets:[[118834,36844]]}},{type:"Feature",id:"3710",properties:{name:"威海市",cp:[121.9482,37.1393],childNum:4},geometry:{type:"Polygon",coordinates:["@@VbUnVVUxĊ¼š¼ô@Þф¯‚WǬLŎUÆW„¹Uǃō¯ÑƒÝkţ™™ţóġ™óL™ł̥U™wm¥kÝmkkKóbÝ@U¦@‚mb¯LkšmJ@x„Lmn@lk@ƒa@Xƒ@ƒlXbmJUz™V@bVJ@n@x„blJXzšxV@Va„KVUXLlmVV@In@Vx„UlW°@nLVK@zXVVal@@V„w„bVKšL@bnx@„WbUJ@VnXVlVxl@nnnV@„lV@L„‚"],encodeOffsets:[[124842,38312]]}},{type:"Feature",id:"3711",properties:{name:"日照市",cp:[119.2786,35.5023],childNum:3},geometry:{type:"Polygon",coordinates:["@@UaVUUKVk„JVaVIČb@Vam@ka@Ul@„Uô„VK@UnKVLnKlkWVa@¯l@VbÈlV_V@XWW_@anKVwUmVw@@Uny„UVblKVLX@„aô¯ó¥mÛĊÿÈ¥š™Þ¹lUīƒ¯Kĉ¼ʟbÇV™U™ŽUŽ™XmakJUnmV@bUnmJ@XnJVLn¤UzmJUn@`¯ImŽU@™nƒKVkkm™KWb—b@xƒk™@mL@KƒUUVUKkbWaƒXkK@bkJWbnbl@UL@l„Lš@lxx@b‚nUVlV@¦²°@bVx@Jƒ@¯XUJ@bUnlxVŽ„X@‚VV@b„L@nô`@bkbVVÞL˜xnU"],encodeOffsets:[[121883,36895]]}},{type:"Feature",id:"3703",properties:{name:"淄博市",cp:[118.0371,36.6064],childNum:4},geometry:{type:"Polygon",coordinates:["@@nƒlKV@nVn@@kVU‚@²VVaUƒ@wmKXU@UƒUWwUW¯aU_ƒJUV™—VK@U™JU™@kUƒw@UlnWU_@›lI@U@wUml@@mVwX_„KWUXKVa@UVUUwšJlaXWUnƒ@mla„n„UVWkIV¥V@VVVI@a@akakLWKna@aVwk@WUƒbUlk@™k@U¯UWWU@mUUVUXkVmVVV@nkVƒLƒVÅwƒ¯k@WVXb›aUl@bV@@b@xkVVXVxkJ@nk@@ŽVLUlVb‚VXUVVUzV‚™LVbUbV„VWVkLmškJ@n±@UxU„VVkV@bƒx@ÒUX@xVVV@°J„„X„lK@bULUblÆÞV@b‚LXxmV¦ƒV@xƒXVŽğ@±LÅ`™IUlVbƒnšbXšllVnnlVLÈw˜K²ŽšIlanVVVlL„wXlK„VlUXƒma@knwƒWlkšVnU@mVIUl²aVJ‚zXJlI"],encodeOffsets:[[121129,37891]]}},{type:"Feature",id:"3704",properties:{name:"枣庄市",cp:[117.323,34.8926],childNum:2},geometry:{type:"Polygon",coordinates:["@@‚yUU„U„kl@@aVmšLXw°»°w@y„L@UUaWXKƒƒVknwVKlmš_UmmUXK@ašw@k@mUWmUL@ƒ@™@£@KƒbÝV@akw™aULmƒƒbUK™LUU@lm@—°mL@nUJVxVXU`mIUxU@UnU@@lW@@bkLW@UVkKÇ°kLlŽƒbnUÜÇUUVÇ@@Xkl@XV`UbmbUbU@WxU@¯¦m°nL„aVblVXal@XKlLVVȄ‚L„KôlnbšI@„V@VJ„I@lVVÞaVkXU"],encodeOffsets:[[120241,36119]]}},{type:"Feature",id:"3712",properties:{name:"莱芜市",cp:[117.6526,36.2714],childNum:1},geometry:{type:"Polygon",coordinates:["@@lmnLVlÈVln@VnIšVlx„Vla²_šJlUUUVƒVw²@@mlIn™lKXU‚UUƒVaUašKUVyUUWVUUaVkUK@l@@mlIUwUWlU@w@aU@@LU@Ubm@¯a@V™@UKWUUKUn@LUbUKmlm@UIkJƒnUKUVmIƒb@b@mWm@Un@VVnnVƒl@„¯@@nVb@`U@Un@Ž™¦@V@VU„VnV@"],encodeOffsets:[[120173,37334]]}}],UTF8Encoding:!0}}),i("echarts/util/mapData/geoJson/shan_xi_1_geo",[],function(){return{type:"FeatureCollection",features:[{type:"Feature",id:"6108",properties:{name:"榆林市",cp:[109.8743,38.205],childNum:12},geometry:{type:"Polygon",coordinates:["@@™ýVƒnIW»ƒW@»kUÇL—݃U¯¥ÇIUWWїUWwX¯mƒ@»n@ÜÈķô™@a±kȱƒw„ÑmwçċmU»ÆkkVyIm™ĉÿ@ƒÝ¹ƒWnwÇVš™Åaƒzmmĉ¦ó™kVmx™xU¼VškVm_UlVlk„°IV‚kmJa›¦k™™LmmV@XmKnšlUô›VXbƒbƒ@UaÇLğܙ™Åwƒ£mKnmċwÅ@UkƒbmaVƒƒƒn@m¯aU™Jm_k˜@kWXyl@@kÅamw™LU™Þ™ƒ™mWÅzUKƒš™Uk±@™b@nnK‚bX¤mzVšŽVxÇn„‚¯„@ÒknWƒƒVUbkķÈÑWkk@Va™™U@„mUkbƒÝÅ@Ý¥ÇbkĬ™XV`kLǍVmalUUa™nV±nwmkƒJ@Inƒ°KVw¯UnÅ@¥™ƒ™U±bUU˜±œmWbÛKWnUm`UƒVK@bmnœm‚Èż@V„L@xƒxmš„Ť°nŽ@VmK™²VlšlKk„ô@„êÜV@VXLlmš¦UššV°Ș¯²ÿ@¥š@ƁĊ˜²IšmĶnnb°b„KVƒĸLl„Þ@UȮš™Ü°IVƒÞÝސlŽœx@ŽķĀWŽ„Ux„èƐ@š°ŽXnšlĊĖ°m„nƒšV„²V°ÒƦ„aބ„˜@zll@bÞĀšlš¼nKĊ¼óȂb²±šIǪÒ¯ĖV@„lxnVlk„JlaXwŌĉ„„@VnŽššlÆĕ„UÆLœèŌŤôxȚlUœ@šxlaUċĕXm„IWmnkšVVƒ„VW_@aÈWUUmk@ƒ¯çVm»™±W¯n¥V™mkXw±ÇVwƒ"],encodeOffsets:[[113592,39645]]}},{type:"Feature",id:"6106",properties:{name:"延安市",cp:[109.1052,36.4252],childNum:13},geometry:{type:"Polygon",coordinates:["@@@kkÇmIšmUwVkUƒƒU²WmšVkm@m`mIĢĕUƒVa@™mXƒƒÿVVkyUýšĕ@l_UmnƒW„KVkţ™™¥™aƒwğ@™@aôƒ„ƒWa„kUmƒa¯¯™a±£kx™mmxUwÝ@xmU™b¯K™wó„Ý@kmm¹Ub@lklVbmnnVUV@x›UknƧJUX@ŽƒLÇWkw™LķƧÅwWJk„ƒLkþĉxWz™JUnǚkš@Ɛk¼ÜÔÈKšè@°lșÆk¦l„n@l¼@l¯L™°UU™VÇ°ƒ¹—`m¼mXk‚™bUaƒV@U¯x@¦™Ç™„UUmlmUVm„nnmlkw™@@šƒ¦Å‚ÇLmx¯Iklš„@¦mÆ°VUx¯Lm„@J„InlmxU²šmVbkV‚bUnȎlKU_šWlīÈaÞ¦Æ@„ÞlanV@ƒšVšUbl@XlÇÒĸlŽVa„UX„lm@Ñ°ƒƒÈmUw‚U™nyW£amL@mša²@lšV„™VLÆynX„šÝšVššKnxÆb@lk@WzXŽ@ll—n`šIV‚°b@n„m„„‚Unb„aVlÆ@ČxmnnL„¤ÆxššĠÛÈKVb„@„aWaœU‚ókVm™nL@W‚UnnšKlšœ¥‚bnIlU¯JlƒUkVkn`lUU™V»šwnwlUôšĊ¥nn„yÆb"],encodeOffsets:[[113074,37862]]}},{type:"Feature",id:"6107",properties:{name:"汉中市",cp:[106.886,33.0139],childNum:11},geometry:{type:"Polygon",coordinates:["@@lKnb@n„lWb°bkxĸwVb@ł„nlŽ„ƒĊ¥šL@XŽl™ÈƒVblÈK‚b„akVwôml²`‚nœ@‚nVKœl˜k²xŎƒ°¦VU„JĊw@çnWçރVkUóÛ@¥kwš™šUmƒX¯WšÑkƒ@UymIUwlUn¥‚mUk²a°¯V»@™ÝVș„ÝċÅÅVl»@l@a°±@_kammÅb™a@ƒƒm@ż™KknõĠ—@mšƒ„¯LÅw›‚—LVxmb@¼kV™@mw¯wVakKW»X±¼¯Vkxƒb„¼WŽ@nx@x±bóakbƒ@ÝmU™@ķÓÛL™kƒVUm™k¯¤ÝLUlÝ@Ýz™š„x@x™°™™™bƒmƒX¯aUJW¯—k@bÇWƒwÛwWxƒ@XWlb@Žƒ„VŽÈUlwšLnl°VlUô¦œU°¤VšUxVXUxlbkVVlƒI„°„ÅVlU°m@k„ÇU¯xUlƒLUlVL@b™°ĠInĠ°ÈnK‚„@xÞa²n‚aUyšXUKVkšWô¼Èa‚z°JXUVÇV_„JVƒšz@Žnb"],encodeOffsets:[[109137,34392]]}},{type:"Feature",id:"6109",properties:{name:"安康市",cp:[109.1162,32.7722],childNum:10},geometry:{type:"Polygon",coordinates:["@@„bĊaƨèšwôô„¼šb°ašXVƒÞVUÞ@‚aXƒm¥kImx¯¯ƒV@anU@UÇéğL@ƒ¯¥V£mƒ@ÝÈb„K‚™„X°wČÿ˜ƒ„b@xÈblxȯĊ„„mÆUVƒ„nÈ@ƨÜLĢ¥ƒŹnƒ°Vnn˜K„aô_ȃšwU‚aXmnW‚¯kl›LXƒÇ™ō¦ÝaÅVmbğUn¥±wÅéVƒan¥ƒ„U„»°am¥„£ƒÝ@ƒ„wVw™¥nU„уUmmVwmķIÅaóVWxkblb@ból@œğÒĉ¤ċXƒ˜¯X™xk„Ç@óÆÅx@š™xķ_kmݎǣkblb@`¯²@bk‚‚@k¼ÆUČƃÞǚÞU@šU¼¯°±bVlnm¦kVVxnJVz@‚l„™ÒXW°n„™V™šlx@¦ôÜVUl݄Xèm@è"],encodeOffsets:[[110644,34521]]}},{type:"Feature",id:"6110",properties:{name:"商洛市",cp:[109.8083,33.761],childNum:7},geometry:{type:"Polygon",coordinates:["@@²nl‚ôbš„°aVwnKÞIš`°wšXôw°VĊ°@ŽÅš„ÞÆV„zÞK@xšŽ@a‚LŚ@b@ŽnLlƒ@šln„mnLVw„a„bVƒ‚VnbU¼„Vƒ°„bl„šbÈ@ĶŦb˜@nÇ@amIyUI@ĠVmôƒU™ƒVwkwlanJ„¯lwó¥@an°Jš_„‚@š™nóƒó@£l¥UwmašÑ@ƒUm±V_ƒJ—£›J—UW¥¯@ƒ_k¯¼mUƒVUè¯b@wmL™»ğVmağI¯¤ċIUW™XƒKĵ¦ķaƒJUb™IƒlUóVmk@WÅÅÇ@ƒmU„ÅVƒnĉƒÇ°kwÇa@wƒa—„ċĀ¯xƒWšƒLÇa@Þn„U¤°¦@„ĠKÈê@VmV@b„U°°nwlJn¦W„bÝ@VŽ"],encodeOffsets:[[111454,34628]]}},{type:"Feature",id:"6103",properties:{name:"宝鸡市",cp:[107.1826,34.3433],childNum:10},geometry:{type:"Polygon",coordinates:["@@@ƒ„£@›°Išb@¯°ynŹƒaUƒlƒU£„Umšĵĉ@@ylUÞ@@£kWU¯WaU£¯ÇV¥ƒ@kb¯wƒn™¥ÇkUÇnUƒ@¯±›kULm›@m±_kŽónUxlŽƒbaÇLkŽUaDŽkšW@™Kĉ¦ƒ„kƒm@ŁUaķxlw¯aXaƒk@mmakL@šmšÛŽ@¼m„@l„XV`ƒn™KUš°°@²š¤UÈ@VxmôƒxKl„VV²aVw„Xla„Vlx@UVnŽÇnk°ƒVVL™lkI™šƒJÇk¯V@šknƘn@lznmlVkzVŽ„VVxš@Ux„z@x±¼VxxU„l‚kb˜@„¼Čk˜VXlĠkôV²w‚LUKlwœJ@a‚IV¥Þƒn¯Ün„‚„@nk˜l²kÆ@š°„aVbnI@™š‚Ťn"],encodeOffsets:[[110408,35815]]}},{type:"Feature",id:"6105",properties:{name:"渭南市",cp:[109.7864,35.0299],childNum:11},geometry:{type:"Polygon",coordinates:["@@@ÈôL„xUŽ°„Þ@mŽÈnl¤nUôL‚wX`@ÞÝL™ŽUšmLô„„ŽôbVbnºlnÞ@ôƒšx°LšanV‚wÞ@Vxnwšnlw²¤šb°°„bVnƒlXbƒ„ó„@bš‚Ġ@„xšbš¦ŤšV™Xġ„£W¥ƽɽƒó@ýóƝÝ»„£X™mƅšĊkUƒ„@™™šó„kťaĵŽÇ@™akƒƒa„¯ƒUV»maUU„ƒaƒbUxmKƒnkm@™k„mK@ƒxó@¯n¯KǦ@ôÅèlxkx°nƒƾ¯KU¯WķL@VÝIUb™yWbX¼Ç°"],encodeOffsets:[[111589,35657]]}},{type:"Feature",id:"6104",properties:{name:"咸阳市",cp:[108.4131,34.8706],childNum:14},geometry:{type:"Polygon",coordinates:["@@šIXyĊwlý„KlƒXIVaķƒ™»a›£„¯aVU@a™‚wÈō‚ašL²»‚VœUln°WȯW»XašzVaÞJ@Uƒ»@¯Ýbğwly@£kÑţ±Wу@ka™IUƒƒnƒ@¯ƒómţU™b™U¯lÇIÝb@¤Ý@kV@zĊ@™ĶnƒVV¤k„V„„bmź¯z@°™a¯J@œƒ¤@„„bUx™bƒ„@`™xUÔ±ºVXœW‚„UnUJ‚LĢ¯ÈKlblmÈXŎ°šU„°LšŽlkÞKš@Èxl_°ĶUÒkblš"],encodeOffsets:[[111229,36394]]}},{type:"Feature",id:"6101",properties:{name:"西安市",cp:[109.1162,34.2004],childNum:5},geometry:{type:"Polygon",coordinates:["@@°²@‚„mVVÈÈlš¦„m°xla„@U¦°ÈV¤XbV°lXÞaÈJ°kšVšaŤVôn°„„@„mV„šJlb„@XÒŤ²lÒ@¤kzĠxÞa@°„¼ĸK°XV‚°L„ƽ¯mlwkwÆç@óÈ¥°L°mô@„w@aƙK@b™@wÝLƒyÅUƒÝƙ@ĉ¯¯Uóx™W¯x™_ÝJmLUx¯b™ƒóak±mÝUU„™W¯b™aƒ»óó™xƧçĉbƒaĉxƒIUV¯¥ō„±w—l"],encodeOffsets:[[110206,34532]]}},{type:"Feature",id:"6102",properties:{name:"铜川市",cp:[109.0393,35.1947],childNum:2},geometry:{type:"Polygon",coordinates:["@@ÆxĸƨšKlxÈX„K@VWƨIlmœV@wVUmUnmUalk@kVaUaóaƒóƒnKV™šÞK@ÝW_xóKmVk£ÇmnÝ@¯ƒVƒwóK@ǯXkm›VU±¼™KbÇŎx‚š@bUV°bƒœ¤‚bš¼ĸ„Ub"],encodeOffsets:[[111477,36192]]}}],UTF8Encoding:!0}}),i("echarts/util/mapData/geoJson/shan_xi_2_geo",[],function(){return{type:"FeatureCollection",features:[{type:"Feature",id:"1409",properties:{name:"忻州市",cp:[112.4561,38.8971],childNum:14},geometry:{type:"Polygon",coordinates:["@@Vx@lnbn¦WlnnUšmš°š²VšV‚VVVnUn„ºlz@l„„@Jƒ@kXWVXl@Lƒa@„ƒKUL„ŽlbnKlLnK‚LnKÆXn°šbVV@bUVl°Un@LnaVJUbW@UX²l‚@ČwlVVIšWnkÆa°„„anV‚Kn°™UW¯@™aVUVk@Un@„aV@ValwUanmWU„k@WVUUanaVwnLVl°@nk@mVU@UVK@w„LVKVU@ƒ„K@UUKVUV@@bnL„a‚V„aôšlIXmlKX_°KVV@bVV„@šzV`kblI„V„Ul‚šL@bnV@V„Ċll„„VlIXW@k„a‚U²blKšVnIlJ„albXXlWVn°JnšnL@l@XlJlaX@„X˜W²@l_VmnKšU„blU@mnkVK„¯@U@ƒma@kX¥VƒmakkƒLƒa@aƒ@WIUUVXWWnk@a°a@kkm@kUUmJm@WUUUIk`m@V—kaWWkX™KmƒXk¯ƒ@WKƒLkak@±bƒw@ƒaƒa@akaƒ@ma¯@ƒL—KÇÅkKWbkmġ™±ÅUƒLUK™VVkƒm¯LUVVbƒ„UwUW¯bm„ƒULƒxWJ—@ƒklmkUm@@KnwVkVK@akwƒ@@a¯bƒKkn›VUI™b¯mmbk@UbmKUL@xUUƒ@klmLUŽlVXI‚VVVUVUœU`mLXVWbXnW`Ų°xmŽxU@mĉƒƒwU@mbU@UƒmbkVW¦kJ™@ƒX@`¯Im@UlUVVnb@bWJXnmbƒJUU™UUaƒ@UamIkaƒxƒ@@x@b"], +encodeOffsets:[[113614,39657]]}},{type:"Feature",id:"1411",properties:{name:"吕梁市",cp:[111.3574,37.7325],childNum:13},geometry:{type:"Polygon",coordinates:["@@@a@w„@„wlbnJVb„@VbšVVV„InaWmXI@a‚aUmVUVkn@°J@_„Wš@lIX¥lUnaV„V@naV@„xĊ„n‚V@‚wn¯wƱX_WmXaWUnKV_V›VUUUUWJkUVnKlk¯™@@kmKUaŁ±KkU@WmI@WUIlUUmVwXƒ‚w@ƒUlUVwœV‚@„Lnb‚W@anU@UšaVkô@l»n@na˜JnUÈLVaƃUUVm„VKVƒ²L@mU_lK@UVWkU‚a@a@U¯aUaƒÑóÑUb™„ƒKk@@aƒk¯mVaUwVƒÑkWUmK@UUKmXUWÝwUa™LUU@aWJUUU@Ua݄U@WL@VKVaVI@WnU@alIVKƒƒ@kIƒmIkJ@™m@ƒ™@@_™K@xƒ@kaW@U„@Vmn@ŽUK@mIƒJUXV¤XXWlkKƒkkK@XmJVakImJU@ó™¯LWKUV@nUVƒLkxmKkLma@kXKmmƒLƒab™LmK@V@mXVÆUxƒX@`nL„aV@@VmLUVnLlLš˜„b@„šŽ°²nx@b‚VUxlb@V¯bUV@zV‚XVĊXVx@lVn@VnnmŽUš@LlJXVƒz¯VWVXbšV@bmn™VUVk„Çþń@XVxmbUlV„Uln„W„@„Xl‚@VLXÒ@bÞJ°¦„L˜ò„@nU‚b@°„X@ŽXbmVU„V„nb@x‚x"],encodeOffsets:[[113614,39657]]}},{type:"Feature",id:"1410",properties:{name:"临汾市",cp:[111.4783,36.1615],childNum:17},geometry:{type:"Polygon",coordinates:["@@nW‚@@UnLšK‚a„b„KnnWL@lnblKnLlw„KVU@mVUXL°KôšV@nIlJUbnI@WlL„llLXkWWU£VW„InJ‚@VL@nm@UVƒX@lb„@@wšL@`‚@„šn@V@lw„@n„VmVX„WmwnUlƒœa@_lK„wVlUn°xVKVXXWlUšVVI@K@K„n°KœwlVlU@kna@V_„Wn‚m„UVm@kXml_@m„LlKXw°m@_ôJVUV@X™l@UaV@Va°I„lk»VwUkVmwUmmVn@V¯@KƒU—wmK@U¯wUVÝ@mJƒU—nWK™@@UnKVa„_lykUmKÛnm@™x@ƒUUlwVk™ƒXW@ƒa@Uƒ@@K@ƒkIV™nammVakUlƒ@wX@@kƒ™¯@ƒVVbml@„„°UbULmlVbnbÅK±VƒKVXUJWa@ULWaUU@@U@aWK@UkxUKƒLUUUJ±UkL@V±kk@kam@UV@l@LWl@n@VVUx„LlUUx@VUV™U@aƒIUl™L@°mLU‚ƒbkUUaWUUaUU@aWK—LWJ@bUL@VUVVbU@m@a@kmKmnĉlUK™XƒWUblb—xmIkƒƒU@xWb@lkšVx™LXŽmzVV@bklVVUzm˜@bk„@Vx@xlŽU„@lUbVnl@„Wxnl@n@ŽUbV„mL‚mƒb@`X@lUX@@xlnkLWaUJnnWV™Vn@l„@bULVV@l™V@XnJVX"],encodeOffsets:[[113063,37784]]}},{type:"Feature",id:"1407",properties:{name:"晋中市",cp:[112.7747,37.37],childNum:11},geometry:{type:"Polygon",coordinates:["@@@šlInJ„lJ„@‚„ULkJ@bmV@XUJUb‚L@UXKV@ރVbV@VVXI@bVVšKVbÞxVXnWVL@VnLV‚lX„ÒUŽVxUb°n„l@bl@„LšƒVaô҄ÒVb°b@VnLnnV@lmn@lb„U„V@„‚JœUVV‚Xkl@lUzmJ@xšXkl‚bUn„JVšUb„nU‚lb„V@nlLX@lakšV`Ub°š@XVJnU‚L²KlxnI@KV@lbUbVV„KnVl@„zlm@Uš@nŽšI@WUaVl@@mVU„@XkW@ƒnkVKVƒ„_Vw„y@knwVa‚@XalU„@šVnml@„X@V„L‚KVaÞbnnlJšI„mVKn„VVVInVlU„@„m@™mXK@UmyUI@mWUUakamw@wUwmLkakwVƒmK™w@wUam£y@am_ƒW@™UU@knmm„amU@WUa@knw@ƒUUUUV@nƒJm@mVUkKVUUUkKmwƒKULƒKUImV@lUn™nŽm@mbUK@°™bUnmbUmkkƒWUb@am@UXkK@a±@™V™@ĉř„V‚UXVxUVkLWl¯@@bULUlm@@nm`—XƒlWakIkm›VUbUL@Vm@kIƒ@@Kšm@—VaX‚I@W@aU@kUƒVU_™KƒbƒJkkǎ™b@nkKmL™wÅW@kVUUƒVU@WUIƒJmIXmma@_kyVaUUlkUm@ƒkU›x¯Lƒm@L@LUJ™UkVWXUWUL¯wVmUkƒxkL@`›bk„mVnxƒXUWUnmƒƒ@kxU@"],encodeOffsets:[[114087,37682]]}},{type:"Feature",id:"1408",properties:{name:"运城市",cp:[111.1487,35.2002],childNum:13},geometry:{type:"Polygon",coordinates:["@@„Vl„nJ˜wkaVa„XšWVLĊknmnL‚l@@bn‚V@UaVU@UVK@aXI˜KXL@bVVVbXVVblV„aVnK@¯šKVk„J@bšVVU@UVwkVƒKVwUUm@@Xk@K@kVUn@lbl@²l@UlK²VVIVV„KVLlw@VXL@b@VV@VŽXbVK‚@XbVIUW„L‚U²ÆLmaUankVKVaƒ¯@ƒnkUa„U°@„š‚n@@kWa„UVaXUW@IXKVw@U™ƒ„™WU@W@@UUƒU@mn@ƒ`m@UUULkUmJ™IUƒ@@UƒK@U@›anƒ™ak_@wmKUwmakV™kmK™V™k¯b™wƒ`kwUIÇx¯»ÇaŃmn@@™mƒmUkV@wkKW@kxmL™UkĉLÝk™xÝw¯lóVU„mV@ĀVVX¦W¤kz@`Vx°„²ĸ‚š@„Ul@x„êĸNJ°¤V„VlXLWnXxmV@nUl@„"],encodeOffsets:[[113232,36597]]}},{type:"Feature",id:"1402",properties:{name:"大同市",cp:[113.7854,39.8035],childNum:8},geometry:{type:"Polygon",coordinates:["@@²£šyl@Ȑ˜Ė@bĸŽĢbĸ„˜X„a‚KŤnn@ŎôllÈx„nVnÞDŽV@b‚nXllL°KšbVb@J@b—„‚„@ŽU„„xlKXLlKlXk„@Ulk„JlkUƒVKXUƒÇVIVm@_nǚLšašl‚w„VnU@UUwma@aƒaÝaLmUk@@Wƒ@U@@X™wVWÝUUUk@@VmLƒKV»nwUw™aUL@`mzƒJUIVƒUaUw™KUaVIlJôanÑlLVUn@ša„@VV„@@UUwVK°Vn_lJÆLœéW@UUUÅ@»lm@aÞIVwXW˜UUkkm@U@aƒU@mwU£VWU_kWmƒXwW_°yUkkK@UÇK@kkUVymóK—U@KWIƒbUak@mJ@bkbmLkŽ™UmƒkVU„W¦@lnb@„@Vƒ°ULml@nkVƒa™VmLUnk`±@—XƒWW@kbǦXŽ¯„WxI@xmbmxXlWV„„@bŎUz@J‚b@bÞb™ŽU@Wbk@ƒxk@WX¯VۙƒWÝbÝUkVUU@alI@a@akLWa™m@U¯UUmÇL@K@aU@¯VUkƒKmX@`@œkJ@nV‚Ub@lbVÆXVW„ULU`VbkLUV@XWl@bXJ˜@VbV@Vl"],encodeOffsets:[[115335,41209]]}},{type:"Feature",id:"1404",properties:{name:"长治市",cp:[112.8625,36.4746],childNum:12},geometry:{type:"Polygon",coordinates:["@@Uk™Lky@I‚JVa@mÞaWšy@_W@_WƒXVlUVwš@nw°K@m„UƒVaƒmVkU@mmmnLVUmKXa™U@IlKVUnK@UmWkX@WV_Vƒ@akU@a„KWIXyƒIUVmUn™Ua@WaXUVKVmkUWVkUƒLU@@VƒbƒKbƒIUmƒ@mbVL—x›WUUkn±V¯wƒbÅJUbmLkbmKÅKƒbVnUbƒV™KUb™KUbmLKmƒb™aƒKkUm@UŽnn‚VnxUVlUxl¼ƒk¯JUbU@Vbk@WšU@UVóI@`¯nWxkLƒK@nk`Wn@lUnƒVnm‚ƒXU`@mb@lkV@„VnklVVUblz@`nbWnnJ„IVJ@XUVV„UV@lÆXšxnKlL@mšaȍll„I„ašLV`„UlVV@@b@XJWUb@˜™n@L„@lJn@@UVKVaœUlnlJXb„k˜Wn_@mn@VkVK@a°@XklKVUUwVWUšƒĊƚ@šU²@@blLVWn@@bVa„XllVnnaVmša@¯VLnan@‚šmVm@knUVJ"],encodeOffsets:[[116269,37637]]}},{type:"Feature",id:"1406",properties:{name:"朔州市",cp:[113.0713,39.6991],childNum:5},geometry:{type:"Polygon",coordinates:["@@XXWVXVWnnlnn@èƼ@„„xlš„ŽV„nblšššVŽÈUVl‚š@„blnœL܃ĊmUkU@Ua‚—@WI@aXk@WVUlKUaV_VKXƒWUUÅka@VaU@mlI@›@_nW„LVl°UV@@b@LÈKVn°V@VšnXblK@b@bkJ@bVVlUÞVÞa„Xܚ°UXWl@„wl@XaV@šÝa@aa@IVyƍ@aƒƒXUWknwna@w‚JXw°ƒWÈ¥kI@W@kmKm™¯IUmkXWWkaƒbkImJ™UkL±aVƒb@lWXkJƒUkƒĉkƒ@UmU@a™KkƒVƒUkJlaU_™yƒ@UU@aUU¯LW`kLWnkJó™ƒbUƒbmK@aU@UVVL@VƒL@„UVULƒK@xUL@VUV@nml¯@UkmKUxmbVbUV@XƒlXVmnVbkxUbU@ƒbm@@VUlUVšb°@VX¯šm‚"],encodeOffsets:[[114615,40562]]}},{type:"Feature",id:"1405",properties:{name:"晋城市",cp:[112.7856,35.6342],childNum:6},geometry:{type:"Polygon",coordinates:["@@lV„Lšb„an‚LnKVašLVašL„UVaUm„aÆLnLlanKVaÆI„a°x²UlmVVœX˜wUKna„@Vn„J‚a„L„a@UV@@alUkKVKnkmmVwUk„w@ƒ™@kxWUXƒW@@mƒk@aUa@a¯aƒLkKmwkUm@kL@K@aWIXmƒVƒXƒWkUVakL@UVKƒw@aUK@UUKmLU@¯n™KUwVƒUIWJUWmka™@UXƒJƒk@UkmW@kLWKVƒx@bmI@VUaVU@a¯@UUmVKmX@±`kÝKVxUL±akL@V™bƒLkKmVƒ@XWVUbƒVXb@lm@@lW@@xk„lVUbnnmbUšlJ@„@L„@@V„b@‚WXš„UlkxVV@„šwn@ÜmnLlVkzƒ`UbmL@Vš@XL˜m„VnIÞ@VU°x@VnL˜x„V@LU°"],encodeOffsets:[[115223,36895]]}},{type:"Feature",id:"1401",properties:{name:"太原市",cp:[112.3352,37.9413],childNum:5},geometry:{type:"Polygon",coordinates:["@@„@VV@wVKnLVal@na°nšaVJœUlm„L°a@b„@lx@bULUlmx@Ln@lVkn„l˜@XI„w‚K„Vnƒ°aVXVx„ƒUaVU°K„nUlšUVL„KÆVš²Ģ‚lnXalLÈƘL„KUaVkUanmWU™a@WwkUWU¯y¯Ñ@anIl@@aVU„m„I„ymUƒLUUVakaU@@LmJkw±LKmVUI@W¯™VaU_l™kbW@kK@mƒUkaVƒmVaU™ƒIVmalk™W@wnIVy@klkWUU›VI@ƒƒUƒVkam@knU@mmmK@bblVUX@VkLV`@n±KU„ULƒ‚UnVVńUbÇKmV—Imbm@k¼ó@Ul™b@VmV@bXmaƒK@›UUxkV‚V@„xW„UxVnkVVJ@XnJ@XlV²LƂVbnL@lš@°"],encodeOffsets:[[114503,39134]]}},{type:"Feature",id:"1403",properties:{name:"阳泉市",cp:[113.4778,38.0951],childNum:3},geometry:{type:"Polygon",coordinates:["@@°@nb„@lb@b„b„b‚@„x²al@lb„KXU@m‚kUWkkmUUƒVwV@XUW@™naVklKXblKnL‚ƒnLVanImaXKlL„ašV@U@KUKW„alƒXK@£WKXUV@VU„ƒUUVW„_V™@W@@K„@šƒUƒƒIWmXUmƒULƒn™JkImmÝaUbLƒK@UƒWk@mn™Uƒ@kVWb@Ubmx@lƒzUxƒ`U„ULml@„XWlƒ@UV@nk@U‚Vb@X™Jm™@@Vknƒyk@ƒzƒJƒnUV@bk@mJ@b°Ò°zXVlVXx‚@šbXVmnVbUlVb"],encodeOffsets:[[115864,39336]]}}],UTF8Encoding:!0}}),i("echarts/util/mapData/geoJson/si_chuan_geo",[],function(){return{type:"FeatureCollection",features:[{type:"Feature",id:"5133",properties:{name:"甘孜藏族自治州",cp:[99.9207,31.0803],childNum:18},geometry:{type:"Polygon",coordinates:["@@ƒaXamƒ¯wm@±°wUwV@UaVw²Kš™„U@UƒU„¥‚a„ƒ@£Þ™ôx‚Knkm™X¥™IUƒÝUwlk°V„@ƒÈ™‚KUwlkUyV¹„mšx²Xll„ÑW»š„l„w°UŎ„nƒ„„˜Jœƒl¯°V@wôIVÇn™nUllšLšVǚLô¼XW£@±„@¥k_ÇJƒkUéƒkšƒƒwXa@ƒšLlw²™Vx„b‚mš¼ÈxlLȃ„VWÞn¯mǙÑUÝlÛkwlĉmƒULmwUJ™ç@wkm@ÑlUX™ƒÑôġƒVa™ƒUф¯@wķÓkbV„mnU@@y¯IķKƒV@¹šaƒé@k„mÞU°¥@a¯@anKlblU„¥@óğç@Çw@wkla„çݱk¯±@ğÝUÛmݯwƒ@kb±¯akXWÜkXUÆÇUš¤X_Ɛw„V@¤ƒXU‚ƒbUƒŽƒIUlÇUkŽġ@™aXČmlUlèUV@„mVk¦Vxš@¦±š¯ƒƒ¯¯anlWš¯nƒƒÅw@w°KVak£m@klƒKknÇU™»óKšīlaUaV£@™™¯@ƙU™VƒÛÝÇXƒÇl—ÓlŹ„»WUğJ¯£mx™Lĵô›ºX„VlUll²bl„„lŽƒxónn°ÝšU¼mJUš¯nƒƒƒV@êĉ°Uĸ™w™@mƒ@¯kmXamѯaUwÝKU¥„mÅn¥Wmn™ƒ¹n±ƑƆÇôXê±NJnšƒ‚UôlĖkȂVÒ¯¼VnƒȮ¯ĀnƆ˜Ģ@Žk°V°¯ĢVlkšVxm¼X²™Ŏ@ŽVxknWÜ°U‚¯n™Æݜ@`„ôݲÒƒ‚Çzn‚mX@x„è°K°Å„UČĬóĖ݄ƒ˜ó¼ÅêƒÒƒbmšk@V„Ž˜„@ҁl@nĉܛê—x@Ėml՛J¯¦óxȭ°ÝmŽ¯Lĵè›Ā@Ɓ„l°żƒ‚šX@xmŽkV@z@‚„°blŽnÞ°J@bn@ƼUVƒUóŽóLƒ°X°ÝLƒxUn„°ƒĬƒn@lnL@ŽÆ@šn„KÆxnUnV˜InĬmÆnxŎ¼ĊIĢóÞ@ĊƒƨbUƒ‚mV¥lkƒ‚wnL„mšÅÆ¥Xƒ˜wU@w‚wUÞ™@alUUŚU™Vkkm°aU—°Ó°w°U„ƒ„b°aš²K˜¯œĕ˜@ÈbޏĊaš»„XVm°In„‚Ĭk¼Vb„ašJšôš£VĊan™‚k„ů™™nƒÜU@anKnĮ‚bÈmƎš»nI‚霣Ġ™"],encodeOffsets:[[103073,33295]]}},{type:"Feature",id:"5132",properties:{name:"阿坝藏族羌族自治州",cp:[102.4805,32.4536],childNum:13},geometry:{type:"Polygon",coordinates:["@@l@@þ²I@lƒ„VL°wnJ°Uĸ™Ŏè„Ilw„V°¤nĮ™¤Ý„lè„L@„ƒ„@x„l™è²ôĊ_ĊġVÈôJżīlbXšÆÈVŽkxÇVƒ„n°„¦Üb@è@nn@@°šUÈ¥WDŽ_Uala¯¯UǙkƒ»„mVwk»˜k²°VxlL@¤œ_@x‚`ȍ‚Ėöb˜š@l²alX„a@bnK°¦VK@nnWmx@nUnl@@lƒlĉk°l°UXkmW@Unš`k„ÇL„ŽW„ÛÈVxšVVlVk@l„IXb@ylXÈW˜Į„WŤzœy@šmIƒŽ²šJ‚š@nŽ°@V„„J°a„Å@ƒŎkVǚk™aUw„KVw™™Vƒ„@nkm™@±ôkô™ĊJš¼šInÑm±nIššÞ‚XȃĊxĊUÈbÜyÈ£Vkw@kVUV™„m@ša„»ÜbÈmƒUXwÝxƒUn¥@°ġ™Å‚aœJVk™aW¯Û@W¥—UŏĶ™@¯kUƒŃ@ašI@mmanwސ‚W@œ™mw°»Uřk¹±W„xVx¯¦U°ƒzţW™w@°ÇVÑk¯@„y°aš£š@šmšnl¼„ašÝÝakwUƒ±aĉImlĵn@ƒm@kkVƒ¯Ñm™ĸ™°x„l™œ@˜ƒXVÞmlÛݙĉUÅ¥mwÅ¥VaUw›™XġċaVůÛŹlwU¯U™ó±™xÛV±¯¯n¯mċƒLmnĊm‚™@™_kJWaXmwUƒĉK™»™@mwX݃UDŽkKÇw™»nƒaUw±škx™K@„Wb„x™„„lVê„lÈIl`@¦ƒŽ@²X¤Wó»™KUșŽ™KkkmVmšUÈóJ@x¯Uk°›„—Iƒƒm„ōƒ¯Vƒxƒk™ŽX¼ƒÒkk±W™wƒnUºVzklVxLǚ@„ƒŽ¯UklVxސV„šJW¦nšmlLówݚ@¤ƒ„bƒ¦„V@VƒV™š±LUxVbU@Vx¯x@²n‚°xn„Wb„b"],encodeOffsets:[[103073,33295]]}},{type:"Feature",id:"5134",properties:{name:"凉山彝族自治州",cp:[101.9641,27.6746],childNum:17},geometry:{type:"Polygon",coordinates:["@@ĶóšKnw°¤ĠIXVƒ¼kź˜Ôk‚„ÈWŽÞȄÜUVšÅš°@šš‚@U¤Vbkb™ĬôLš¼ÈVlm„Llkn@l¤Ub¯L@xÆx„„°mX™mk°b„°°„²™@¥‚™Uwl¥nU@ƒVUkçVnkWċšbĢ@lÈVVk„J„‚V„aV„W@£ƒUƏxW`™£ÈVVÅlWXÛlW°b²la„@°xnÞVÜĠÞ²@l°Þ²ƒèkblŽ@xÈx@Ġènal£nU‚Dz@‚ÞK„nn¤@¼˜°U¼„nV‚šXU‚šbn™ĠUVbUlVš°LX„@lV„èÜUnK@_ƒyXVyUwmIU»Vƒ„kÇ¥šÿkkV¯m±n@ƒn¯ÜanVVƄz@Ž‚bœwÜb„m@wša@kƒmk»@™a@VUUó„w˜@nb°mš„XŽmnVbގVôanwšJ‚ak£lw„˜šLšÅnÝ@wl¥IÇӃ@U™™Lƒ¼kVǃÅó¯kVmmw@ƒn_‚Vn»°LÅ»@éÇçŹīVÇÝ@ÝğU™ƒaVݙ™š¯ķlŭġlƒ@óÞۂċ@¯nkUӄ—m±™IVġUwóKUn±¯—K›w»ƒKݐV„nl@„óxUwţ›£ĉƒUmŗÇ݃K™„ÝUlmKƒ£UVŽ@ÞȎW¦„Ò@Ĭšnny‚@nÒmœVŽ—¼@°Vbl@VlnUUwl™°a@„œ„@llnk°lbnKWĀnŽU„VxUŽ‚²Å‚m¦Û›ÇŚƒaU„Vbš@¦m`móX™Umm™xÅ@±Þn虲™U¯»m™ƒV—m@wƒU@wݚÝmLƒa@„™VÇUk„l°¯„VlkVƒ¦UšmxƒaULUèVx@„kIUxmWV¼¯VmȯšU„nl›È—@m»Å™ƒVWxÅbÅğW@kƒm@kVV¦mlnn@‚ō„l¦Åƙxkœ"],encodeOffsets:[[102466,28756]]}},{type:"Feature",id:"5107",properties:{name:"绵阳市",cp:[104.7327,31.8713],childNum:8},geometry:{type:"Polygon",coordinates:["@@„ńlV°š@Őĵ˜VX»ÆUĊќJ‚w„@È»m»š£°Kšk@ÇnÑƍš@„w°JUwnw@wšbVbš@VlźLUw„aƒ»„aUklyUUVakwWXwWƒUxkLƒmn¥mšwk™˜UX™lJ„w@aƒIk°X„¥Wƒ²l¥šaU™„IlmkklƒÈL@m°nlWU™aW—š@Vƒ„@UaV¥@ašk@Çk¹ƒK@a™K@kƒKkšÇX@VU@kx±V™èkIWwUVUkkKÇ@ƒa@wkml¯@kUWn£Wa„aVwnaV݃w¯@UaWx—n›JńUxUšma@L@„mbUŽU±VVnkxUƙ„VŽm@kkKW°„X@¤ÇUkÆÇnU¦¯ŽkƒmLVwÅK@UóbÇƁVƒ¦™L@‚±êX¦mVޚkÜÝnWU—„›@kšƒŽ¯wķšnš°ÒU„lln@@„ĶmnkĊJ²bV„lxÞb™Þƒbk»™m™n™@™¤¯bƒz@Žl°UÒ¯È@ŽšxŤX„yV¯°¥Uwƒw²XlºVŚ¯¼nx›š@ŽXݏmxnb@n™J@b"],encodeOffsets:[[106448,33694]]}},{type:"Feature",id:"5117",properties:{name:"达州市",cp:[107.6111,31.333],childNum:7},geometry:{type:"Polygon",coordinates:["@@Uxn°‚bnŽlUnÒƃnn@n‚¤„LnxlU„ššV@„Æl„x°XXxl`XœƒVW‚œL˜è—„±nÈbƒŽ°b@š²x°Kܼ°ĉ„V¦lJnU@¦šÞ‚JÞğ„mšLÞ»šxU„lb„VÆann„alŽ„VƍX@lnŎV„mU™maÅXƒa@aWmœ@‚£@wĉJVƒkk‚kkmƒnk@ƒmna@šal„Kš™‚J@Þwm‚ÅŃ@ambkUƒƒ@™™KUġKU@m‚ak¯±ƒ„a@aĉÑÅaVwšXlwƒ±—V¥l@@a™kƒ›@@£šmƒĉÝónWV@ŽnÝÇÇx—UmbƒaVkkk@m„@m°ƒÝýXm›akÅīƒ@@ƒmb@@xmšnbƒ@mxšŽkWL@ƒ¯b@WUXmWœWKkbm@kx™Xmm@LUl„xlêóK™nUš„all™LƒlLó°m¯JVšU„K„„@x˜K²Āô¦l°"],encodeOffsets:[[109519,31917]]}},{type:"Feature",id:"5108",properties:{name:"广元市",cp:[105.6885,32.2284],childNum:5},geometry:{type:"Polygon",coordinates:["@@ÆL„Ċx°»Ŧ¦˜W„™šLȄ@xÞKÜ°ÞnVxÅĀlÒnJ°a@w„V¯l@XWknKnw˜VȚ°XXa˜lX°VI°b„W„nšaššš¥@ƒw°™n@šyÆ@nkÞ@°¯lJn„°IÈl‚UšlXÅ@ķlUV¥VUUÝޙUUƒ@UwƒJUkĉm@ýƒƒlk™WUwVwWJk@VUK™lUkaVƒUƒmLk„m@ƒƒ@Uƒ›Ik`@„™UmlUkV¯ÇXKÝ_mm¯@Uƒ`kwmƒl¼±KV¯—¯Vk±Vk±kzma™KUnDZ™bk¦±ŽX„ƒ¦¯Wl„J@bƒxkIWš—Vlš™xnŽm¦„nlKVwX„WxXŽlxUbVVkzVlƒb„¼ƒbVxŹKUk™@Ua™a@xmxVx¯Iƒx™@ŎmÒ@șl¯L™¤n¼"],encodeOffsets:[[107146,33452]]}},{type:"Feature",id:"5118",properties:{name:"雅安市",cp:[102.6672,29.8938],childNum:8},geometry:{type:"Polygon",coordinates:["@@ln@xšèVInxVKn„‚ĊklxkÜVޚÒnÈm°nxš@š¼ĊLV„nx‚WXblIš`š@nmĉn‚KȄôÅlUÑmU„K²¹@ÇÅVÓůVýÞW„‚UVmX„ÆbnwšKUÿ‚™@UmmIUb¯¥Uwƒ™¯™Çmš™„çmanUm»UUƒl—kƒ¤ƒa¯bV™U_WĕmÇŚ±ĢUlƒUl™ÛVƒçkUƒ@WŽ¯KU™VkUağVmš™aV™WUƒmV»—¯@»m£ƒmÝLŽ±@ÈmVk¤mb@ôƒ¦kVkamL@b°‚@b¯¦ÝVƒn@l„ê™b@º„UĸL°J@zV@nmUƒlaĸÔ@xƒ°VҚ„Ub„‚óĢ„ÒWškV@Ò"],encodeOffsets:[[104727,30797]]}},{type:"Feature",id:"5115",properties:{name:"宜宾市",cp:[104.6558,28.548],childNum:10},geometry:{type:"Polygon",coordinates:["@@VlÈnl‚XnWLX`m„²nV‚@b°xĢçlnšVm‚nn„@@„°‚UzšlV°nޘÒkxl„w„`UnVb„mšL@albÞKÈۚmܼ°@Xǚ@wmW@ńKĊL„lV„šLVŎçÞL²±‚ğkw@Uƒy@¹lKX™lKVa@w™™Č@‚w@a˜ÇU¯n™@@wġak—™aō‚ƒƒK@Å»VakUWmķwkbğ¥mL™akš™@ġރ°¯xVVÞ@VšxVš—VWx„XlxU‚™@k²WVŃULmèULVĊklĠ„VœJVx±nŃ¯¦mwğ@mƒƒlğkkl±@kšUk@¯±Ç™Kƒ—kxl¤b™Imx"],encodeOffsets:[[106099,29279]]}},{type:"Feature",id:"5111",properties:{name:"乐山市",cp:[103.5791,29.1742],childNum:9},geometry:{type:"Polygon",coordinates:["@@kšVŽk„ššÆkšV²UlºÈIlxƒLXèÜlU„„XU‚mkƒbVè„x°@„@¼°Knnn@m˜ÆIUbnJ@bVI°b°±@nK@mVakkƒKl¯nbšmĸ„èl@VnÈl‚UUw„wmwnm°¥„L„™lLnU@Va™ImbkƒmK„ƒƒnk@mƒb™ƒƒLV„JVUUƒ„VnkVmb@a¯JUaÆkk¥„IW¥„Klw—ÑmÝU¯™kVy¯@ƒƒ@mmn™Ukmġè¯w@aU±mnƒW_XKWmkÇmUkóbUÝUanmW™ƒ¯nma—@ƒxVôUV@šb@‚l¼„n@l™b@xƒnÛa›xa@ƒyUÅmUÛbm°@„m‚n²U°ll™ĀȦƒlU„V¼nJVxUz‚W„z@`mL"],encodeOffsets:[[105480,29993]]}},{type:"Feature",id:"5113",properties:{name:"南充市",cp:[106.2048,31.1517],childNum:7},geometry:{type:"Polygon",coordinates:["@@ȲVmšLnblyl²²UUl˜°U°²L‚»„knlx„_VŽ°@nnÞ`WL°ÈUŽVlnkšV@ƒl_œJV„‚@„„n@lƒnKV£™Çšƒ„UV¯šm„@laX˜U„‚UbVx„@VkôJU°Jn™@™‚wUk°wnUƒV_nJmknmm¯Vwk¯ó¥±ÿ—L@wƒƒƒLVU™kU›bX¯mykI@a±Kk¦ULmaXƒƒVm¯ƒK—z±ƒklUIVbÇJšƒkL¯™l™ƒU™ÿ™UƒlUkJƒUmŽUUkVVklKk@@a™U@„™J„²ƒxƒ¦kĬ@¼±ºXnWb—xƒU@xƒx@lšL@b„Llº@șl@bU¦Vbƒ@U„™@X˜‚bVškX¯m@nÇKk„llknƒJVš"],encodeOffsets:[[107989,32282]]}},{type:"Feature",id:"5119",properties:{name:"巴中市",cp:[107.0618,31.9977],childNum:4},geometry:{type:"Polygon",coordinates:["@@V„U„lbkVšŽVLUŽl@XI‚ŽUxVxšXkl„„@þĊnVl„IVx„@VVݚVÞUVU¦kV@ĸWÆô²š@VÞnš@Vaôb²W@‚K@XUmÑUW°¯°Ina@y„_lWn¼lLUbô¼„Kla@™nkUyô—Æx°@šn£™Ý@¥mVkIU¥Ċƒ‚¯Û»¯L±w@™¯a„Ça²m˜ƒ—ç›KX„UW›k_Ww¯WƒwÅk@ƒ™Uƒ™kVmwƒK£@mmmńmÑkVmamnnlmIU`V„m¯xVlx@šmš¯IV‚óIUlƒ@UwVaƒ—VW‚kbƒ@™nU°ƒV™„šÈU¤"],encodeOffsets:[[108957,32569]]}},{type:"Feature",id:"5105",properties:{name:"泸州市",cp:[105.4578,28.493],childNum:5},geometry:{type:"Polygon",coordinates:["@@VVXwVKn„˜wnVƒn„l@b¯xmKUbVn°°X°@blLšènV„@Vn‚l@U„LnmmUna„VV_ĶV@wnJ„„l@@kkKVólaUwnJm„wUlm@ašUaôKVnJWbޚ@VšwVLX¥VVš_Þ`šw„WƒÞŹmmnIn¥Wƒ@k„WV¯@ƒ°kI™ŽƒLk¼Ç@k¤±Xk˜™nmݯUlÅÛKWV¯kƒlUwkLƒÓ™@U—@ƒ‚w@ġXV„˜WX„š@UbVbšV›š_kÇV™lU°lnwŎ¦ÞaƯnmm¯šU„™m¥nkVmkƒl_ó¥¯UÇl¯@™ƒ™L™kƒ`¯ķLUy¯@mw—¼ķ°ġ_řU°mlšnÇVUޚ„@‚ƒš_ƒJUnV‚UXšbl˜Ģb@x@mšV°—È‚b@‚xċ@šš@xUbkLWškL@º„zV‚@lxĠ±²"],encodeOffsets:[[107674,29639]]}},{type:"Feature",id:"5101",properties:{name:"成都市",cp:[103.9526,30.7617],childNum:11},geometry:{type:"Polygon",coordinates:["@@°n°m²°ÜUšw²ŽôVš°ŽVkxÜźUŰČb‚ŽĢlaÈL„»ƒ@k„wVǂ@„ƒnÛƻșUÝ°Kl_„V°Uš`Vbn@VbÈLšaVU@ƨ»V™nIl™šUUa„±lIk±š@VnKmÅ@WaƒK¦™lVōškK™Ý@maXÇmw¯IU‚@kƒVƒwUmVIƒƒƒç—ÿƒU±ŽÅ@¯È@xƒK@wƒLUbÇKō@mÝ£@yóUóóUxkI@WlIUaƒbƒaŽVĀ™LmxÅaWƒUnVƒÝXUþÆ°UÔÈÆ@±ºƒLnVVÒkóÆ"],encodeOffsets:[[105492,31534]]}},{type:"Feature",id:"5120",properties:{name:"资阳市",cp:[104.9744,30.1575],childNum:4},geometry:{type:"Polygon",coordinates:["@@„è„„UJVn„x„U@lV°JnxWÈnbÞ@šŽlLŎ™Ušk‚¥„LXbÆ@nŽmLU‚@zlbXmlnVynL„çšJVb‚UnómUnamU„an¥lKV_²aValWô„n@nƒ‚bVœK°¯VblW@kkƒlUnlV£°W@w„UXk°KVwƒmVkwVyVI@wkmƒVÅ_Umm@Uÿmbk£™xUaVw±V¼V¤kLWxU@Uk™bƒyƒXšómƒ°V@@zÝÒkKƒn™±U@@_VVkƒÇaVwnLWalm@@kkVVl™¦kIV`±n@w„Kƒƒk²™aƒVUUV¤™nkxmUkVWVnLUbVbƒ`kUU„mLU‚mX@`ÅbǚXbWLXŽ›n"],encodeOffsets:[[106695,31062]]}},{type:"Feature",id:"5104",properties:{name:"攀枝花市",cp:[101.6895,26.7133],childNum:3},geometry:{type:"Polygon",coordinates:["@@„b‚KÞnޙ@x„V@x˜n„Unš°¼šVš±mç²ÝÆ@šwnnšVWŽnôn_@¥‚™UaVƒ„bƙœÈ܎n¥Æ±VUwVƒmXÿmLkal¯km@k›ƒ@ƒ¯bkšVxmVUkk@Ua@¯˜»Un›mс@mz™m@īƒÑX¥Ç@ݙxU¦ƒšÅŽÇUkx@šlb„UWVX„mV@xĵĖ±@@Ž¯xUšÆLnÆm„šx@nXL±lUUVwKWak@WxkbšÞƒŽĉbUn@‚ƒ@@xó¦„Ŏ"],encodeOffsets:[[103602,27816]]}},{type:"Feature",id:"5114",properties:{name:"眉山市",cp:[103.8098,30.0146],childNum:6},geometry:{type:"Polygon",coordinates:["@@„šVx°¦VanJVnš@„b„aVbkJ@XlJVwôôôV@zÞ¤@nƎÈLVa„K@x„L@w°ÇÆ@²„V˜ĀœmWXKWașÆa@_nWVnKVƒlV„_UaVamKXUWwnmmwœÑm£@ynUƒkWƒĉUkWVkkV±çkJmkKƒšƒK¯¦mnnxƒxVxVÇkUmk@ƒçķ™nmak°„LllUb@nmL@‚¯²¯aUJ@amIVaÅJn—m@mm¯L@»ƒŽ¯@ƒwUç„anlVƒWVƒÛkWç„KkwÇJk¹±V™UÅl™™ġV™²ÈƂnXĖV`Uš°a„b„£˜l„kVVn¼mVnbƒè™šÈn°š"],encodeOffsets:[[105683,30685]]}},{type:"Feature",id:"5116",properties:{name:"广安市",cp:[106.6333,30.4376],childNum:5},geometry:{type:"Polygon",coordinates:["@@„VlIV‚„kšVšĀ„Vkš°šlK™„ÈIUaVJlk²„˜y„Ln°„UW„nbVKl¥²L@blJnzW°œalV°Inô¯‚K„kšKkkƒbV™šmôLkéƒwVk@KnnšWlwn@laXL›ŽnXVW@X°a@„XKl™nw„@man™@w‚@na@„„@ƒw™ĕġġ™wUkUWb@mk@™¦ƒ¥mUÛb±yÅn@bml@kV@„ƒlknVbmVnlmš—bÇk¯bWyk@V_UamJ@I—@WaƒVXamIVWkUkbVaƒUUxƒ@VnkVU¼›bkKUxmK™„@WšƒxnV@n"],encodeOffsets:[[108518,31208]]}},{type:"Feature",id:"5106",properties:{name:"德阳市",cp:[104.48,31.1133],childNum:6},geometry:{type:"Polygon",coordinates:["@@nUW¥²é@šK„¥‚UÈÅôa@VÆLUxnKl„°V¥ÈmlÅÈV@£ƒWX¯lLln@UšƒVÅlwUm²U‚VVna@ƒ@KnbV™VwƃœI˜mXwWƒkIVwÝĕVUa™IƒèmKUzkmWnka@y™@l²kJƒ²Vb™VkšmJUšƧ¼@UV™bÇKUam@Ua™_¯VƒUk`¯LVÞǚżm܃„@Uȃx@l„ƒ¼ÇKkbWŽœšVxUbƦnxƦĊV"],encodeOffsets:[[106594,32457]]}},{type:"Feature",id:"5110",properties:{name:"内江市",cp:[104.8535,29.6136],childNum:4},geometry:{type:"Polygon",coordinates:["@@²èlUUllXĊVX„„lmV@zn¤›ÒnxmnXxlUnVlwšmU£VV„Ušbl±„„ƒL@x²mU_lJš¥UklU@ln@‚kXbmKUxÈbl„UU@`V@š²„mlLÞÑ@yU@„¯ôn‚™„W„zšaVlV@XwlKU£‚»—aVaUwm@mwUVUwkƒlVDzLlƒ„KV™m_@ykUmƒ@mU™çkKmxkIU‚Ý„@LUJ@n±„kº‚LXb™¼@mmIXa™@mamnkW™ƒKUƒƒxƒ_U`UklwUw™mUbƒV™²ƒakbƒmkn@`„UmҙšVxUb™I™`UƒaÝÈ"],encodeOffsets:[[106774,30342]]}},{type:"Feature",id:"5109",properties:{name:"遂宁市",cp:[105.5347,30.6683],childNum:4},geometry:{type:"Polygon",coordinates:["@@ÞĖUxlJX„Vb°@„xUÞmbUxƒbXbm¤VX@lk°ln@x„bÈ@lLVlVUXxlJšç²UlwV@@UÈWl™„L„w@w„V˜wXaWm²¹@»lī„¥„wƒ±šI@ƒšV@bl@kLUllUVVn@mmU„wX™ċbVb@VUkbmamšW@kƒa@™™k@ƒlaUa™@¯b@šmmwó@@lkXUa¯°›LU‚am„m@óƒkXUb±bU`kLm¦ƒbnVmbnVmô"],encodeOffsets:[[107595,31270]]}},{type:"Feature",id:"5103",properties:{name:"自贡市",cp:[104.6667,29.2786],childNum:3},geometry:{type:"Polygon",coordinates:["@@lIÞDŽbVŽš_šJVaUwš™nуV@_lm„nla„bš±„UVašnVxkxVlV_„`„wV„„LšlXnmnbš@WbnJ@nš»WaKl¹²ƒ@mVI@KރVlJnw@aW¯¯¯UmVanL°w@aƒk„mmU—xmƒULWxUUÝKōèU™KUƒƒkĉKƒL@ÆnX@x™‚Wȯ@Û»™nÇÜÝLka@b™KƒnUaVmƒ_ƒxkƒLX¦ƒJl¦ÅlVb°I@bnaUŽmlƒUV„UVƒIUŽ„Kš„„a@nml„„ƒŽnLl„našJUbV@"],encodeOffsets:[[106752,30347]]}}],UTF8Encoding:!0}}),i("echarts/util/mapData/geoJson/tai_wan_geo",[],function(){return{type:"FeatureCollection",features:[{type:"Feature",id:"7100",properties:{name:"台湾",cp:[121.0295,23.6082],childNum:1},geometry:{type:"Polygon",coordinates:["@@\\sŽ@pS}aekgKSu™SsMß`¡CqZ·be@Q^o@‹gieMp‹‰]}•}Ľc_Kk…{™ù“A¡r‰[uom@эĥJiq©mʼnq¯Bq]ÙYgSåk_gwU­isTE…“‘ĕiqiUEkue_‰OSsZ‹aWKo¡­q“ycY£w}‹ĩ™ĕS§Z©S™N¥SyLÑ¡±Ks^IY‰PdƒY[Uo†Fp}´\\¬\\j]ˆe܍ò‹¤¡–ā a\\bn™U㺹Ìs¼j®[cíȈEŽĝĆ`ļf¶Š®K|VØDdKGpVnU‚FjpH—F`†B’[pMºxÖjbpÎxp€¬‚|ΟÜÒCŠ²®‚ÜAp„ZG~€Šd˜ÞàV¨|¸€`|Œ²tx~\\~|dFf^zG€ĄŚhœdL\\hĸž¼†ŠOªP®lV`p\\]Xpll˜æ¤œCpQ|oF}fMRi†NSon_²qämœM„NM‹\\•"],encodeOffsets:[[124853,25650]]}}],UTF8Encoding:!0}}),i("echarts/util/mapData/geoJson/tian_jin_geo",[],function(){return{type:"FeatureCollection",features:[{type:"Feature",id:"120225",properties:{name:"蓟县",cp:[117.4672,40.004],childNum:1},geometry:{type:"Polygon",coordinates:["@@EUDAEI@WNMNCBFAHFFNACDJDPBD@@GD@DIFFHEFGDBDEQOFG@EI_KG@OcJQM]RMEKBGPG@[LaCIICBWKCEEG@WBQHCDFD@HSLEJI@IHWECFGAAEKCGDBFCBSBIDCKKHEADMJMFABKOKEQAA@IEEG@GIQAEK@OZEESMOL“lu@SLUTYFQCMG@@SQUAYKAACA@IB@BDB@B@DC@@BGAEFAA@BEGKJCC@AGAIHA@@JC@QEIP@@A@EGIDC@O@C@@@@CJCWKABFLBBEBSQGBAAMIEM@AKBcJEN@BEBCFMAEFEF@J@BG@BFABECKFG@AFQ@@F@BEB@@A@@AAAKAE@GFGDECEFEECBKIKDELDFEDYH@EIACDCHKBEB@BAAC@ADBHABKJIAIJICEDGDCD@@A@A@DHCHJHDFEFGBKRKBGIK@GIMHSBCH_BOJECCJCFKKMD@DNJEDEGC@OJCJHRUL@HRJ@H[DCNKDZHCTFDHCFFKR`TANVDFZRDLFARB@HPAPG`ILAR@TERNDFNHDLCLDDCXDYbHF@FEB@LDDVE@JPNfXPINCVDJJD@NJPAJHLXHDNANHhB@DPNLRMTBFRBHHr@`NBFEBOCCBIAQJDHCHLHFA@HSDCRLFTB@HEFLNF@PELBDJALFLTC@EPFLLP@tUHQJDfIHGTB^JTCPDLKAIBATFPADIEGECEMJ@JIAIHGECFEAGDI\\SPOXAFCL@BQTQBBTMZECYGAHA@GJAE@HCAEME@IECFKJADDBABLTHHG@ILEAMNDJCDHEBF@@JNFJELDFKTOT@JETBFFHBHEHKI@@IJEJ@XKEOUMS@AF@CEB"],encodeOffsets:[[120575,41009]]}},{type:"Feature",id:"120114",properties:{name:"武清区",cp:[117.0621,39.4121],childNum:1},geometry:{type:"Polygon",coordinates:["@@FWôµ@IFCLIB@EHNBp]AGEAKAEDMGZKFGBGME@ILGP@HEFB@BXMEAHUGC@IHCLOD@X[NWHWPKAEF[@EKIOL@EKGBNMJ@EIEHKBIC@BAKMIACCFQZCF]DB@ERAKADIHGEIBCGIIECFaGLZO@EFCNGAGDGAKL@BMG@IE@ADSDEH[JGC@CGA@BMDeK@EIACFE@@GG@FIAMM@CCGC@EM@ADE@CFMAAGHBDKIEAJG@DOGCDEKAGIS@KFCHKAEHIE]BeKNO[IFIOELC@A]GMBKVYCDDgGAICARc@MW@AQE@DGI@@AQ@@BKBAIQQYEFW@CEADIGGBCEIiMEMF_LGEKMBBDWEBGRC@E_CHYGCH_IAED@FFBQh@FGJaJ}AHRAREF@bE\\C@CT`FHC@\\BBF@BID@HGDDJ@@FAHKBARECKDAZBJIVNHCTA@EREAMLHDAFFBVFFC@RNRETHD@FOJMACH@CAB@P@DF@@FGDWE@FFSIEMKQDYCCHKb^JADOCIDGNDBdBCFJB@EC\\A@BJEA@JAAAD@HHD@LFBCFF@BERDHNhZQHMBGHOACCEBWEGD@PSJKCGEUD@CINLFGHE@AJK@HDABBHTB@F`DBFLBBHEDARCFG@ABJBAPVFE^FBGLGCFG_BMLEXGAAFE@@JNRVJHFALFBEHQJCTbNDHCF@PlFLJSXCHFHfVBTNJ\\BPJXC^FAVNFCHFB@FFH@JF@\\ABCFD\\BDMCAAJKQBGAILOEGHILECQLWFENJHADC@QxNHFJNLDFA@CBA@D˜UÂmR@FBL@BD"],encodeOffsets:[[119959,40574]]}},{type:"Feature",id:"120115",properties:{name:"宝坻区",cp:[117.4274,39.5913],childNum:1},geometry:{type:"Polygon",coordinates:["@@TZbB@JHD@DODCLM@AP@LL@BNH@ETFN@`E@DNG@CHLBCJA@AICFKDDBKA@\\N@AFNAGRBFjFFFL@DHLBLFQPcXAZMJ]GAVHAIZJFNE@JpDRRDCLFDGXA@EFF@CFFPDfEBDB@DCHCFCJDJIJBLI@I@CB@@ADBB@FALADGDC@@H@BB@FZGFCCE@@FMLALJDAFFFEFDFCB@@AHCF@L@@BBB@BB@FC@E@@R@BEL@HEFD@G@AH@AIB@@@FEFEBALDDEFAFO^IF@JCBBFPNJJ@D@PRDCEKBAXL@BIFD@T@JE@BHHJORFDI@@B@JGH@@B@BDDLIFFHCD@D@DEE@BAAAB@DAF@B@H@NGLJLMRDNMfGIEPMI@GDAKK@KIDIJ@GE@CFDN@FE@GFEPGV@TCDFKHBBF@RW@DD@@ID@TJFKIKLI@EP@IGBCLAEKLEN@KSHIGYACSD@SEAMBBMGEBMQBCMIGKFB[D@HDLPHDBC@IFITDLG@IIIFGVBNJDLN@VIRI@YIAIHIC@CLKZCBEE@JECEIHEAKGDGECBGEEM@@DA@CCCBBEGA[GEDBBoNAAH]MKiIAWKQoIIPMFQAEEDMH@FMSUYIeF@EK@BIOEKJEBICFKaKPFAFSE@LWCCFMHDDEKESBOGBKIEIODLG@CCDEQCEDWEMDIEIB@EHGEEDAEAa@@HqDEJGF[AECCFa@WCEIKAAEQB@FCAE^YDERDDJBLNABD@AJGLJF@FNIAMLH@FPKLJ@FE\\BFOLGXMXW\\C@KPGD@JHDGVFBWN@AEAGFO@KH@JNFAHEHYLNHFCLBFBBHo^MAFGA@KJED@Jó¶EX"],encodeOffsets:[[119959,40574]]}},{type:"Feature",id:"120223",properties:{name:"静海县",cp:[116.9824,38.8312],childNum:1},geometry:{type:"Polygon",coordinates:["@@NGFMDATCNDR@CCbINEHNJA@C\\EEGVE@IhE–[˜w”epc¢·²›^QEKIEKIgiQDkehY£uSDBMkUDOJDHC@GF@CAFBFEN@C‹Q@BeP@@G@HD@@MHQKi@[IGCOCESE@GMA_OcCGDu`aˆ@VZzKDkJBLNXGDqKEWE@cFEFA@ƒISIi@@KMABJGBcMuFEzGVH\\ATSEUBeALCEMG@CEBUHUCGXaBPtUBBFIBFTDFF@DDKBFNGBJPHXDDMDCLJ^mBIHIL@LR\\@LCR[@@z@NFD@LLBNb@RHDBNTPT\\F@BJF@BXCFBHHBDLFB@HODADE@@JHVXCPDHCFTLBBFNCDCCCU@@GAABEHHZHBCAEdEjFDD@GfD@DXFCHF@ERFDLBH@"],encodeOffsets:[[119688,40010]]}},{type:"Feature",id:"120221",properties:{name:"宁河县",cp:[117.6801,39.3853],childNum:1},geometry:{type:"Polygon",coordinates:["@@BFLBFJXDb@DEFD\\BHEFIrC@Gb@FBCBFFGH@FJAJFNCXFFCRDCFDDH@CKJPJFALPHTALFCFGCENDDKXF@ETEBO‚bLELJDFALIPFAJL@@FfEZJTVENG@CNFFRBNEJOpJLRBXjJNLG^BBpMAAFC\\HHBAFDADDB@@CN@FFAHFDCHLHFBJGFCFUNKJJTD\\XUXF\\^F@DDDQXXBRLRCBDFEVCDLVDpUl@LEDJHAPRFGL@CETGPBTCDDVI@CFF@GFDCCVGLKEK[Y@MECISG@BKNSCGCKWEAaEBEKNGFSECO@GGM@GYI@DÅCMLHPTF@DJHAVVNKEGDETJ^[TJNNd@NOAMFYJ@@GFANDPEJB^aOadSTQSI@MHBDIEOKCG@EEFCKCqXO@@DMFENCDDHCCGJ]AKFoDaGGHYFDHKJiCMFGC@EQ@AEHGAC@IEAATKOHGIC@IXIFEoƒGE[JCFCDHNmRADFZMF[EEBMO{GU@AOW@@]ZeHBDEHBKEfQkuIWBs‡@EC@d[@[^EDMTKCEEcI@cDAB@FCBCACmOCG{PYHeBgPwPFDDALFFFCHQGSD@BHFAR[TaFYXMASUiGFL@DQNCJI@@D@PLDN`ETEFIGMCGBCE‘~CAIFDPEHGEQPHJADFJGHCJLB"],encodeOffsets:[[120145,40295]]}},{type:"Feature",id:"120109",properties:{name:"大港区",cp:[117.3875,38.757],childNum:1},geometry:{type:"Polygon",coordinates:["@@JFFL°_`ONJKDDFIFZN xlb~yFVNRŒrdJGzDPVFBCTNND\\UR@E`F@@Ip@IWGUoawOEE@ÏDgK{İEEMFëC—b…™@—KwOCDHHKBDJCDEEEAGHOABFABMCgDLSQ@CFEB‰MgYIDQINE@AUSwSAdYEHQMEyK[KI@GRMLE@@OqOoBOnpJ@BmEAFHL^FDB[C@BBDVFAHFJENB@sNEjQAMYsUgCSBGDJH@\\LjGR@NC@@G@HO@AfR@DŒM@EFEADBE@@HGDICCPlVANTC¤vgZlfRChjLJ"],encodeOffsets:[[120065,39771]]}},{type:"Feature",id:"120107",properties:{name:"塘沽区",cp:[117.6801,38.9987],childNum:1},geometry:{type:"Polygon",coordinates:["@@|ODHnPBDADEDA@CB@ddJFFLDNSFC\\]\\@@cFDˆ@nACOMW@M@ITURBRZNHNWRQšoO•j½f‡cqŸAqeiDÿÍyÓįFL|Ch@ÐFFxPpbHVJXo@@JCTR^BPABQA]^MB@bE@@FQBFVJRH@FXtPNZSBAja@@NƒDTŽLJrQTHFXZFB`"],encodeOffsets:[[120391,40118]]}},{type:"Feature",id:"120111",properties:{name:"西青区",cp:[117.1829,39.0022],childNum:1},geometry:{type:"Polygon",coordinates:["@@@LHAHRHATh`LHNHDG`HDGZ`D@FQDAHXFACNAFLVRTBFOfHDCVBFQH@HSXHEPFB@LDBF[bDbLFKJBFLADBDjLvCPEI]FGEIGCBEUSjcFiBIVWfaHCjN^HtwBBFGPBJGjFBEGECGDONMFAP]TDHQOWCMGAMHKIJEIGQ]aDlUG]VGEGDC„{PEbBZmE@@GH@BCA@FMQCFMYMJECELCMI_P¯`]R±œ¡¸od“f—x•\\gF@JUFFH[F@DIBGMMFaJDDQ@MCSDCBENMH"],encodeOffsets:[[119688,40010]]}},{type:"Feature",id:"120113",properties:{name:"北辰区",cp:[117.1761,39.2548],childNum:1},geometry:{type:"Polygon",coordinates:["@@ROHFFGCOJEDB’}DFHANDJHFEFSM_KC@O@CJ@DIRM@CEKKA…L…FKACHoLSJSIBETDJaEIIE]E]K[MYUYQILC@GF[MGNKEK@A@BCWECAIFEFYAGFOMI[OFuDiKACBCEKIAELaKaCE\\CA@KEAFOWGGTG@ERUACDeGEPSAUQKHE`FNjNFJADHHCJFB@DEXZFRRBJLA@AR@@BJ@CHF@BRX@@NQdDBBJhHCCZDLUNA^H@BKDPFEJ\\JMPfL^AJFFGLBDGLET@HJLBCFHDCPH@BIJFCLGABHNBDEF@BCN@@FHDDDN@BNEJH@@HF@DEJB@FfLNC@AHB@DHD\\IFGTCBCF@@JNH@ALKHBHCHBDMFEP@KYbHDEJF"],encodeOffsets:[[120139,40273]]}},{type:"Feature",id:"120110",properties:{name:"东丽区",cp:[117.4013,39.1223],childNum:1},geometry:{type:"Polygon",coordinates:["@@ZV\\N^L^FJFFJIbSCAFTJTIpKDGLB†E†KLBjHTVNBZWbE\\SBQGE@ATCRHDGEEKECBECxOhOfAZGA_YEEWSGqRKIS„C@Mb@BiTAMYsOEWG@IQEURA@EF@@acUOXQRYCUDCHDTEF[SUEgAYDcVGJM`iAWDWLQRMHUHgDsDBLHJFCFDFGHBFFVEAGHCJN@RJF‡PIhBD\\FENCPWA@LFBAFHBEJUEARCDIAEDQBRNa^"],encodeOffsets:[[120048,40134]]}},{type:"Feature",id:"120108",properties:{name:"汉沽区",cp:[117.8888,39.2191],childNum:1},geometry:{type:"Polygon",coordinates:["@@LMEI\\MTABKN@FCDMH@COAcH[AoēA™M¡Wa[Meq™pQRMXMGQYQASV@J@NNXDPmBAtJXlveRLFGACFGAYf@^X@BPV@|HNPFA\\FNEEYBCnQGMDCDE\\IHFp„EFWJ@JJDGHLPBSFB@JBDGHBFR@@FHDNEjDLICGZEHGbHpCLE^BHIDDCGDCFMNE@CP@rWLDEDFFH@"],encodeOffsets:[[120859,40235]]}},{type:"Feature",id:"120112",properties:{name:"津南区",cp:[117.3958,38.9603],childNum:1},geometry:{type:"Polygon",coordinates:["@@TLv@CNHFFBHGZFETNPhCVGNGRQXKXCjBN_HIdUZChBVF\\TFECSDGVCZDRQPWdVNA^]RBBAAOQ]DSE@F_Q@[VMCSMADUECOHycI‹qMQEU}zkaŸwENRDENB@ADG@@HF@YnaAOFƒ|CDFHUHH^kVbCR^JHIFLJNGHBDNPXGRSCO^EBMNCPDHHFAFiEIHOAEH"],encodeOffsets:[[120045,39982]]}},{type:"Feature",id:"120103",properties:{name:"河西区",cp:[117.2365,39.0804],childNum:1},geometry:{type:"Polygon",coordinates:["@@d@hZNFdcLYXKRCtCMOFSYEGHEAGEDMu@SKAAsx]GMTGt"],encodeOffsets:[[119992,40041]]}},{type:"Feature",id:"120102",properties:{name:"河东区",cp:[117.2571,39.1209],childNum:1},geometry:{type:"Polygon",coordinates:["@@ZBVFFIGABEEA@KXBDOFM[EACJgˆOIE@QIMGDBHUFEEGAEHECEDGIAKQDWLKZcdQPEP@FOFBJTJ@HNORJf@DBCN"],encodeOffsets:[[120063,40098]]}},{type:"Feature",id:"120104",properties:{name:"南开区",cp:[117.1527,39.1065],childNum:1},geometry:{type:"Polygon",coordinates:["@@NMVDCG\\E^B@HlB@YEDS@C…HsNSiMGDebUXAJEjidVTAFHDFJ"],encodeOffsets:[[119940,40093]]}},{type:"Feature",id:"120105",properties:{name:"河北区",cp:[117.2145,39.1615],childNum:1},geometry:{type:"Polygon",coordinates:["@@DBXFADB@L@LFHM\\NHED@JKZRb]QMRAFCJBDCBQYADMCAe@QIMP@GSIAIPE@E[EGH@ZEF]^HJAXK@KF"],encodeOffsets:[[119980,40125]]}},{type:"Feature",id:"120106",properties:{name:"红桥区",cp:[117.1596,39.1663],childNum:1},geometry:{type:"Polygon",coordinates:["@@J\\PNHEZBFEJELEL@BWGI^]FEkA@G]A[FDHUCMNEHJ^"],encodeOffsets:[[119942,40112]]}},{type:"Feature",id:"120101",properties:{name:"和平区",cp:[117.2008,39.1189],childNum:1},geometry:{type:"Polygon",coordinates:["@@D†T@FCHG\\FFOROMEgYc@"],encodeOffsets:[[119992,40041]]}}],UTF8Encoding:!0}}),i("echarts/util/mapData/geoJson/world_geo",[],function(){return{type:"FeatureCollection",offset:{x:170,y:90},features:[{type:"Feature",id:"AFG",properties:{name:"Afghanistan"},geometry:{type:"Polygon",coordinates:["@@ࡪ͇وŐǬϠڐŶӂʮǚڦ۾njƀ̚ІɣʪҴMوǯʲĹ،˒˰Nj˖ϪԈiżŬĘͺβ̈Ҕȏĝʱʪ¡ý۷ͪ˟̊ǰώĊԼϖׂ×ࢀAƬʋӧĥяƹ७ĭࣗǭӫλȤΣĪллΛ–͑ɳ̡ߛ€ͦ։՗ɅΥԕ²ԋ͡ɿ̳þٝŋğɻسDҵӇ‡܍થΓבôǝȁԇņ࠿űටіހހåզُƚßՔ˟ڢάҢιŮɲؒ΂ਸ"],encodeOffsets:[[62680,36506]]}},{type:"Feature",id:"AGO",properties:{name:"Angola"},geometry:{type:"MultiPolygon",coordinates:[["@@ȸصʌԋȘ˕͐ѯ֊æˤŠҬşŲɀɂӨԶ®ƤіHñ̡৴RfՉǞ͕ūԑÖԫ˪̷­ৃȼüκsԴŴϦ¹ĘʹĩСƨϿů̿î́ყZᦵ֤ۋպԽ໳΁᎝Š׋Ж₭—ŵÏԃϞկ~ԉƝЙDžÿՈŜ݊̂ޒªΰ˚ݶȨΆӘռːϐĘج«ӊʣ̜ɡԚȵԎ®Ǩʶͬʭ߼ǣ֚сՐĄǎΌŔʒg̎ĸៜ["],["@@ɉėɣلͼδʪƘ̀˽̩ǯƍɍλ"]],encodeOffsets:[[[16719,-6018]],[[12736,-5820]]]}},{type:"Feature",id:"ALB",properties:{name:"Albania"},geometry:{type:"Polygon",coordinates:["@@Ń˷ŢέΒȳiə˗ŧ»˙ϷСƛÐgȂү˰ñАîֶŖʼƗƂÉˌθаÂƿɨôǴɥȪďȨ̂"],encodeOffsets:[[21085,42860]]}},{type:"Feature",id:"ARE",properties:{name:"United Arab Emirates"},geometry:{type:"Polygon",coordinates:["@@Ƭ¤ŒɱڂƂ۞uԖ{ֺ֪ظՠՎԮdž˹ŖڑѕGçճƪŝϝǑE΅ʓΏuͷǝDZᡋъ͏࡚Ț"],encodeOffsets:[[52818,24828]]}},{type:"Feature",id:"ARG",properties:{name:"Argentina"},geometry:{type:"MultiPolygon",coordinates:[["@@ߗ§ѓ̔ԑx࣑@Aሞ͒ϵрؿનԋ୲ȿϙп"],["@@Ӵ؇͠ڰॠ“ƊǷ໶ോۊŷਆاࡾ͡Ŧχࠡ౧ࡒɭ़ŷڔƈނ٢ƎݐжLjфӝiڣۻҩ֟΁ॅࠃ૭ଧȽڥɣࡹT࠷ǽȇÝիËѫ੨ܙŗ׃Հν§Ч߯ઁఛ҉။ǩउĎǰԅǣػƺщԋ̏ࡱř̪͕߱ɗŜ࠳֨ʧҠˆʢѧޛʻڭԹūࡋȣ҇ߏEڃљʋؿؙࠞߦǝ˿ݭ঳Ӄձটލͧ΅Ͽ˔ࢍ֔ӡΟ¨ީƀ᎓ŒΑӪhؾ֓Ą̃̏óࢺ٤φˈՒĭьѾܔ̬૘ěӲξDŽę̈́ϵǚˢΜϛ͈ȝॺ͸Ǣƙ਀ȠࡲɤݢԊ̨ʭࠐEޚَոo۰ӒࠎDޜɓƶϭฐԬࡺÿࠀ̜ބռ߂צԺʥ͢Ǭ˔ඔࣶд̀ࢎĹɂ۬ݺશȱ"]],encodeOffsets:[[[-67072,-56524]],[[-66524,-22605]]]}},{type:"Feature",id:"ARM",properties:{name:"Armenia"},geometry:{type:"Polygon",coordinates:["@@୞ƀǨə͌ƣǛɁ҄˽ʁˋΦɫϘƏl׋̣}΃ӢHżχCʝɤǩuͧʖرȼĄФƛ̒"],encodeOffsets:[[44629,42079]]}},{type:"Feature",id:"ATF",properties:{name:"French Southern and Antarctic Lands"},geometry:{type:"Polygon",coordinates:["@@ը˃ߐĿˆDžɽϣಇÃq҂ŮΎÊǢ"],encodeOffsets:[[70590,-49792]]}},{type:"Feature",id:"AUS",properties:{name:"Australia"},geometry:{type:"MultiPolygon",coordinates:[["@@ߺ́ҜŘپNJԎÉÐঽ˽́ēگ̉ɰ׍בǧ®ԫ€ԭܘŗֈӝܸtϬռõ"],["@@̢ڇբ̈́˦ΡЖ͟đϋǴܛŸнɄĹɬܕąѥ˖֭࣬ѭצЋ֞λŋȯӔՃࣧ͜ͲȂ;ηȴźƢࢹ׬ԩϸ͋ڀڹʀڭtӏËԳА܋µݓơϵɩݡjӕǕ׻χއثЭ̫ٱ˫гʝܧ͕нɅػʼnׁªˇӕ̇व‰ޡ·ϫ͙ԕέ۟ψԥƪżѬҝǃ݁؉ܩɪӉƄӑÔ߿ʐիԮƻْțьЭ;߱ĸˢРȯزЧ׉ݝƷѮҬŶӞ͘ЬãجہܑԿ˽͏ڛٽΊ~ҀԿ،ѹ̀ǂȘઃԚןz߯Цຓāછ̝ख़˫ߡÈࢻљܯȗljѱ̳Ϳ܉qՅõݑƶ׿ğֽԁ҃ʕœуʁЗˋؕ֛Bࢽ՜ҋDŽlӖкŘƚȒ‡̠ĺאģӼѻࡖƏӒ˜ӎͭնsʚϋͰĽڄӓڔřΪτε˳ެиʑʞ͗aјеڎă˄țʦĠӠǢȸŘрęӮΎ؀Úٕ΢׀ۀˬЦΪٜ̰ϤàɴĻڎ̺ԚĤŶȀɞüҬoࢨʖҚώɊ҆ӲѐœͲvҘט܎ΠܩΦǚ̗Ј˂ТψǻĸٖҠаȮͨцƜ`ɼτĭdɂτŦОŔبϫҲӽՂMՖÿDZҦДڪϜɘſȾκӒԘ̒јıۺǂeі؛ˢ҂Ū֎ȻҀ·ۼɋʈĐԶʵӬʊ͂ñȠNJϬеɡ͉҇ͻ˿ƒĮͱʙп̗ЭÔʁڜҫ٨ˏѠ́؈ӻʂBѰɍŶʷߤ˵ֈ˼ǐҊǠόľҤʰڞŝОÔʔīӔŌنLjǠŽˬȮѾdžҦtʈ̸̾ʂЩÎՃȾķ˜Λ̨ёÚӇ‡̥"]],encodeOffsets:[[[148888,-41771]],[[147008,-14093]]]}},{type:"Feature",id:"AUT",properties:{name:"Austria"},geometry:{type:"Polygon",coordinates:["@@Û΃ӁCǎǻ˧էLJƗܽsщȏۛÞயɐȉ̊ࠧƣĭDžԗŢѕxϝƶźȴƬʪ²ьɹŤɜݎ•׸ƮЖ}ˀǣþƜšո̠ń̒ϰز˓ӀΆ̐ÚٶʱЂªϰǁãŃČ̅"],encodeOffsets:[[17388,49279]]}},{type:"Feature",id:"AZE",properties:{name:"Azerbaijan"},geometry:{type:"MultiPolygon",coordinates:[["@@ʞɣψDGŻ΄ӡֽŒщϰƃ͆Ǫv"],["@@ϊËƞɈԈͺѴѵђ׭ϺŸʸɧۗãƣٵƟ̭̍ȝvзȽ¥ԻѲ̂дʝʚ̿×যإk׌ϗƐΥɬʂˌ҃˾ǜɂ͋ƤǧɚȶƎضʍҐ¹ŘIJбҔɔŚʀ…׀ԙ"]],encodeOffsets:[[[46083,40694]],[[48511,42210]]]}},{type:"Feature",id:"BDI",properties:{name:"Burundi"},geometry:{type:"Polygon",coordinates:["@@Á০ɃϢԜßʲӎҀŸͧǸȏT˗ȹǭ͛ѫ̧̥΍Ÿ"],encodeOffsets:[[30045,-4607]]}},{type:"Feature",id:"BEL",properties:{name:"Belgium"},geometry:{type:"Polygon",coordinates:["@@؜áުǪՐοҦȝħ֧ɕĝһܿϦћßדІϷͶϷ`ũ̒ڪǔ"],encodeOffsets:[[3395,52579]]}},{type:"Feature",id:"BEN",properties:{name:"Benin"},geometry:{type:"Polygon",coordinates:["@@ۛįȹ׆žኞǛǦЮ̇̌ʱʞņѶ̀ĨǠξЪĀȀʤˮʘ̠F٘ә˩ȎӽǓͷĘɧСԳʵʳǁՉt՗µണ"],encodeOffsets:[[2757,6410]]}},{type:"Feature",id:"BFA",properties:{name:"Burkina Faso"},geometry:{type:"Polygon",coordinates:["@@ֹɐϽ‹̍Ƀϗǰƥ˦ϙǾÅӦɮΤo˴ښۢŬּɲȴОœΚǢŘɎٴϖdžˀ޼ΒҦŢɀLJՠJáСŔϣӀչ€НॺȏmֻǿʣЩÿǟν˿ħ݁lϳâ˓ƉωÖร¡qӉŘم"],encodeOffsets:[[-2895,9874]]}},{type:"Feature",id:"BGD",properties:{name:"Bangladesh"},geometry:{type:"Polygon",coordinates:["@@i׽̉ŶÆگʉѬµєDžКΕӨޟ’ü΋˃ҳΧǠũƵʃĠ͗øŽۖ̅لƜԒԫɤȆ̪Հ̼؅Ѽ֮̔ږεВ£ô׏ߞřު^Ӟƛϯ܅ϕµʷӍҢѥƎ՞ɶFѶ೯"],encodeOffsets:[[94897,22571]]}},{type:"Feature",id:"BGR",properties:{name:"Bulgaria"},geometry:{type:"Polygon",coordinates:["@@ʎΉ͚Ö٦ſ௾«иɌবȜ̩ؒӴĕѥΏ̫׹˔ӏܣŒࡥ˃Uлޅÿס̊ڧɱة|Ñ֊сːƒŢĝĴƘˌ͌ˀСδ÷̬ȸȐ"],encodeOffsets:[[23201,45297]]}},{type:"Feature",id:"BHS",properties:{name:"The Bahamas"},geometry:{type:"MultiPolygon",coordinates:[["@@ȵ£ɇӜ̿ʐǾՔʨ‘ۣ̎Jӥ"],["@@ࣷƅÏ̴Ђäֈ{~ɕ"],["@@ƟׯƷņ`ѮϓͪCĪڐϗ"]],encodeOffsets:[[[-79395,24330]],[[-79687,27218]],[[-78848,27229]]]}},{type:"Feature",id:"BIH",properties:{name:"Bosnia and Herzegovina"},geometry:{type:"Polygon",coordinates:["@@̦FȿσМ͓ūЃȡ™ƽû˙țūҥݓ͈ͅΘ͋Ȅϭ̾ǻʺЩϾǬΒ̞ȕǼǨϾnܠƓ׈\\Ϟȅ"],encodeOffsets:[[19462,45937]]}},{type:"Feature",id:"BLR",properties:{name:"Belarus"},geometry:{type:"Polygon",coordinates:["@@߼Mࣰ̈́ȚӄېːÿϔԜƚ͖ࣘࢮɁŢȻѲĴࠒȧĊЁǷɧՄս΂Ƴ»Ʊ֦Ʃʎɡ͝ǿڳˆljÿȠ˧ȸ՝ܝ¹ʵȁÃхͭĆݷ¡əȞ̿ƥ́ŨڍjफȬࡕàٱmҡɩГeϐʷϴԌǢLͰɷ͌™ϊ"],encodeOffsets:[[24048,55207]]}},{type:"Feature",id:"BLZ",properties:{name:"Belize"},geometry:{type:"Polygon",coordinates:["@@OŮĸžƴı̞ԔDŽZHūDŽGaɭƋεôŻĕ̝ÀăīщǓɟƱǓ̅ʣ@àॆPژ"],encodeOffsets:[[-91282,18236]]}},{type:"Feature",id:"BMU",properties:{name:"Bermuda"},geometry:{type:"Polygon",coordinates:["@@OEMA]NOGNG\\Q^McMOI_OK@CQSGa@WNLVWHFLJXVFGJ`ZRTDLeeWKIHGIK@@[MQNi`]VDTBHCJAPBJLVFjT^LV\\RJZRn^RH`TfJjZHHOTTFJP_NOX[EYQQKMEJOLANJH@HQHAARF@ZEPS[U_IcRQXE@EEKKOCGGCQCOGISKYGUC"],encodeOffsets:[[-66334,33083]]}},{type:"Feature",id:"BOL",properties:{name:"Bolivia"},geometry:{type:"Polygon",coordinates:["@@य़”͟گӳ؈વȲ۫ݹ؅ŗ͡୆ҋऺˆ߾ѳ΢ŏ؆ЫֲՌ࣢αۺȖ˰ƭ̶͠рh܎¤נǸ˶ܩഠزíѠnȈʪ݀;Ѷ͂સƚęؽļ͓ãࣰ֛ݫऴƑ̻ͦ֨ǕΐʑՈTӦʟšӟǐʕZγʓa͒এྖ“ūӟĜͧҞɽȤԹƫڋɯρĄӏʿǥaʶ޳јޭ^ัʓЕ݋sҋͥ৕ƉǸ"],encodeOffsets:[[-64354,-22563]]}},{type:"Feature",id:"BRA",properties:{name:"Brazil"},geometry:{type:"Polygon",coordinates:["@@૮ନॆࠄ֠΂ۼҪjڤуӞеLJǒӜŖӼBҦ̡ƴ̿Ƌ̻œį͔ýޔƿʤ֥ɪ΃ǏࢱLjÈଜʝҴˀǦăӐɰςƬڌȣԺҝɾěͨŬӠྕ”͑ঐʔbYδǏʖ™ӠӥʠՇSΏʒ֧ǖ̼ͥळƒ࣯ݬä֜Ļ͔Ěؾષƙѵ́ܿͽȇʩџmرîӃƟϡĪÈ౨ۏӷݏv҄ͅ֏¶DzΰұԞΓݴɜƶA΢ԖʎċҔɊ̈Ôϼ०ֲێNJŔŴݴŸϚᘰpθſӔύ̬LؐӀƒǚē†͐ӯĔYՀ࿖k˦̂ɸˉǐӷǂļҨѻٸÆnjʲشȞΊƐĮΤ׸ʆ¯Ǯ܅ðśՊ’֞ϓɒǀþجŅڜȿʐȤ؀žल̮͎̾ŏʂѪšȜȗʼnσ̀ŵȖϷɷ̏ƅ܏ɌыÔϳԬϿЮ¥Ģǒˆ˜ϠƦ˚ɢҬíȲŠҚçøǢƗǘĎʐͺõЈĒӔDZξǥʺɪȊ•ŘɿДÒ͒͊ʴؤӼޒ˺¢ȺҫҼ฽҈Ƒxׅمەʾʩ๤ƁŠࡃٔր੐̟ඊԡШӱƏҫ঎ʶ࿐ѹఴŽఔ۝੸व٪ʏܖ‘̦˅˸੭Ɣԗͯ൹ёշஅୡՙोثܯȿgɻءÒ༽ɹಓęօˇͧƫ૱࡛઱ƛࢁڹηȟԋ࣯Fೕ͓סύवʗ঩ڝ܅࠯ũطƔҫƽࡓȏЧחҥट๕݉ڗ֯Ͻϥߛ։ӑɷӈψЊӟֲڇҬࡹՠ̹{ࡅٰձę"], +encodeOffsets:[[-59008,-30941]]}},{type:"Feature",id:"BRN",properties:{name:"Brunei"},geometry:{type:"Polygon",coordinates:["@@ͬ̾܎Ң›Я·՛Б€ǭ˹ϥѦ"],encodeOffsets:[[116945,4635]]}},{type:"Feature",id:"BTN",properties:{name:"Bhutan"},geometry:{type:"Polygon",coordinates:["@@΂ˍÏԩۇ{ۿÈՇſޅ͊kǚ֌زҒɈ׸șѺqπɥ"],encodeOffsets:[[93898,28439]]}},{type:"Feature",id:"BWA",properties:{name:"Botswana"},geometry:{type:"Polygon",coordinates:["@@ǜƭ˄ӡॎइήĝD̑ʚՑٰŹ՚ϝ஑أݭع˩֓ʧ́ҙãƧГďʽ՝țہ¤БɾΟĸХșȵГЉʧпϑ׻đȇ̐üԠӽߚɧŲAរࠤˆ|Ჾش„ಖ͎̎΍՜ͤʮDӂȎưÙ͔ڣ"],encodeOffsets:[[26265,-18980]]}},{type:"Feature",id:"CAF",properties:{name:"Central African Republic"},geometry:{type:"Polygon",coordinates:["@@ۜÚƺɎƔgȾȏ੔͐Τ͠Ѭ̌ĉ̐ʂüߺ½߆ϴ؊ࣺю;ՐƜĪΫӜԿF΃ƋΓÄʻ̆ʍٖοҢͻT˗֠ѫΖεɆԋغͩƊˉˣęաpكĘ̹ïųȱ˕}ͧDzधнϥĎŗÝʥԕطǐؙĊ՗̴ۓ˸҉˓͛яùדգ²֩Ƙԅѻѯޱėʐ›Ϧϧ˔̳Ѡï̠ЇѮæʢċΞÞٴȬƴц࡜"],encodeOffsets:[[15647,7601]]}},{type:"Feature",id:"CAN",properties:{name:"Canada"},geometry:{type:"MultiPolygon",coordinates:[["@@؎œުxЯ΅̵Å੥Φȿˬ͆ʸ̎С"],["@@Хcઝ˂ޯІ̄î૆Ɂ࡮Η|Ʒ"],["@@хŝൡϢʥ̘ݩ̌Ưʈࡻư͕ҜðȚࢨǿԨŵ߄ė˺̃дЋ࠼΍Όҩ"],["@@։ܿո˴֠ǵ̏̉ݚɱϰȴ࠼ʵʹ؛טƞņѿʼԷΝ݉ϝ‹փǂǾیɻńইܯԅ†צЂ߫Ȳࣙ¹࿅~ŹʠԼ̐λɬ۸Ԓࢄ೾Զӎܲ̂϶™Njɫ҅Չ"],["@@@@@@@@߰äʥ॓ܶگͯDԑϪ̵ϮчʾƻτºˎЂŋ"],["@@͡ѳχîəʢ Î͖ʦΆkɈǣ"],["@@ঝҧץnǿɪزϲ଼SiǍ"],["@@ƼυјżӨɗं˽४ʽöЍؤÞ׶˥ݙ˃ಳȬҽϚ࠭ҁ஡ѣ˿Ӯଗăܴдņڌ˺ޔ؈å"],["@@ष¥ȿЪΦҼޖŜپɷXέħřձʛ"],["@@Է̍ଉʬۃğଫϘ݊ʼטζࢼʃԎƯʦDžԠ͍"],["@@G࡭૰ڄ৐եʡح߾֥࢚؈ؖܨ°ईஞÝఔūૼй¼зس҃פ҇ŃУ࿩חୡŻࢃʨʣуߵ۽ʓοই֩ளÇڏΡÇձ঍Ŀਉڻ࣭ु͙ڏ±উంƕϜ޻ϼّ୲ǔ༞εࡀ͋׺Ѕ੆ɳࢸΟ൶µࣴąƍܫʼࡋ،ळనߗ٨˚ҔࡺѭೢףѶഎЀ॒לҮהç֭֘܌৷لলࢤνݾ˫ಾגȘ෸ɫࡸć۠ɚ޴˵ਚӣʮ͙ຄÛ}۷˪ਜ਼ގſ،ӵ௖Ұߦऔ֌ϸٺݣબੳघ৙͵Յ૤Ӂݰӓംɏբˍͬ܃ټŏͶͅÖऻ؍́׽̏൯̗੏ۑ෇ƋᅛǮుPࢇÍ۱׽ੳω௉૗ॵޡ܌Ɛഘૄᄈ۪సČݔЫߍ֟ˊࣟ˜هતп൸ŨࡆीÎ؍ժ̥ਣսᇷԁ࠯ͽय؁ٓ֍܆ฤ۞഍ƒणĹջӆBନύʐ֛ƛ˧ɚٙىʱٹ̕ϡΥŽˏ¥čȹ໽A౥MϛƷࢵ؃Ŀßˍ͝ޗBࠛGϛƅƊǑøʯeďષлࡽſউ҅Ɂ@˷ƂĥŦnĔȂ̎ЂҦʘӺǙܴǵނ࢕ЂľƬūĺɳ@ǛƆ¥ȤǍēɥ€¾ĊȡĊćɚٵːڹ˪ࠑ͘߁̨ݧʃ˝Sਕɔڻʼnࠁʺ࡫Ɔו¾ʻƜƫҤ˳IE͓჏BᮝA᭯@ᡃ@ᠿ@៙@ᢡ@ࠛ@᠁@ᛷ@őF྽ࠜ׵δຽΐҳݖŤԨ੻ΨƧڴ৭؎iѠҲКwՌෙ՘࡭ॠՁ׾ޑϚ֣ΈѿѢࡇ˕ࠇҹݛւדπࠋɸࠟ|JⷎNᷲ༬ȭ೘Й࢘û݆ΖৰˀఢĹ఼τ൘Ⱦ־ΑظȠȊЄ׈ęෆݫ૦֬ŖّਔƐ͆ʖৰ·౼Λዸ̭ୄƛࠖÄଊэ஁зຶǷᗘIJܒƦࣆԋࣴьࡩΦժ˼৾žڦĎڴȩࡊҗरä๢ϛಬƄ௬oĭԺݞƦದ˵KߑՖڠڰuϞࡊ࣑԰কͺäघশ؎ૌƇࡘχଞॅݗЭ༠ǝ"],["@@нϿሎʬୠщॊіސ˟یࠛфΒ׭ࡰ݊Ŭ࠲Ƈश͹ՆࠉʼץථеະЉĝσൡã՚͓˱ູ̯Ƃฃɪঋ»ཅ˷ᒃű๻āҕІଫɮݙģਛږ֔ĚಘƜஈ›રƦྷȞᅗã஗jѷ̴ዎͲಗ[ืɚ۶ـגͮᖬԠ࡬Nj"],["@@݉ևಹך˸Ş૸’ٔȁ"],["@@öɵࢿ|ࣟjࣿőʑ¼ऍѾ˜̠ИÈነěชң"],["@@ڎԽޤڴᒆΈ෺ࢅůջဒʒߒͮሀыୄЏŊν༚Ȑ࢘՗᎐ܸͩ͹ߐ޻໯ϹጘչೲȁீޙೖÇʽכ้ঋਗά೓߲ઙĿŁӕࢪӥଜϯΌɟմࠩ́׿੕ɪᑏڨஎܣ࢔ԕƎ̉ᗱͲᅩӤ৳Ц̌ʂయќ௥Т`ʑᝡƅ܃˾ֆؤ཈dႸņ˫̜̊оચࠊɳϊ͕˾౿Рၳ˺՞ɆࢷԺ݋´ڏ˸҇ʛ຿ŅᵝȈᄫʚഹŴۥ̐࢞Ϧ஝Hˉ࡚٦ݨࡺ΄ᓪɢأի"],["@@৊ǯຄńɖʑ޷Е౜αƱݳ൝͗߳ê׉͎ᐡٮjˎ႖ĽएռসР"],["@@࣓عय़ŒԽ݆`кѮΨ࠰ɮც‡ྈȱళݟ৉Ǎ"],["@@ᕍЙѷςኹѺήΤ׌ؘܰւࠑԦᭊƀ஬ǧᒰ±ࠄʑࣖΝ੍ɃᏝןਫי@ν"],["@@ҙ͙௝Øৱɖ҂Ϛீɨܼ̬̍ˇ"],["@@ٞϵ€љϣس൱đࣗƈjӬ൝ÝÁٮࣜౌ˺ஂµÜŎ"],["@@̙͢ݠƘࢢ™ƪЩԝЋ᭗Žᑯη౩mŅ˜პϊ④ij୯Ʈପࠐ߈ɾᛄ˳๶ӻฺÛறߨޔ̪ࢄĭ˲Џ"],["@@ढ˓ကFܨˡȑ́८ȍՔȧଊ™௬ë೸ǼႊðീÏ࣒ͅȊ΍ԽɟభǷ੽ĸᜱŻႫcഫļᖁ˔̃ҦĹжࡇξ჋ĺঅʼ͂ΈႾÁ"],["@@ŗ٣٩̇޹£༝Ϋ഍ŹଗǼ@@ුؼႮծಆ[ସŬ"],["@@ϣy༽Âɡɼၜ]מƻĵĩ"],["@@༩ʋఝ˔ڼˎ௮Đஈſ˩ʥ"],["@@৽ǏඉBbŤࡴʦҌદǝ"],["@@కǥۃȚέ͂áΎજ‘ӪÅ৐̇ɫ̣"],["@@͜Ε൏Ĥ൩˘ሏŒߺʠ৫ȮÕ͐࿶ŕᗢ̫ٞЍ"],["@@০˕ଽʟ༇ك๥Óდņࣗ΄^̦ڔɢ໡Oए˨ՑϠ׌ώ׊ʲࡴÎοȖዜ¨੶҅මǵ൞ǃڒև"],["@@ᖢßᅮŅ໤ɫ™ɡᏅη᎙ǟݻȉᆬJጡԙേʃ෯ۇႿƓՙǡᡷěୈĿׇƭ۞бߙ˽ಛʃЋ͡୫ʣŞȏ෬lȳᖟԋᔧɴឿŻధĸཟªĿЖ༊Ȑб؆ԢÐᖤγ଩բഹLjڼ͘๰Ȩʄ̊஋͠ΥѠᘞ—ڒĝ಼̪ቃĬ᰽Á๣˸۩ͼগʘȁ˺దLjঘ‚࿲ƌం̺ਬ©ࣤɽٔҒૐƈບĢᢲ–Ҁĝ᝚ƚᆔÁᆒÁ"]],encodeOffsets:[[[-65192,47668]],[[-63289,50284]],[[-126474,49675]],[[-57481,51904]],[[-135895,55337]],[[-81168,63651]],[[-83863,64216]],[[-87205,67234]],[[-77686,68761]],[[-97943,70767]],[[-92720,71166]],[[-116907,74877]],[[-107008,75183]],[[-78172,74858]],[[-88639,74914]],[[-102764,75617]],[[-95433,74519]],[[-123351,73097]],[[-95859,76780]],[[-100864,78562]],[[-110808,78031]],[[-96956,78949]],[[-118987,79509]],[[-96092,79381]],[[-112831,79562]],[[-112295,80489]],[[-98130,79931]],[[-102461,80205]],[[-89108,81572]],[[-70144,85101]]]}},{type:"Feature",id:"CHE",properties:{name:"Switzerland"},geometry:{type:"Polygon",coordinates:["@@ƫŹȳϞƵіwá΅χƙةŀǻ͹ЏơƄһ˵Л¡αǶ˽ςБſ^ϠؚҾɈϤûɲƞ܎MǦǼ࣒ʱ"],encodeOffsets:[[9825,48666]]}},{type:"Feature",id:"CHL",properties:{name:"Chile"},geometry:{type:"MultiPolygon",coordinates:[["@@Bም࣒@Ԓw˧ͻܛʻЭ‚ӻä؏ʨ࢟ŨੑҸ࡫Ҏୃशۘǭ୼֗૜̟ѢϬ˘ֺޠΎװı"],["@@͢୅؆ŘĺɁ˿ࢍࣵг€ඓǫ˓ʦ͡ץԹջ߁̛ރĀ߿ԫࡹϮฏɔƵCޛӑࠍpۯٍշFޙʮࠏԉ̧ɣݡȟࡱƚ৿ͷǡȞॹϜ͇ˡΛ϶ǙĚ̓νǃĜӱ̫૗ѽܓĮыˇՑ٣υôࢹ̧̐֔ÄgؽΒө᎔őުſݝPЙȷݷ̣Ɖ޹Σoॅ˚१ג@@ਲ਼ӔˁՒʄӰх֒Ņ෤Φ߰ࢴٰౣʔߞݒ˸ඊत̏Ѯგ֝ɠʿ਻ՉŠ˂ல˺༒ϮָʍࠎéूΠ„Ԩപ׈എΤబȗ఼ʤۚĵਞӮਆưྺ˒ნˀሤÕ൘ǩ஄ќɌɦњЬֱŐ؅ѴΡ˅߽Ҍह"]],encodeOffsets:[[[-70281,-53899]],[[-69857,-22010]]]}},{type:"Feature",id:"CHN",properties:{name:"China"},geometry:{type:"MultiPolygon",coordinates:[["@@ԑഓΫۏѷ܂ĩخӶࠜڦَϨʡƣԓ","@@ܩЗۏʺyܢаϠࣾɾӚoȊ͍σσșӟ"],["@@ฬˍ঺ׯͼ߃౨Cܰͨ൸ʜѳݱ͙̭˽ः֡ࠇ৵ƪܝ̑ɜܙť঳ѕwLяթӺͯһಙαƀѹܩŒЍ˂ֽ׭ऑҋۃա୭ʑأϽࣝɭ҂ϴǭ͞ږ֠ѹѲܷ̓ॉ׏ԫթ࠙¡ѓϻѸ֩یƏ„ϕڔʕस׶ݚ͝լuƌѱஓɻϻҏࠇућיࣜҥͦࠝԞޓ֮٥_دՅɯȪ҃ӶʻŻۃɇڗҷ÷ؗࣧڹિޭোିޡୟۻृĩԣύ̃˘Ӈй୭сࢵŹ˻ࢱҭ·ə؎Ȧ͘ૻːЇƍࡍɔЏ΀ƄӜޏƶЙܑ̀҃ࠇīڡJ҉ȳѥūŶ॥҃x÷Ȣ}Ύ؝ʓεƸر͂ʔۤՏǎȧޜࢱƓĴাߔۮ”ۚ{٠νȨ˭ӶӭÙࣟŲ˴ΜϿԺ׳Ν۵ȸॷ՗އسڳĿοɦѹr׷Țґɇ֋رëڌԟǭওĈोȖڿτٵǔ˯ЖҽŦࡓոکʴΑȩଢ଼טࠛՒɽऐ׾ő‚іͭјĐۆࣙঠ൧ͼʝ٦ةϼƫʌųӎˆ͜ԛȔ˟ďɇިʈȔśȠߤЈ׈ǐࢸő͆՜ંIJͮ̚೜ҔŠȐãӐּɔݱฦဘͲјȈ؆ຒဠˡҲϞ¢ࡆۦĀٖ֔͢èɚו۸ѽப̿׆ڱ͕ঙ̢ηূƝଆŝ৪ԻԲġϤޟӲӿऒnჄȉ૤Ŝࠦůఔԛ৮BόʽঐҌബ̈ాŒঘ̒׾҈ך˰Ƌˤˍ͔ѴըӀùࡺǝ࠸Ѿ౲͚؞֊נʆ௠ŐڐĥĠ̘ݿזګː٥̳ࠣžӇŃɏΆר࠾Цو৚̓ஆՎQτݸࢾҲːWҪңȦۜмਰƲ૜vసʡ݈̱԰ࡏ̀α̊ԩ̶ࠕ"]],encodeOffsets:[[[124701,24980],[112988,19127]],[[130722,50955]]]}},{type:"Feature",id:"CIV",properties:{name:"Ivory Coast"},geometry:{type:"Polygon",coordinates:["@@ϣUוǒ՟Wহƥ׍ʍ̯ࠫNjvÞۖĄŀ}ͨΣΚˉÈʕɲǾώčО ʔƄB¸ξÝnjĄŜ̸ĶȹڨȗΎæ˸ǘÞŊúɸųٮOƸʖƢgʎĦžΫȞłΌŰϚǽƦ˥Ϙǯ̎ɄϾŒֺɏɠ஡Ο۷ɕेθܣ›ͧ"],encodeOffsets:[[-2924,5115]]}},{type:"Feature",id:"CMR",properties:{name:"Cameroon"},geometry:{type:"Polygon",coordinates:["@@Ľ°ӻŇԝŒЋÅ൅nŬڒ͟֊ϧƚǟϖɋŦXɶɎתЎ߸ʒRԄӮ͈bҾΉ־˲ĀΔȌͺžь҆ΊǞךDzȊŢѨɜ՚۾ٲ¬˨ĠƲͫͰ‚ˌʂ¶ͮ՟Ê֏‹֏ҜޅҷTʁÏϥČǻЅӸөμƛŠΏˆ׃ſɩх࡛ȫƳÝٳČΝåʡЈѭð̴̟џϨ˓œϥĘʏÓґڛȤڷɜ੗"],encodeOffsets:[[13390,2322]]}},{type:"Feature",id:"COD",properties:{name:"Democratic Republic of the Congo"},geometry:{type:"Polygon",coordinates:["@@»ঙͶŕˑ̗͓ɟ͍ѫǯϷ±ګț͍Oهʍɹ‹ԃŗÝýҟɄϡÂ৥ưޝċѧǘӣӤҹҒ੕ͥĒ૿ƙɣĵʇՙȊχƫষĻࡇɨƫט͝ɲƴìٟࣟR·Ҧ̳ΨٟŠȋѰԣ˅ڧŞ˫ϢՕüϽqµʾ́rϥºԳųιtȻû®ৄ˩̸ÕԬŬԒǝ͖eՊ৳Qò̢ѕG­ƣԵɁӧűȿҫŠˣş։å͏Ѱȗ˖ʋԌȷض៛\\̍ķʑh΋œşʼɊʀμƎɎ̪ǰɚđ˼͐ҜSÄʃ̼ƩӶՄӨШɆːƒ۔θࠆϬўքМĪˌt̰Ǝ̆«ӊŀݖǐԾʦ҈¸Ԕúה͜ѐҊ˔۔˷՘ؚ̳ĉظǏʦԖŘÞϦčनоͨDZ˖~ŴȲ̺ðلėբoˤĚԘۙϘķɤƖϲÅҶDzȦΫ݊֏"],encodeOffsets:[[31574,3594]]}},{type:"Feature",id:"COG",properties:{name:"Republic of the Congo"},geometry:{type:"Polygon",coordinates:["@@̿˾ʩƗͻγۏࢸٖҪ̓֌˾ɂ֦ĺäό҆Зݐ•ʴЈł֒ĝڀЉӺζ঄ȽǘسçɻѢÔξ੘ڸɛڜȣÔҒѰ޲ԆѼ֪Ɨդ±·ԓʥ҇ǏԽĿݕ¬Ӊƍ̅s̯ĩˋփЛϫѝηࠅ„ۓɅˏӧЧӵՃ̻ƪÃʄқT˻͏əĒ"],encodeOffsets:[[13308,-4895]]}},{type:"Feature",id:"COL",properties:{name:"Colombia"},geometry:{type:"Polygon",coordinates:["@@ΫȤЭ˨ʅƅ܉Ŝȱΰƽ_࠿Ӓŕʺ̼ڛтȢ̦иÊΞՆ͐Ѵ̳ȦDŽӦȏސǸɚƃ܄ͻ҄ņТ˔ÑǂʠțӶĺŬѢـהΌĚT˦ƺ܂ӖϸՊfäǪڂéڌъ͞ȊОК̖»ɚɛǍ˱գƕɇп͗ʋʓ̷Ĺ׵ɷӭѢÇņϭȄȁâ͹ij̵ˆǫȸéȨ̉ઊĄӦŃעܡͼĚ؂­ӐĪ̔ƟƱҍȇ˯ß׻ǜ֑ʆʟ†ȉэл̨ȃɠ̋ʰ࠹ǁĻǏӸɷˊ˥́࿕lZԿӰē…͏ǙĔҿƑK؏ώ̫ƀӓoηϙᘯп҂ʣpժࡤٟϾԍị̈ƤҧɝصŀӵࢤϳɐˍІ֑Њɡā"],encodeOffsets:[[-77182,-155]]}},{type:"Feature",id:"CRI",properties:{name:"Costa Rica"},geometry:{type:"Polygon",coordinates:["@@җȆǟǮĬƤ‰ȄɷȪͥǔ́ņÅʖəƮÄʑǗȩȓɸˑĊŗǞLʮŎˆʁŠȖnjŴňֆɝȖŊˊéƔǥʜÇȪDzɈҙ͖ͷЂΩ͗õLͷǪűűıƱëǟ©Ǖ"],encodeOffsets:[[-84956,8423]]}},{type:"Feature",id:"CUB",properties:{name:"Cuba"},geometry:{type:"Polygon",coordinates:["@@ܨÑڊW߄˹̭ͮ޺Ĩ̔ȡ܈ԳԺϛˢ\\ԆǟÕʁئ“ٌ΅ıȟ֑Ń֡¥׃âளą֜Ҷ΁ɔէÈ̃ʐȥӎӃ޵ɦʥǬભž̋ǐ̀ɀࠗ¨׿ѧΏ[ťȳеğΫĂѺʸǼ̤ϞȈіǎَĄȰĢ"],encodeOffsets:[[-84242,23746]]}},{type:"Feature",id:"-99",properties:{name:"Northern Cyprus"},geometry:{type:"Polygon",coordinates:["@@ÐJŨȮ؄Yކʢ֧ΧÔƿęˆLJÙűj¥iĎѾNjVɫïƿ¬"],encodeOffsets:[[33518,35984]]}},{type:"Feature",id:"CYP",properties:{name:"Cyprus"},geometry:{type:"Polygon",coordinates:["@@€ãࡱͿЩŊȟͶЎŒǀ«ɬðnjUÒ½j覎ŲiLjÚ̇"],encodeOffsets:[[34789,35900]]}},{type:"Feature",id:"CZE",properties:{name:"Czech Republic"},geometry:{type:"Polygon",coordinates:["@@ϯǂЁ©ٵʲ̏Ùҿ΅ر˔ӃΰѕȬėΠƧʠؒǾ̸Ⱦ׾ǎɂdžɜīϒĖЊ˓ؼñ¿ɳҘǧŲɒּĥĄʿز»ϮЯʡCŽƯȕ—ÅȑLJ¡wý˹ēϋbšȁ"],encodeOffsets:[[17368,49764]]}},{type:"Feature",id:"DEU",properties:{name:"Germany"},geometry:{type:"Polygon",coordinates:["@@d͗ࡔțS̗ࡢǂҾɰॊͧІˋȞёɹɣ̨̙Ⱥ҅ß́Έ՛ϑĕɛĬɁDž׽Ǎ̷ȽؑǽƨʟĘΟіȫӄί̑ϯ̟ŃŢշýƛʿǤЕ~׷ƭݍ–ţɛыɺʩ±࣑ʲǥǻ܍Nń״ьֺ௅ƸЇɘ´ςǗȐĨ֨ƗࢢԎ@Ɉ͂Ⱦޔƿ˴ǐDz۰°Ƽȃ֮вȓ̀ӈٌōՠŸ"],encodeOffsets:[[10161,56303]]}},{type:"Feature",id:"DJI",properties:{name:"Djibouti"},geometry:{type:"Polygon",coordinates:["@@ȤʹΑӏȩήɯ̱҇ȅƬȭÏҷb_ʮßɶ˴Ѐ̐ϊήñʪȴ"],encodeOffsets:[[44116,13005]]}},{type:"Feature",id:"DNK",properties:{name:"Denmark"},geometry:{type:"MultiPolygon",coordinates:[["@@ԋڹ࢟ӄŝΒ௼˨ˎу"],["@@ȵ̓ʡĞ؁؁ɮХ՟ŷًŎͽҲ}࡬Ɣɪʌʦ݌À̐ɴڮʂƒѝʟ˙ĶɽҘŵ"]],encodeOffsets:[[[12995,56945]],[[11175,57814]]]}},{type:"Feature",id:"DOM",properties:{name:"Dominican Republic"},geometry:{type:"Polygon",coordinates:["@@ŀƞپIӾɏɜtƴ̕Ҡhʡϐ‰Ю̷̯ͿЍǼϫ•ˡ¢ƱƵ͑½ŷȲˣťͳֻɏƆ§ʎjɬɍʦȲƚÞ͒óҜ"],encodeOffsets:[[-73433,20188]]}},{type:"Feature",id:"DZA",properties:{name:"Algeria"},geometry:{type:"Polygon",coordinates:["@@ᮩཽᝩ࿷இϑटćU՘ϵƌԹʊȧЀᬻᆴᬻᆴṕᎠfnj@ÊQ঺ബب࠼Ÿێɦ͎тচͪ˜جӢòϞ̶સƚƸ͜ɛDz̃ࢲ¹Ԟ́ՠ߰ҠࣦƢՌΎ߶ʰ෎Ƭർæшůߊͨ࣌P΀ȝֺ¾ǟћƄߟȡۙԭҵôمۊԃRȯԮ͹Ϊຝ˖ݏ°ϵƧۇÔϥŃҟòՇͫΗӺؓŽέ̘ҵϼƸڒϷςՃ"],encodeOffsets:[[12288,24035]]}},{type:"Feature",id:"ECU",properties:{name:"Ecuador"},geometry:{type:"Polygon",coordinates:["@@҂غǻξ͍ϵԉςǞʀƙބ̎ŴƺԼ͆զÍ΄ҢǸ׀Ͱࡀӑƾ`Ȳί܊śʆƆЮ˧άȣŞٓʽճࣷ࢟য়ͧԥܵǃ֣Ӆ΋ΙъͻĞ΍áw̮ʈȨıΔ"],encodeOffsets:[[-82229,-3486]]}},{type:"Feature",id:"EGY",properties:{name:"Egypt"},geometry:{type:"Polygon",coordinates:["@@ɽͷǹىɫѩȝƥ˩˔ϛϒ׵ஸđùΐࢯԪࡋٌವ̴ҙ˒ӃݮछǗƣ‚ճ঒ݭƨǣΏ@Ὁ@⁩@@ᶶ@Ჴʥڲɐ԰Żά̤Ж૦b߲ɝ࠲ʛϴſ٨ˊΌʊݎêװŃɮеȜ˜ڨȣټ³аɄւ෽"],encodeOffsets:[[35761,30210]]}},{type:"Feature",id:"ERI",properties:{name:"Eritrea"},geometry:{type:"Polygon",coordinates:["@@˻˖ΉӰϋ˒ɏܷ̄ͶֻXȭǬӯȡԛϢʽط঑ǬęʹβఀĊ֒ˆʴؤƐьӒӦঃɴޗҢУବߏҲӍҖӝˀ˿аʧʩȳέò"],encodeOffsets:[[43368,12844]]}},{type:"Feature",id:"ESP",properties:{name:"Spain"},geometry:{type:"Polygon",coordinates:["@@¦״΃θஒ؆ਊƱ૾NࣂƝۦªമƒͰ͛໺ϡ̨ǺीϝআŊ®ӥߓ֓ઁǯõ˱ԩү͕ہ͞ӑӟϑǹճىǗש٥੧_ߟhՃ͍̓ͅЩê̵˴ʃӚ޷žé˦̶̀Śɬ̃ʢɶրͳԌδè’ЈƎŬZپϲɪɻфөˆƝŁӹCɁЬ΃ū̥ɇ"],encodeOffsets:[[-9251,42886]]}},{type:"Feature",id:"EST",properties:{name:"Estonia"},geometry:{type:"Polygon",coordinates:["@@ĮӸ̱ŁՓ̘ñӘਫ਼ɼ੔Ũ࣮Ƒࢂ|Ŵƣׯӝʞ޵ΫˉۙDܡ̸ρļ܏Ʃ"],encodeOffsets:[[24897,59181]]}},{type:"Feature",id:"ETH",properties:{name:"Ethiopia"},geometry:{type:"Polygon",coordinates:["@@ԜϡӰȢȮǫּWܸ͵ɐ̃όˑΊӯ˼˕̏ω˳Ͽàɵ`ʭҸaȮÐȆƫǽ̴̕ҧ̴Й̛͎ᩨঽۺNᛛᡃફ™ݟףաeɯ˅ַB͹˴ލΙʝΓ֕àȃĬȟwˇT੟܌ב@˹ˢ@ҾѧƘӻࣴϥȚƧʹэЦԧÒ˸ӐҀrŲʰ[ݲʞࢠЊɾĎ΄ήٜԔи΀ࠠƆܠ঒ǫʾظ"],encodeOffsets:[[38816,15319]]}},{type:"Feature",id:"FIN",properties:{name:"Finland"},geometry:{type:"Polygon",coordinates:["@@ūיಀ֓ޡى঎ख़֡ܛݴس΅յఘֻ́ѓޭӟᅡੵໃá๑̯ൃǯӡҞ߿ˠȈࠢСݶАӪނՆ኎࣮֖Ǭē΢ୟЈ˳͜uಒ಻ֲ૩ЪԊɞतѻલ¦ࣘȭߠϊЬ؞ಬ˶઄ͯΡכ"],encodeOffsets:[[29279,70723]]}},{type:"Feature",id:"FJI",properties:{name:"Fiji"},geometry:{type:"MultiPolygon",coordinates:[["@@̂ʍƓѭԳŗҩļąτ͖̀ϤĻȼƐ"],["@@՛ǯŅ̼оǤˊ°Ӱˀ@ЧՕȷ"],["@@é­@ШǨžĽЗ"]],encodeOffsets:[[[182655,-17756]],[[183669,-17204]],[[-184235,-16897]]]}},{type:"Feature",id:"FLK",properties:{name:"Falkland Islands"},geometry:{type:"Polygon",coordinates:["@@৘Ԍ܎ȿԌʹڦϙʥ̋ଋʥϙ̌܋ϙпϚ"],encodeOffsets:[[-62668,-53094]]}},{type:"Feature",id:"FRA",properties:{name:"France"},geometry:{type:"MultiPolygon",coordinates:[["@@ˣ٭ϡǠș֢ǜ̺ը͎Ɯܛ"],["@@הЅќà݀ϥȊñʎjЈɗெƷыֹŃ׳ɱƝϣü‚ɇؙҽ]ϟВƀ˾ρ“ʁʚ̿̅ʯɐٱҖŃĩηݿӅစɬ௧˗ĩԑঅʼnिϞ̧ǹ໹Ϣͯ͜ѢԎdžူࢁࢤإю౹͒čؖઠǾථɏˇॎߌέዠپʨێܾǞŪ̑ϸ_ϸ͵"]],encodeOffsets:[[[9790,43165]],[[3675,51589]]]}},{type:"Feature",id:"GAB",properties:{name:"Gabon"},geometry:{type:"Polygon",coordinates:["@@ࡹࡔ։ۚԙࢄ‚˨ǾˎȲؔǜخ˴¶௢SOৠЌÆԞőӼňľ¯ÓνɼѡشèȾǗεঃЊӹĞٿŁ֑ʳЇݏ–҅Иãϋ֥Ĺ˽Ɂ̈́֋ٕҩ"],encodeOffsets:[[11361,-4074]]}},{type:"Feature",id:"GBR",properties:{name:"United Kingdom"},geometry:{type:"MultiPolygon",coordinates:[["@@҉ֽًǦԱ[ǦҊǥ҈۴–ࣔԳ"],["@@࣋ࣧࡦŘऄIɕۅݯݩࢄÃäĕݠ঱ֺƇԬढ़ʈͧৰDžķ՝ѓʗͲѣݱѯ૳Rෝɱϻǒ։ϿޥĪם͍ҁǘ௼ࢨݪǺOBಽƔʃͰ࢜ʺҡҐdžռఢ÷D@ŮӤ֛Ԯ_\\৵ƨȧɬ̨ϒˡɴҍЇ·߶щє̨ࢆٶھڤá০ì"]],encodeOffsets:[[[-5797,55864]],[[-3077,60043]]]}},{type:"Feature",id:"GEO",properties:{name:"Georgia"},geometry:{type:"Polygon",coordinates:["@@Ųάȿִӟ̲ҭĬ̯ʴĺIJ܄ƝఆƋଦЕƦƻԚƂ޶ǭʴ·Նșɓřвғŗıҏºصʎȵƍଢ଼ſ߳Юࣅ¡"],encodeOffsets:[[42552,42533]]}},{type:"Feature",id:"GHA",properties:{name:"Ghana"},geometry:{type:"Polygon",coordinates:["@@೉ӯҳ˽ݳʑݡʆœͨηܤɖैΠ۸ɟ஢ŗنrӊฤ¢ϊÕ˔ƊϴáÕʿΖџC؍Ąڍɂ̫ȅݳäйɢՓȈ̍"],encodeOffsets:[[1086,6072]]}},{type:"Feature",id:"GIN",properties:{name:"Guinea"},geometry:{type:"Polygon",coordinates:["@@ʃtǡͷʁJǏǴÈͶΗԨɕħǵmɳ³V̮Ƈɘ‚ʔǻΜɹ̜ڥDțǁɵoƝǷīɹ҅σρӼ͛͢ɋŊȿǖħϊūȂʓƐώЦʮeɖƘȄDƄŎï˨ĢĖd˶МU؀ȱȄlÚĤҜáŨ´¶̭ƆBɖŒƔƒɸɇάãɲǺ˖ŒȬŠǚuȈȁĴɳΆΙǣɏ˙ǴĊŀį«ʡʲʍǗÝå˷Ș΍Ⱥڧ̷ĵăśÞNj·νƃA"],encodeOffsets:[[-8641,7871]]}},{type:"Feature",id:"GMB",properties:{name:"Gambia"},geometry:{type:"Polygon",coordinates:["@@ņόࣶzȎȦˊ`ͨȷʼIˢƚǞʏεȋιdέǰ̷ȗƭQȫŝއl"],encodeOffsets:[[-17245,13468]]}},{type:"Feature",id:"GNB",properties:{name:"Guinea Bissau"},geometry:{type:"Polygon",coordinates:["@@҅ΘΝÈȕʀLŸʯǴÁǶѼƌ˦ɦĨ༈•c˵ġĕð˧ƃōȃCɕƗʭfύХ"],encodeOffsets:[[-15493,11306]]}},{type:"Feature",id:"GNQ",properties:{name:"Equatorial Guinea"},geometry:{type:"Polygon",coordinates:["@@ƿŴ़̀െmPয়௡T˳µ"],encodeOffsets:[[9721,1035]]}},{type:"Feature",id:"GRC",properties:{name:"Greece"},geometry:{type:"MultiPolygon",coordinates:[["@@Ҡ˱ٺ¶شÑqƣҜĶĿʛ௃íTƒਁǎƺΦ"],["@@ʹՁȥĥԟ|ѫĀৱɓ׌ҿяƋҳAѻўƿȁȊԅрЁ̓ǿҴϯжʑ^ӅޥɠʜѕՓĕ͈ݏ֏Yۍμ̿ڦƧ֒͝ϮљӐÉʆϸТ¼˚˘Ũjɚռö͌ȀҖgƒƦdž„ت{ڨɲע̉ކĀVмЦɝ"]],encodeOffsets:[[[24269,36562]],[[27243,42560]]]}},{type:"Feature",id:"GRL",properties:{name:"Greenland"},geometry:{type:"Polygon",coordinates:["@@ᬜԆ᱒›ੴ̴ᲈĄ䀦Ŀ㉊ڗ༅͕ộ™⭏ćшƫᲐĠᡚ́࿈ʴۦ̝इӧᒞ̺✘͚ᠼNjҾΫ⃝ױӃȕ᧑ơወ¡ছؕگկ€ध৚շಽ“൧ˇ༂ѽȢ܋࣍ýઞܡህÑঈ΁˟̑இŽ୥E੆֩\\Ϗပΐћɣଌȿ઼ԣ͈ڱກlj٫͖ਣӘ˼֭উѵᕖ•୆¯ᖯܵᗿڏឧ́ओIࢅ͓ୟࢱᅵכׅ“૧ȷ஽ȝܛԱ[כыտോڧͺٿϗ۝љࠍஅ½఍ۈဿLࠁҢ֕ࠐฝਲэոŗݮ୓ޢ̢ئ֗̒ࠪচొ̺ͨΘǬڀॡ̕қůݯţਏ˜Éְ͢҂ެ\\႔ɟ෿Քݩ˾࠷ş۫ȼम޴ԝ̺ڗ׈ৡࢼ੯͚XΚᖷӮᄻÖᖟ‘Ꮕ×ইˌวՈᕂ˄ၚ¬≹ɖ቉΄Ś͜ẊИᶎИ̪͘ᗗ̠ܺͰ᯲ז௢ĚΓϘጲɜᣚƂᣖRࣺʽᕺҨፘ̽୺áპ˙ፅҐŘή"],encodeOffsets:[[-47886,84612]]}},{type:"Feature",id:"GTM",properties:{name:"Guatemala"},geometry:{type:"Polygon",coordinates:["@@ћƦԻfϩǖҍΌrʖĮȠšƾКۆ઄Ft˸Ƌ¾ġǺ̵Ț̹ˬϜDBӂ޸BަUOڗßॅʤ@˚ƱòŰʘŃϥ͍ЉɻÏljâǑǧɇȟ½¬ıƿġ˽Ƀ}ŭ"],encodeOffsets:[[-92257,14065]]}},{type:"Feature",id:"GUF",properties:{name:"French Guiana"},geometry:{type:"Polygon",coordinates:["@@͉͑ГÑŗʀȉ–ʹɩνǦɈΪòϤƢή͛ӸáֺѪܠ˸ğؤȥࢸۿƔ·ӻޑʳأ"],encodeOffsets:[[-53817,2565]]}},{type:"Feature",id:"GUY",properties:{name:"Guyana"},geometry:{type:"Polygon",coordinates:["@@ր̯Դյzџ̈́o҈Чͪ̇Ƈݱԛɕ°ȣƹџϊ؏ːAŎӃԢܳȱ‰ҫî˙ɡϟƥ˅—ġǑЭ¦ԫЀÓϴɋьƆܐɸ̐ȕϸ˿ŶŊτțȘѩ™ْ֩ɬɲiϲԬƊȾƾ˽̸ô̬ږӲ"],encodeOffsets:[[-61192,8568]]}},{type:"Feature",id:"HND",properties:{name:"Honduras"},geometry:{type:"Polygon",coordinates:["@@ơˀʭòÐʹŗĞǣÒσij‹ŔʩƈǷǚʛìǨɈáǒÐNJЊɼϦ͎ĔȂƨʊ\\þ垦ϸùϲv˒ĢİĦˎ©ȪÉɘnǖòϨśƄkʲƿʐį̏Źɜɳ˽jśŕ̇ŋɃAȅŃǙœƛźĕ{ŇȩăRaǥ̉ɳƹıđĽʛǞǹɣǫPȟqlЭūQĿȓʽ“"],encodeOffsets:[[-89412,13297]]}},{type:"Feature",id:"HRV",properties:{name:"Croatia"},geometry:{type:"Polygon",coordinates:["@@Ȳ͗ˊʇ͓̓ϝȆׇ[ܟƔϽmǻǧ̝ȖǫΑЪϽǼʹϮ̽͌ȃ͆Ηݔ͇ġƛ߃̶ӣ̢ޑʠ۹ؤǞØϥΞe˲եƄʱγʝˮn̆Šbג…Ƹƚ˸ƍͤgGɼ̈ĒĈͺڞɠˊĻؼέۜlj̼Ų"],encodeOffsets:[[19282,47011]]}},{type:"Feature",id:"HTI",properties:{name:"Haiti"},geometry:{type:"Polygon",coordinates:["@@Ԣ™ܰƁôқÝ͑ȱƙɎʥiɫ֏ƜЅÍԡÔϽƿ҉ʾö˔ޜśيã̢ȈϧθP͎ՋžȌɶ"],encodeOffsets:[[-74946,20394]]}},{type:"Feature",id:"HUN",properties:{name:"Hungary"},geometry:{type:"Polygon",coordinates:["@@˨ըǍǼӂDÜ΄ђɋ̲ğ۸ļäǚͮ~ЦžĜÃЂŀȠȢˠ¼࣒ʭǴĒҲɭÎɣԡǭЉ֫ԕ֭کǁԽš١ə̻űۛNJػήˉļǍ˴ƗV"],encodeOffsets:[[16592,47977]]}},{type:"Feature",id:"IDN",properties:{name:"Indonesia"},geometry:{type:"MultiPolygon",coordinates:[["@@Λe૝ך޴ǒѴʭ̎ʭ»ɩ"],["@@ܙȁijĶø˸ΰԢࠨͬĐǓfʫշع"],["@@̢ɣԲèȼΥॿǛ׉őҍP̀ӚҤPɤ̖"],["@@ūұ౅ʅૣľE̬ښǪՂʥ֔Üݬ̮"],["@@ྔċȂΌ༘З̪կీƵਐӿय़͋ऍ͸ݻwࢍØ޻ưঅ͎؝ČΓŁ໕ΌƣΰޑØּߤ৶·ڴ͡ΒÛŘ̗"],["@@ѝֱćنƬ̠Ǭ˴ȒʗCЏ"],["@@̿˥ׅƸǏΰࡘ¢Ⱦˣ"],["@@̨ٝۿΌۯìӃÅׇˆȦҦਠ”ऎʕ"],["@@ɼയ࢈ԉ۰ࢼ८ԔݜBܘ̉خ̛ࣘLJbᩑbᩑݟې࡟ǜȷʇ੡}ΦۂՈɺɕࣲЕ۸࿃܆ۗêృަʛУ͑óȏ̮GκٛЮ̢ࣞ״gëɠ௵DͩԄݥƺΡдଈȰњ˜ഘ·Ƃ̹"],["@@ڭ࠭كlj߱ǐඓ¥ܽŧţٍݪݛҒϠ༪˸çϯλŪιӯ͙݉ߒ੿Ƶ˿ݲॻQտ҅ʙ̐͡Мی࠙͗ȻɶŊ͖؅ӲØࠌ֕ʭîও”றՓũίʚʌޜŽ߸ΛPʻֺΎվŤښф౎ǮΎ܎ذپʛ੖śॴ–ࠨ؎Ʀȉ"],["@@©ܽџĈŷԝΌѷɽĵ͹Ւʟ੺ǚڤ˨̨ÔҝӸóĀ΃"],["@@सާহį˫ֵšݿַ߱u࠷͕౻ŭ̚ॕϙͫԤ׳´лːৃ̟̩Оս¯ۗĬŹૺнɺЕܘŝ݀ĮުԂ֐Ɩָ֗ӅըǠ՜ÑӪъЖôߒɽۆǶњୠ͔̈̆क़ॲ@ܰƙӍݷآߓơϭ"],["@@छkۻ۰અۊέԚٍۄзؾٕ୴۪݅ʙܠ̳ڀݵՊѭܘمҺࢗऒóђզ‘ಢNjݔࠓٮ֫ҪΓߔࣙࡢ_ۺֹӠ۳٘ϥͳۉӖ̞̅sƜו̊ҵؠõФՏɁ਱‘ಟ"]],encodeOffsets:[[[123613,-10485]],[[127423,-10383]],[[120730,-8289]],[[125854,-8288]],[[111231,-6940]],[[137959,-6363]],[[130304,-3542]],[[133603,-3168]],[[137363,-1179]],[[128247,1454]],[[131777,1160]],[[120705,1872]],[[108358,-5992]]]}},{type:"Feature",id:"IND",properties:{name:"India"},geometry:{type:"Polygon",coordinates:["@@ࣚটďۅͮїѕ׽ŒɾएࠜՑ୞חՑϟ͛޻ࠀͅߊЭરһସʼnӜёٮāৠȝ۪bĪͪŋՖÞβԠǮìڋlǙކ͉Ոƀ܀Çۈ|ÐԪ΁ˎڴŀވشॸ՘۶ȷ״ΞЀԹ˳Λ࣠űÜ͇̍Ʒèԫ׷Ʋછׅ~ӓҩ۵§ХϏۗځȒࢇȏ˹ĚΣгȥѵ೰ɵEƍ՝ҡѦʸӎϖ¶ϰ܆ӝƜީ]ߝŚóאБ¤ڕζ֭̓؆ѻԿ̻ȅ̩Ԭɣƛԑ̆كžەţֱ̫Zਛǩ´ك҃ӻ௃֡ळ঩كՋ࠷ջCϭлȹݳ̝Ͻ«ʥٙǪધ®ۡΣߙI෗ѣ¡ϣٙʰˣދʃ˱֯͵ʍߑ޸ϳ୴͑ࡒ̍Јѿ߰ȻੂơՀޅ଼Α࿀ʣ੾HৰǍ޾௣ԉףĶ઱৲И̤ʝͤড܊֖֔ᇜCǗܞҽюĩ٨ջϘऒࢢঊÙ࢞ࢢՄ࡞ࠄࡈ_״ܒӠڳд֪݂̇̕Ьβ౤ȱपŰߺ۸"],encodeOffsets:[[79706,36346]]}},{type:"Feature",id:"IRL",properties:{name:"Ireland"},geometry:{type:"Polygon",coordinates:["@@ƒ׷ًݣ๯ӹ஑Ŷڼ࢚ѭࡢତڄٌϼǦ҇ǥ҉Բ\\ٌǥ"],encodeOffsets:[[-6346,55161]]}},{type:"Feature",id:"IRN",properties:{name:"Iran"},geometry:{type:"Polygon",coordinates:["@@݈njװӔ֚{τƾװýघэڤğ।ݓظ‰òۻ΁਷ɱؑκŭΫҡˠڡàՓِƙæեݿݿжѵ͸ԓߦυx݉ДƋêϯ௉ѡ̓উཌྷʪࣷȖेŊΧਐЕƪ٣ƭࡑНਇ˦ࡑ٦߳ʈ֗ߘا૪ҍƋՕ˦̻͝ҭѴS҂ˍ@Ɛ،ѝٔ਍Ң׉ߜȜپц̂ÙӬտʨխ৊ҟڨǐʼʿ६ּʈƄͅъϯ־ő̤~রئ̀Øʞʙ́гԼѱȾ¦ˈإߖǩ׎у஠ƟಾɞĄȞ"],encodeOffsets:[[55216,38092]]}},{type:"Feature",id:"IRQ",properties:{name:"Iraq"},geometry:{type:"Polygon",coordinates:["@@րʧÚӫх́țٽ׊ߛ਎ҡўٓƏ؋ˎ@TҁҮѳӿ¤֟ê؝߭༟äᛍၖఫךৡɪ͹৾ᇶ࢔͆৬āؘҢȺјԾΰž঎Ň̐ɉЖƚծ৉"],encodeOffsets:[[46511,36842]]}},{type:"Feature",id:"ISL",properties:{name:"Iceland"},geometry:{type:"Polygon",coordinates:["@@șիॊֵથٙᝓֹܣƵૉŮᚑˈࠠψᆧЪ๪ǎ—ʘᄋȜ֨նౠŰಸ֭౨Ҝ੒ʃൌ҄ආÑ"],encodeOffsets:[[-14856,68051]]}},{type:"Feature",id:"ISR",properties:{name:"Israel"},geometry:{type:"Polygon",coordinates:["@@ƥ˅̣Ŝǫ֓ɂĥɋř—ɛЄŖp͛нഉց෾ʔˢ˶ɞϼǠيŤɆzVˬCþƦɤ\\`·ŕŵhM"],encodeOffsets:[[36578,33495]]}},{type:"Feature",id:"ITA",properties:{name:"Italy"},geometry:{type:"MultiPolygon",coordinates:[["@@̟ڋŲʹǭѝٝ̈́ёĞ୩ѐŞќজûࡪĠْò"],["@@Ԍ׭ş૕ϣÂ΁˫͇ɞ‘২ȓӒҨ¥рʼ"],["@@ரɏĝЯȬΧڝŪہ̗²зĻʇˠё߀чцۛदڱچLȲȃɽǗݪ̥ؠʩܜѫĔƿƽ̛үϼܳƐΝի؈̷ıѫΗ¹҅ܛΕÝHʲǢҊǼǶ͝ӤʱшΑŀʛδգƴεͶثÆٿϜޑմ֯ӜʿࠪйĮہˤϯŕӝϵΓÕĪθҕńɏٲ̆ʰʙ̀”ʂβǵМ¢Ҽ˶ƢƃА€ǼͺتĿψƚâΆԘšĮdžࠨƤȊ̉"]],encodeOffsets:[[[15893,39149]],[[9432,42200]],[[12674,47890]]]}},{type:"Feature",id:"JAM",properties:{name:"Jamaica"},geometry:{type:"Polygon",coordinates:["@@֢÷ҀȫƔɯןeʭƗҹƊӑ̪ĶȔΜÎȒƒ"],encodeOffsets:[[-79431,18935]]}},{type:"Feature",id:"JOR",properties:{name:"Jordan"},geometry:{type:"Polygon",coordinates:["@@Ʀˆपͫ࿪ࣆͺ৽Džų၅у࠸࠿ˣƛƑ˭ٙřȩ̡εʵधƆƒŨоഊo͜Ůʚ@Ԥ"],encodeOffsets:[[36399,33172]]}},{type:"Feature",id:"JPN",properties:{name:"Japan"},geometry:{type:"MultiPolygon",coordinates:[["@@ņ˽ҿԕΉːљțɝӭշʈRЊҬԆӌīΊΜؠǹ"],["@@́ڡƤсѩף੹Ѓ๏½ணॡ͔֡“غษȃষЃঝe࡞أ֗෗իΝН͜ȶݶՏʒͿ־ߐʶѲՈࡌѢ؞ָာʤ࣎ǣࢠ๺֔Б௾ࡀӌ͜ՈਈƟा΢ՎࣀƸҞୗ}ڻޥࡍbࢁ"],["@@נǵרΤȈहఝɯ݁࠱೓ָқँण]ř࠴д٨࣌²ʖ୐ʜټন࢓٤˯"]],encodeOffsets:[[[137870,34969]],[[144360,38034]],[[147365,45235]]]}},{type:"Feature",id:"KAZ",properties:{name:"Kazakhstan"},geometry:{type:"Polygon",coordinates:["@@ӕƹ્דο׹̹KɱЊ੫‚ǡێХNÚࡆ৓ؘ෷ßডũߣݶۋ͆ಥ׼ƽðᓗӹᶽљ£יچ֧ɼॕǩχ˧±ȲȶΖDž̊অ˺ϛݮҩɆ…˜ࠊāŽؘ܎ƎܼűƲࠎƭԲ࠿£܍ȴঃσ޵ǭяƌĐўՙ֘دw܉֬ӞِʕǢڢऊࡺӣŀؘჄࣴಾtᇢ׉঺ͻࢼΠ೰j੺ѥʔʠ୼—ɂЊഷ׀߮Цƿɮ߮ɔ؅ֺϬ˼Ḯ̈ШȺᑆ̴ݰΒຢǹ˄ࢉ࢚Ȳઆ˹éҝ߮´ᑌߎ̭ˁ੶٭ሠᒑ҄ѰୄӛீɎҪƯКӟטNjΨΥ઎ŒѾԣٕ֓ۥÿ¡ࡅұϝဟˢ؅ຑїȇဗͱݲลֻɓäӏԭŬу̠ఝĖඃx̧ġ஥ΞӉǧŽӹ൩̂փşȉρ"],encodeOffsets:[[72666,43281]]}},{type:"Feature",id:"KEN",properties:{name:"Kenya"},geometry:{type:"Polygon",coordinates:["@@ӾۙיͱȹΕ̿Õšףˑ͹Ǐ֑ͷ˥஻ࡀËӤᵁႌƙĢSࢺʊ;а֌̨ؔσ॰įтЉ׎ԬԈ֬ֆѨƗ@ҽ˺ˡג@੠܋ˈSȠxȄī֖ßʞΔގΚͺ˳ָAܽ॑Xᵣ"],encodeOffsets:[[41977,-878]]}},{type:"Feature",id:"KGZ",properties:{name:"Kyrgyzstan"},geometry:{type:"Polygon",coordinates:["@@ȊςքŠ൪́žӺӊǨ஦Ν̨Ģ඄wఞĕф̟Ԯūşȏ೛ғ̙ͭઁıͅ՛ࢷŒׇǏߣЇŜȟʇȓཟŵਡ˘࣫ÝĂӜࣴƕ̮ʸٖĉ੾؂঻ѸױȽإ͂۶ծʟĊ"],encodeOffsets:[[72666,43281]]}},{type:"Feature",id:"KHM",properties:{name:"Cambodia"},geometry:{type:"Polygon",coordinates:["@@΁Ѭыࢄȣ২ՠۨઘdž߀ťۚ͡Ϟׄݖ̱Ȝ֕Ļ৕ඳ٧τԙࢥÓܫͷ۱Ū"],encodeOffsets:[[105982,10888]]}},{type:"Feature",id:"KOR",properties:{name:"South Korea"},geometry:{type:"Polygon",coordinates:["@@ܨযȺխPॷ̓ҥݽljڥΏݳïĥҚƼـχ࢔ذƚֻܘÂúϒ‡͞Ϝצ¢ΨÈŨȮ"],encodeOffsets:[[131431,39539]]}},{type:"Feature",id:"CS-KM",properties:{name:"Kosovo"},geometry:{type:"Polygon",coordinates:["@@›ǣŃPĘ́ȩĐdzɦƾȌȪÒŜ˨ư²Ţşƾ¿ŌƅƒŸǎƻŢLĥȳijij„×ȉӹŻ"],encodeOffsets:[[21261,43062]]}},{type:"Feature",id:"KWT",properties:{name:"Kuwait"},geometry:{type:"Polygon",coordinates:["@@Ǭχõȓ˔هשuȽАݟĆ؞߮֠é"],encodeOffsets:[[49126,30696]]}},{type:"Feature",id:"LAO",properties:{name:"Laos"},geometry:{type:"Polygon",coordinates:["@@˚Ϝœ܆ڹܸ¿ٕࠦھٍÎǛ̉ӯyʣƨࢯԅoݬȸࢮ֧ž³ԎηʸǴ̲ܐնøȡ҄wŵ०ѦŬӮڏϖޅਚO͚ܹ՝ɗʉ̟৔ԉۦ঳Ռ݋َ׏ɄץƵ࠿ݕ̲ϝ׃ۙ͢"],encodeOffsets:[[107745,14616]]}},{type:"Feature",id:"LBN",properties:{name:"Lebanon"},geometry:{type:"Polygon",coordinates:["@@ɣ[ýƥ˫D̘ۄмעfˆϘ§Ɛͣқ̓ȷҟ"],encodeOffsets:[[36681,34077]]}},{type:"Feature",id:"LBR",properties:{name:"Liberia"},geometry:{type:"Polygon",coordinates:["@@ɗQࡽАޅٖ܏Ң֣ըȪː¬ʔϜҘϺϺǶnɖĨΘԧÇ͵ǐdzʂIǢ͸ʄsŸʓĎНǽύʖɱˊÇΤΙ~ͧăĿÝە"],encodeOffsets:[[-7897,4470]]}},{type:"Feature",id:"LBY",properties:{name:"Libya"},geometry:{type:"Polygon",coordinates:["@@ק̷ҿҤ೧βρՄڑϸϻƷ̗ҶήӹؔͬΘñՈńҠÓϦƨۈ¯϶˕ݐШȜðΠėΒ־͔ʶːЦʌ´٦দ́ΜðۮƓ૞ϓЀݛݮǍஆΙࣆйЦɔЖϮț٠˂Ф؄ЀׂŘ଒ǣ˺ϑ̺Iˌƛ࠴ıȲˣ̣ЕżΫɏԯʦڱ@Ჳ@ᶵ@့ॱGYΙ‧ྐ‧ྒࡓҟ"],encodeOffsets:[[15208,23412]]}},{type:"Feature",id:"LKA",properties:{name:"Sri Lanka"},geometry:{type:"Polygon",coordinates:["@@ų࢓ΙʇܵȓЍڜƫீϠ഼׆ұϺסО࢓"],encodeOffsets:[[83751,7704]]}},{type:"Feature",id:"LSO",properties:{name:"Lesotho"},geometry:{type:"Polygon",coordinates:["@@̆ʩʳУƛ˛ҳſƹˍ̛ċؿ٨҄ՐҖ͢ϼǠξʵ"],encodeOffsets:[[29674,-29650]]}},{type:"Feature",id:"LTU",properties:{name:"Lithuania"},geometry:{type:"Polygon",coordinates:["@@ãɊĚɲχƄࢡƨDZ۸२ʴඬÁࠜĊŞǩ҂Ã߲СĀϓۏˏșӃ࣯̓߻NȫʶљĜ"],encodeOffsets:[[23277,55632]]}},{type:"Feature",id:"LUX",properties:{name:"Luxembourg"},geometry:{type:"Polygon",coordinates:["@@ǘȏ³ρʍiȉòĞҼɖŽ"],encodeOffsets:[[6189,51332]]}},{type:"Feature",id:"LVA",properties:{name:"Latvia"},geometry:{type:"Polygon",coordinates:["@@†نЮՆߊ˼ڜعڪhNJ٤ܐƪςĻܢ̷ۚCКȕîС˒ӷ͕ࣗԛƙ߱ТҁÄŝǪࠛĉණÂ१ʳ"],encodeOffsets:[[21562,57376]]}},{type:"Feature",id:"MAR",properties:{name:"Morocco"},geometry:{type:"Polygon",coordinates:["@@ԒΥߜÎࢊȃκU͂՟ºԝ̄ࢱɜDZƷ͛ષƙϝ̵ӡñ—ثঙ͍ͩсۍɥ࠻ŷഫاRহŷ@@@p҉Ա˓ȑϡ@̥Ŋ۹ě˛ٻʿÕЁ੕ୟ࣡ˣୋ΅ϗĵ̡ቅãaD ϶͒ɮ˞ѪÃ˶̀פҴՖ˲ƊɞӬp҂̤Բ̪֔Ւ࡬f\\ц͔ްĢڎָтɠۮۮȿਸ਼͊ܢŔѶդ֨ࡈϦخΐ֘࢈˄ԪؤI"],encodeOffsets:[[-5318,36614]]}},{type:"Feature",id:"MDA",properties:{name:"Moldova"},geometry:{type:"Polygon",coordinates:["@@ȨŮ֒ĊؤʽΊϞɥÑ˵̪ƏŨΗ̊ɇÏűƾčɝ×ӷ|ĉŜǫãÒƭɱˍƥ˽ɁĝƯϦĘΪςӝԂˉΠʹʠʯĈ"],encodeOffsets:[[27259,49379]]}},{type:"Feature",id:"MDG",properties:{name:"Madagascar"},geometry:{type:"Polygon",coordinates:["@@ɠΥȺ։Ɗঢ়ɒϽĉЗƩʙ˷ӰǁʝLjثõΥɵȗ¿܅ͧওб୅ԯཧ͑ୟϛইہȣܻΡӛɊڙ̜ɳѺÇݘ̑ڠù؂Ʈ؄ϰƢD˪Дِø՚șЈǃՌãޠ̊ҺŔՒмŒҶǤ̶Ʋτ\\ӐӎۖԮʦцŗάΦĵҪ׎fԐ˦ϔ̊ί"],encodeOffsets:[[50733,-12769]]}},{type:"Feature",id:"MEX",properties:{name:"Mexico"},geometry:{type:"Polygon",coordinates:["@@͙݅ƥ؁Õ૷ąЧƤқʺЧǚٳ֎سȞӏ͢бࢾɝΐΙ݄ɾٚĎؼưՊƠՖ΂ȨӬè۸Ƣʖ֬ɚࢶȚݔ‡ԚîȬDZ…ЙҋԁȥԝƸƥűγɁٽɅɎǭcǃY̝ԓƳIJķPŭޥV޷AAӁϛC̺˫̶șĢǹƌ½s˷ઃEЙۅŢƽĭȟqʕ्ࣞџ˘ۇɖҷÓګ́чĉץɜؿDŽ޹ϬؿŠ्ϸ۱ВɃɤҹº࡯ˈΓϦࣗӊсՌȧЦ˪ĈđʈȖɔJ̄˱Ϙùͮ˭ъ݋࠴ࡋڀУԼܝ΄ƷȴŸԲѓȞӹФȽהҍæӣѸϿФ™ˀҍو̓٠^͔؇ͬ˫™ӑɴƇͿƔЕĆف̀΋خׁƒȡŸÓŎ˽Ƭ\\ǜթʮɇǴ̕Նё˨ޯʠρɸϿ²ѷКƒͶϡ̨ϑqƭΝ̱ƫJɛԞջӎ؃РїɈ„ؚŵҖЏʺֿϒŏŇɃɖԭȰӷӦÖÚΊ³̸̼ŽϜ٩׶ӱɶ̱Հ̷վϳڦͿݲॖÞ੪ĞÿǑ౔СኀףဪPژ@DΌผ@̪̕јˇԀσ˨ѭȾҥѢʩۤʥՊڒۊhפͱфֹ̄ӯӸӏȂחɾЃپʹ׮ȁ͞|"],encodeOffsets:[[-99471,26491]]}},{type:"Feature",id:"MKD",properties:{name:"Macedonia"},geometry:{type:"Polygon",coordinates:["@@ńOœǤӺżȊ˺¶ϴbтˏÒ։DžƒƑƥҕh͋ǿջõΑȴšήń˸"],encodeOffsets:[[21085,42860]]}},{type:"Feature",id:"MLI",properties:{name:"Mali"},geometry:{type:"Polygon",coordinates:["@@˰ƶƘӶˊpזɻӄǖ͖ÇŴȈ⁚^ȈךƣļЛ⋈Л⋆౾dᬼᆳᬼᆳȨϿԺʉ϶ƋV՗ठĈFካҟ֗íԭݛƃ଩ï̳̗ա՟IȿLjҥš޻ΑDžʿٳϕŗɍΙǡНŔɱȳūֻڙۡp˳ɭΣÆӥ΋ůȝŁŽάʍĥơhƷʕ٭PɷŴʼnùʱʎ¬ʢĿİdzĉ˚Ǥɐ΅ΚijɴȇȂǙvȫş˕őɱǹΫäɷɈƓ„ɕőƅAµ̮žʾí̽͘ʀǓӔԺ"],encodeOffsets:[[-12462,14968]]}},{type:"Feature",id:"MMR",properties:{name:"Myanmar"},geometry:{type:"Polygon",coordinates:["@@ӫηץ›ϥࣥΟƳО݅ՔؗΈօ̭ܵ̃ƹȪу֖ڙĪҷ_ϵ͠ދң޵Сࡷăذʴ٠˯ӼæࣸͽѤ˛৔Ʊਗ਼εۢօуॕ׳ҽöԳȠ̂ਪǫ޾څॺļ̢ӭņ׭ۆÅڰ̊ŵj׾дȦęΤȐ˺Ž࢈ڂȑϐۘ¨ЦҪ۶}Ӕજ׆׸ƱçԬ̎ƸÛ͈ӮÚˮӵξȧ|ٟ“ۙߓۭijঽࢲƔȨޛՐǍʓۣز́ζƷ؞ʔ~΍܏յdẕӓȗ"],encodeOffsets:[[101933,20672]]}},{type:"Feature",id:"MNE",properties:{name:"Montenegro"},geometry:{type:"Polygon",coordinates:["@@ÁǀηЯÊˋǫÞɽ˞εǖĢƜŬҦ˚ȜƾüɠƟŬśˠě͌ǧçïƽȋɧó"],encodeOffsets:[[20277,43521]]}},{type:"Feature",id:"MNG",properties:{name:"Mongolia"},geometry:{type:"Polygon",coordinates:["@@ࢮƢ྄ܤ౬Єܴʳ࢚]֘Ͻ࠼‰ௐɁࠈגͿӶࢊࢊश΍ނįনɍLjؿஜΛߐƺਫ਼ŌࡆōࠖЗԚѕެT੒Ƌޜȼૈƒ௸פԌĝѰ˭ৌêХهק࠽ɐ΅ӈńࠤŽ٦̴ڬˏހוğ̗ڏĦ௟ŏןʅ؝։౱͙࠷ѽࡹǞҿúѳէˎ͓ƌˣי˯׽҇গ̑ఽ‹ഫ̇এҋϋʾ৭AఓԜࠥŰૣśჃȊऑmӱԀϣޠԱĢ৩ԼଅŞুƞ̡θ͖চׅڲன̀۷Ѿəז"],encodeOffsets:[[89858,50481]]}},{type:"Feature",id:"MOZ",properties:{name:"Mozambique"},geometry:{type:"Polygon",coordinates:["@@لæ৞ʁɖńגt̚ʦԌaऀ͜ڞӤƊϕ“࠷ľ݅ಿƨЫʣ׷͙׍՗Եޏ͉ृСॉ͓ࣕƵוׯ΋ȗí׳ЌُǔӱZʣƪ¦{ࠗƋϷȤƝűΓΗ̗ۗ˳য়ҕρ̳ðΟɊÉíѵّRïϊůϖí̠ƬपɓװГஂࢬ॔ɜ؆ŶúĨӶƉʞ˜غǐ׌E੠ѥ˒ЏÔǹȼϳǰ۫gÅ̼āװᢈۘӚЕɴüͨɅ¸͵ǯϷØסոԱʲ׌ζǰíઊΙ؈̣˖̅]ɽદɾٔ"],encodeOffsets:[[35390,-11796]]}},{type:"Feature",id:"MRT",properties:{name:"Mauritania"},geometry:{type:"Polygon",coordinates:["@@և־ԗؤ֍ɞГʚҵUЧǽйð˽ˏïҐɺаŀߊģࠨĵкČмɑЎѵδǾˬᾔMǃ௎ȴќ߀øᒸ᪂©F౞Ṗ᎟౽cМ⋅М⋇ƤĻȇי⁙]ųȇ͕ÈӃǕוɼˉoƗӵ˯Ƶ"],encodeOffsets:[[-12462,14968]]}},{type:"Feature",id:"MWI",properties:{name:"Malawi"},geometry:{type:"Polygon",coordinates:["@@ɽٓɾથ̆^̤˕Κ؇îઉεǯʱ׋շԲ×עǰϸ·ͶͧɆɳûәЖѵɔʮޮ˄̈LJۢǚڼƞɪɉ܌Ѕϐ࠘ƽǜɵ˶Ϲɾଡ"],encodeOffsets:[[35390,-11796]]}},{type:"Feature",id:"MYS",properties:{name:"Malaysia"},geometry:{type:"MultiPolygon",coordinates:[["@@àћֈĶ˞ΈȘýӸԓΜ֛¶֣ęϡĆ˿Öӻ̒ɵͤݑe˳׫Éߑخ঵ښįђӟ֚ś̡۠ҜĠؔȃΤƤƮۈρ"],["@@أ˹ܯƚॱ@̅ॗ͓̇љୟۅǵߑɾЕóөщ՛Òէǟַӆƕ֘؜˽ٮǀǜ܆άǂ৖Ǻ׾ڔЬՐϦѥǮ˺В¸՜œа٪אшڀͼHќыžιֆɻ۬ʧÑ֝͡¥ƮЧ"]],encodeOffsets:[[[103502,6354]],[[121466,4586]]]}},{type:"Feature",id:"NAM",properties:{name:"Namibia"},geometry:{type:"Polygon",coordinates:["@@رٌؖ͡ȃࠊȷ،˯ಒm৒ŅҞ͛Όѡۜѳ৘ǽՆۃࠐ»٢КdžԊƞհ}ԄϝŶÐ₮˜׌Е᎞ş໴΂یȒհµͨȍPéӁȍʭC՛͍ͣΎಕ̍سƒ{Ჽࠣ‡BយA᷋ݣѕҋÕՇDŽϗÔƗάͩɰГг"],encodeOffsets:[[16738,-29262]]}},{type:"Feature",id:"NCL",properties:{name:"New Caledonia"},geometry:{type:"Polygon",coordinates:["@@ېԵѨϭ͉ȫҥɪ׹ϚէѼ։פś˶β[Һ˹φ˷ˎɻ"],encodeOffsets:[[169759,-21585]]}},{type:"Feature",id:"NER",properties:{name:"Niger"},geometry:{type:"Polygon",coordinates:["@@nּॹȐОҿպœϤâТբ̴̘ପðݜƄîԮҠ֘Eኬஈϒᝪ࿸᮪ཾ೨αӀңר̸ȸಯ̾ɓ`ˋΔ˽ǻί͕ၻ«ધੳߋγૉΔ̵CեբmčЃʁµˋƻm֩ंȟ’ځҷٱʔҍ¸ʏşӯ~ӷΧѓq৯ѢЉȵѓb̿͆ࡅ̼ࣗıɕǻşӗʋ͹ÍݣٗӚ̟E˭ʗ"],encodeOffsets:[[2207,12227]]}},{type:"Feature",id:"NGA",properties:{name:"Nigeria"},geometry:{type:"Polygon",coordinates:["@@ࢍ̡͉¬͓ȉڥl҇Ղˡ؊שֆكYݍB¶തs՘ǂՊʶʴТԴėɨǔ͸ȍӾ˪ÎݤʌͺŠӘɖǼࣘIJࡆ̻̀ͅєaЊȶৰѡєrӸΨӰ}ʐŠҎ·ٲʓڂҸȠ‘֪ँƼnͬͯğƱ«˧۽ٱɛՙšѧDZȉǝי҅ΉŽыȋ͹ÿΓֽ˱ҽΊ͇aԃӭʑQЍ߷ɍש"],encodeOffsets:[[8705,4887]]}},{type:"Feature",id:"NIC",properties:{name:"Nicaragua"},geometry:{type:"Polygon",coordinates:["@@̃ˆϽͺȁ˲Ο˄сϜĤžƒŵÚÒʾ”ŀȔŬRkЮȠrǬOǺɤʜǝĒľƺIJ̊ɴbǦĄQňȪĖ|ƜŹǚ›ȆńɄB̈ŌŜŖ˾iïă§ȉĐ̫ȗ˹ěͷυ®ɏtϙŹĉýΫÌɛǣɋ ɩźƏȩDZʛÈƓǦˉêȕʼnօɞųŇ"],encodeOffsets:[[-87769,11355]]}},{type:"Feature",id:"NLD",properties:{name:"Netherlands"},geometry:{type:"Polygon",coordinates:["@@ۦyǀ˳Ƚޓɇ́ԍ@ƘࢡҥȞՏπީǩ؛âѠɲ݀ఆଲΘ"],encodeOffsets:[[6220,54795]]}},{type:"Feature",id:"NOR",properties:{name:"Norway"},geometry:{type:"MultiPolygon",coordinates:[["@@᥆ؙઍɣऄՅෛ͵ڵû΢לઃͰಫ˵Ы؝ߟωࣗȮ઱¥णѼԉɝԷ“ūփནƊɝҵ߭Hևױ࠿झಫ஁̨˹̇ͫ࠯bձ޿¾૟՞э˥ধֻۧυӛ֝Ԫဋঁ૫ȟ୏є̛ࣚˇ኶ޞզᕠ۶ဌࢂ໤୦፺ྴඦلᘼ੊ᇎπ൪­౮ۢ໖›ພǘ"],["@@ም΅๝Ȝ׆ɐԕˎეǚͮ̿ொȍ"],["@@᪖صᑟͥұأ݅ǁЍۡৣᅵԢނ̘ఽʐ࿕܂ٷڄᘎ̜Ң̋஦\\͊˼௾ˆ੖̋"],["@@࿮̏ఝҍ᝱ı៙ƖƫɴஹdँϬᣴɼ௞ȫࡘʤᑺȽ"]],encodeOffsets:[[[28842,72894]],[[25318,79723]],[[18690,81615]],[[26059,82338]]]}},{type:"Feature",id:"NPL",properties:{name:"Nepal"},geometry:{type:"Polygon",coordinates:["@@ÝαŌՕĩͩ۩aয়Ȟ٭ĂӛђଷŊયҼ߉Ю߿͆͜޼ՒϠΒȪڪʳࡔշҾť˰ЕٶǓۀσौȕঔć"],encodeOffsets:[[90236,28546]]}},{type:"Feature",id:"NZL",properties:{name:"New Zealand"},geometry:{type:"MultiPolygon",coordinates:[["@@Ȓ΋װ;ʐΡBΝ̹ϳչإїͷ̴З٭Yܗ̓ɣջӋࡗڇϓнʇޝlխˢࣱÐƗ̰Ҍذ੐ࠦժǀ׾͌ܜѰԎѦώظ͈ɆŰҶלϴȆΧ"],["@@،ࢫlָϜɯŲًڰ˛֨ãӒ͎юĭȯݗʯӫٛjɡʭþαūƻͅҏзֹ٭ͯƟɘΕŨӞ۔˟ҨࣛͲz̦؈̌ƚ٨Ÿլͻ֜vƪБΎڋݔΗת̸àҚұٺɑʂݡ"]],encodeOffsets:[[[177173,-41901]],[[178803,-37024]]]}},{type:"Feature",id:"OMN",properties:{name:"Oman"},geometry:{type:"MultiPolygon",coordinates:[["@@ֹ̻ϟªǩȧƉэļ֗ÿĻϯFԽ̻ćХȓǯԹP͡ɃJͻПɷҩĂ֗˳ϱ³˝טٿ൴ᠾ࠾֖၂ϩתv͸ʔΐFΆϞǒƩŞèմіHϖֵҸ̧؞ŋӼƳϜӕɨ˧̞ŃCȉ̩ԃƅɽΟˏ"],["@@ʼnƳDž˺ʔ˺ľñā΍"]],encodeOffsets:[[[60274,21621]],[[57745,26518]]]}},{type:"Feature",id:"PAK",properties:{name:"Pakistan"},geometry:{type:"Polygon",coordinates:["@@تϻʞ٥൨ͻ߹۷ऩůౣȲЫα̖݁̈֩ڴгܑӟ`׳ࠃࡇՃ࡝࢝ࢡউÚऑࢡռϗĪ٧ҾэǘܝᇛD֓֕؛Ɇʣ؀٭٘໻ǁിeஃŝ̈́ঊொѢéϰГƌw݊ߥφͷԔеѶඨѕࡀŲԈŅǞȂגóદĈ܎ҶӈشCĠɼٞŌ̴ý͢ʀ±ԌΦԖ՘Ɇͥ֊ߜɴ̢•͒мΜĩмȣΤӬμࣘǮ८ĮѐƺӨĦ"],encodeOffsets:[[76962,38025]]}},{type:"Feature",id:"PAN",properties:{name:"Panama"},geometry:{type:"Polygon",coordinates:["@@˫ʎǵҒȺɢɅÎƿˤлɸοÁǝ̇ͻɁǽ‡ĉǩВҗɯŅŧŭϷ©ơԈŋƛˡ¸ǝ͸·ÈɓİέCǻĩŶªǖìǠƲŲIJǩŲK͸͘ö̠̝iDZͲ›ĀæɴȵЮÔΨɄԜǞ˺ʤҬ·‹ĉҶ…ώơ˜ʧ̈́ɵĹūȜӵǁʟ˓ÒŅС"],encodeOffsets:[[-79750,7398]]}},{type:"Feature",id:"PER",properties:{name:"Peru"},geometry:{type:"Polygon",coordinates:["@@ɥљћɋࡅӘñΈရࡊທࣾ٫԰ΏۜƐʎ܅ાࠣ༄ߍီ΅Ϥ˃ؤٷպױͼ˖ϒПߢʼךڢՎIJΓʇȧx̭ΎâͼĝΚщӆΌDŽ֤ԦܶৠͨࣸࢠʾմŝٔɢĂ֒ЉˎЅϴɏӶࢣضĿҨɞ̤ƣԎð٠Ͻթࡣʤoрҁݳ œųۍlj॥ֱÓϻɉ̇ČғԕʍBΡɛƵΔݳҲԝDZί֐µ͆҃ݐuېӸÇ౧ϢĩӄƠܪടǷ˵£ןg܍͟пƮ̵ȕ˯β۹Ջ࣡"],encodeOffsets:[[-71260,-18001]]}},{type:"Feature",id:"PHL",properties:{name:"Philippines"},geometry:{type:"MultiPolygon",coordinates:[["@@Đ֏ºҽ˹ޑ̫ࡨϽэˎإʉϿ঩Ӧɿ؊ʰЎՑЈˁΑЃثҵƑʖ͢۾ՌʀҜ̈́̔ϝٔɰƎϒרv·ٰڼЋêхÐ̱"],["@@̟ˡˁՍ˃ʝԫ׈ǦɤɂɾĢԸҨ¸Ɖ֣جߺāߡ"],["@@ૣߕЬט؈԰Ԏ׊Ѱ࠲Ʈۅևҧѳֿ"],["@@Ԏʹ՘BgΗϳΣՕʧ‡ϸÒєŽА"],["@@ʀभ٫ɞj˭ȶԯЍȋ•עʧªƁԘӶãY͈ԣٜ߮mɴ̻"],["@@ɟܩέоѓ٘ܚ‰̡̈"],["@@ԮʉʶɖüɇƍΑ˼׻ɛۥӷ˥ƁڳȊڝѾġϊIJਾүăҙ˜ȫēϯٻЮ̵Ѵɍ̯՗ԊރůлȆ¨ΎˀɊʣȘŇ̡бӚűμߨͺˡĔೄ˜ހԘA"]],encodeOffsets:[[[129410,8617]],[[126959,10526]],[[121349,9540]],[[124809,12178]],[[128515,12455]],[[124445,13384]],[[124234,18949]]]}},{type:"Feature",id:"PNG",properties:{name:"Papua New Guinea"},geometry:{type:"MultiPolygon",coordinates:[["@@ɽčε͔ρՔǷ٘ŜĆĜʡʬȏРՑЈ˵ŝɽ"],["@@ѯçƃɽҟȱћȟѽBۏʔӑɺêʺݬũҠàŶЖŦrĆѽӐÜʂ˼Ҹ̚ġӸԌfǜƏgү˯ԡ"],["@@ݤտղࢻӖ„‘ω٬ƛʥǁࣀΝġʏ֋ÏȷɔܟĦࡕŴٷ՚ӉҦѧ݀ભπ܇ʇԡˣńإڇ˿һƖࢅ–aᩒaᩒภ׃༊ӓׄїҴхŸӵඔԱȲѽޛěȄ֕"],["@@ʿɡǁӸȝ͘ϝ˞ӍΪ؇ʚɺȮҒɻ˸ȁΜȫʹΛ͊ˏĶѧ"]],encodeOffsets:[[[159622,-6983]],[[155631,-5609]],[[150725,-7565]],[[156816,-4607]]]}},{type:"Feature",id:"POL",properties:{name:"Poland"},geometry:{type:"Polygon",coordinates:["@@·՜à̂ȹ̧҆̚ɺɤȝђָʘ಼ϴ੒˴࠼ƙÚȱ߸Yਚħ໶^њěȬʵšωɸ͋KͯԋǡʸϳfϏцܻěɽзįރۥɒϗǿ¶ߙ͔؁šЇĒӹǵч̖Ήŕ³¼ϭаر¼ăˀֻĦűɑҗǨÀɴػòЉ˔"],encodeOffsets:[[15378,52334]]}},{type:"Feature",id:"PRI",properties:{name:"Puerto Rico"},geometry:{type:"Polygon",coordinates:["@@јõưǕɋɃمLӫ‡·άŢŬیK"],encodeOffsets:[[-67873,18960]]}},{type:"Feature",id:"PRK",properties:{name:"North Korea"},geometry:{type:"Polygon",coordinates:["@@Şƥ͉ºη˵ʣ˷Ž׽ѣȅƫƧ̓ʝ֓ƏηɥηįġͰƋӈσŧȭΧÇץ¡͝ϛϑˆÁùСdžĵƿʙé‡ǀɑüɥƆɰφȤİõƶɆҒÅƎөĠЇɤۄբऒҌ־׮Ўˁܪ‹ſѺಚβͰҼժӹ"],encodeOffsets:[[133776,43413]]}},{type:"Feature",id:"PRT",properties:{name:"Portugal"},geometry:{type:"Polygon",coordinates:["@@̦Ɉ΄ŬɂЫӺDƞłӪ‡ɼуϱɩYٽƍū‘Їγçʹԋɵտ̄ʡřɫ̵̿ê˥ͷɓѷŠџġŸڂÿԬϓþȩ͈äռͰ̨ÒͼǪԎkΤǙ̠™˲"],encodeOffsets:[[-9251,42886]]}},{type:"Feature",id:"PRY",properties:{name:"Paraguay"},geometry:{type:"Polygon",coordinates:["@@ͦ৖tҌЖ݌าʔޮ]޴їbʵʞҳÇଛࢲLJ΄ǐ֦ɩǀʣþޓİ͓̼›̀ƌ̢ƳAҥŕӻǑӛƍݏށ١ړƇऻŸࡑɮࠢ౨ťψࡽ͢ਅبۉŸ໵ൌ"],encodeOffsets:[[-64189,-22783]]}},{type:"Feature",id:"QAT",properties:{name:"Qatar"},geometry:{type:"Polygon",coordinates:["@@ÇؔɨѲɰĜʬˁdӯǽӳɵÑʫǖ"],encodeOffsets:[[52030,25349]]}},{type:"Feature",id:"ROU",properties:{name:"Romania"},geometry:{type:"Polygon",coordinates:["@@δǶԴġՠGϸȳ˺źبĄɄȠΠ@ʰćʺʟˊΟӞԁ€ρėΩưϥϒƹЂƊϠƟpɏПǹʯĀɻ৥ӳĖ̪ؑফțзɋ௽¬٥ƀ͙ÕʍΊƵƦȚƘȷŀ˃ȋөʔßΌԟȢĥˌҕͤڪǂԖ֮Њ֬ԢǮ"],encodeOffsets:[[23256,49032]]}},{type:"Feature",id:"RUS",properties:{name:"Russia"},geometry:{type:"MultiPolygon",coordinates:[["@@ࡌ๫కˤԫ்ࠌࡳyוُԒսٱƻ۸Ĥࠊħ࣢Țٌš૴ӯࠜôରަϮͭϴϐŠɔ։̆ߵuࠟΎࡑ"],["@@໵]ਙĨȒτ୊˚ࢢƧψƃęɱäɉ"],["@@֦Ƚțؐᗸű࿨޻࠭λ൛ēsࠑͳǩ޽~ٗ̊ૣʖȉθ࡟Ǝॗʼnҗ̎Ǽ̸৓ȥϚЃӉΣ@„Ꮪٛᔺ࠳ïԷ"],["@@ः©ƭˌੲΖ@ַ"],["@@ળ»@ָň–܈E௒ʉïŗࡽȩ"],["@@ౡMႣĤƧ¬ߘͪੀþஞ͏ĸə"],["@@ॿͩഉø༛ͨȪ˖༨ųᑔɗ"],["@@ډرᶽzඃȣမղҎ׀૎ǂᕞ™ᴬѽ"],["@@ӹóᩣŊɟώູɦūҒ࡮Ƕ…Ҟသܒޙĺ፨݆ɩϢሤѺ᪪բ᫠ǀ෴̸࿐Ŋאͩ֟ʻᲗз᢭Џᤙߝఫࠍ೉߱Ǡۥྎۏ"],["@@ɨгސȲឤYቈЧڬ̿ȽѧङʝᕅүفʟਬşఖɃݴDŽєաτɔഊƂ᧪ƑȴϽ↲ů´ٜᄼƥഄLബѷϮ՝ӹΙੌڋ೔Ϳ߸ࢦഖϙ෢ɦྼʵؤʀൖş؅ޮૐζ䢀ձܐӿᔲٛ₎DŽာƑ۪΍Ĺؙਜʇ૴Ǥ๰vཚǑཪĢะݛਪˎڷ՞ϐώᧆɻფºᝂБ୲ν@”MKઇσઝÖݶҁԄەϲɧĮΏɑɝ༧Ǿ᚝مݛĭ౽ן௛ԧ̱ϣய׊ᔗڇϣ̸ߵΫ૱Ř˓ց৙߽Šͻड़ȋő௣ޭ‹Ϋ۱Δα฽ѕ̅ॡభȳʥ࡟ே޳ׂ̳έ௬ҵለИ୘܀ԆªϾರȊຊ੒คࡺຢڢڮஆ৷ëԍۗᒉइۍਖᓧ˷ᑃටۚԧሙɕಝēÔ؊ಯŶ਩ЭᢵƠ᪏ʟᨩ࿛ủጝ೚ŁаՃࠄȅ՞оईÃௌऍ†܍ځ࠽ë্ϛഉ్௓˯ׇଙ঑ଇॻթӹ૩ӱՉYՇФૻؙſ˩ŝƦKѐіxŦ঴ɛܚܞ̒৶Ʃ֢ࠈ˾ऄ͚̮Ѵݲ൷ʛܯͧ౧Dͻ߄হװหˎ̵ࠖ̉Ԫ̿βԯࡐ̲݇షʢ૛uਯƱۛлҤȥXҩұˑݷࢻRσஅՍ৙̈́োéѯˮԋĞ௷ףેƑޛȻੑƌޫSԙіࠕИࡅŎ੝ŋߏƹ஛ΜLJـধɎށİवΎࢉࢉ΀ӵࠇב௏ɂ࠻Š֗Ͼ࢙^ܳʴ౫Ѓྃܣࢭơ͡çѽԤઍőΧΦחnjЙӠҩưிɍୃӜ҃ѯሟᒒੵٮ̮˂ᑋߍ߭³êҞઅ˺࢙ȱ˃ࢊມǺݯΑᑅ̳Чȹḭ̇ϫ˻؆ֹ߭ɓǀɭ߭ХസֿɁЉ୻˜ʓʟ੹Ѧ೯iࢻΟহͼᇡ׊ಽsჃࣳĿؗࡹӤڡउʖǡӝُ܊֫ذx՚֗ďѝѐƋϥӽ߿Ƒ࠳ࢁކߕĉ֣ࣼফԇ͹ƝɇωÌֿԚɿ†ՅȚʳΈ޵ǮԙƁƥƼଥЖఅƌ܃ƞĹıੱ܂य़̈́ܩӴؒƈۤ۰ҹͪఌ΄uȀݯƉ‚ώѠɼ߼ÖƄ˪ȅҪ΀ѰWʚఉ˚ӭUԯЀ١ƃ੩̐lǒ̗θڟ¤éʼɀǞ՝ӈࢋąʭ¦Ƀȑ̽”ȷ՞ȟ˨NJĀڴ‡͞Ȁʍɢ֥ƪ¼Ʋ΁ƴՃվǸɨĉЂࠑȨѱijšȼࢭɂˑӸíТЙȖάˊʝ޶װӞųƤक़ҬࢡЎᅢ੶ޮӠ͂єగּΆնݳش֢ܜ঍ग़ޢي౿֔ŬךڶüොͶࢀ̈൦ԕᘨȧṺो٤ЋÆ֓टѳ൏ɡ⏷ٔ؟Ńൌ؛ÂϵÆ࡫ઌʯڂɓňРԑΰ՘͈᎖Թ۾Ȳ֣؜ዦࠖޢµ޸̋Ӫ׀۫ԄЪԊءԶᚠˑӔҹ੡ĻNҳڌ˽ಜǼȶ՚ჶАᰪܞي£ࠣԙਬĕ׼˼༾xఢΐफ़ԏॖ֌ࢡӢѪˤ២ʫ୒ʿᴾॣ֚ѰࡡѺ{ǴৣĈˢЌ҅ټ}ː༄ݾրކزǒᕮɛǬұߕڽԺˋ˒חȏଵऒԧέ֕࿫஝०ŭ̢ͮऎɎɞжܮЎөӌϼֈࣿêȫҲڢࡈણۆຒ֦șװмnѴүͧ߷࣐Ƶϥ؄ඤͦლ¬༈ӏݛ۪ċࣆศǞ፾™ᆘŌہѮংւॲx࿎иᕠŐ˪ɲᕂþیȋሴҀ໲aɶδߤΨጤΈ෸˗ଥȷበŹ"],["@@ⵙ͕ໞીےĦقÃᒈӋʟͿ"],["@@૽ōݱÛśƏঙƑ࣫ȦӐʾል~࿞ƶ౨XǢɧӘȬߊƐఞǿ͗ŷ"],["@@ᆳĿᚉʎඅ͎٣׾଩ǔᔆָᆎȎ࿌чኬ߻ȹݯ"]],encodeOffsets:[[[147096,51966]],[[23277,55632]],[[-179214,68183]],[[184320,72533]],[[-182982,72595]],[[147051,74970]],[[154350,76887]],[[148569,77377]],[[58917,72418]],[[109538,78822]],[[107598,80187]],[[52364,82481]],[[102339,80775]]]}},{type:"Feature",id:"RWA",properties:{name:"Rwanda"},geometry:{type:"Polygon",coordinates:["@@ͬӃµӵʏŁѿÆʱӍԛàþҠŘތԄʎɺȰďԈʸ"],encodeOffsets:[[31150,-1161]]}},{type:"Feature",id:"ESH",properties:{name:"Western Sahara"},geometry:{type:"Polygon",coordinates:["@@oҊŸ@@ÉeNjEౝ᪁ª‚ᒷ޿÷ȳћDŽ்ᾓNǽ˫˜΢bCቆäĶ̢ΆϘˤୌୠ࣢Ђ੖ˀÖ˜ټۺĜ̦ʼnϢ@˔ȒԲ‚"],encodeOffsets:[[-9005,27772]]}},{type:"Feature",id:"SAU",properties:{name:"Saudi Arabia"},geometry:{type:"Polygon",coordinates:["@@ʼnΪʩʨÝͲѡ̞҃۴ʁۆׇ׀ϑƐ֋ߠīא–ӾӕञϿ͠ґǨˡӖ°ȎɹѦʕȊ͝زԟڴѓ־лIžҦœ̌ļͲनƅζʶȪ̢ٚŚƒˮˤƜ࠷ࡀ၆фdžŴৢɩబיᛎၕ༠ãݠąȾЏתv͠ܥаȓƠִ̏Λ¼΍ċ˩ł˯ʎɽŐ˟ŲȵʬǕɶÒdž͍Žș࡙͐ᡌщǞDzϪש֕၁ᠽ࠽ᝑ͑޷ϙ׻ࢥϹƕɁˬ͏§߻ĎƷČॹmɫùΉɔɝЭĒΟρˋ"],encodeOffsets:[[43807,16741]]}},{type:"Feature",id:"SDN",properties:{name:"Sudan"},geometry:{type:"Polygon",coordinates:["@@śhdмĵ̀џͨĵ؄ĶبϳÌÍȇԍ©Ȭʕðԍңңл؅џđ۹Ӫͅǥđʓџǃ…ǥ࠵@řǦ؃†̡ƝɳîѝӬƟɲ؃ŗɱϵɏݣ˿ǁʳğå ̅ʎÃʼƌΔE΄ӛՀĩάZȰ̱ʜUӦǭ͖̍µĎ̰ɒΖħΐˢʴǫȞɞ԰ϨئܦÏ¥ ZΚॲH@း@Ὂ@ῼ@˔ࠗȁƳŪࡻ্̰͌ȷҠ̳ыӑأƏ˅ʳĉ֑α௿ĚͳƅܟͿࠟԓзέٛč΃Љɽʝ࢟Dij"],encodeOffsets:[[34779,9692]]}},{type:"Feature",id:"SDS",properties:{name:"South Sudan"},geometry:{type:"Polygon",coordinates:["@@Xٽűʯѿq˷ӏԨÑюХƨͳϦșӼࣳ֫օԫԇԫϭסFگȟՕȊ΋ɭ݉֐ȥάҵDZϱÆɣƕϗĸԗۚƉˊعͪɅԌΕζ֟ѬS˘ҡͼ֯͠ʴĠ̀ǂɐݤɲ϶؄ŘƠɱўӫɴí̢ƞ؄…Śǥ࠶@†ǦѠDŽĒʔ͆ǦۺөѠĒм؆ҤҤïԎȫʖԎªÎȈϴËĵاĶ؃ѠͧĶ˿cлŜg"],encodeOffsets:[[34779,9692]]}},{type:"Feature",id:"SEN",properties:{name:"Senegal"},geometry:{type:"Polygon",coordinates:["@@΍ٺн̚φDŽРמȦќ˾ːкïШǾҶVДʙ֎ɝԘأֈֽžԹǔӓ̾ɿî͗ʽŧ³қâÙģȃk׿ȲЛV༇–ɥħ˥‚ѻƋƏ٢ވkȬŞƮR̸ȘήǯκcζȌǝʐˡƙʻJͧȸˉ_ȍȥࣵy"],encodeOffsets:[[-17114,13922]]}},{type:"Feature",id:"SLB",properties:{name:"Solomon Islands"},geometry:{type:"MultiPolygon",coordinates:[["@@ɾ˿חN͉ԬԈȯǜ‰"],["@@͝mԧĎǫżÀͮֈƁ˜ǭƎə"],["@@ųƹحܰǫԈ˺@̠ڥʹЗ"],["@@–ǛڅΦҟ̠̿˪ŰĐϮȫېϭȢˉ"],["@@Ǘ³οȒ·Ί¨ƖԈΡͰ˛"]],encodeOffsets:[[[166010,-10734]],[[164713,-10109]],[[165561,-9830]],[[163713,-8537]],[[161320,-7524]]]}},{type:"Feature",id:"SLE",properties:{name:"Sierra Leone"},geometry:{type:"Polygon",coordinates:["@@ɧØ؁ͺѩ҈Ƨ̬Ĺت҆τĬɺƞǸɶpȜǂڦCɺ̛ǼˁʓƈɗṶɴ´ϹϹϛҗ«ʓȩˏ"],encodeOffsets:[[-11713,6949]]}},{type:"Feature",id:"SLV",properties:{name:"El Salvador"},geometry:{type:"Polygon",coordinates:["@@ġȡӡ^̡Ą΍ǘұÀʃǶ~Ů˾ɄǀĢ«IJȠ¾ʜëǸǙʪƇŒœτĴǤÑŘĝÏͳ"],encodeOffsets:[[-89900,13706]]}},{type:"Feature",id:"-99",properties:{name:"Somaliland"},geometry:{type:"Polygon",coordinates:["@@ϛԩד۫۹Mᩧা͍̜̳К̳ҨǾ̖̲҈˚ƹǒΏϜΗкGߊɌࣴĴ݌ʼиÆ̚ƶӎˆKaE΋Aࡑ@ѫ"], +encodeOffsets:[[50113,9679]]}},{type:"Feature",id:"SOM",properties:{name:"Somalia"},geometry:{type:"Polygon",coordinates:["@@ѼĎЊ˾͈FpɵýӧHѳǯ̣ʁࣥЙयԱ੷ܝ௷ܓवধ଩ࡁڹష࠯޳ٕँৱȗѷȍȣӽۚWᵤܾ॒ɰˆբfݠפબšᛜᡄה۬ϜԪ@ѬBࡒFΌLbːhϰŰ"],encodeOffsets:[[50923,11857]]}},{type:"Feature",id:"SRB",properties:{name:"Republic of Serbia"},geometry:{type:"Polygon",coordinates:["@@Ԡȡà΋Ӫʓ˄ȌȸĿșƗƶƥȷȏø̫Тγ͋ʿƗˋĞijƑšϳa˹µƒØĴĴĦȴšKǍƼƑ ŋƆƽÀšŠƯ±ś˧ȩÑèð͋Ǩ˟ĜūŜɟƠȢšŬЄЛ͔ɀτ̥Ë͔́ˉʈȱ͘٢ɚԾ™ҖͣĦˋ"],encodeOffsets:[[21376,46507]]}},{type:"Feature",id:"SUR",properties:{name:"Suriname"},geometry:{type:"Polygon",coordinates:["@@৔ǙĞưڶÔࣚɥѩܟâֹͤӽƥίóϩɉΛӓDzЇđ͹öčʏƘǗ÷ǡҙèԡܴōӄˏBωؐƺѠ¯ȤԜɖƈݲ"],encodeOffsets:[[-58518,6117]]}},{type:"Feature",id:"SVK",properties:{name:"Slovakia"},geometry:{type:"Polygon",coordinates:["@@´»ΊŖш̕ӺǶЈđ؂Ţߚ͓ɷɓǏ͹dzđ࣑ʮ˟»ȟȡЁĿěÄХŽͭ}ãǙ۷Ļ̱ĠёɌċ̆äńŢȂόa˺ĔxþLj¢ÆȒȖ˜žưʢD"],encodeOffsets:[[19306,50685]]}},{type:"Feature",id:"SVN",properties:{name:"Slovenia"},geometry:{type:"Polygon",coordinates:["@@ۜÝъȐܾtLjƘƘUǎ˳ڝɟć͹̇đHɻͣh˷ƎƷƙב†ȈúȫΨĞа"],encodeOffsets:[[14138,47626]]}},{type:"Feature",id:"SWE",properties:{name:"Sweden"},geometry:{type:"Polygon",coordinates:["@@ࠁוƀԥ೹ڭྱܡؓஃײףߦүޗॅ࢑ȝ͍තӋ޿৳ĆӅڗঃˉߐ۳॔ٓஐφӜּۨ˦ন՝ю½ૠղ߀࠰ä̧ͬ˺ಬஂࡀञֈײ߮GɞҶཔƉŬքԸ”૪Щ಼ֱv಑˴͛ฃʃ"],encodeOffsets:[[22716,67302]]}},{type:"Feature",id:"SWZ",properties:{name:"Swaziland"},geometry:{type:"Polygon",coordinates:["@@ǡύӭěԅҖS̄ɰ̀ĂʔʐÒшƵŰϕðω"],encodeOffsets:[[32842,-27375]]}},{type:"Feature",id:"SYR",properties:{name:"Syria"},geometry:{type:"Polygon",coordinates:["@@࿩ࣅऩͬgNŖŶ_ΈȸҠҜ̈́Əͤϗ¨ÿٞȶΌɤȀɤȀ°Ҹ˞Ǐऎɺ҂ƿۖFॴ̀Ґaक़žїԽҡȹĂؗͅ৫ᇵ࢓"],encodeOffsets:[[39724,34180]]}},{type:"Feature",id:"TCD",properties:{name:"Chad"},geometry:{type:"Polygon",coordinates:["@@ĎЄաnDզΓ̶δ૊ੴߌ¬ન͖ၼǼΰΓ˾_ˌ̽ɔȷರࡔҠ…ྑ…ྏ¦ ܥÐϧإɝԯǬȝˡʳĨΏɑΕč̯̎¶Ǯ͕Vӥ̲ʛYȯՏƛэͽ؉ࣹ߅ϳ߹¾ʁûĊ̏ѫ̋Σ͟੓͏ȽȐƓhƹɍۛÙƀɪ˅ׄşΐλƜӷӪǼІϦċʂÐҸSқކŒ֐É֐ͭՠ"],encodeOffsets:[[14844,13169]]}},{type:"Feature",id:"TGO",properties:{name:"Togo"},geometry:{type:"Polygon",coordinates:["@@ڱdzȇ̎ɡՔãкȆݴɁ̬ăڎD؎ΕѠÖˀ݂kŅѵʲʝ̈̋ŽЭǜǥኝȺׅ"],encodeOffsets:[[1911,6290]]}},{type:"Feature",id:"THA",properties:{name:"Thailand"},geometry:{type:"Polygon",coordinates:["@@ݭϬܗeŬڈ݉Káऋґ௯˙ݏÌ؋ն΀ދưܭҶӓԚĭѤѧ˝·ևĵßќۇςƣƭͧ͒ƝжҁӄПЌƏӳǃҲĠԾʚ߬ТࡸҤ޶͟ތ`϶ĩҸ֕ښȩф̄ƺ̮ܶ·ֆՓؘН݆ΠƴϦࣦצœӬθӔȘθʷ´ԍ֨ȷࢭpݫࢰԆʤƧӰzǜَ̊ÍٖڽÀࠥںܷ›܅˙ϛ޿ŦગDž՟ۧȤ১"],encodeOffsets:[[105047,12480]]}},{type:"Feature",id:"TJK",properties:{name:"Tajikistan"},geometry:{type:"Polygon",coordinates:["@@̭ʷࣳƖāӛ࣬Þਢ˗འŶɈާˠĐԜȓ‡͛ŴӍࡿBׁØԻϕύĉ̉ǯͩˠþ۸ʩ¢ĞʲғȐα̇ė͹Żūԇj˕ϩ˯nj؋ˑʱĺӀࡘǹض؟ȨɔφۮŸЌҬˌբ૲ȜǩϵŤɹΎv"],encodeOffsets:[[72719,41211]]}},{type:"Feature",id:"TKM",properties:{name:"Turkmenistan"},geometry:{type:"Polygon",coordinates:["@@ñۼطŠॣݔڣĠगюׯþσƽ֙|ׯӓ݇NjƻרŪ࢞ٽ˶Ɏֺ֏¸Ȇ۾ߊȵ݈ˎؓԎʉӔڱɋď؛ʿհψ˨ॖǪ֨ɻךڅњ¤ॆ\\Əцܖ̂۾ӦଆѹĜڡ͐ǣࣦžˮƳаࡽ०ׇոЃ࢞Щ૤Ϋwԥʩ€Ѕɤſ̙۽NjǙڥӁʭڏŵǫϟهŏࡩ͈"],encodeOffsets:[[62680,36506]]}},{type:"Feature",id:"TLS",properties:{name:"East Timor"},geometry:{type:"Polygon",coordinates:["@@IJȤܢȌז†ˀŀ͆Ľ̯ɫ࢕ο۳ʋeʬďǔ"],encodeOffsets:[[127968,-9106]]}},{type:"Feature",id:"TTO",properties:{name:"Trinidad and Tobago"},geometry:{type:"Polygon",coordinates:["@@ӚŊǮ‡‘صۭġƯúʒɲiͪ"],encodeOffsets:[[-63160,11019]]}},{type:"Feature",id:"TUN",properties:{name:"Tunisia"},geometry:{type:"Polygon",coordinates:["@@ΩພԭͺQȰۉԄóنԮҶȢۚƃߠǠќࣶͺךĵ}ы܊̲ÒljпЫMϱ̆ȽōܫփхDŽқѤaɄЍ͊ſ³٥Хʋʵˏֽ͓ĘΑïΟЧț"],encodeOffsets:[[9710,31035]]}},{type:"Feature",id:"TUR",properties:{name:"Turkey"},geometry:{type:"MultiPolygon",coordinates:[["@@஺͗ঐżܤõলѬࣆ¢ߴЭƜ̑ăУزȻͨʕֻʇˀ५ǏʻҠڧЕƙ̏Ɋ঍ňίŽॗŽҏbॳ̿ەEҁǀऍɹ˝ǐ¯ҷɣǿɣǿ̱Ϡ͈͂ԟí۱ȖֿәౣĥڹҊࣟ†ȗΑׇij߻҄ࣻeӽ࠶ؗҰЦٸՓВठߨಒ’Μྀٔŏ৞հ঒ʄർlุף"],["@@۫ҏ˃Ϻ\\ǦȦĦʺՂХɞࡦ˄ܤőĴ͓ܼ˓Ƶȵি±Ωʷ"]],encodeOffsets:[[[37800,42328]],[[27845,41668]]]}},{type:"Feature",id:"TZA",properties:{name:"United Republic of Tanzania"},geometry:{type:"Polygon",coordinates:["@@ƚġᵂႋÌӣ஼࠿ϱਙ¸Ӊՠ̩~ɓɳԓ¶ʭÇГ̌Ճΐ̰ࠡǿڝӣࣿ͛ԋb̙ʥבsɕŃঢ়ʂكåɽଢ˵ϺǛɶࠗƾӉʨՕƘͯƘΗɈґ੖ӣҺǗӤČѨƯޞΎ ̨̦͜ѬȺǮS˘ǷȐ·ͨʐł¶Ӷͫӄ̎Ķऄ[ႎà"],encodeOffsets:[[34718,-972]]}},{type:"Feature",id:"UGA",properties:{name:"Uganda"},geometry:{type:"Polygon",coordinates:["@@ः\\̍ĵԇʷȯĐPوȜ͎²ڬǰϸ͎Ѭ͔ɠ˒̘͵Ŗ¼চΌɮՖȉڰȠעEԬϮЊ׍İсτ९̧ؓЯ֋ʉͽTࢹႍß"],encodeOffsets:[[32631,-1052]]}},{type:"Feature",id:"UKR",properties:{name:"Ukraine"},geometry:{type:"Polygon",coordinates:["@@̾“ɄȒʮ¥ࢌĆ՞Ӈȿǝêʻڠ£̘ηkǑ੪̏٢Ƅ԰ϿӮVఊ˙XʙͿѯȆҩƃ˩߻Õџɻύڡã֑˕޽«ܣ̻¸ԹЪȭࡨ¼Ǐ̛ँơଛӟұǠȄЂࣽʘƨLjߪ˪ʑȔಯɆË̼ީĻ̷ҧٱةϟƠЁƉϑƺɂĞƦ˾ɲˎÑƮǬäĊśӸ{ɞØƽĎÐŲ̉ɈŧΘ̩ƐÒ˶ϝɦΉŽأʾ֑ĉȧŭΟ@Ƀȟاă˹ŹϷȴ՟HԳĢγǵÍɤұɮǐͺɸɔȀµɑϘބۦиİĜɾхܼДҢɪٲnࡖßबȫڎi͂ŧ̀Ʀɚȝݸ¢ͮąÄцʶȂܞº"],encodeOffsets:[[32549,53353]]}},{type:"Feature",id:"URY",properties:{name:"Uruguay"},geometry:{type:"Polygon",coordinates:["@@ղĚࡆٯ̺|ࡺ՟ڈҫӠֱχЉɸӇεՇॉұاǚғěޥΰ֫ԟҬÞլǾȈS࠸ɤࡺȾڦ"],encodeOffsets:[[-59008,-30941]]}},{type:"Feature",id:"USA",properties:{name:"United States of America"},geometry:{type:"MultiPolygon",coordinates:[["@@ũƕȽŤ|ɾƓ̨¦ĤƤƎÍǔ¸þÜe͐ƙƬñƌőɊ̍q¯͟ǵˏſ"],["@@˭ÑƟǮīèQÀĈî̘āɘŹëĵ"],["@@ĝ҉|Úĸа•"],["@@­µÓŻˆŃȒ’ɤŚêÃʐ˥"],["@@ıĉ˱ƴªÖŸĈȘijȝ"],["@@Ƭңʼƛז½࡬ƅࠂʹڼŊਖɓ˞Tݨʄ߂̧ࠒ͗ں˩ٶˏĈəȢĉ½ĉɦǎĔ¦ȣǜƅɴ@ŬĹĽƫ࢖ЁǶށǚܳʗӹЁҥȁ̍mēĦť˸Ɓɂ@ঊ҆ࡾƀસмfĐ÷ʰƉǒϜƆࠜHޘAˎ͞ŀàࢶ؄ϜƸ౦N໾BĎȺː¦Φž̖Ϣʲٺٚي˨ə֜ƜώʏAଧռӅƢ˝࣋Пࡷ̃ࢱʝѻӿƛȋSѽˤѽΒsė̬ʦȇãʇ֥ƋЗhةƥλ¥ӥ¥۫ʏఀǂʠǃ୳ʥ՗C|ĺʭɷʚǹ׽ؑ٧×Ɏȁª˟ɀǪҍȼƭ^ͅˏ͛ҿڡûʺֲѕ͎įۦljεǴՑևƀׂ˓˜ߛʊÍĖ̃ŠࡁՕدࢇʝցӱнÁэ̱ţ˭इձӁЍЅӽŻׯƪ׍ˬܗώשLεЊঅ֥—͛ȿԡʣŃЯĺƁς͋ȖѻܢϹٞű͢Ǥ֐ɽҦٻ۲͟źࡑϡƭ¦СϼՃȺोŁݗĤٙÍΏſƲɟaͽǴǓLJō̵Ů́ǃ؍€طѺܻĿ؏ȚԹÏۻȝއح࠳γҝБȕϗUׅ¨ЕDŽ˹͝{׭ȂٽʺɽЄȁטӷӐ̃ӰуֺףͲۉgՉڑۣʦѡʪȽҦ˧Ѯӿτїˈ̩̖ป@C΋ڗ@ဩOቿפ౓ТĀǒ੩ĝॕÝƙіխӚϻĴğʌһ¦̝ɪޭĊɉƌĹҢࠁࡊ۩ୠˆȚχˤٯ۴řۆ҃ҞȀۢ…ܜˍ٢͠ߊĸނĺނƱૼˇܘʓ϶ĸǐ௒˷҂ߋȺɜƇې˷ێᛸ@᠂@ࠜ@ᢢ@៚@ᡀ@ᡄ@᭰@ᮞBაAF͔˴J"],["@@࠽͋ѕɐŽЀބ̘҆Ÿ֐ÉΤʻܫЍ"],["@@ԧŽսƾԛɮࠦƞښùĂ͑"],["@@԰DžԾĒڸɛ࠲őéĝُDZٕǾ͋Ʋݍµȧôº̈́"],["@@؊ϛώnjහ»¹ȕ౾ƛࡨČᄚ˅ྤā٨ʼn૦Ǝౢʧࣲŝ@@MᷱIⷍࠠ{ࠌɵהρݜցࠈҺࡈ˖Ҁѡ֤·ޒϙՂ׽࡮य़ේ՗xՋұЙҥ͂ݍˌʃܺએںҍߎ߯Ä೷rটʌ჉ࢎߩDŽ฽̜୑í࿻ϬৃΨटǯǦ׏ҫÁঁǫ݉˱झdzťӶϚࠚࣀʶɱɂੱҵֵ֑௅ױؚСߏ׿ࣗΗࡁʱȻωಽѡ˅ϿছΫֽÞ޷ɻ࡝˹ۧ˫෹ʉſƘऀϾࠔʸࣆҠਬĨвΈ୘ԊȈǚب̒ƢْђӸॹʫ˓Ơҕ̧շюɧ̝̽м࠿ͳԩBïԄƲ̮ե̚થLJ܁ЀַȬIӈ٩Ϊ͘ӘۆҸ̚њںÖ־ƇڴМ؎ï٘ʼƻϨҹưج͖ԩWࢻǽʯȃڏȄஏĥ௷ȬΛ͸੟Ӧ୾ΘመШ۔@ŕнᄢŽڽԶਕ͌ױр߫ΨଽˈҺѲ๰‚ਗ਼ϦȨФ࡬ЎࠊĪཪώޜÉಐ҄ౚǭ"]],encodeOffsets:[[[-159275,19542]],[[-159825,21140]],[[-160520,21686]],[[-161436,21834]],[[-163169,22510]],[[-97093,50575]],[[-156678,58487]],[[-169553,61348]],[[-175853,65314]],[[-158789,72856]]]}},{type:"Feature",id:"UZB",properties:{name:"Uzbekistan"},geometry:{type:"Polygon",coordinates:["@@xԦૣά࢝ЪշЄ॥׈Яࡾ˭ƴࣥ͏ǤěڢଅѺ۽ӥܕ́Ɛхॅ[ᶾᓘӺƾïದ׻یͅߤݵঢŪ෸à৔ؗÙࡅЦMǢۍ੬ɲЉ̺Lπ׺૎הӖƺʠĉ۵խئ́ײȾ়ѷ੽؁ٕĊ΍uţɺǪ϶૱țˋաЋҫۭ ɓυؠȧǺصҿࡗهǰҳN"],encodeOffsets:[[68116,38260]]}},{type:"Feature",id:"VEN",properties:{name:"Venezuela"},geometry:{type:"Polygon",coordinates:["@@yȣӱĭ˜ϡYѭυӥ͆ڙδÆȌ؈ʻ̒§َਸ਼΀řІ̎ˆ̞ןל_մҵ˧ݮQ࣌ĔӖϕٞĻҼʾXɄਨ¼৖\\܉ʛ˼Їڦ×ِЯƆڧѬn͢ȣڕӱó̫˾̷ȽƽԫƉjϱɫɱّ֪Őʁ̭͍ऱ̽׿Žʏȣڛɀثņƿýϔɑ‘֝ŜՉ܆ï°ǭ׷ʅĭΣΉƏسȝNjʱٷÅҧѼʯ࠺ɟ̧̌Ȅюм…ȊʅʠǛ֒à׼Ȉ˰ƲҎ̓Ơӏĩ؁®ͻęסܢӥńઉăȧ̊ȷê‡ǬĴ̶áͺȃȂŅϮѡÈɸӮĺ׶ʔ̸͘ʌɈрդƖ"],encodeOffsets:[[-73043,12059]]}},{type:"Feature",id:"VNM",properties:{name:"Vietnam"},geometry:{type:"Polygon",coordinates:["@@૭ܗ۫ߍȁ׍٠ࢭ޺ળނԱԞګϪ།ŕ๓۫փ१եۇ۫਷ޱ̧ՠʀ֬دӌܬ͸ࢦÔσԚප٨ļ৖ț֖ƶࡀɃצٍאՋ݌ۥ঴৓Ԋʊ̠՞ɘ͙ܺਙPϕކӭڐҊȴڢIࠈĬܒ҄К̿ސƵƃӛАͿࡎɓ"],encodeOffsets:[[110644,22070]]}},{type:"Feature",id:"VUT",properties:{name:"Vanuatu"},geometry:{type:"MultiPolygon",coordinates:[["@@ˣō˭ςŒɤՆӗ"],["@@ƌڱɥŀǩ­ťɴi٢Дʵ"]],encodeOffsets:[[[171874,-16861]],[[171119,-15292]]]}},{type:"Feature",id:"PSE",properties:{name:"West Bank"},geometry:{type:"Polygon",coordinates:["@@@ԣŭʙЃŕ˜ɜɌŚɁĦǬ̤֔ś"],encodeOffsets:[[36399,33172]]}},{type:"Feature",id:"YEM",properties:{name:"Yemen"},geometry:{type:"Polygon",coordinates:["@@؉ɥNjύo˹࠷Οഇϻݩףυ±ʥºӭΑ՗lj۷©ɃµǿɛəÕŻɇеlˍœ׉¨ɓӬzҠƍʜǑتʋΊǚ¤đϨĸNJ™ξςˌđΠɞЮΊɓɬúॺnƸċ߼č͐¨ɂ˫ϺƖ׼ࢦ޸Ϛᝒ͒ڀ൳˞ח"],encodeOffsets:[[54384,17051]]}},{type:"Feature",id:"ZAF",properties:{name:"South Africa"},geometry:{type:"Polygon",coordinates:["@@ǏŧΣяɻћӇ׻ोࢁףԋًϣ࢛͙ѓ«ŇɷԛŰеDž࣫NJԙĹΏ¬ࡿͩܓƃԱͅϡoΣ̚˳fαϒŸśŏɦLӰ˙֞˔ƴs٤ս޼х܈AF׽તДдͪɯƘΫϘÓՈǃҌÖݤіB᷌ɨűӾߙûԟȈ̏׼ĒрϒЊʨȶДЦȚΠķВɽۂ£՞ȜĐʾƨДҚäʨ͂˪֔ݮغஒؤ΂UОƛ˲Ķ҂ċД஁ɔׯƫऩî̟чƶʏÑāʓɯ̿T̃ԆҕӮĜǢώْQȿؑıۥɑϛֵщ","@@νʶϻǟҕ҃͡Տـ٧̜ČƺˎҴƀƜ˜ʴФ̅ʪ"],encodeOffsets:[[32278,-29959],[29674,-29650]]}},{type:"Feature",id:"ZMB",properties:{name:"Zambia"},geometry:{type:"Polygon",coordinates:["@@ІϏɊ܋ƝɩǙڻLjۡ˃̇ʭޭѶɓᢇۗĂׯٍřӍͯĹ̛̅ßܵۓҭխ˳o˗ĬऱĠƯÚOêͧȎկ¶ۋȑչԾ֣یžᦶშYí̂Ű̀ƧЀĪТėʺ̂q¶ʽϾrՖûˬϡڨŝԤˆȌѯ٠ş̴ΧΈҥ٠Që࣠ɱƳח͞ɧƬļࡈƬসȉψʈ՚ɤĶ଀ƚͦđΘɇͰƗՖƗӊʧ"],encodeOffsets:[[33546,-9452]]}},{type:"Feature",id:"ZWE",properties:{name:"Zimbabwe"},geometry:{type:"Polygon",coordinates:["@@ҁČ˱ĵНƜ΁VՙϞٯźʙՒC̒έĞ्ई˃ӢǛƮ͓ڤलğ˘ī˴pҮծܶ۔̜àĺ̆ӎͰَŚÆ̻۬hϴǯǺȻАÓѦˑF੟Ǐ׋—عƊʝħӵŵùɛ؅ࢫ॓"],encodeOffsets:[[31941,-22785]]}}],UTF8Encoding:!0}}),i("echarts/util/mapData/geoJson/xiang_gang_geo",[],function(){return{type:"FeatureCollection",features:[{type:"Feature",id:"8100",properties:{name:"香港",cp:[114.2784,22.3057],childNum:1},geometry:{type:"Polygon",coordinates:["@@™@}ScTʟ@cWuJÁ–]„l¦RLj¼BĄà˜ ŽH@TOHCTDDDHDNAT@PEHDDNJLX@BABALHFF@DKHADBBLDHHFBLEJB@GDBBFBADDB@@KFAFBBJJA@BB@@FFDDADFF@FADDDBJC@AFBD@@DDD@DAA@D@DB@DHHBFJBBFEHDFAN@DGDC@DLCBDDCFDlAFBFCBEF@BC@GDAB@FD@DZJ‚X´HĐMja@Ý`p_PCZ@lLnRGSDMFK|a\\Y}­ƒ§™Mën"],encodeOffsets:[[117078,22678]]}}],UTF8Encoding:!0}}),i("echarts/util/mapData/geoJson/xin_jiang_geo",[],function(){return{type:"FeatureCollection",features:[{type:"Feature",id:"6528",properties:{name:"巴音郭楞蒙古自治州",cp:[88.1653,39.6002],childNum:9},geometry:{type:"Polygon",coordinates:["@@˜@ÈÒĊanwŎV„™Ȯ¦ͪŃĢ„ÜōȂçČéƐżLɆóĊ‚ĊaʊŁ±¯²Um»ˌmÈ»V™ʠţWÑůǓ郙ôƑƒğÆīŎī@Ƿ™wô™˺LÞ¯ƨVǪуšĢ™ȘV°wĢŽôk°¯ƒ»΀@Ȃ»ĸŽǔ@΀ƒ͔ôôLɆó̐ÝɜLɲōͪƒƨóŤK@ī@IU܃ÛmȻţǩÝ˹ÛljťǓǫō@Ɲ²¯VçōKͿŁΗÇţ»ƽ™ɅƑLÓŏÅÅɱV@ÝĊU¯ÑĊĭÞLšÞŎJ±̃XȣˌōlƒUÈ¯ŎKÆƅ°™XÑܱnŗġV¯™óaUƒƧUōŁ„Ñ™±„çɲ¥lĉkğ°ƒk¥˜ƒnğţL¯ÝÝUƽĬ΁lķ°@„ō„XÿݯV»ŹLʉÞɱŤĉó°ÝJ™¦ÝKÝ£ţܙÈĉ@ƒxǩUċƑ@ky͓¹™`U²ĉVġ»ğa¯¥ť@ĉ™‚ó@ŻÛÛJƒw¯nó¯ġWƽʩķÝɛwĉĕݼȭÞķō@ó£Å΀ƑŽ¯ôȯÞ¯Ȱ™ÆōèĉXǼó@ݚnºƒĸ„ÞVƜĸȚUʶõˀĵĖɱŎÝĖVࢰӒѢ°˘nϚVˌ™ÈmɼĵŦW¤öʊõʔ@°ÈXVŽ™ènŎȁb¯ǫĉ„±Èğ`ġwōÔğ»mVVŽ„Ý¥ó@™ĸķô@ššbX„ĶmV²²`Þ_˜˜ɴbͪÈ°„ÞWĸÈŌmބškɲŽÈUÆ»n¼ǬVķĸźô¯°n¦ɄǜÈ"],encodeOffsets:[[86986,44534]]}},{type:"Feature",id:"6532",properties:{name:"和田地区",cp:[81.167,36.9855],childNum:8},geometry:{type:"Polygon",coordinates:["@@ƨ¥šèź٨ΘƑᩄbUࢯÞĕɲōĶĕöʿVʵķșUƛƒÝ„ķm¹Þ™ô@È»ĊWŎçšÅ°ȯȰÝ°óƒÆͿĉ»̽çnƒmɱĵƧºóU™™ƽ@±wóL¯°̻L±Æ¯Vƴķb¯VÇ¥ğ²Ǖbk¥ÇKlÅɱġ@у™óK@™ÇaÝXğţxĉČǫķê¯K@уaŹ„ƑKƒ¼¯Vóaónġw™óÞéU™ġbóĉğÇl¹™aUóğKW„Vůn›ÇŋƑ›ķnʇ»óxĉw™çÇ°Åw™°ċ„XŽ™„ób±ƒkÈÇJ—ƒm²ţx@ÒݎšŦǺn„ó¼n°ÇbUÒ±¼XĸĠłƽXmwĉºƒzÈÜmnxmx²ĖmҚbnŽƧêUºĊêÆVóĖóUĉ¼ÅĬƑ°ɆƆŻŚlłÞLš¼nĠƒ¼@ޙšÞź@ŎÞ°VšɄɴжϼِ͈Ŏ„"],encodeOffsets:[[81293,39764]]}},{type:"Feature",id:"6522",properties:{name:"哈密地区",cp:[93.7793,42.9236],childNum:3},geometry:{type:"Polygon",coordinates:["@@WnŐÆĶLĢ¦ţºź„lxÅĸƽŚ‚Ʉ—Į˜è@ô²ÞUĔƐńV°¯ĸX¦Ɛm̐bƒ»Ɇa΀šĢ™ƐLˤ™ȘÑnƒІljĸÿn¯ĶaŎ¯ĢĕȘ¯°΂œla¯¥™ǕǔwˤӱlťО̻nŻmɃĕċţUw°WUóƨÅţķ°ýV±óÅǓéʉ¯ƽŁƒéōǖȁÝƏůǕw˹ǫȗǓƧǕVý™é@ĬţLƧôͩ„ɱŎɛK̏ÞɅôóK@²@°ōؚ¼lŦ¯ŰóƜÛlV¼ķ¼ƒ°kȰ™Ű„ĠƒǬ™ŚÝŎmĖ`@ÇÜn„"],encodeOffsets:[[93387,44539]]}},{type:"Feature",id:"6529",properties:{name:"阿克苏地区",cp:[82.9797,41.0229],childNum:10},geometry:{type:"Polygon",coordinates:["@@VƚxˌŎÞŎƒ°n„ȂÒ°²VĊ¯VğƾˍǬƨÞÞKÈÞĊVźôɆÞĢèŌôWČ²ŤVÞĸʶbl‚¯ôn_VÆĸlmÞnVź_ĸ¼Ȯmǖ„šéĸW°°„ĸJ„kʠ¼Æw°¤ÈƒlxɆzČºĶI²ÆǔUš°ô@Þ¦‚ƒUnUĠ¼ŎÓĢxĠ_²ÇĊƒǬ°ŽȂamōšçUÇW@¯öʓõʉX£ĶťnɻšÇUˋmϙ¯˗ӑѡᩃaΗƒœɜ°xWƴUxɃÒˣ¤Ʌwğ„ʉōóÝŹ±°ȗ@¯„ƃ²¼","@@ō™гwȁ¥Ƨ°ŹÑķV™¼ÞêĊ»‚lĵšm¦ÅW@ĀôÈźaɜxÈbÞÆĶIОŘnIÇŃÛÝĊÑĠƏ"],encodeOffsets:[[80022,41294],[83914,41474]]}},{type:"Feature",id:"6543",properties:{name:"阿勒泰地区",cp:[88.2971,47.0929],childNum:7},geometry:{type:"Polygon",coordinates:["@@ɲˣĊIÈ¥‚ÅU±Ċýkō°ƒĉƽó»ĶƽXóʵʵ™ȯƑÅȁɅ¯ĉ@ÇሗK֛@@ˤV֜ʵрƒǬVĸƑŎ@ƆϯÑóŽķ@ʇ»ķ¦έmlÈĸĊX¼WźÛÞÝѸ‚ĢČþ„ĀĊôάVö¼ĊUƨ°°èŎČUÜƐóôVôôŽ²êȘlˌç°`n²ǬŽĊaš™ƒÛ°±kğmm»š@°ÝɆÛÅÇVaݍVm͔ğôÝÈb‚„@„ƒ™n¯š™ÜUĢÑĊ@źīżWŤÈǖWôŁÆI²ÓƨL@ŽĊX„mmÑÆ»ȰÑkƒĶō@ý°m—¯"],encodeOffsets:[[92656,48460]]}},{type:"Feature",id:"6531",properties:{name:"喀什地区",cp:[77.168,37.8534],childNum:13},geometry:{type:"Polygon",coordinates:["@@Č@°ƒĠ„ôÓô@Ŏĉ@Ƴĸ@Ť£ĢlVôWVóřXĉŤêÞ@ƐÒĢÑlèÈV@šĠIk°ÆŘ@ÈÈĀ@ǶťÒğ@š„@ÒĉlŻ_@šƧĖÅĬōÆ@bźÞnƒƒlVœÝĬšWƼʇ„ƒÝÅ@ÇÅÈwWóĉ±ğz‚ĬČƨƂÝIĉݯbÇÑĉƒ¯ʈV°xUŰĊ¤ƪ_ôÓɚI@lȚXȮ™ŎlɴȘ՘š„¦ɲÆʈ_ɴŽźŽôÞʊŎĠƒɆxˤ£ɄÑVwXƳ¯w›ɛŹ٧™çƧ¦ōƒُ͇еϻɃɳU™Ý¯@ōÝŹš™@݄»mğ™»ÝKkŁżřɅƅƒ¯ÆīĊ»ôVôĕÅUĉéV¹ƨém™anѱĕnwmwnÇۄyĉ¹ŹlŏkĵèķmōÞġKñÔċKÅèĉzƒŽ„ômxȗÿƿI@þÅČÝKÝ°@¼ÈVºš@ÅĢšÆUċłn„ÝÆǕČĵJm£ÝJ¦@ĊƒxV°ƏLċ¼ǩ™@™m@ÅĢómÇÆğ¹Çš™ÆšĖÞKšx„wô¦ÆÑÆL²ÆƾŽU„Ž±ŚÅŻĖ@ĬŤÈñ„@ǔÇx„Èǃ","@@VÇ™ţ°ğUĠ¯mk¯ó¥ķIġÿƏbƒ„ĉa±ÒĸĀlKU„_m»nwšŽ„m@ÈŤ¦ĉbÞ°±Þżł̦°ĢŁVé"],encodeOffsets:[[76624,39196],[81507,40877]]}},{type:"Feature",id:"6542",properties:{name:"塔城地区",cp:[86.6272,45.8514],childNum:7},geometry:{type:"Polygon",coordinates:["@@ήnĸ¥ʈ¼ĸ@ôϰÒ@ƅƒōUķƑǫʶпU֛܃LګK@΋ĸ@Æ£ÞġÅĠċšLV݄»™@Å»Ýnm¯š»nŻĊ@nķŃ@¯ómóÛÝǟ¯aÝóȭ¥ƒšōUmxĉbÇї@›bUº¯X¯ÆƧbVÒĉnǕw¯°ƑŽV„—ŽÇ@kx±Uƒšɱn™ŽÅKƒ„¯ƒĠǠU°ɜL@°ƒxnĬ‚ĀŋŎÇLƒŽğšϱÞέƜkôÅĀǕłƒĸĊŤUŰĢ°„¦ȂϰÜɨ°x@°żǠÆƈČVĠ»ČL°ÇšbĊÑ̐óÞlĶwބɆVÞwǬxǪţȼÜLŐĶˢ@","@@óKĵĀV͈ĉłƾNJÆŤƒzXl°ƒÆL²¼źŽôÈĢǔ™¦l„ô°ɜÞʊĠğŃm»ʵƳƑʝȗīV¥¯ĉ°Ñ@ŃÅI™»ĉmğn™ƒašƒċƨbš™Vğ—w›ġ¯@Uōa™ĉÝJğÑÆŎkŎÞĀlźƒ¦"],encodeOffsets:[[87593,48184],[86884,45760]]}},{type:"Feature",id:"6523",properties:{name:"昌吉回族自治州",cp:[89.6814,44.4507],childNum:7},geometry:{type:"MultiPolygon",coordinates:[["@@መL@È°ĊȂɆƒÆĊ£„ťôWÓɆbĢÅŎƒÆ¦ČÑW¥°ķU¯ƏŃVē±Ý@ó—ç˜ĭɃƾřÆķkwŹƒŤ¹ġ¥ĵKŏÅXmˍщwǓ¤Ƒ@wóōVķ£ɱšġôÛa±Òȁ„óèţIVŽƽ¼k¤ó¹ġJmx—»ÝUƒ²™@ÅƃĸǫŎ„ĊmŎǬ՘"],["@@Þô°bÞǠôÜôn@°ĸń˜Ƕkłƒ¼UޙKğȂÆÝĢŤķ@@ΌڬL܄K@ˣȂ˭lĉńW¥ĵVÆý@ŃÞēUŃȗƅ@ŹƩǕĉ»k»Ç™VğóřX™ŻKƏŽċêȁèÛŎġƒͩń"]],encodeOffsets:[[[90113,46080]],[[87638,44579]]]}},{type:"Feature",id:"6530",properties:{name:"克孜勒苏柯尔克孜自治州",cp:[74.6301,39.5233],childNum:4},geometry:{type:"Polygon",coordinates:["@@ˎǫĠƽ°UUĉ¯±ȁÑmƒ„¯Ýōˋō™wUű»ÅƑ°ƒȘ@²¯ɳʇ`ɱŃ¥՗™ɳȗōkȭšșW@kəJóÔƩ`ĉ£Vů¯wU°ʇĊ„ÈÒ°aĊÞÞJŁċƧīĠyĊ²XôÇxÈÆÆ@„ÞʈƒÅ»™XÞīU›Ƒkm„ŹÝ@aŎÅÆīƨĕ@™ż`Ċk@љƒĠ@ŦÑ@ǵÇÿ@ÇÅŗl¯ğJ@™ÇUkçġÒƏÑÝ@ţéWĊôŚUŽóXUġkţ¤ķ@@ƴōĊó@óÔğƒ¯„ċ@@Қ¤kôˣŰ͓„k»ƒKX¯ċwƧôğɐšÒôIVƙš¯UķǬķšnŽ™¼ôb°ÒȰVVÈÞ°ƒĸó¤V¼°„V°²êƒlĢ҂Uƨ¦ôȰƴĊVV¼ǖIċĊ„ÞɜéšnČW˸Ǹša„řÈw±īšçĸ¤ĊšôšwšŽĸUĢ¦˜éǖĬ„Āô¼lÞkÒ°x°ƆÞx„šÆV²ǔ»„b°wގȘ¥°n„šŎV@°„„ʠè‚ŰȂb"],encodeOffsets:[[80269,42396]]}},{type:"Feature",id:"6521",properties:{name:"吐鲁番地区",cp:[89.6375,42.4127],childNum:3},geometry:{type:"Polygon",coordinates:["@@ôK„ĉǪa²¼lÜô@ʠê°Ĭ™ôȂƒ²ÑÜbĢóɲ™ĸ¤ŎUô@xƒŽǔ£ъxˎmƒÈÛ@‚_nĕÞōšř„ǫƒğšůlȯ„¯ĸ»U»Ükôƛ°ůkť™»Ŏŗ@¯@±͓óͿ„Ǔ@ķȁ¼Ϳ@Ƒ¼¯°ólġ¯xȗUġšƑ™ǩÒƧUÝ°˹Kóššx@ǸōĬÅĬƑĠ󃄚ǔêÆ°XÒʟŤUšÇ¼ˋnn¼±V²°ȂUŌݜbʟǔɅô@żǬaҎÈ"],encodeOffsets:[[90248,44371]]}},{type:"Feature",id:"6540",properties:{name:"伊犁哈萨克自治州",cp:[82.5513,43.5498],childNum:10},geometry:{type:"MultiPolygon",coordinates:[["@@ĉ„ÆŘȁ̐mÞ¯ĀX°±¼@ƾ¯ƴ°ŎÝþŋ¦WÜÞbȂĉźUœÇmwVUȂóô@ȰÝ΀nÆJn™ƾ™ʠ™ŌLČóǪ¯œ¥ǔaǖšŌaôÝĢLšx„ƒÆLšɲm„™²VlwÈ@˜Uƒƒ°¯ǖxĊmUÑƨa°Å°WV¹œa›ÇɃÈm¥°¯ŹóĸķǫUm»Å¼ÇVɱ™l݃ŋnķÇÝX¯ƒͩÇɳa——Ý`±_U±ĵnWƒ™a@™ĸóšķ™¯ǓV±ÅĵJċ¹ɅykwDŽ¯£Åxʟ»ƒlķI¯ƒX¯ķ‚™êǕƒȭnķ»Ź`±„kÞ@Žš„Ýô@Þ°xšŤŎIƨÆUxōš¯²ǔĬǬlUŚ"],["@@ÞĀlźƒ¦¯ĸŤKޙšƒċƨbš™Vğ—w›ġ¯@ţƽJ"]],encodeOffsets:[[[82722,44337]],[[86817,45456]]]}},{type:"Feature",id:"6527",properties:{name:"博尔塔拉蒙古自治州",cp:[81.8481,44.6979],childNum:3},geometry:{type:"Polygon",coordinates:["@@ήƛϲÝĠ™„ÈKŌōÿmī„w@¯ɛKV¯ğǟ°Ƒ™wġKóÞŋbǕ™Ǔb›¦ǩ°ċôŋKʟšƽšmšÅImŽͿŽȯÞó@ȁôUVnx›ÈŹVȁĊÝabŻ£¯°l„óxȂŤĸkĊšÞyĊêĊmĢxV„ƨÈŽĠX„ŽΘÆĠÔź‚Ɇţ°LXƾŤŤb"],encodeOffsets:[[84555,46311]]}},{type:"Feature",id:"6501",properties:{name:"乌鲁木齐市",cp:[87.9236,43.5883],childNum:4},geometry:{type:"Polygon",coordinates:["@@šŽWŽôŚUĠȚl¼Ċ¼ƪǖ@źȘƆ@ýlܚXVŘޙš¦V¼kĖó҃èkĊȁˮ֜@ǫ՗nōƒĉǬō„ķÆŚ@„±ÞV˜¼nwĢIôºl£ƾ»UŤJôçšó¯īʟéó@kÛ±»ǩbƒĊóLҍÇǫb@ŻɆóʠǓ›aŋÞȁVʉłĉbĉɅô"],encodeOffsets:[[88887,44146]]}},{type:"Feature",id:"6502",properties:{name:"克拉玛依市",cp:[85.2869,45.5054],childNum:2},geometry:{type:"MultiPolygon",coordinates:[["@@ɜÞʊĊýVaŃm»ʵƳƑʝȗīV¥¯ĉ°Ñ@ŃÅI™»ĉmğn™ƒaݚţL°ķóKĵĀV͈ĉłƾNJÆŤƒzXl°ƒÆL²¼źŽôÈĢǔ™¦l„ô°"],["@@ƾIŤ@UUwōa™ĉÝJğÑÆŎkŎ"]],encodeOffsets:[[[87424,47245]],[[86817,45456]]]}},{type:"Feature",id:"659002",properties:{name:"阿拉尔市",cp:[81.2769,40.6549],childNum:1},geometry:{type:"Polygon",coordinates:["@@nIÇŃÛÝĊÑĠƏō™гwȁ¥Ƨ°ŹÑķV™¼ÞêĊ»‚lĵšm¦ÅW@ĀôÈźaɜxÈbÞÆĶIОŘ"],encodeOffsets:[[83824,41929]]}},{type:"Feature",id:"659003",properties:{name:"图木舒克市",cp:[79.1345,39.8749],childNum:1},geometry:{type:"Polygon",coordinates:["@@VéVÇ™ţ°ğUĠ¯mk¯ó¥ķIġÿƏbƒ„ĉa±ÒĸĀlKU„_m»nwšŽ„m@ÈŤ¦ĉbÞ°±Þżł̦°ĢŁ"],encodeOffsets:[[81496,40962]]}},{type:"Feature",id:"659004",properties:{name:"五家渠市",cp:[87.5391,44.3024],childNum:1},geometry:{type:"Polygon",coordinates:["@@„çôÑlĕU»™¥ÝšUŗ™WkÛ@þVńÝĔ@ńÅþĶUX¦Æƒ"],encodeOffsets:[[89674,45636]]}},{type:"Feature",id:"659001",properties:{name:"石河子市",cp:[86.0229,44.2914],childNum:1},geometry:{type:"Polygon",coordinates:["@@lŁ—ǵm‚ĉ@mż™¼n°ÞmƼš@"],encodeOffsets:[[88178,45529]]}}],UTF8Encoding:!0}}),i("echarts/util/mapData/geoJson/xi_zang_geo",[],function(){return{type:"FeatureCollection",features:[{type:"Feature",id:"5424",properties:{name:"那曲地区",cp:[88.1982,33.3215],childNum:10},geometry:{type:"Polygon",coordinates:["@@ƨʔĸbܺÞwnxźbÞ°ô@„ĶŽĸIȼĊJŎÈôUšÝƒ¤ǔLސŎ@ĢŽȘblƒôL„ÇźçȤôLš¥ÞIÞ¯Ķxʊťƨ™ƿÑĉXVķŦ¯ȂKÇǕšÑ¯IUš£¯Óƿ£VĕōÞÿÆwƒƑ„£ǖxÞĕ±ÇÝaUÑȃU¯‚UōÈ݃wWŁĵ™±Ý„óĢÿ°IÞ±mÅĢ¯mÿ„¥°UnÑŤĢĕĶwǬŻͪwŎ¼źÇĢ„ĠĕˎŁ°óƨ¼Èa‚m@¥°wǔ„ǖ°ŽƨÇŤœšġƨ„ŎŃôbÈÛŎĊ°@Ġw²ÑÞJƃÆb²ƒ°êĊUނlȲƒV„ÈKĊÒĸĉ›»ÅôťUÅǃk¯@ǂÑklǁÅl™Ģ™VÑóƒ@°@„ÛĸƒV¯ƒÇĊ™n¯Uĕšƽ¯m›¯b™È@Ò°Ĭƒbĵ›¼„‚kxķýÇJk£ÝaUÑÅóĶǟkÓʉnĉƒÝ¼Ƒ„ó»Þmn£m™Č¯@ƒȮÿV¯ĸƒ™k@Ýówƒ»ğ„ġ±ǓLō„ƒšV¼Əèķĉ™è±b@Òţ„UÑóakƒl£™Ó@¯L@™ÇlUóȁš¯aġÈÅĕÝLķ¯Ė¯@WĬ—x‚ÒÈnW°ţôU²ǓÓġ²V°¯ôƒǔÝL—ċšk™š»Ý»Ýš¯ÞƒVƒwۄÝÇōͩÈĉċ»ĉm¯£W¥ţKkóġƏW@¯±kōŽÈ›b@җšÇaƒÆ¯a™„ƒkóŽÛƒÇ¦Ýa¯šÝ™ĉ@ǻۄmƒǓxķƛ¯lVĀÅÞġb™™ÇJUÅV™ĖƑW™zō»ōšƒW™n@è¯ÞóVkwƩnkźÇބҙޯƒƒýğÇUxÆÈnè±bĉÝ»ÈуwšwÞ@m»ÈV@ýÇ°ķ™xƒa„ݯXċ¥ƒÈóW@ôkxlnxVÈóĊkŤġ¼@°¯ŰƑL̻۱ŎÝV—Þ›VƒÇÞŎÇakƞ‚š@èğŎĸżšƾ°ÒšLÞôĠKȰĖźVÈÒĠ„¤™VôšŽU„ÈþťL@ôǬÞlÜÈnÇÒUŚ™@šĊƨW°™°Xƒ‚@ČÇþ„ƴĉÒķ¦@ŽĢôWĀôłUÞĢǬ™ź°¼š@ƒôV°„bUÆnzm¤ƽĸƒÈ"],encodeOffsets:[[88133,36721]]}},{type:"Feature",id:"5425",properties:{name:"阿里地区",cp:[82.3645,32.7667],childNum:7},geometry:{type:"Polygon",coordinates:["@@„Çƾķn£myVŃaU¯„ó™@¯»šŹġǫVÝóŁXÿġó@ĸ¥ĊуƳÈý@ċ„Wš¯X¯ĉƧ‚™š@VřÈÑÇmkÛǫÝ@óŦKÇýVƒ™U󚏃£ğÇÑŹUȯĕğLÝó™K¯Ñ™ƽķŻĠō@灙lƝÈbƍÈ݂„œU˜ÝÞU²ō̼ůƒK°ů@¯UK±—ĊƧbōÇmçÈġƒóšÅób™™źóš¥kīƯól™ç™KôĵUƒÅ„VŃķ¥nÅŏm¯¹Å‚™»@ÑǍóxÝkʇȤU¤ķb@ƒ¯ĊÇx¯ĸĉKm°šĀk¦l„„KnĬȀƾÛ¦WÆŐmNJĉ°ōUţ¤UšŎ°šŎKÞłÆ„Ǔ¦ƒÞ™‚™„ř¯bmUÝl¯Um™ğl¯£șwŎǫaÝnĉĶƒk@¯™K™šō»ĉn™aÞ»ťnkml™ĸ¥UŚŻkÑťƒĉV™ôó°LôīĠU„ÿĉǕÅz±Kƒ¤„²ō¤¯Ė¯UÝ¥Vĵ™óÈťÝwķșÑk¤ó„™ƒWýĵĕ™„VĠƒV󍃎Ǔ„ķ°k±VU±ţ¦UǟÝřJVљ¥XUċUŎlÛƆǕÆȗƆ¯wŏÞÅ@™šĉl݁óŽƒÒ™nUôńlxólÝôێ±™™LÛôÝL@‚ġ¯X¯ÇUżóa󤛼XÒġŎóLk¦‚ôżĸĠ™¼™KġƆô¦„ÆƑÔĉĶ¯ImÒ°¦n°¯Þl˜ÝČn„ƒÒšKĠޚĕkƒlýƾťœšôI‚ĖŤÒnƜm¼¯lnżóÞ@Ůó¦™ôƽĖċŚn°Ý°ôÈUƜƒblÞóŽ@Žǖô°UÈƆ°X„þôŽô‚lѢšŽ²Ėm¦°š@¤™XŽĊblܚzkºƒĖmX„šŎWVšóÞn°lĠxȚa°»żLźƒ„b@Æ°XĠÝȚxĊĕŤaȚ‚°È@„„@èŤ¦Ü¼œW˜ÞkŽÈ@V°lŤkŎ±²¦ƐUšlj°aÈÑŎbĢƒŎbÆ¥ÞIȘlššôVÈU‚™šb„kɲĶn„mnXb̼òƾĖŎ@ĢȂÑôÓĠĖʊšĊÔ"],encodeOffsets:[[88133,36721]]}},{type:"Feature",id:"5423",properties:{name:"日喀则地区",cp:[86.2427,29.5093],childNum:18},geometry:{type:"Polygon",coordinates:["@@ĶĖXþš„ôƒl£šÒĸÇÞxÇŦšôUĶÞ¦°V°ĕŎ£ƒ±„£²LÆyĊǖƒĀğVóĬ¯KóôUš‚ĊŦ„lҙżVÆķ¦kšlnŦmݼšbĊmŎ¼š™šL@°„lĊĵÞmǬbƍȚx°¤Ġknš°VÞkVn°aƒŚš‚š„Ýǔ¥ÅƒÝŁōL¯™ōV™Ť£ŎVĊ¯nljƏXÅÜ¥ǿƽmīƒLkƒl¥™ÿn¯ĊL°ķÈw°ĉ@ƑĸaV£ʈȣÞlôwȎ@Қ¼Æ°ºŐnmÆĸ¦UńƃV„óĶšLšèôkÅ°lĬ™¦Źôššôa™Æ„ôÇĢnèŎÈƨa˜ĉ²‚VLĢ»lţôĉUǂwkmlw@óôX„ÇȦ°WƒÞ„b‚wĸšÈ¯@þÇUn¼Ý@™x„xÇńÞ¼ĊŽ²amçÅÇVwĠȄþ°„šÝƒÑÈÝlŹƪmlxôU°Ý@çšm„XŎ™Ŏ¼šyƒXšĕÆUVÈIššĢaÆÝUÿ°kĸƜǔwn„܃ȼĊ@ޚ°™Þbȥ܄ô„lšƒ°b„ÅÈb˜™@ќa‚ǯUU¯Vġš»ƒ™¯aV¯Ç°Å™mnÑŤçǬVǬ™±ĉ¯¥Vĕ¯Ýk£˜ō—w@±ġÛ°ÇVїƒ@ۘa@ČL™Ƴ™„ƒÇa¯¤ÝIĵ¼U¥ƿōķÅţŻókÝóĕ‚¥¯™U»Æ£X¯ġŃÛkÝ°V°ó¼¯èWôÞĖ„ȎƒŽkĀƧĀówm¥¯JŹÝJݙōVVŁaݐƑ@ƒ˜ğŭǂ¯_ƒ˜ĵ—›VnxŃón›ƒĵxÇĖĉVÝÈğV™Ò󃯐±Żĉ£ķÆÅL™Ljĉý˜ţۃ¯VƒnV¤ÝÈ@°ÅÞݤ™ŰğŁm¦ÝxóKƒ¥ɱÈUĠôêVôÛ¼ÇWÝçĵaō¦óĖƧlÇĢƑŽnŎDŽV¼¼‚ºÛ@m¦ƽ„ĉmm¯ÝKÛç¯bŏłĬ™bƒ¼ÅLmŽ„xť°ÅU™šÝXkŽÝmĉ¦W„¯K„ÒknÝaV„Ýè¯KɅńÝKnÞ¯¼"],encodeOffsets:[[84117,30927]]}},{type:"Feature",id:"5426",properties:{name:"林芝地区",cp:[95.4602,29.1138],childNum:7},geometry:{type:"Polygon",coordinates:["@@‚VÈłVôÈk@š°K@ŽšÔk¤l„ôbVÒŤƒ@ѲašçĸĊƐçU»„™ŎƒǔKĢ²Ġƒ„¼ôx@ޚlƨĬ„Ul¯ÈLV‚šÞJ„°Ünʊ„wÜbXê‚VÞ¯°ššanaU°wƼɴÑWÑ°mÈýÈam¥Þ£Ť@„¥ôblÞĢ„ź¥ôxÈÅmݚ™ƒĕŃV»ĉōŤōnóƒ»ÈīķIUƒĠÑ°ġĸLÞ¯VÒƂ@Ābš¼WôÈ@V¼ôóŤKÈÑU»šwVǫżnWÒÈx™¼‚lŦ£ĊōŤx²¯@ƒÆƒU¯šçÆ@„¤°£„é°k°lšůÈó@¯ŤÇÈĉƒkkÿó¥ÝXķљÜ@ÒóŚÝ¯°ĉówÇ±¦ÅJUÒĉĀķw¯°mĖ¯„±akxÝÅnƒ™»lуK@¯lU™¯UVѯóĊ¯mōğVǓƅƒÞƒWÝÈÛ@ƿô¯ÜġzÅþ¯ólmôʇġĊÅUͿřŏȁˋŁóÇˡōƧƒÇb™w°Ķôk¦šÒƒnUþġҙÔkǔķèó@ƒ²@ŘōńĵyƒzġaݤÅIƒ¤Ƀť¦ğѯ¤ķbóš¯ó±ŽU²°¤ČÜVnÈƂ„ŚŎ°ôĢ„þÆzèVĀǎĀǘƒXŹÑ¯¤ówċķk¦šłUÒġzÇ@ƒ™ÆÝx@²Þ@Ƥ„Uô¦Uš°x„U"],encodeOffsets:[[94737,30809]]}},{type:"Feature",id:"5421",properties:{name:"昌都地区",cp:[97.0203,30.7068],childNum:11},geometry:{type:"Polygon",coordinates:["@@™ŽVĖm°ĉš„ÈU°ķ„ƒÜ¯@@ô„UÒġškš‚ÆkÈlŽÒ@Èl°È„VÆóŦƂœ¼‚a„ÅĢ™Ʉwnōw@¥Ŏ¦°ŹÞmVš°wnÿƒw„wÝw@¯šmÞŗ°wĠ˜ĸkÞğlĔ²¦°@„ĕĸwVóšal@nĢÇĊn°@¦šŽźUXçǔůĸVš™ÆK„ÈÝĠš²ÅĔô@lšŽÈ_m˜„zǖl„šaU¼ôwV°¯¦‚ĬÈa„l@Čǎ„¼™„nŽ˜I„xô»ɜ@ƨ¥ɆŁ„ŃǪȁkƛƨȍʊȡóĭ›@—ÈÇVƒůރĸƅmēƨť™ÅÈʉVǵ°ġVŭÅɧ°ÿnɛš£mƒķ²ŃóÑUĉ°mÇ»¯@mxUĀ¯èţ°ȁÝç„ġU¯ÆÇţÈ@°Çô™Ű¯k¯lƒê¯¤ƒ£Å@™èV°Å„@„±°ţwĉŎť¤kš»ÇwXÑŻmUǬ™xV¼ÇÒţLóôU»Ç@X󙻂a@ÿŁUÑÝ°ķK¯ĢğÒV„ĸJÇĬ„¼môţŎĊŎU¼Æ„„Ė™šnÞÇÆówŹ¦ġƒkÝóaƒ¦ţ@ݤn¦ÇbÇþ¯nXÒɳÒÅ»¯xVmb™b¯™Ý°UWéÛaƒxʉÛmƒ¯ÝI™‚UÇKk°ƒVƧīķ„U°ȭĀ@„ċ°nšm¤Ýnô¼ƒƒÞ»Ċ„ʊmlÔĵǠÆôVÒÞbl¤ÈIĸþlwƒœ»ĶŽ„a¯ī@њǰanœƾ°"],encodeOffsets:[[97302,31917]]}},{type:"Feature",id:"5422",properties:{name:"山南地区",cp:[92.2083,28.3392],childNum:12},geometry:{type:"Polygon",coordinates:["@@°ÞUĖ°¦²ĊôÇÜLǖĀɜŽȘŰÞLĸźêÞ@UÜUŤ°ɞ¯Ü„°WŦĀmŎ„¦ĢyVљŁl¥Čĸôx°£źÒ„Wȗ‚ÿȍUÿ‚çÅyƒýóġō¯ƒřŁmÇÛUċŽ¯£V±²°ôô™ĸa°£ĠÒŦ¥ɄŽ„£ÆJÞ£Ģb„yĶzŎŃ@ŗ„±ô@ĸçlǓšÓĢÑVý„m™Ñl¥ĵó‚¯̻̥™ƛǫÝһÇƧĉyţ¼ҍēVĶĉŎ°ĸmšÞVÝĸ™ÒÛaċ„ó™ŹĖƒèÈÈl¼k¤ÝX@`ސŏ¼Æō¼ÇçĉKUÝÝ£ğ¤@¦ġl¯Òġĉ¯óš™móxÝÞğVšƴċK@—b@ܘ„UÒ¯ÈĢÜ@²˜x—Ŏl¤"],encodeOffsets:[[92363,29672]]}},{type:"Feature",id:"5401",properties:{name:"拉萨市",cp:[91.1865,30.1465],childNum:8},geometry:{type:"Polygon",coordinates:["@@Ŏ²l@°‚XĢƐlôŤLX¦°¤ĊnČ¼ÇĊŎͪÞÈ܃„x„U°Ýޙ޼™¼lšČ™˜ŽÞK„Ǔ°óU¯Ģ±ǔÔV±ŤóX¯ÇmÑ˜wXī°@°ĕĸÞKÆĖĢÇ°bȂ™ÇŁUƒV¯wV™ó¥ƒVÅ£Ý@@±ÞwšÅ‚„È@ƒ¥nōťÿ¯Xۃɝ°ţ¯ÛVVÝ@ŹéķÝKȗůɛǕÿÛKóÈǫšǫUţèmҚn¯Æ°ÈU‚°b„š™¼UĢV°°V"],encodeOffsets:[[92059,30696]]}}],UTF8Encoding:!0}}),i("echarts/util/mapData/geoJson/yun_nan_geo",[],function(){return{type:"FeatureCollection",features:[{type:"Feature",id:"5308",properties:{name:"普洱市",cp:[100.7446,23.4229],childNum:10},geometry:{type:"Polygon",coordinates:["@@U‚ô²‚a@Ž²²Ķ¥œV°šĶ²bl¤kVxl‚@œ°‚Ś²@˜„„y„@ô¦¯„@xƒxVxU„VššbVšÜm¼Ŏ„„ĢmºXXWÆ@ĀœšmŽmXU°ÅÒm¼Þx°w„@°‚XêĠ°»nV°U„l@k„@V±ôī@£‚ƒČŃÆ£„KÞý@¥‚k@y„a@—nWV„UVƒšwƒmƒ£Jƒknm@wmkn‚X„˜šX„¥mUUlUnbš¯°ŽnkƒVInlIUw°n™mk@@mlanXlanmšk@wVWUw™_@éĠašnmUaÜ£ƒmXƒ¥¯@@„óUmݯ¯ÞÝlKnxô£š»„»Ġ„J°aV„UÝÿV¥ÛbƒI@wmŽón¯yÛL@ƒWkŎmș`IWa¯K@¯mUnmaXm™bmak„¯ŽƒĢ™ÒÝm¯mV¯KÇb¯KۜWW™X@a™V™knċLUWV™kXóW@k™a@ƒób¯Uƒwmb¥UUlaU¥U£maķšƒKXkƒmÝ@kwmѯk±ċbUUVakaġ¦ƒƒkL@`ƒœ™a¯xƒm™Åƒ™LUWƒ@ċnŎUV°LkL@b°°@¤š²ƒ‚šnôôk„l°kè›ÒÈzV¤È„WôôƒnV@„ƒ¦@¼Ux"],encodeOffsets:[[101903,23637]]}},{type:"Feature",id:"5325",properties:{name:"红河哈尼族彝族自治州",cp:[103.0408,23.6041],childNum:13},geometry:{type:"Polygon",coordinates:["@@°°nÞôV@ƒ°@„¦WŽ„nÛ¤Vbmn™ğb@êš`VxUX@xš„ƏÞUnn˜WÞĸĢƒšÈ@ŽÇè@zÛÜWšÅêlš²„˜KnV¯ĖĊx@bk@@„°JÆ£Èbl„nnm°nlUkVUUwVm„Kn„‚nVŽÞxVLX¥laX@@xl@VzȎVmšk@b°šÈĸmŽV¦`W„XšƒbUb‚bX¼°x@ašVVkn@lþnXUlVxŤÅ„y‚IUƒka‚IŎĊ@lXx@b„z@‚ô„ƒ¥„_V@l‚n@„ôy@al_l`nmƒÈ»@kƒmXwWK™U¯»™a™Å@wƒmUÝKUa™UUƒ™wWƒ@w²»@kƃV£—mm£VKkÑV@@»nwƒ¥™ƒ@kƙnllIVlnLVakalknJšWmnaUaVÑVVލn¥m@ƒ„¯Uÿl™@™™™VçƒaXaV¯UyVLVkš@nJlšXLlŽkxlbla²Òl@nVJVkšx„KlkUaVķÝÑU@Åm¯@±™Uó°ğńķĠmU™Ñ@ǯ¯Å¼@nml@°¯¯`@w™£@¯Çƒk@ƒ»nmċ¯U»™I™Ž¯LÇĶÛn@bó°™U›šwmŽ¯„™Umǯa„™ƒ™ƒI@ykIƒVUŽ¯bƒIğŽƒ¼™¼ó¤mwkLÝÞ"],encodeOffsets:[[104243,23429]]}},{type:"Feature",id:"5326",properties:{name:"文山壮族苗族自治州",cp:[104.8865,23.5712],childNum:8},geometry:{type:"Polygon",coordinates:["@@šwô„š@²¯maUmôUÆxš@Xš˜bÞInlVUVw„JVaU„K°¥„xmÞXnlKlnna°@ĊČ„ÆwUmnkl@°ƒƒ£nyn@VV@Vak™ƒ@@kÞ݄bmx°Vnw°klÞInĖÞVlKl™@Xa°„„KlV„U@šJnx‚U@ÈĢbUKlm@ak_‚wšanWUk°ƒl»„k@Wk@lwU_ƒ@UalóU¥ƒÇnƒ™kJWƒ@mVXx±bƒK@nV±a@™Åa™£ÝK²ƒWknamKknǏk¯ƒaV™™V¯ĀƒU™„™Ò¥ƒI@mm¯¯xōW@@`k@ó»ƒUU¯lm£ÅWlĵ„w@mmwÅmWU@y±U—xmwU„¯Uƒ¥Ý¥¯£m@kŽÇVUV°VbklƒL™wUlUIm‚k@±ÑkbkalwkWKk™mI™@UlUKVzU°Wb„bU蚚@škšVĀƒ°@„n‚m¦ÝŽUUUÒVbmbXn™‚mIkllbUbmKUkkJmkŚ@lš„„¦mx@¼U@lÒULn¤˜nU¤Å„@l±¼@xX„šxV„šVVbÞLVŽ„n@xšÆšb°¼šV"],encodeOffsets:[[106504,25037]]}},{type:"Feature",id:"5303",properties:{name:"曲靖市",cp:[103.9417,25.7025],childNum:9},geometry:{type:"Polygon",coordinates:["@@ȦlKÞĕUV¯Um¯„ÇVUnVVUƒĉn™ĊÇƾLn°°È„JÆw„@lbÞa„¦V„XJ°¯W¯„aÞJVkUša„ƒ@lKnÅmWUk¯a¯»@m±@уkkbWWX_WÓU»_l™kÑm@U»m@l@IWċn¯l@VanV„UV™UVwVx„KȄVmUē‚@„ƒn@VÝÆL„w„VVwnVlmkUVÑÇ°ka@k™ÿÝaÞUl£™›—ċĕX±±ĉƒa@UnVnalónk@wl™UVmkÝJ—aW™™@ÅwóVVnnb±°™@óƒ™xXLWx„n@lǼn„m‚k_k`@bózƒ‚m@kU@ƒ`„¦óƒ@nWš@ÜÅXWw@ƒyƒb¦@ÒlnUb@x™lܐk‚@²Ç@Uƒ¯bmy@kV@bƒb„¦U`lLVx@b—Ll¼Þ¤@„°VVބU@WސUb›J@nnš@lnnm„šxUŽƒUUbƒK@šÇwklkUƒVWakn@ŽlbU@@„ULVxkKUn‚°¯Ò@¼™„kmƒ¦m@kl™Ȱ@lU„l¦„@Vl°wšnnþĊUÆbUx™b„ŽV„šĖU°„a‚nnašV„al@@b"],encodeOffsets:[[106099,27653]]}},{type:"Feature",id:"5323",properties:{name:"楚雄彝族自治州",cp:[101.6016,25.3619],childNum:10},geometry:{type:"Polygon",coordinates:["@@mҁXU`Wnšš™@Xl±¦š„Uxnbl°knmKUx„„ƒxVôUx°¼ôÒȄ°JlnÞKĠœW°¦ƒ„Vx²JVwš_°¥@UV@@wnymknK¯I@‚™²b°ƒš£V¥šwU‚V„¤nLškÆJÈwôô°„l»Č¯ƒġVƒUU@@ƒ°ƒƒÝXl@U»°Å„@U„¯@w±¯VmUUlm@m™„ÑnIVyUwmak£Vwm±—@Çw@nƒ@UxkwlÇnL‚mkř@±Žk™ka@kóJV¯Ç»U£lw¯™Xalbl¥¯UXƒ@a˜™UaÈL@ÇVIVƒkaU¯mm™akLWkUJ¯Umxnšƒ@ƒkUx¯xƒ„mWÅīÝkkbƒŤƒbkxWmXwWk¯wƒKkƒƒLŤċń„@¤óĬU²ƒ@@lƒk¯VmU¯¼@xV@k°l°kbUš°nm‚VnUš@°„š„UVèރÆbUÒÞnU¦›V—¼lô„@Vl"],encodeOffsets:[[103433,26196]]}},{type:"Feature",id:"5329",properties:{name:"大理白族自治州",cp:[99.9536,25.6805],childNum:12},geometry:{type:"Polygon",coordinates:["@@lbœKVIUa˜@²m@b™xôÒÜxXLmbnšl@š„„K°šš¼k„Uô‚xôlV¦nJ„Uš™Ænšm„@šx„ÆwšbXšÆôô„LUVwôK@wlmšaVwœ@WknmƒIUmlnJla@_™@kÝmKUašÑm¯Xw°aUaVl»²JV„bÆJkôĶĀ²VVk„mšbVwUó„wƒƒVwnLlmk¯maVw™ƒ²¥Wkš@™™XmV_‚WnÑUkƒ@k󘻜UV¥ÝmVÑÅa݄UçƒVƒ™@¯V™Umn¯mV™lak¯l¯U@@wğŽW鯁ƒ@¯xÝw¯š¯Jċa¯U¥mLU¤„bÞȤƒbÇLWUwmIUVW¼kbš`U„Vb¯L±ĊÛkƒÿÝKkwƒKţê™UĉþƒÈƒV¯ÞVbUŽ°KVšk²Ý‚mI—ƒmV@kƒm™UkšVxm„¯KXÈķJU¦V°ULWxšL@môƒšb@bkx±LnVUŽVLnkÜWnwlLŃmW@kkJU_ƒV„šWĊ„Þ"],encodeOffsets:[[101408,26770]]}},{type:"Feature",id:"5309",properties:{name:"临沧市",cp:[99.613,24.0546],childNum:8},geometry:{type:"Polygon",coordinates:["@@‚xĢ„l`²X°ŽV„šx@x°Þ°KXašğUњW‚bnIl`X²°b„xl°„„šV@xVxk¦mb„l@xšXV‚ÆzX¤™Æ˜k°„kx@lźêlaX»VUnJVx‚XÈK„aÝȣƒaV£nKV¦°‚Čb°I°™n»ÆÑV¯nWn›™@ÿXÅWWn¹ƒġōƒn»‚ÛU™™aU™VƒUw„w@w°ƒó¥ƒ@ƒz—ƒ±@ř›¯@kUwlk£±aĵŽ¯™›Uĵ¦±±@bó±VÝ@ó¤ƒw¯I@mńóm±XŽ¯IólƒK@š°Ullb™zkKlln@@ԙºƒUmVk²ôҙx™ŎUVóLƒb„ŽmÈnŽmbnl‚a„x@z„@Ǝ„¦kš"],encodeOffsets:[[101251,24734]]}},{type:"Feature",id:"5334",properties:{name:"迪庆藏族自治州",cp:[99.4592,27.9327],childNum:3},geometry:{type:"Polygon",coordinates:["@@W™Xwƒ™@akk@y›—k°īX¥›Uóķ¯w@n»UaVaUۃ¯ƒmV¼k‚™Þċô@n¯xÛÒm„V‚¯Ô@xƒ‚@šk™wm™Åa@ƒUa‚݁¯VŃyV„a@ÿšn»ÝVmank™mmÞÅôƒ@n£±›ğzÇmU¦™Vm„nÜmbn@°nV@xmzÅ@mºV¦k°ln¤š¼õô„n@xkƃIUxUš@Ťƒ¦VšmVkmkXW¤XzVx@ƚx™¼ƒÞ¯b@lVš™ĸގV„m¼XŽm¦V„ŽÞ@Ǝš¹Vón¥ÆKn„‚KX¯x@èĊȱłXšaÆxnlV@UÛlȻkğV¥„m²ljmÅÞĕƒƛm°„ÆmX¤mznƃŽV¦ÞVVb°bnÞWbnŽ°l@V„È@„‚VĵĊ±@ó„InxÆw„¥@£Þ›W¯ĸ£UƒUK‚ƒk±akkkbmWmÈķ„aÆÇU—ȃÆW@wmknmU¯"],encodeOffsets:[[102702,28401]]}},{type:"Feature",id:"5306",properties:{name:"昭通市",cp:[104.0955,27.6031],childNum:11},geometry:{type:"Polygon",coordinates:["@@mƒnK@wmƒUř¥mšóXǓŏmX@Ž—VƒmL@xţ™nk@mlUšŻÒğŋ@ƒL@mmLkm™š@b™XŎW¼ka¯lÇŹ¯aÇ»™ÝÝ_@m„@@a™@UklwUm@ak@ƒb™UmbmƒbV¯™ĕUƒƒšaVwÅaĉVmý™m¯xUkƒ@k¥VƒUXƒ¤VÈm`@„—ńÇÜ@Ākn‚ĔkƞÆĠ„™Þš‚U„VôƆÞI@ŽUxƦn„l@ĊĊnxUÒ°¦Vb¯WUnWŽIml@xn„Ubô¤‚¼ÈxlI„»šKVš„@ÈԂJkšUĖ±ÆVb@nœ„VÜVUVƒšL„wĠl„kn„Ġ@nx°¥Æ„²mUwƒ@m™mÅUl¯UњÑUm„Lll„Il±š@VkwƒW@w°@U»™kUóI°ƒ„»ĢтL„™š`nUĠ²lm„bôV@n„JUxƦX¦l@š‚ŎUƒV„@lV„KVřV£UaÞU™ƒnW@¯VU@ó™"],encodeOffsets:[[107787,28244]]}},{type:"Feature",id:"5301",properties:{name:"昆明市",cp:[102.9199,25.4663],childNum:11},geometry:{type:"Polygon",coordinates:["@@n@Vk‚VUn²°@xƒ°Vƒ@¯ÆV¼k@WŽ„Þ¯„@„@‚VVU„„Ģċ°k¼V„Ċxœ¤Ōœx°mVkƒÑȏšL‚°„x°Xœ°VmĊLVxUĖ°bX¦VW@kšȯlkn@„¥lnšƒ@»°Ñ¯VmlLUwVK@ƒV@ka@lmXb„UlVlkÈx@™„LVa„VV™wnƒmm@km™@mœIVaݏ@XƒVUݯU@ƒÝ£k»˜K@aUwkKV_ƒ¥„a@alU@nz°aV„È@@±lÛšk@wVakm@т¥„a„z‚@XxÆW@ÛX™@m@ƒy@aWw@kōĉJlbV„JƒzţÆUwVkmWkým@Ul™U@b¯wVºƒU™VUêšĠƒXUaUbVĊUŽWXUmkK™™WnUUU™V™ƒƒVV™Ý@kk±‚™¯ƒƒLkƒš±WkXlVklƒ@ƒwXbmLƒ›VUIVmk@Ubma@kkaVKUƒ™kmlXLWn™J¯ÒĊ°@zkºlLUŤn@@n›ô@lƁnmKkÈlxVw„@@mÈx˜@n²Uxl¤nbVxUzmJƒÒnš"],encodeOffsets:[[104828,25999]]}},{type:"Feature",id:"5307",properties:{name:"丽江市",cp:[100.448,26.955],childNum:5},geometry:{type:"Polygon",coordinates:["@@l@™„@w°ÓUnƒÜÑ°w@mČóšÝlU»n°„„VÜUbVbm¼@Ž°xôĸœVW¦¯Ĭlœ˜@zll@b„šWxXš‚a„X@ÆĠÆaXwl@XaƦn¼˜Jn@mnKW¯È»V¯°ak™VanXVwl@VyUĕVU„bÈīlaUk°ƒk¯lƒ²V˜Ukƛô@ƒ„I@mVwĊa„™ƒVaka„™ÆbUŽVLšaXIWKUw™ƒ„aWÑÅKUaVk°ƒ@Uw„ƒ¯¥›XğÝLkm¯Iǃóѯ»™aƒnUl±UĵÿlóÅIƒaU‚±Ik¼UŽVb¯bWxn°™ÒVbnLlޚ@@`kbmIkŽVn„JmnXl›@Ux™bkn@xóLUxVŽƒKóóŐW™™aÅxƒŽ™wƒ@™nÅm™šƒV™„ƒôX„ƒLlVU¤ƒb¦m¼™Ž@ĀƒbU‚„zUƂ°ÞVb@„Æbnššx"],encodeOffsets:[[101937,28227]]}},{type:"Feature",id:"5328",properties:{name:"西双版纳傣族自治州",cp:[100.8984,21.8628],childNum:3},geometry:{type:"Polygon",coordinates:["@@l²°ŽnÒlxÞ@„nWl„Lĸ™nbV¤V¦kbVV‚¦na„x°Vôa@„šb@lôXlWUšVXČKlmššU@bšWXXܛ°LÈa°LnU°‚ÞnšÑ„ġ°lƒnbšaƒ¯¯KWƒœó@kmK@UšĉV@k°„VV¹„a@y‚_ċl_nÓlL@anI@ƒóWl£VU—ƒl™kĕl™šKVw„U@™kVƒam¯ÅL@bƒ‚Ýk@Vn„UbÇbÝwÅ@ċ¥¯lk‚¼ÅŽ™Ò°b@¦nlUn@ŽÇV„mƁbWôU@ÝÅōm™¯ƒaU™™mk™WWw—@±ƒ™n¯U™è™a™Lƒ¯mƒL™škwƒl@°mnÈÒ¯šów@V™xƒĀU¤°Įƒ°Xl"],encodeOffsets:[[102376,22579]]}},{type:"Feature",id:"5305",properties:{name:"保山市",cp:[99.0637,24.9884],childNum:5},geometry:{type:"Polygon",coordinates:["@@X°„Il‚@¦ƒŽÈ¼m¼ÞaÞÅl„ÈxV¼šlVôÈÆlLޣȺlkUƒ‚ƒUw„¯UĕVwĊ@n¦mlnVĸIWÇ°LnƒUwl™šV„n@lnU˜„nJށl±U™¯LVUa°Ý„U„ÇĊýšVŤé„LlxÞL„ĀÜl²ĉ°KUaVƒ™_Źé@klw¯ƒlÅ—šW£ÅyU™W@wƒknal¥Uw@w™Uƒƒk¯ƒw¯aW±k_mJa™XVҙĠWb¯L¯Ý@w™wUƒ¯±Wk_ġƒwƒwōKmb@¤„bk°lĖƒô„UJƒšVnÅlťUš¯°VbnbWxX„m„ÞššWUĀ™L™yWzÛKmbUxVKkn݃kŽVšĀċ¤Ux„@Ž¯Žm@ƒ¦"],encodeOffsets:[[100440,25943]]}},{type:"Feature",id:"5304",properties:{name:"玉溪市",cp:[101.9312,23.8898],childNum:9},geometry:{type:"Polygon",coordinates:["@@l„„L°xXlWxXnlw„a„ţlaÞlÆĬnX„ƒ°wVw„l„@m™nw°VVIXllKšbnnV°lbU„UJ@ÈÇKVb—š@bW„°Vk¦kaWb°škxV¤È¼U°ôI@llblš²š@‚@œó@mm@VţkKl¹@yĉ¯°ÑšIXmWKnkšlV„ULlb@lnbVal@UnVJœU‚„nKWa„x„@lkkUlW²X„™‚l„K°„šl²@lšÞUŽ„U‚„UšVšVVXmššlLVnXWVUĉVaVb„W™ğVéšU„VU¹W»aVa„aW™Xƒ‚_U¥nÇķ¯™@a™lUnǍUyk@@wW@kbW¦UKÝwUmmƒƒLUnVxUVVlk¯mmnƒmkÇaŤ¯I@ƒl@@aĉw°ĕmU—L±ƒk™ÆéX™ÜÛ@yÈç@™Çġ„Ýķ—XmmÝVՙƒ™lmnkbmWkb@nl@nŽmš¯VxkJmUJ„ml¯™°makVVnVƒ¦™Wƒ—Wmnl@xmn„l‚I„¤„n™xU„ƒVUŽmX@˜ƒb@zl@¦Ýþ"],encodeOffsets:[[103703,24874]]}},{type:"Feature",id:"5333",properties:{name:"怒江傈僳族自治州",cp:[99.1516,26.5594],childNum:4},geometry:{type:"Polygon",coordinates:["@@WyX£lWlnnUU™„¥@ţV™Vw„JlÅ@wƒmö󙻂£kml¯U¥n¹Æ@ny@wmU@¯mnamÛnƒšUV¥ÈnĠy²œm¤„@ÆónݚnmlnbÞU‚¥„aV£kU„KWƒ„óšƒmIU¥ókwVólƒ™»¯™ƒL™ƒk@m™naWKÛwóњw@a±n—@VbUJ›LkaƒÝXĉƒ™„UV`lI@lnXÆƑkKmxÛXmlUKVmU²Klw@a™aó„@n™KXwVKU¯V¥mUnkm¥ĉ@UxVĖƒ°Vx„V„klmޙkKWĀkVWšnl°Lnm@°ŽUxlV@nk¦™JVÈ°ŽVÒ@nX°@ÆlUômlnôƒ²nxmłnVV„¯x@Èm°XblVUšl°@xkXU¤WXX‚W„Xƃ„mkÅJmށw±bƒxUīkKmÅVUĖÝèV„kx@š›lX„lnk¤ƒLkŽ‚Ėk¦‚xUššL°‚¯Ė@LnK@b°xVI„¥Ua°Ñ@»nm@¹‚KŎÞÈWln²n"],encodeOffsets:[[101071,28891]]}},{type:"Feature",id:"5331",properties:{name:"德宏傣族景颇族自治州",cp:[98.1299,24.5874],childNum:5},geometry:{type:"Polygon",coordinates:["@@„¥n@°@ƒVwČ£™ÿUlÞ„lmULVwnaÜLXyšzšKVÿ™XݙnƒWƒXwmaUa°¯V™ŦŽÆkUm„™VIƒ„ókĕl¯ƒa@£nama™@¯m¯œó@óyţbġkÅm±ÛammVkƒLwU`Wk@VƒkUmŃlUUKmbkkUVUwƒ¦óŽ°¼šbn°ô¦lºƒz@xšŽ¯„™@UŽ°nƒšU¤ţU„°VƆ@ÈmlnzÞl°¦Æa„xUxƒLkxWƒn@‚š²ŰšW„™‚@°ÈXl°Llx"],encodeOffsets:[[100440,25943]]}}],UTF8Encoding:!0}}),i("echarts/util/mapData/geoJson/zhe_jiang_geo",[],function(){return{type:"FeatureCollection",features:[{type:"Feature",id:"3311",properties:{name:"丽水市",cp:[119.5642,28.1854],childNum:9},geometry:{type:"Polygon",coordinates:["@@@V‚bVl@Xn‚UXƒKVŽ@¦nxlUXV‚n„KVmnL‚UV@bn¤lLXK˜²„`nnlJXIVJ‚I„Vnn°KnnVll@VLXWV@UkVaVK„zV@„ƒšVVaUK@U»VUl@@WnUUƒ@wVLn@Vwl@XW°LVbn@VU‚@X„l`@XnKVbkl@XVJlUnlV„„xlL@lnXl„@VšUnV°°„@a„UVLXblWVXn@VVUV@Lš¤VLV„U‚VbnalLUUVX_laVa„WVzXKV@@a@KUmImmXama@kU@yVIUK‚aVa@kXK@aWU@VIUmW@kkVm„Uš@VwUa@K@k@Uƒ`@kUKVk@UV@VaUm²Vy@klUUWUkVmUa@_ƒKVaXa›XmƒU@mUlWkaUXƒ@mmkL@w™JƒnVVÅbWKXa™@@I@aƒJUUÇ@V„UL™W@akLmb@K@a™XXw@mƒVmUVkUy@£@aU@@VkUWm@kUKƒXUWU_mW@wkkmJUUkLWWUXƒW@IkJ@k@mW_kӃ_Ul™Lƒm@I@aUa¯m@kƒa¯LUJƒ@mVVxUb™a@LUKkXƒbm@Uak@@a@Um`ƒIUbUJ@nUVW@@LnVV@lšUbVlUX@`š@blXklW„Ušm„Xlm¦U@@V¯bml@š@nUb@llnn@VbX@lV@ŽUVULmU@JVn„bVbkb™VWxU@@nUVk@"],encodeOffsets:[[121546,28992]]}},{type:"Feature",id:"3301",properties:{name:"杭州市",cp:[119.5313,29.8773],childNum:6},geometry:{type:"Polygon",coordinates:["@@X@l„°KXXlW„b@²„`šššb‚I„šX`l@„@bWl@n@VnLUV@V„@°¦@šl@XVlU@š@xVbUb@Vkb@‚@XVJVz™J@Lޚ@VmLUxUJ@LU„Vx‚b„xXUl@VaÈw„b‚aÞa@Vl@XUVx@V@V„LlbnV„al@lb„Vnn‚LnKnL@VlbVJXalIšb@KUU@mVInJ˜„U„Vl@xUšVLnUš@UÞaV@lkV@UanK„L@UlKVUnbÆmn@@nUlVnVJl@@UXU„L@WVIVJVxVLXV@IÜKnbn@V¥V@@I@ƒƒ„y°b@UUwnk°ÆƨVlUšçXm›£aƒÇ™IkVƒ@WV@@aWIUWUIkb@WW@UnƒK@UU@kaWVkƒVIVVnU@UWVUV@VmVkKkWIkVWaULU`UImJUImm—U@ƒƒwmwUV™IUWVkUamaU@mV—kƒb@KVU@aVU@anKULVJ‚U@kÛU™JUV›kkƒVakU@ƒaVwkW@UWkXmWaULUaUK@XƒJUUmƒVU@UVƒUkJ@ImwmKU@k„@lU„W@@akKm„kamIkWl_UwVm@UkaVUUaƒ@UamakbWlkL@aUalU@mkL@U@U™lmK@XkKm@Ýakb@xƒnXbƒ`ƒnUUU@›™U@™wU@@ƒmKkkƒV¯U@lULUbVbUb@V‚a@L™ºÝb@bLmK™x@VUL@bk@mxULWl"],encodeOffsets:[[121185,30184]]}},{type:"Feature",id:"3303",properties:{name:"温州市",cp:[120.498,27.8119],childNum:9},geometry:{type:"Polygon",coordinates:["@@ll@xnXV`VX„WVL@lXnlV@UV@@b@¤VzUlnV„U@nWxšW@b@LnalK@bšXVKUƒÈ@VV„I@b@Jš@WbXLÆaUU„mšI@xlKnn„@VWlbkXV‚@n„VWnœ‚WbUb„L@`VbUnVlVXkV@lUz±‚VnUbU@@VUlVL@l„_@V@l@LVbV@XLV`VÈlxn@lU@aœaVV‚k„@XJ@nl@@LU`°LVb„L°a@a„UVy@anI@a„a‚nV@²wÜJX@VšVV°k„na@WVk„aWwU@m@™ƒkƒaUĕ™ÝšÝŤnÈa„aóI›»@±X™WkUķ@kV±kw™ƒUkWw„™UƒÝ»ÛkɳlImaUaWóXÿǬk‚UnWVmmk™KţnŏÞğl™„UlUx@XWb„V@JkXƒ°mb@VULVxUVk@@LWWk@WIkšƒUkJmUkVmI@yƒ@Ua™kLm‚U@mUUUkaVk™@mK@UlUU@UmKmbUUUJ@n@KVLUL@VkJWXX`mnULWlkL@JVLVb@°kxkU@LVŽ™V@„VLV`UL@VUX"],encodeOffsets:[[122502,28334]]}},{type:"Feature",id:"3302",properties:{name:"宁波市",cp:[121.5967,29.6466],childNum:6},geometry:{type:"Polygon",coordinates:["@@Ċ¦ĸĀ°‚nXÞVšKškƨƑźÿ°»n„@wô¥ÜbœU°ÆXÞWóçĉݱIUƒÈ¥@U°wÆ»²mm_@aXƒVKÞVlk@akk›̅@£X»VwƏXWa¯aȗb™KƽۃĊ™xƒLóŽk@ƒƒƒ@¯nƒKUL@xkL›ÑkWULUUmJUXVŽU@mŽUX¯@V`mbXbV@@nn¤WXšx@škJ@nVVUVl²UbÝVUVk@Wx@V@„ƒVXzmlaƒL@VlLU`„XUVVVUnl@VbnJlnUVVnƒlUKkbmnn„VxlJnxmbU@UL@KUV™X@xmb@lk@mnVVUš™è"],encodeOffsets:[[123784,30977]]}},{type:"Feature",id:"3309",properties:{name:"舟山市",cp:[122.2559,30.2234],childNum:3},geometry:{type:"Polygon",coordinates:["@@l΢ƒʠþÆVĢLĊƒǬXĊ܄XôV„ÑÆw„ƒlšƏÈóVĭVǓ@ƒĉwɛkmK@ĉXīWaĉUĵÝmƒ¯ĉƒwĉ±±nż¯x@VǦV„²JĊÞôèÝXÅW¯›VÛaó¦@xƒŽmŽ¯¼ŹĀ"], +encodeOffsets:[[124437,30983]]}},{type:"Feature",id:"3310",properties:{name:"台州市",cp:[121.1353,28.6688],childNum:7},geometry:{type:"Polygon",coordinates:["@@lV„IVWVz@bXJl@Xal@°„nLll@nVxnV„K@UJVbƒ¦°„k`UIWJXnƚ@bUJ„Xl@lb„Wn@UzVV@bVVšmVnnJVXna‚bšKUKnUVVUnVLlKVLXa„Jm£@mU@WanaU_°@VWnV@UVWnIVVVKlXœÒlK@wVK„L°m„@„„l@ô„Kšw„ĉƾůUƒl£@»UƒVk„m@ƅUƒƒaÛIŏmUk@m„w@a™£ƒWk@ţšƒIm±@ankôUlaU™Uw¯ƒōaƒbÇbţm™ÞšÞVĖ„b„l@š@n‚VXxƒbUl@XmbƒŽ¯lUUU™W@ÛI±xU@mƒb@bmJ@bUzƒV@b¯bƒKUa¯KV_@Kk@@mWIƒ@lUU›b@bkVm@kwUÇU_WKU@Ux™@ƒVUnllX@Vn‚J@UXV@bWL@lUbbVLUJ@z‚V@lnbWbnnnJVŽ@L"],encodeOffsets:[[123312,29526]]}},{type:"Feature",id:"3307",properties:{name:"金华市",cp:[120.0037,29.1028],childNum:8},geometry:{type:"Polygon",coordinates:["@@nbVb„@VbUVlb@VUnVxk`lXnJlbnƒlL@bX@Vƒ@klƒV@nLnx@JlI„V‚U@VUVn„VV„I@WVLVbVKXbWnXl@VlXUx„b@ŽlVUbl„œlVUšIÜVnalKX@@bV@@aUUlUƒwUw„@naWW„UVaUUšaVb„LlxXJVk°ƒUƒlkU¥@k„a@LVlXLVlšVWznVn@lxšJl_@WX_@mVa„a@alU@kVVna„KVLlK„b@UUaVašbnUWmXU@k@yVI@ařWmXIVJl_¯ƒ„¥UaVI@ƒLmUUw@mkkmK¯ƒk@Wbk@WI@aUyUXƒJkU@bU@WLUyƒXUbkbW`UVVkKmbUaVUƒUK™£@KVUUUm@UWkXWaUKƒV@b¯ƒ¯mU™V@UkƒmW@kkKƒwUƒmkkVUI@WlkUamL@Wk_Wƒ@UVm@Ua¯KWXk@Uxm@UK@xV„mV@Xk@UVV¼@‚VLUb™Uƒ„U@ƒyULUbVlU@@XlVUVVbƒU@lXXVW@XUVl@@VUVƒÈn@VVU„@lVa@„U„mL@`X@`WL@VUX@lUL@xlx"],encodeOffsets:[[122119,29948]]}},{type:"Feature",id:"3308",properties:{name:"衢州市",cp:[118.6853,28.8666],childNum:5},geometry:{type:"Polygon",coordinates:["@@XkVKnwl@@aVK@UšwnL‚K@aÞaš¹@Kb@UVaUaVaVK@k°V„UllnL@„V@šxV@œšV@VV„m„_Wa„m@wlaÞbn@lL@WnLšk@V@VlK@nkVVb@blKXklakw@wVK@kVW@UXK@_‚W@_nKVƒ@ƒUb@kVƒUUm@„ÇVU@Uk@VU@WUXWW@k„VUaVUkU@WWXUKk@Ukmm¯LmmƒUJUIWJkImmƒ_—±WLkKm£@aVUmKUnƒLmWUkVmw@¥U„LVWm@WUka@UmmLmm@@bUX™@@WUIm@UVUK@UVUUU™VVJmb@b„Xn‚mVƒ¼nnn¦mJUVƒL„V@VW@UzUlVnUbl`UnVl@XU@kl@bmÈUx™Vk@@J@„ƒ¼W@ÅaVVnzmVƒ„@WJk@kWJ@ƒlXbWbXxmVnšlLXb@°lKVXnWšbWV„„X„mbV@Xl‚bšI@Kn@@x@šVLlm"],encodeOffsets:[[121185,30184]]}},{type:"Feature",id:"3306",properties:{name:"绍兴市",cp:[120.564,29.7565],childNum:6},geometry:{type:"Polygon",coordinates:["@@„x@„˜VnnVJnIVJV_VKXblUXJlŽlLUŽUnU@UVVX@ŽmVUUUJl„XUlbV@@V„LVmX@@XlaVJVXXJ@b‚@XU„@lUšJ„È‚bœ¤Ō„JšçV™UUnml@@kna@wšWVU@LVKV@namwkIUwmƒnmlaVL„kUmVUkmmIUak@VmUUVUƒWV_kK@U„K‚bnkWy„U@ƒ@UXwl@VUÞUVak±VUUU@mlI@™™wXWƒIWbUKkLUKVmUUmVVL™LambUWmIUm™nUU@aUUVym@ƒXkak@ƒW@z@lWVXnmV™aUbVb@VƒakLUKƒLmbUU@lkV@bƒbUb@nW`@Xk`™Ikwm@mUXy™UUkWKUk@Kƒb@lV¦klV„¯„UlWIkwƒKUa™bVVUbƒVXXmbƒ@Vx„xkVVV@bU@@aW@kLmb@lVUIVKmL@bUV@bUV@L„a˜lnUV@nbVbUlVXšJVUnx"],encodeOffsets:[[122997,30561]]}},{type:"Feature",id:"3304",properties:{name:"嘉兴市",cp:[120.9155,30.6354],childNum:6},geometry:{type:"Polygon",coordinates:["@@@blIX@@VÜVUnn@l‚k„lKnI°Þl`²LVKVbnbVaVLUVn@W¦@VkVVb„@VI„`@blLnL‚aX@„VVb@U‚@XlVa„@@kVaUKV»U_lWXUƒƒ@alb„k@VllnLVKn@@UVIUw@y°IVVXU@VV@lw„m@wVkƾaœJ‚LkΡƧƒ™l™LÝUmW¯ķÿĉ¥ƒIŋŽWn™èkVƧU¯ÅmlVx@V¯aƒz„Ž@„@JU@U¦m@@šnVmn@V„LV‚"],encodeOffsets:[[123233,31382]]}},{type:"Feature",id:"3305",properties:{name:"湖州市",cp:[119.8608,30.7782],childNum:4},geometry:{type:"Polygon",coordinates:["@@kLlƒkm@VmÛU@UW@kJ@aUƒK@UnmmU@™maÛL@JWUUKUwUIUJ@XƒKWV@Vk@UIUmVk@mm@ÅnmaUVkL@VƒKmLVbU@klU@ÝbV™@mVUKV™@wUkVƒ—ƒmIUJ@nVV@L™akJWbUIka@UmKmLKmmƒUUVk@@nmLX`WXUV@Ž@nUl™kmlU@Ub„„ƒxVVšIlV„Žšnn„@@n˜„UҚ@„°n@@xmb@„VbnV@šš„@b@`@L@L@x@blVklVbnnV@‚aXb°VlU@W„b°U„LXWVUV™„™VwÈwÜ»ĸaĠnUVw²X@V@lVU@wlaUUVm@knUV›"],encodeOffsets:[[123379,31500]]}}],UTF8Encoding:!0}}),i("echarts/chart/gauge",["require","./base","../util/shape/GaugePointer","zrender/shape/Text","zrender/shape/Line","zrender/shape/Rectangle","zrender/shape/Circle","zrender/shape/Sector","../config","../util/ecData","../util/accMath","zrender/tool/util","../chart"],function(e){function t(e,t,n,a,o){i.call(this,e,t,n,a,o),this.refresh(a)}var i=e("./base"),n=e("../util/shape/GaugePointer"),a=e("zrender/shape/Text"),o=e("zrender/shape/Line"),r=e("zrender/shape/Rectangle"),s=e("zrender/shape/Circle"),l=e("zrender/shape/Sector"),h=e("../config");h.gauge={zlevel:0,z:2,center:["50%","50%"],clickable:!0,legendHoverLink:!0,radius:"75%",startAngle:225,endAngle:-45,min:0,max:100,splitNumber:10,axisLine:{show:!0,lineStyle:{color:[[.2,"#228b22"],[.8,"#48b"],[1,"#ff4500"]],width:30}},axisTick:{show:!0,splitNumber:5,length:8,lineStyle:{color:"#eee",width:1,type:"solid"}},axisLabel:{show:!0,textStyle:{color:"auto"}},splitLine:{show:!0,length:30,lineStyle:{color:"#eee",width:2,type:"solid"}},pointer:{show:!0,length:"80%",width:8,color:"auto"},title:{show:!0,offsetCenter:[0,"-40%"],textStyle:{color:"#333",fontSize:15}},detail:{show:!0,backgroundColor:"rgba(0,0,0,0)",borderWidth:0,borderColor:"#ccc",width:100,height:40,offsetCenter:[0,"40%"],textStyle:{color:"auto",fontSize:30}}};var m=e("../util/ecData"),V=e("../util/accMath"),U=e("zrender/tool/util");return t.prototype={type:h.CHART_TYPE_GAUGE,_buildShape:function(){var e=this.series;this._paramsMap={},this.selectedMap={};for(var t=0,i=e.length;i>t;t++)e[t].type===h.CHART_TYPE_GAUGE&&(this.selectedMap[e[t].name]=!0,e[t]=this.reformOption(e[t]),this.legendHoverLink=e[t].legendHoverLink||this.legendHoverLink,this._buildSingleGauge(t),this.buildMark(t));this.addShapeList()},_buildSingleGauge:function(e){var t=this.series[e];this._paramsMap[e]={center:this.parseCenter(this.zr,t.center),radius:this.parseRadius(this.zr,t.radius),startAngle:t.startAngle.toFixed(2)-0,endAngle:t.endAngle.toFixed(2)-0},this._paramsMap[e].totalAngle=this._paramsMap[e].startAngle-this._paramsMap[e].endAngle,this._colorMap(e),this._buildAxisLine(e),this._buildSplitLine(e),this._buildAxisTick(e),this._buildAxisLabel(e),this._buildPointer(e),this._buildTitle(e),this._buildDetail(e)},_buildAxisLine:function(e){var t=this.series[e];if(t.axisLine.show)for(var i,n,a=t.min,o=t.max-a,r=this._paramsMap[e],s=r.center,l=r.startAngle,h=r.totalAngle,V=r.colorArray,U=t.axisLine.lineStyle,d=this.parsePercent(U.width,r.radius[1]),p=r.radius[1],c=p-d,u=l,y=0,g=V.length;g>y;y++)n=l-h*(V[y][0]-a)/o,i=this._getSector(s,c,p,n,u,V[y][1],U,t.zlevel,t.z),u=n,i._animationAdd="r",m.set(i,"seriesIndex",e),m.set(i,"dataIndex",y),this.shapeList.push(i)},_buildSplitLine:function(e){var t=this.series[e];if(t.splitLine.show)for(var i,n,a,r=this._paramsMap[e],s=t.splitNumber,l=t.min,h=t.max-l,m=t.splitLine,V=this.parsePercent(m.length,r.radius[1]),U=m.lineStyle,d=U.color,p=r.center,c=r.startAngle*Math.PI/180,u=r.totalAngle*Math.PI/180,y=r.radius[1],g=y-V,b=0;s>=b;b++)i=c-u/s*b,n=Math.sin(i),a=Math.cos(i),this.shapeList.push(new o({zlevel:t.zlevel,z:t.z+1,hoverable:!1,style:{xStart:p[0]+a*y,yStart:p[1]-n*y,xEnd:p[0]+a*g,yEnd:p[1]-n*g,strokeColor:"auto"===d?this._getColor(e,l+h/s*b):d,lineType:U.type,lineWidth:U.width,shadowColor:U.shadowColor,shadowBlur:U.shadowBlur,shadowOffsetX:U.shadowOffsetX,shadowOffsetY:U.shadowOffsetY}}))},_buildAxisTick:function(e){var t=this.series[e];if(t.axisTick.show)for(var i,n,a,r=this._paramsMap[e],s=t.splitNumber,l=t.min,h=t.max-l,m=t.axisTick,V=m.splitNumber,U=this.parsePercent(m.length,r.radius[1]),d=m.lineStyle,p=d.color,c=r.center,u=r.startAngle*Math.PI/180,y=r.totalAngle*Math.PI/180,g=r.radius[1],b=g-U,f=0,k=s*V;k>=f;f++)f%V!==0&&(i=u-y/k*f,n=Math.sin(i),a=Math.cos(i),this.shapeList.push(new o({zlevel:t.zlevel,z:t.z+1,hoverable:!1,style:{xStart:c[0]+a*g,yStart:c[1]-n*g,xEnd:c[0]+a*b,yEnd:c[1]-n*b,strokeColor:"auto"===p?this._getColor(e,l+h/k*f):p,lineType:d.type,lineWidth:d.width,shadowColor:d.shadowColor,shadowBlur:d.shadowBlur,shadowOffsetX:d.shadowOffsetX,shadowOffsetY:d.shadowOffsetY}})))},_buildAxisLabel:function(e){var t=this.series[e];if(t.axisLabel.show)for(var i,n,o,r,s=t.splitNumber,l=t.min,h=t.max-l,m=t.axisLabel.textStyle,U=this.getFont(m),d=m.color,p=this._paramsMap[e],c=p.center,u=p.startAngle,y=p.totalAngle,g=p.radius[1]-this.parsePercent(t.splitLine.length,p.radius[1])-5,b=0;s>=b;b++)r=V.accAdd(l,V.accMul(V.accDiv(h,s),b)),i=u-y/s*b,n=Math.sin(i*Math.PI/180),o=Math.cos(i*Math.PI/180),i=(i+360)%360,this.shapeList.push(new a({zlevel:t.zlevel,z:t.z+1,hoverable:!1,style:{x:c[0]+o*g,y:c[1]-n*g,color:"auto"===d?this._getColor(e,r):d,text:this._getLabelText(t.axisLabel.formatter,r),textAlign:i>=110&&250>=i?"left":70>=i||i>=290?"right":"center",textBaseline:i>=10&&170>=i?"top":i>=190&&350>=i?"bottom":"middle",textFont:U,shadowColor:m.shadowColor,shadowBlur:m.shadowBlur,shadowOffsetX:m.shadowOffsetX,shadowOffsetY:m.shadowOffsetY}}))},_buildPointer:function(e){var t=this.series[e];if(t.pointer.show){var i=t.max-t.min,a=t.pointer,o=this._paramsMap[e],r=this.parsePercent(a.length,o.radius[1]),l=this.parsePercent(a.width,o.radius[1]),h=o.center,V=this._getValue(e);V=V2?2:l/2,color:"#fff"}});m.pack(p,this.series[e],e,this.series[e].data[0],0,this.series[e].data[0].name,V),this.shapeList.push(p),this.shapeList.push(new s({zlevel:t.zlevel,z:t.z+2,hoverable:!1,style:{x:h[0],y:h[1],r:a.width/2.5,color:"#fff"}}))}},_buildTitle:function(e){var t=this.series[e];if(t.title.show){var i=t.data[0],n=null!=i.name?i.name:"";if(""!==n){var o=t.title,r=o.offsetCenter,s=o.textStyle,l=s.color,h=this._paramsMap[e],m=h.center[0]+this.parsePercent(r[0],h.radius[1]),V=h.center[1]+this.parsePercent(r[1],h.radius[1]);this.shapeList.push(new a({zlevel:t.zlevel,z:t.z+(Math.abs(m-h.center[0])+Math.abs(V-h.center[1])<2*s.fontSize?2:1),hoverable:!1,style:{x:m,y:V,color:"auto"===l?this._getColor(e):l,text:n,textAlign:"center",textFont:this.getFont(s),shadowColor:s.shadowColor,shadowBlur:s.shadowBlur,shadowOffsetX:s.shadowOffsetX,shadowOffsetY:s.shadowOffsetY}}))}}},_buildDetail:function(e){var t=this.series[e];if(t.detail.show){var i=t.detail,n=i.offsetCenter,a=i.backgroundColor,o=i.textStyle,s=o.color,l=this._paramsMap[e],h=this._getValue(e),m=l.center[0]-i.width/2+this.parsePercent(n[0],l.radius[1]),V=l.center[1]+this.parsePercent(n[1],l.radius[1]);this.shapeList.push(new r({zlevel:t.zlevel,z:t.z+(Math.abs(m+i.width/2-l.center[0])+Math.abs(V+i.height/2-l.center[1])r;r++)o.push([a[r][0]*n+i,a[r][1]]);this._paramsMap[e].colorArray=o},_getColor:function(e,t){null==t&&(t=this._getValue(e));for(var i=this._paramsMap[e].colorArray,n=0,a=i.length;a>n;n++)if(i[n][0]>=t)return i[n][1];return i[i.length-1][1]},_getSector:function(e,t,i,n,a,o,r,s,h){return new l({zlevel:s,z:h,hoverable:!1,style:{x:e[0],y:e[1],r0:t,r:i,startAngle:n,endAngle:a,brushType:"fill",color:o,shadowColor:r.shadowColor,shadowBlur:r.shadowBlur,shadowOffsetX:r.shadowOffsetX,shadowOffsetY:r.shadowOffsetY}})},_getLabelText:function(e,t){if(e){if("function"==typeof e)return e.call(this.myChart,t);if("string"==typeof e)return e.replace("{value}",t)}return t},refresh:function(e){e&&(this.option=e,this.series=e.series),this.backupShapeList(),this._buildShape()}},U.inherits(t,i),e("../chart").define("gauge",t),t}),i("echarts/util/shape/GaugePointer",["require","zrender/shape/Base","zrender/tool/util","./normalIsCover"],function(e){function t(e){i.call(this,e)}var i=e("zrender/shape/Base"),n=e("zrender/tool/util");return t.prototype={type:"gauge-pointer",buildPath:function(e,t){var i=t.r,n=t.width,a=t.angle,o=t.x-Math.cos(a)*n*(n>=i/3?1:2),r=t.y+Math.sin(a)*n*(n>=i/3?1:2);a=t.angle-Math.PI/2,e.moveTo(o,r),e.lineTo(t.x+Math.cos(a)*n,t.y-Math.sin(a)*n),e.lineTo(t.x+Math.cos(t.angle)*i,t.y-Math.sin(t.angle)*i),e.lineTo(t.x-Math.cos(a)*n,t.y+Math.sin(a)*n),e.lineTo(o,r)},getRect:function(e){if(e.__rect)return e.__rect;var t=2*e.width,i=e.x,n=e.y,a=i+Math.cos(e.angle)*e.r,o=n-Math.sin(e.angle)*e.r;return e.__rect={x:Math.min(i,a)-t,y:Math.min(n,o)-t,width:Math.abs(i-a)+t,height:Math.abs(n-o)+t},e.__rect},isCover:e("./normalIsCover")},n.inherits(t,i),t}),i("echarts/chart/funnel",["require","./base","zrender/shape/Text","zrender/shape/Line","zrender/shape/Polygon","../config","../util/ecData","../util/number","zrender/tool/util","zrender/tool/color","zrender/tool/area","../chart"],function(e){function t(e,t,n,a,o){i.call(this,e,t,n,a,o),this.refresh(a)}var i=e("./base"),n=e("zrender/shape/Text"),a=e("zrender/shape/Line"),o=e("zrender/shape/Polygon"),r=e("../config");r.funnel={zlevel:0,z:2,clickable:!0,legendHoverLink:!0,x:80,y:60,x2:80,y2:60,min:0,max:100,minSize:"0%",maxSize:"100%",sort:"descending",gap:0,funnelAlign:"center",itemStyle:{normal:{borderColor:"#fff",borderWidth:1,label:{show:!0,position:"outer"},labelLine:{show:!0,length:10,lineStyle:{width:1,type:"solid"}}},emphasis:{borderColor:"rgba(0,0,0,0)",borderWidth:1,label:{show:!0},labelLine:{show:!0}}}};var s=e("../util/ecData"),l=e("../util/number"),h=e("zrender/tool/util"),m=e("zrender/tool/color"),V=e("zrender/tool/area");return t.prototype={type:r.CHART_TYPE_FUNNEL,_buildShape:function(){var e=this.series,t=this.component.legend;this._paramsMap={},this._selected={},this.selectedMap={};for(var i,n=0,a=e.length;a>n;n++)if(e[n].type===r.CHART_TYPE_FUNNEL){if(e[n]=this.reformOption(e[n]),this.legendHoverLink=e[n].legendHoverLink||this.legendHoverLink,i=e[n].name||"",this.selectedMap[i]=t?t.isSelected(i):!0,!this.selectedMap[i])continue;this._buildSingleFunnel(n),this.buildMark(n)}this.addShapeList()},_buildSingleFunnel:function(e){var t=this.component.legend,i=this.series[e],n=this._mapData(e),a=this._getLocation(e);this._paramsMap[e]={location:a,data:n};for(var o,r=0,s=[],h=0,m=n.length;m>h;h++)o=n[h].name,this.selectedMap[o]=t?t.isSelected(o):!0,this.selectedMap[o]&&!isNaN(n[h].value)&&(s.push(n[h]),r++);if(0!==r){for(var V,U,d,p,c=this._buildFunnelCase(e),u=i.funnelAlign,y=i.gap,g=r>1?(a.height-(r-1)*y)/r:a.height,b=a.y,f="descending"===i.sort?this._getItemWidth(e,s[0].value):l.parsePercent(i.minSize,a.width),k="descending"===i.sort?1:0,x=a.centerX,_=[],h=0,m=s.length;m>h;h++)if(o=s[h].name,this.selectedMap[o]&&!isNaN(s[h].value)){switch(V=m-2>=h?this._getItemWidth(e,s[h+k].value):"descending"===i.sort?l.parsePercent(i.minSize,a.width):l.parsePercent(i.maxSize,a.width),u){case"left":U=a.x;break;case"right":U=a.x+a.width-f;break;default:U=x-f/2}d=this._buildItem(e,s[h]._index,t?t.getColor(o):this.zr.getColor(s[h]._index),U,b,f,V,g,u),b+=g+y,p=d.style.pointList,_.unshift([p[0][0]-10,p[0][1]]),_.push([p[1][0]+10,p[1][1]]),0===h&&(0===f?(p=_.pop(),"center"==u&&(_[0][0]+=10),"right"==u&&(_[0][0]=p[0]),_[0][1]-="center"==u?10:15,1==m&&(p=d.style.pointList)):(_[_.length-1][1]-=5,_[0][1]-=5)),f=V}c&&(_.unshift([p[3][0]-10,p[3][1]]),_.push([p[2][0]+10,p[2][1]]),0===f?(p=_.pop(),"center"==u&&(_[0][0]+=10),"right"==u&&(_[0][0]=p[0]),_[0][1]+="center"==u?10:15):(_[_.length-1][1]+=5,_[0][1]+=5),c.style.pointList=_)}},_buildFunnelCase:function(e){var t=this.series[e];if(this.deepQuery([t,this.option],"calculable")){var i=this._paramsMap[e].location,n=10,a={hoverable:!1,style:{pointListd:[[i.x-n,i.y-n],[i.x+i.width+n,i.y-n],[i.x+i.width+n,i.y+i.height+n],[i.x-n,i.y+i.height+n]],brushType:"stroke",lineWidth:1,strokeColor:t.calculableHolderColor||this.ecTheme.calculableHolderColor||r.calculableHolderColor}};return s.pack(a,t,e,void 0,-1),this.setCalculable(a),a=new o(a),this.shapeList.push(a),a}},_getLocation:function(e){var t=this.series[e],i=this.zr.getWidth(),n=this.zr.getHeight(),a=this.parsePercent(t.x,i),o=this.parsePercent(t.y,n),r=null==t.width?i-a-this.parsePercent(t.x2,i):this.parsePercent(t.width,i);return{x:a,y:o,width:r,height:null==t.height?n-o-this.parsePercent(t.y2,n):this.parsePercent(t.height,n),centerX:a+r/2}},_mapData:function(e){function t(e,t){return"-"===e.value?1:"-"===t.value?-1:t.value-e.value}function i(e,i){return-t(e,i)}for(var n=this.series[e],a=h.clone(n.data),o=0,r=a.length;r>o;o++)a[o]._index=o;return"none"!=n.sort&&a.sort("descending"===n.sort?t:i),a},_buildItem:function(e,t,i,n,a,o,r,l,h){var m=this.series,V=m[e],U=V.data[t],d=this.getPolygon(e,t,i,n,a,o,r,l,h);s.pack(d,m[e],e,m[e].data[t],t,m[e].data[t].name),this.shapeList.push(d);var p=this.getLabel(e,t,i,n,a,o,r,l,h);s.pack(p,m[e],e,m[e].data[t],t,m[e].data[t].name),this.shapeList.push(p),this._needLabel(V,U,!1)||(p.invisible=!0);var c=this.getLabelLine(e,t,i,n,a,o,r,l,h);this.shapeList.push(c),this._needLabelLine(V,U,!1)||(c.invisible=!0);var u=[],y=[];return this._needLabelLine(V,U,!0)&&(u.push(c.id),y.push(c.id)),this._needLabel(V,U,!0)&&(u.push(p.id),y.push(d.id)),d.hoverConnect=u,p.hoverConnect=y,d},_getItemWidth:function(e,t){var i=this.series[e],n=this._paramsMap[e].location,a=i.min,o=i.max,r=l.parsePercent(i.minSize,n.width),s=l.parsePercent(i.maxSize,n.width);return(t-a)*(s-r)/(o-a)+r},getPolygon:function(e,t,i,n,a,r,s,l,h){var V,U=this.series[e],d=U.data[t],p=[d,U],c=this.deepMerge(p,"itemStyle.normal")||{},u=this.deepMerge(p,"itemStyle.emphasis")||{},y=this.getItemStyleColor(c.color,e,t,d)||i,g=this.getItemStyleColor(u.color,e,t,d)||("string"==typeof y?m.lift(y,-.2):y);switch(h){case"left":V=n;break;case"right":V=n+(r-s);break;default:V=n+(r-s)/2}var b={zlevel:U.zlevel,z:U.z,clickable:this.deepQuery(p,"clickable"),style:{pointList:[[n,a],[n+r,a],[V+s,a+l],[V,a+l]],brushType:"both",color:y,lineWidth:c.borderWidth,strokeColor:c.borderColor},highlightStyle:{color:g,lineWidth:u.borderWidth,strokeColor:u.borderColor}};return this.deepQuery([d,U,this.option],"calculable")&&(this.setCalculable(b),b.draggable=!0),new o(b)},getLabel:function(e,t,i,a,o,r,s,l,U){var d,p=this.series[e],c=p.data[t],u=this._paramsMap[e].location,y=h.merge(h.clone(c.itemStyle)||{},p.itemStyle),g="normal",b=y[g].label,f=b.textStyle||{},k=y[g].labelLine.length,x=this.getLabelText(e,t,g),_=this.getFont(f),L=i;b.position=b.position||y.normal.label.position,"inner"===b.position||"inside"===b.position||"center"===b.position?(d=U,L=Math.max(r,s)/2>V.getTextWidth(x,_)?"#fff":m.reverse(i)):d="left"===b.position?"right":"left";var W={zlevel:p.zlevel,z:p.z+1,style:{x:this._getLabelPoint(b.position,a,u,r,s,k,U),y:o+l/2,color:f.color||L,text:x,textAlign:f.align||d,textBaseline:f.baseline||"middle",textFont:_}};return g="emphasis",b=y[g].label||b,f=b.textStyle||f,k=y[g].labelLine.length||k,b.position=b.position||y.normal.label.position,x=this.getLabelText(e,t,g),_=this.getFont(f),L=i,"inner"===b.position||"inside"===b.position||"center"===b.position?(d=U,L=Math.max(r,s)/2>V.getTextWidth(x,_)?"#fff":m.reverse(i)):d="left"===b.position?"right":"left",W.highlightStyle={x:this._getLabelPoint(b.position,a,u,r,s,k,U),color:f.color||L,text:x,textAlign:f.align||d,textFont:_,brushType:"fill"},new n(W)},getLabelText:function(e,t,i){var n=this.series,a=n[e],o=a.data[t],r=this.deepQuery([o,a],"itemStyle."+i+".label.formatter");return r?"function"==typeof r?r.call(this.myChart,{seriesIndex:e,seriesName:a.name||"",series:a,dataIndex:t,data:o,name:o.name,value:o.value}):"string"==typeof r?r=r.replace("{a}","{a0}").replace("{b}","{b0}").replace("{c}","{c0}").replace("{a0}",a.name).replace("{b0}",o.name).replace("{c0}",o.value):void 0:o.name},getLabelLine:function(e,t,i,n,o,r,s,l,m){var V=this.series[e],U=V.data[t],d=this._paramsMap[e].location,p=h.merge(h.clone(U.itemStyle)||{},V.itemStyle),c="normal",u=p[c].labelLine,y=p[c].labelLine.length,g=u.lineStyle||{},b=p[c].label;b.position=b.position||p.normal.label.position;var f={zlevel:V.zlevel,z:V.z+1,hoverable:!1,style:{xStart:this._getLabelLineStartPoint(n,d,r,s,m),yStart:o+l/2,xEnd:this._getLabelPoint(b.position,n,d,r,s,y,m),yEnd:o+l/2,strokeColor:g.color||i,lineType:g.type,lineWidth:g.width}};return c="emphasis",u=p[c].labelLine||u,y=p[c].labelLine.length||y,g=u.lineStyle||g,b=p[c].label||b,b.position=b.position,f.highlightStyle={xEnd:this._getLabelPoint(b.position,n,d,r,s,y,m),strokeColor:g.color||i,lineType:g.type,lineWidth:g.width},new a(f)},_getLabelPoint:function(e,t,i,n,a,o,r){switch(e="inner"===e||"inside"===e?"center":e){case"center":return"center"==r?t+n/2:"left"==r?t+10:t+n-10;case"left":return"auto"===o?i.x-10:"center"==r?i.centerX-Math.max(n,a)/2-o:"right"==r?t-(a>n?a-n:0)-o:i.x-o;default:return"auto"===o?i.x+i.width+10:"center"==r?i.centerX+Math.max(n,a)/2+o:"right"==r?i.x+i.width+o:t+Math.max(n,a)+o}},_getLabelLineStartPoint:function(e,t,i,n,a){return"center"==a?t.centerX:n>i?e+Math.min(i,n)/2:e+Math.max(i,n)/2},_needLabel:function(e,t,i){return this.deepQuery([t,e],"itemStyle."+(i?"emphasis":"normal")+".label.show")},_needLabelLine:function(e,t,i){return this.deepQuery([t,e],"itemStyle."+(i?"emphasis":"normal")+".labelLine.show")},refresh:function(e){e&&(this.option=e,this.series=e.series),this.backupShapeList(),this._buildShape()}},h.inherits(t,i),e("../chart").define("funnel",t),t}),i("echarts/chart/eventRiver",["require","./base","../layout/eventRiver","zrender/shape/Polygon","../component/axis","../component/grid","../component/dataZoom","../config","../util/ecData","../util/date","zrender/tool/util","zrender/tool/color","../chart"],function(e){function t(e,t,n,a,o){i.call(this,e,t,n,a,o);var r=this;r._ondragend=function(){r.isDragend=!0},this.refresh(a)}var i=e("./base"),n=e("../layout/eventRiver"),a=e("zrender/shape/Polygon");e("../component/axis"),e("../component/grid"),e("../component/dataZoom");var o=e("../config");o.eventRiver={zlevel:0,z:2,clickable:!0,legendHoverLink:!0,itemStyle:{normal:{borderColor:"rgba(0,0,0,0)",borderWidth:1,label:{show:!0,position:"inside",formatter:"{b}"}},emphasis:{borderColor:"rgba(0,0,0,0)",borderWidth:1,label:{show:!0}}}};var r=e("../util/ecData"),s=e("../util/date"),l=e("zrender/tool/util"),h=e("zrender/tool/color");return t.prototype={type:o.CHART_TYPE_EVENTRIVER,_buildShape:function(){var e=this.series;this.selectedMap={},this._dataPreprocessing();for(var t=this.component.legend,i=[],a=0;an;n++)if(i[n].type===this.type){e=this.component.xAxis.getAxis(i[n].xAxisIndex||0);for(var o=0,r=i[n].data.length;r>o;o++){t=i[n].data[o].evolution;for(var l=0,h=t.length;h>l;l++)t[l].timeScale=e.getCoord(s.getNewDate(t[l].time)-0),t[l].valueScale=Math.pow(t[l].value,.8)}}this._intervalX=Math.round(this.component.grid.getWidth()/40)},_drawEventRiver:function(){for(var e=this.series,t=0;ta)){for(var o=[],r=[],s=0;a>s;s++)o.push(n[s].timeScale),r.push(n[s].valueScale);var l=[];l.push([o[0],i]);var s=0;for(s=0;a-1>s;s++)l.push([(o[s]+o[s+1])/2,r[s]/-2+i]);for(l.push([(o[s]+(o[s]+t))/2,r[s]/-2+i]),l.push([o[s]+t,i]),l.push([(o[s]+(o[s]+t))/2,r[s]/2+i]),s=a-1;s>0;s--)l.push([(o[s]+o[s-1])/2,r[s-1]/2+i]);return l}},ondragend:function(e,t){this.isDragend&&e.target&&(t.dragOut=!0,t.dragIn=!0,t.needRefresh=!1,this.isDragend=!1)},refresh:function(e){e&&(this.option=e,this.series=e.series),this.backupShapeList(),this._buildShape()}},l.inherits(t,i),e("../chart").define("eventRiver",t),t}),i("echarts/layout/eventRiver",["require"],function(){function e(e,i,o){function r(e,t){var i=e.importance,n=t.importance;return i>n?-1:n>i?1:0}for(var s=4,l=0;l=e)return[0];for(var t=[];e--;)t.push(0);return t}(),u=c.slice(0),y=[],g=0,b=0,l=0;l.5?.5:1,r=t.y,s=(t.height-n)/i,l=0,h=e.length;h>l;l++){var m=e[l];m.y=r+s*m.y+m._offset*o,delete m.time,delete m.value,delete m.xpx,delete m.ypx,delete m._offset;for(var V=m.evolution,U=0,d=V.length;d>U;U++)V[U].valueScale*=s}}function i(e,t,i,n){if(e===i)throw new Error("x0 is equal with x1!!!");if(t===n)return function(){return t};var a=(t-n)/(e-i),o=(n*e-t*i)/(e-i);return function(e){return a*e+o}}function n(e,t,n){var a=~~t,o=e.time.length;e.xpx=[],e.ypx=[];for(var r,s=0,l=0,h=0,m=0,V=0;o>s;s++){l=~~e.time[s],m=e.value[s]/2,s===o-1?(h=l+a,V=0):(h=~~e.time[s+1],V=e.value[s+1]/2),r=i(l,m,h,V);for(var U=l;h>U;U++)e.xpx.push(U-n),e.ypx.push(r(U))}e.xpx.push(h-n),e.ypx.push(V)}function a(e,t,i){for(var n,a=0,o=t.xpx.length,r=0;o>r;r++)n=i(t,r),a=Math.max(a,n+e[t.xpx[r]]);for(r=0;o>r;r++)n=i(t,r),e[t.xpx[r]]=a+n;return a}return e}),i("echarts/chart/venn",["require","./base","zrender/shape/Text","zrender/shape/Circle","zrender/shape/Path","../config","../util/ecData","zrender/tool/util","../chart"],function(e){function t(e,t,n,a,o){i.call(this,e,t,n,a,o),this.refresh(a)}var i=e("./base"),n=e("zrender/shape/Text"),a=e("zrender/shape/Circle"),o=e("zrender/shape/Path"),r=e("../config");r.venn={zlevel:0,z:1,calculable:!1};var s=e("../util/ecData"),l=e("zrender/tool/util");return t.prototype={type:r.CHART_TYPE_VENN,_buildShape:function(){this.selectedMap={},this._symbol=this.option.symbolList,this._queryTarget,this._dropBoxList=[],this._vennDataCounter=0;for(var e=this.series,t=this.component.legend,i=0;ia[1].value?(t=this.zr.getHeight()/3,i=t*Math.sqrt(a[1].value)/Math.sqrt(a[0].value)):(i=this.zr.getHeight()/3,t=i*Math.sqrt(a[0].value)/Math.sqrt(a[1].value));var o=this.zr.getWidth()/2-t,r=(t+i)/2*Math.sqrt(a[2].value)/Math.sqrt((a[0].value+a[1].value)/2),s=t+i;0!==a[2].value&&(s=this._getCoincideLength(a[0].value,a[1].value,a[2].value,t,i,r,Math.abs(t-i),t+i));var l=o+s,h=this.zr.getHeight()/2;if(this._buildItem(e,0,a[0],o,h,t),this._buildItem(e,1,a[1],l,h,i),0!==a[2].value&&a[2].value!==a[0].value&&a[2].value!==a[1].value){var m=(t*t-i*i)/(2*s)+s/2,V=s/2-(t*t-i*i)/(2*s),U=Math.sqrt(t*t-m*m),d=0,p=0;a[0].value>a[1].value&&o+m>l&&(p=1),a[0].valuel&&(d=1),this._buildCoincideItem(e,2,a[2],o+m,h-U,h+U,t,i,d,p)}},_getCoincideLength:function(e,t,i,n,a,o,r,s){var l=(n*n-a*a)/(2*o)+o/2,h=o/2-(n*n-a*a)/(2*o),m=Math.acos(l/n),V=Math.acos(h/a),U=n*n*Math.PI,d=m*n*n-l*n*Math.sin(m)+V*a*a-h*a*Math.sin(V),p=d/U,c=i/e,u=Math.abs(p/c);return u>.999&&1.001>u?o:.999>=u?(s=o,o=(o+r)/2,this._getCoincideLength(e,t,i,n,a,o,r,s)):(r=o,o=(o+s)/2,this._getCoincideLength(e,t,i,n,a,o,r,s))},_buildItem:function(e,t,i,n,a,o){var r=this.series,l=r[e],h=this.getCircle(e,t,i,n,a,o);if(s.pack(h,l,e,i,t,i.name),this.shapeList.push(h),l.itemStyle.normal.label.show){var m=this.getLabel(e,t,i,n,a,o);s.pack(m,l,e,l.data[t],t,l.data[t].name),this.shapeList.push(m)}},_buildCoincideItem:function(e,t,i,n,a,r,l,h,m,V){var U=this.series,d=U[e],p=[i,d],c=this.deepMerge(p,"itemStyle.normal")||{},u=this.deepMerge(p,"itemStyle.emphasis")||{},y=c.color||this.zr.getColor(t),g=u.color||this.zr.getColor(t),b="M"+n+","+a+"A"+l+","+l+",0,"+m+",1,"+n+","+r+"A"+h+","+h+",0,"+V+",1,"+n+","+a,f={color:y,path:b},k={zlevel:d.zlevel,z:d.z,style:f,highlightStyle:{color:g,lineWidth:u.borderWidth,strokeColor:u.borderColor}};k=new o(k),k.buildPathArray&&(k.style.pathArray=k.buildPathArray(f.path)),s.pack(k,U[e],0,i,t,i.name),this.shapeList.push(k)},getCircle:function(e,t,i,n,o,r){var s=this.series[e],l=[i,s],h=this.deepMerge(l,"itemStyle.normal")||{},m=this.deepMerge(l,"itemStyle.emphasis")||{},V=h.color||this.zr.getColor(t),U=m.color||this.zr.getColor(t),d={zlevel:s.zlevel,z:s.z,clickable:!0,style:{x:n,y:o,r:r,brushType:"fill",opacity:1,color:V},highlightStyle:{color:U,lineWidth:m.borderWidth,strokeColor:m.borderColor}};return this.deepQuery([i,s,this.option],"calculable")&&(this.setCalculable(d),d.draggable=!0),new a(d)},getLabel:function(e,t,i,a,o,r){var s=this.series[e],l=s.itemStyle,h=[i,s],m=this.deepMerge(h,"itemStyle.normal")||{},V="normal",U=l[V].label,d=U.textStyle||{},p=this.getLabelText(t,i,V),c=this.getFont(d),u=m.color||this.zr.getColor(t),y=d.fontSize||12,g={zlevel:s.zlevel,z:s.z,style:{x:a,y:o-r-y,color:d.color||u,text:p,textFont:c,textAlign:"center"}};return new n(g)},getLabelText:function(e,t,i){var n=this.series,a=n[0],o=this.deepQuery([t,a],"itemStyle."+i+".label.formatter");return o?"function"==typeof o?o(a.name,t.name,t.value):"string"==typeof o?(o=o.replace("{a}","{a0}").replace("{b}","{b0}").replace("{c}","{c0}"),o=o.replace("{a0}",a.name).replace("{b0}",t.name).replace("{c0}",t.value)):void 0:t.name},refresh:function(e){e&&(this.option=e,this.series=e.series),this._buildShape()}},l.inherits(t,i),e("../chart").define("venn",t),t}),i("echarts/chart/treemap",["require","./base","zrender/tool/area","zrender/shape/Rectangle","zrender/shape/Text","zrender/shape/Line","../layout/TreeMap","../data/Tree","../config","../util/ecData","zrender/config","zrender/tool/event","zrender/tool/util","zrender/tool/color","../chart"],function(e){function t(e,t,n,a,o){i.call(this,e,t,n,a,o),this.refresh(a);var r=this;r._onclick=function(e){return r.__onclick(e)},r.zr.on(V.EVENT.CLICK,r._onclick)}var i=e("./base"),n=e("zrender/tool/area"),a=e("zrender/shape/Rectangle"),o=e("zrender/shape/Text"),r=e("zrender/shape/Line"),s=e("../layout/TreeMap"),l=e("../data/Tree"),h=e("../config");h.treemap={zlevel:0,z:1,calculable:!1,clickable:!0,center:["50%","50%"],size:["80%","80%"],root:"",itemStyle:{normal:{label:{ +show:!0,x:5,y:12,textStyle:{align:"left",color:"#000",fontFamily:"Arial",fontSize:13,fontStyle:"normal",fontWeight:"normal"}},breadcrumb:{show:!0,textStyle:{}},borderWidth:1,borderColor:"#ccc",childBorderWidth:1,childBorderColor:"#ccc"},emphasis:{}}};var m=e("../util/ecData"),V=e("zrender/config"),U=(e("zrender/tool/event"),e("zrender/tool/util")),d=e("zrender/tool/color");return t.prototype={type:h.CHART_TYPE_TREEMAP,refresh:function(e){this.clear(),e&&(this.option=e,this.series=this.option.series),this._treesMap={};for(var t=this.series,i=this.component.legend,n=0;nt.width||e.normal.label.y+U>t.height)&&(h=""):h="",e.emphasis.label.show?(s.x+u>t.width||s.y+y>t.height)&&(p=""):p="";var g={style:{textX:t.x+e.normal.label.x,textY:t.y+e.normal.label.y,text:h,textPosition:"specific",textColor:o.color,textFont:m},highlightStyle:{textX:t.x+e.emphasis.label.x,textY:t.y+e.emphasis.label.y,text:p,textColor:s.color,textPosition:"specific"}};return g},getLabelText:function(e,t,i){return i?"function"==typeof i?i.call(this.myChart,e,t):"string"==typeof i?(i=i.replace("{b}","{b0}").replace("{c}","{c0}"),i=i.replace("{b0}",e).replace("{c0}",t)):void 0:e},_buildChildrenTreemap:function(e,t,i,n){for(var a=i.width*i.height,o=0,r=[],l=0;l ":"")},V),clickable:!0,highlightStyle:p});m.set(u,"seriesIndex",t),m.set(u,"name",a[c]),i+=u.getRect(u.style).width,this.shapeList.push(u)}},__onclick:function(e){var t=e.target;if(t){var i=m.get(t,"seriesIndex"),n=m.get(t,"name"),a=this._treesMap[i],o=a.getNodeById(n);o&&o.children.length&&this._buildTreemap(o,i)}}},U.inherits(t,i),e("../chart").define("treemap",t),t}),i("echarts/layout/TreeMap",["require"],function(){function e(e){({x:e.x,y:e.y,width:e.width,height:e.height});this.x=e.x,this.y=e.y,this.width=e.width,this.height=e.height}return e.prototype.run=function(e){var t=[];return this._squarify(e,{x:this.x,y:this.y,width:this.width,height:this.height},t),t},e.prototype._squarify=function(e,t,i){var n="VERTICAL",a=t.width,o=t.height;t.widthl;l++)r[s].y+=r[l].height}var h={};if("VERTICAL"==n){for(var m=0;ml;l++){var h=i*e[l]/o;a.push({width:s,height:h})}return a},e.prototype._isFirstBetter=function(e,t){var i=e[0].height/e[0].width;i=i>1?1/i:i;var n=t[0].height/t[0].width;return n=n>1?1/n:n,Math.abs(i-1)<=Math.abs(n-1)?!0:!1},e}),i("echarts/data/Tree",["require","zrender/tool/util"],function(e){function t(e,t){this.id=e,this.depth=0,this.height=0,this.children=[],this.parent=null,this.data=t||null}function i(e){this.root=new t(e)}var n=e("zrender/tool/util");return t.prototype.add=function(e){var t=this.children;e.parent!==this&&(t.push(e),e.parent=this)},t.prototype.remove=function(e){var t=this.children,i=n.indexOf(t,e);i>=0&&(t.splice(i,1),e.parent=null)},t.prototype.traverse=function(e,t){e.call(t,this);for(var i=0;it&&(t=n.height)}this.height=t+1},t.prototype.getNodeById=function(e){if(this.id===e)return this;for(var t=0;t0&&this._buildLink(i,e)},this);var n=e.roam===!0||"move"===e.roam,a=e.roam===!0||"scale"===e.roam;this.zr.modLayer(this.getZlevelBase(),{panable:n,zoomable:a}),(this.query("markPoint.effect.show")||this.query("markLine.effect.show"))&&this.zr.modLayer(m.EFFECT_ZLEVEL,{panable:n,zoomable:a}),this.addShapeList()},_buildItem:function(e,t,i){var n=[e.data,t],r=this.deepQuery(n,"symbol"),s=this.deepMerge(n,"itemStyle.normal")||{},l=this.deepMerge(n,"itemStyle.emphasis")||{},h=s.color||this.zr.getColor(),m=l.color||this.zr.getColor(),U=-e.layout.angle||0;e.id===this.tree.root.id&&(U=0);var d="right";Math.abs(U)>=Math.PI/2&&Math.abs(U)<3*Math.PI/2&&(U+=Math.PI,d="left");var p=[U,e.layout.position[0],e.layout.position[1]],c=new a({zlevel:this.getZlevelBase(),z:this.getZBase()+1,rotation:p,clickable:this.deepQuery(n,"clickable"),style:{x:e.layout.position[0]-.5*e.layout.width,y:e.layout.position[1]-.5*e.layout.height,width:e.layout.width,height:e.layout.height,iconType:r,color:h,brushType:"both",lineWidth:s.borderWidth,strokeColor:s.borderColor},highlightStyle:{color:m,lineWidth:l.borderWidth,strokeColor:l.borderColor}});c.style.iconType.match("image")&&(c.style.image=c.style.iconType.replace(new RegExp("^image:\\/\\/"),""),c=new o({rotation:p,style:c.style,highlightStyle:c.highlightStyle,clickable:c.clickable,zlevel:this.getZlevelBase(),z:this.getZBase()})),this.deepQuery(n,"itemStyle.normal.label.show")&&(c.style.text=null==e.data.label?e.id:e.data.label,c.style.textPosition=this.deepQuery(n,"itemStyle.normal.label.position"),"radial"===t.orient&&"inside"!==c.style.textPosition&&(c.style.textPosition=d),c.style.textColor=this.deepQuery(n,"itemStyle.normal.label.textStyle.color"),c.style.textFont=this.getFont(this.deepQuery(n,"itemStyle.normal.label.textStyle")||{})),this.deepQuery(n,"itemStyle.emphasis.label.show")&&(c.highlightStyle.textPosition=this.deepQuery(n,"itemStyle.emphasis.label.position"),c.highlightStyle.textColor=this.deepQuery(n,"itemStyle.emphasis.label.textStyle.color"),c.highlightStyle.textFont=this.getFont(this.deepQuery(n,"itemStyle.emphasis.label.textStyle")||{})),V.pack(c,t,i,e.data,0,e.id),this.shapeList.push(c)},_buildLink:function(e,t){var i=t.itemStyle.normal.lineStyle;if("broken"===i.type)return void this._buildBrokenLine(e,i,t);for(var n=0;nr&&(t=r),r>n&&(n=r)}e.layout.position[0]=e.children.length>0?(t+n)/2:0;var s=this._layerOffsets[e.depth]||0;if(s>e.layout.position[0]){var l=s-e.layout.position[0];this._shiftSubtree(e,l);for(var a=e.depth+1;ai;i++)this._buildTextShape(e[i],0,i);this.addShapeList()},_buildTextShape:function(e,t,i){var a=this.series,o=a[t],s=o.name||"",h=o.data[i],m=[h,o],V=this.component.legend,U=V?V.getColor(s):this.zr.getColor(t),d=this.deepMerge(m,"itemStyle.normal")||{},p=this.deepMerge(m,"itemStyle.emphasis")||{},c=this.getItemStyleColor(d.color,t,i,h)||U,u=this.getItemStyleColor(p.color,t,i,h)||("string"==typeof c?l.lift(c,-.2):c),y=new n({zlevel:o.zlevel,z:o.z,hoverable:!0,clickable:this.deepQuery(m,"clickable"),style:{x:0,y:0,text:e.text,color:c,textFont:[e.style,e.weight,e.size+"px",e.font].join(" "),textBaseline:"alphabetic",textAlign:"center"},highlightStyle:{brushType:p.borderWidth?"both":"fill",color:u,lineWidth:p.borderWidth||0,strokeColor:p.borderColor},position:[e.x,e.y],rotation:[-e.rotate/180*Math.PI,0,0]});r.pack(y,o,t,h,i,h.name),this.shapeList.push(y)}},s.inherits(t,i),e("../chart").define("wordCloud",t),t}),i("echarts/layout/WordCloud",["require","../layout/WordCloudRectZero","zrender/tool/util"],function(e){function t(e){this._init(e)}var i=e("../layout/WordCloudRectZero"),n=e("zrender/tool/util");return t.prototype={start:function(){function e(){p.totalArea=r,U.autoSizeCal.enable&&p._autoCalTextSize(m,r,a,o,U.autoSizeCal.minSize),V.timer&&clearInterval(V.timer),V.timer=setInterval(t,0),t()}function t(){for(var e,t=+new Date,i=m.length;+new Date-t>1,e.y=d[1]>>1,p._cloudSprite(e,m,s),e.hasText&&p._place(n,e,h)&&(l.push(e),e.x-=d[0]>>1,e.y-=d[1]>>1);s>=i&&(p.stop(),p._fixTagPosition(l),V.endcallback(l))}var n=null,a=0,o=0,r=0,s=-1,l=[],h=null,m=this.wordsdata,V=this.defaultOption,U=V.wordletype,d=V.size,p=this,c=new i({type:U.type,width:d[0],height:d[1]});return c.calculate(function(t){n=t.initarr,a=t.maxWit,o=t.maxHit,r=t.area,h=t.imgboard,e()},this),this},_fixTagPosition:function(e){for(var t=this.defaultOption.center,i=0,n=e.length;n>i;i++)e[i].x+=t[0],e[i].y+=t[1]},stop:function(){return this.defaultOption.timer&&(clearInterval(this.defaultOption.timer),this.defaultOption.timer=null),this},end:function(e){return e&&(this.defaultOption.endcallback=e),this},_init:function(e){this.defaultOption={},this._initProperty(e),this._initMethod(e),this._initCanvas(),this._initData(e.data)},_initData:function(e){var t=this,i=t.defaultOption;this.wordsdata=e.map(function(e,n){return e.text=i.text.call(t,e,n),e.font=i.font.call(t,e,n),e.style=i.fontStyle.call(t,e,n),e.weight=i.fontWeight.call(t,e,n),e.rotate=i.rotate.call(t,e,n),e.size=~~i.fontSize.call(t,e,n),e.padding=i.padding.call(t,e,n),e}).sort(function(e,t){return t.value-e.value})},_initMethod:function(e){function t(e){return e.name}function i(){return"sans-serif"}function n(){return"normal"}function a(e){return e.value}function o(){return 0}function r(e){return function(){return e[Math.round(Math.random()*(e.length-1))]}}function s(){return 0}function l(e){var t=e[0]/e[1];return function(e){return[t*(e*=.1)*Math.cos(e),e*Math.sin(e)]}}function h(e){var t=4,i=t*e[0]/e[1],n=0,a=0;return function(e){var o=0>e?-1:1;switch(Math.sqrt(1+4*o*e)-o&3){case 0:n+=i;break;case 1:a+=t;break;case 2:n-=i;break;default:a-=t}return[n,a]}}function m(e){return"function"==typeof e?e:function(){return e}}var V=this.defaultOption;V.text=e.text?m(e.text):t,V.font=e.font?m(e.font):i,V.fontSize=e.fontSize?m(e.fontSize):a,V.fontStyle=e.fontStyle?m(e.fontStyle):n,V.fontWeight=e.fontWeight?m(e.fontWeight):n,V.rotate=e.rotate?r(e.rotate):o,V.padding=e.padding?m(e.padding):s,V.center=e.center,V.spiral=l,V.endcallback=function(){},V.rectangularSpiral=h,V.archimedeanSpiral=l},_initProperty:function(e){var t=this.defaultOption;t.size=e.size||[256,256],t.wordletype=e.wordletype,t.words=e.words||[],t.timeInterval=1/0,t.timer=null,t.spirals={archimedean:t.archimedeanSpiral,rectangular:t.rectangularSpiral},n.merge(t,{size:[256,256],wordletype:{type:"RECT",areaPresent:.058,autoSizeCal:{enable:!0,minSize:12}}})},_initCanvas:function(){var e,t=Math.PI/180,i=64,n=2048,a=1;"undefined"!=typeof document?(e=document.createElement("canvas"),e.width=1,e.height=1,a=Math.sqrt(e.getContext("2d").getImageData(0,0,1,1).data.length>>2),e.width=(i<<5)/a,e.height=n/a):e=new Canvas(i<<5,n);var o=e.getContext("2d");o.fillStyle=o.strokeStyle="red",o.textAlign="center",this.defaultOption.c=o,this.defaultOption.cw=i,this.defaultOption.ch=n,this.defaultOption.ratio=a,this.defaultOption.cloudRadians=t},_cloudSprite:function(e,t,i){if(!e.sprite){var n=this.defaultOption.cw,a=this.defaultOption.ch,o=this.defaultOption.c,r=this.defaultOption.ratio,s=this.defaultOption.cloudRadians;o.clearRect(0,0,(n<<5)/r,a/r);var l=0,h=0,m=0,V=t.length;for(--i;++i>5<<5,d=~~Math.max(Math.abs(y+g),Math.abs(y-g))}else U=U+31>>5<<5;if(d>m&&(m=d),l+U>=n<<5&&(l=0,h+=m,m=0),h+d>=a)break;o.translate((l+(U>>1))/r,(h+(d>>1))/r),e.rotate&&o.rotate(e.rotate*s),o.fillText(e.text,0,0),e.padding&&(o.lineWidth=2*e.padding,o.strokeText(e.text,0,0)),o.restore(),e.width=U,e.height=d,e.xoff=l,e.yoff=h,e.x1=U>>1,e.y1=d>>1,e.x0=-e.x1,e.y0=-e.y1,e.hasText=!0,l+=U}for(var f=o.getImageData(0,0,(n<<5)/r,a/r).data,k=[];--i>=0;)if(e=t[i],e.hasText){for(var U=e.width,x=U>>5,d=e.y1-e.y0,_=0;d*x>_;_++)k[_]=0;if(l=e.xoff,null==l)return;h=e.yoff;for(var L=0,W=-1,X=0;d>X;X++){for(var _=0;U>_;_++){var v=x*X+(_>>5),w=f[(h+X)*(n<<5)+(l+_)<<2]?1<<31-_%32:0;k[v]|=w,L|=w}L?W=X:(e.y0++,d--,X--,h++)}e.y1=e.y0+W,e.sprite=k.slice(0,(e.y1-e.y0)*x)}}},_place:function(e,t,i){function n(e,t,i){i>>=5;for(var n,a=e.sprite,o=e.width>>5,r=e.x-(o<<4),s=127&r,l=32-s,h=e.y1-e.y0,m=(e.y+e.y0)*i+(r>>5),V=0;h>V;V++){n=0;for(var U=0;o>=U;U++)if((n<U?(n=a[V*o+U])>>>s:0))&t[m+U])return!0;m+=i}return!1}function a(e,t){return t.row[e.y]&&t.cloumn[e.x]&&e.x>=t.row[e.y].start&&e.x<=t.row[e.y].end&&e.y>=t.cloumn[e.x].start&&e.y<=t.cloumn[e.x].end}for(var o,r,s,l=this.defaultOption.size,h=([{x:0,y:0},{x:l[0],y:l[1]}],t.x),m=t.y,V=Math.sqrt(l[0]*l[0]+l[1]*l[1]),U=this.defaultOption.spiral(l),d=Math.random()<.5?1:-1,p=-d;(o=U(p+=d))&&(r=~~o[0],s=~~o[1],!(Math.min(r,s)>V));)if(t.x=h+r,t.y=m+s,!(t.x+t.x0<0||t.y+t.y0<0||t.x+t.x1>l[0]||t.y+t.y1>l[1])&&!n(t,e,l[0])&&a(t,i)){for(var c,u=t.sprite,y=t.width>>5,g=l[0]>>5,b=t.x-(y<<4),f=127&b,k=32-f,x=t.y1-t.y0,_=(t.y+t.y0)*g+(b>>5),L=0;x>L;L++){c=0;for(var W=0;y>=W;W++)e[_+W]|=c<W?(c=u[L*y+W])>>>f:0);_+=g}return delete t.sprite,!0}return!1},_autoCalTextSize:function(e,t,i,n,a){function o(e){c.clearRect(0,0,(d<<5)/u,p/u),c.save(),c.font=e.style+" "+e.weight+" "+~~((e.size+1)/u)+"px "+e.font;var t=c.measureText(e.text+"m").width*u,r=e.size<<1;t=t+31>>5<<5,c.restore(),e.aw=t,e.ah=r;var s,l,h;if(e.rotate){var m=Math.sin(e.rotate*y),V=Math.cos(e.rotate*y),g=t*V,b=t*m,f=r*V,k=r*m;l=Math.max(Math.abs(g+k),Math.abs(g-k))+31>>5<<5,h=~~Math.max(Math.abs(b+f),Math.abs(b-f))}return e.size<=U||e.rotate&&t*r<=e.area&&i>=l&&n>=h||t*r<=e.area&&i>=t&&n>=r?void(e.area=t*r):(s=e.rotate&&l>i&&h>n?Math.min(i/l,n/h):t>i||r>n?Math.min(i/t,n/r):Math.sqrt(e.area/(e.aw*e.ah)),e.size=~~(s*e.size),e.sizel?l:V:l,s.area=t*s.areapre,s.totalarea=t,o(s)}},t}),i("echarts/layout/WordCloudRectZero",["require"],function(){function e(e){this.defaultOption={type:"RECT"},this._init(e)}return e.prototype={RECT:"_calculateRect",_init:function(e){this._initOption(e),this._initCanvas()},_initOption:function(e){for(k in e)this.defaultOption[k]=e[k]},_initCanvas:function(){var e=document.createElement("canvas");e.width=1,e.height=1;var t=Math.sqrt(e.getContext("2d").getImageData(0,0,1,1).data.length>>2);if(e.width=this.defaultOption.width,e.height=this.defaultOption.height,e.getContext)var i=e.getContext("2d");this.canvas=e,this.ctx=i,this.ratio=t},calculate:function(e,t){var i=this.defaultOption.type,n=this[i];this[n].call(this,e,t)},_calculateReturn:function(e,t,i){t.call(i,e)},_calculateRect:function(e,t){var i={},n=this.defaultOption.width>>5<<5,a=this.defaultOption.height;i.initarr=this._rectZeroArray(n*a),i.area=n*a,i.maxHit=a,i.maxWit=n,i.imgboard=this._rectBoard(n,a),this._calculateReturn(i,e,t)},_rectBoard:function(e,t){for(var i=[],n=0;t>n;n++)i.push({y:n,start:0,end:e});for(var a=[],n=0;e>n;n++)a.push({x:n,start:0,end:t});return{row:i,cloumn:a}},_rectZeroArray:function(e){for(var t=[],i=e,n=-1;++ni;++i)if(e[i].type===a.CHART_TYPE_HEATMAP){e[i]=this.reformOption(e[i]);var o=new n(e[i]),s=o.getCanvas(e[i].data,this.zr.getWidth(),this.zr.getHeight()),l=new r({position:[0,0],scale:[1,1],hoverable:this.option.hoverable,style:{x:0,y:0,image:s,width:s.width,height:s.height}});this.shapeList.push(l)}this.addShapeList()}},o.inherits(t,i),e("../chart").define("heatmap",t),t});var n=t("zrender");n.tool={color:t("zrender/tool/color"),math:t("zrender/tool/math"),util:t("zrender/tool/util"),vector:t("zrender/tool/vector"),area:t("zrender/tool/area"),event:t("zrender/tool/event")},n.animation={Animation:t("zrender/animation/Animation"),Cip:t("zrender/animation/Clip"),easing:t("zrender/animation/easing")};var a=t("echarts");a.config=t("echarts/config"),a.util={mapData:{params:t("echarts/util/mapData/params")}},t("echarts/chart/line"),t("echarts/chart/bar"),t("echarts/chart/scatter"),t("echarts/chart/k"),t("echarts/chart/pie"),t("echarts/chart/radar"),t("echarts/chart/chord"),t("echarts/chart/force"),t("echarts/chart/map"),t("echarts/chart/gauge"),t("echarts/chart/funnel"),t("echarts/chart/eventRiver"),t("echarts/chart/venn"),t("echarts/chart/treemap"),t("echarts/chart/tree"),t("echarts/chart/wordCloud"),t("echarts/chart/heatmap"),e.echarts=a,e.zrender=n}(window); + +layui.define('echartsTheme', function(exports){ + exports('echarts', echarts); +}); \ No newline at end of file diff --git a/public/static/admin/lib/extend/echartsTheme.js b/public/static/admin/lib/extend/echartsTheme.js new file mode 100644 index 0000000..0731e1a --- /dev/null +++ b/public/static/admin/lib/extend/echartsTheme.js @@ -0,0 +1,267 @@ +/** + + @Name:echarts 主题 + @Author:贤心 + @Site:http://www.layui.com/admin/ + @License:GPL-2 + + */ + + +layui.define(function(exports) { + exports('echartsTheme', { + // 默认色板 + color: [ + '#009688','#1E9FFF','#5FB878','#FFB980','#D87A80', + '#8d98b3','#e5cf0d','#97b552','#95706d','#dc69aa', + '#07a2a4','#9a7fd1','#588dd5','#f5994e','#c05050', + '#59678c','#c9ab00','#7eb00a','#6f5553','#c14089' + ], + + // 图表标题 + title: { + textStyle: { + fontWeight: 'normal', + color: '#666' // 主标题文字颜色 + } + }, + + // 值域 + dataRange: { + itemWidth: 15, + color: ['#009688','#e0ffff'] + }, + + // 工具箱 + toolbox: { + color : ['#1e90ff', '#1e90ff', '#1e90ff', '#1e90ff'], + effectiveColor : '#ff4500' + }, + + // 提示框 + tooltip: { + backgroundColor: 'rgba(50,50,50,0.5)', // 提示背景颜色,默认为透明度为0.7的黑色 + axisPointer : { // 坐标轴指示器,坐标轴触发有效 + type : 'line', // 默认为直线,可选为:'line' | 'shadow' + lineStyle : { // 直线指示器样式设置 + color: '#009688' + }, + crossStyle: { + color: '#008acd' + }, + shadowStyle : { // 阴影指示器样式设置 + color: 'rgba(200,200,200,0.2)' + } + } + }, + + // 区域缩放控制器 + dataZoom: { + dataBackgroundColor: '#efefff', // 数据背景颜色 + fillerColor: 'rgba(182,162,222,0.2)', // 填充颜色 + handleColor: '#008acd' // 手柄颜色 + }, + + // 网格 + grid: { + borderColor: '#eee' + }, + + // 类目轴 - X轴 + categoryAxis: { + axisLine: { // 坐标轴线 + lineStyle: { // 属性lineStyle控制线条样式 + color: '#009688' + } + }, + axisTick: { //小标记 + show: false + }, + splitLine: { // 分隔线 + lineStyle: { // 属性lineStyle(详见lineStyle)控制线条样式 + color: ['#eee'] + } + } + }, + + // 数值型坐标轴默认参数 - Y轴 + valueAxis: { + axisLine: { // 坐标轴线 + lineStyle: { // 属性lineStyle控制线条样式 + color: '#009688' + } + }, + splitArea : { + show : true, + areaStyle : { + color: ['rgba(250,250,250,0.1)','rgba(200,200,200,0.1)'] + } + }, + splitLine: { // 分隔线 + lineStyle: { // 属性lineStyle(详见lineStyle)控制线条样式 + color: ['#eee'] + } + } + }, + + polar : { + axisLine: { // 坐标轴线 + lineStyle: { // 属性lineStyle控制线条样式 + color: '#ddd' + } + }, + splitArea : { + show : true, + areaStyle : { + color: ['rgba(250,250,250,0.2)','rgba(200,200,200,0.2)'] + } + }, + splitLine : { + lineStyle : { + color : '#ddd' + } + } + }, + + timeline : { + lineStyle : { + color : '#009688' + }, + controlStyle : { + normal : { color : '#009688'}, + emphasis : { color : '#009688'} + }, + symbol : 'emptyCircle', + symbolSize : 3 + }, + + // 柱形图默认参数 + bar: { + itemStyle: { + normal: { + barBorderRadius: 2 + }, + emphasis: { + barBorderRadius: 2 + } + } + }, + + // 折线图默认参数 + line: { + smooth : true, + symbol: 'emptyCircle', // 拐点图形类型 + symbolSize: 3 // 拐点图形大小 + }, + + // K线图默认参数 + k: { + itemStyle: { + normal: { + color: '#d87a80', // 阳线填充颜色 + color0: '#2ec7c9', // 阴线填充颜色 + lineStyle: { + color: '#d87a80', // 阳线边框颜色 + color0: '#2ec7c9' // 阴线边框颜色 + } + } + } + }, + + // 散点图默认参数 + scatter: { + symbol: 'circle', // 图形类型 + symbolSize: 4 // 图形大小,半宽(半径)参数,当图形为方向或菱形则总宽度为symbolSize * 2 + }, + + // 雷达图默认参数 + radar : { + symbol: 'emptyCircle', // 图形类型 + symbolSize:3 + //symbol: null, // 拐点图形类型 + //symbolRotate : null, // 图形旋转控制 + }, + + map: { + itemStyle: { + normal: { + areaStyle: { + color: '#ddd' + }, + label: { + textStyle: { + color: '#d87a80' + } + } + }, + emphasis: { // 也是选中样式 + areaStyle: { + color: '#fe994e' + } + } + } + }, + + force : { + itemStyle: { + normal: { + linkStyle : { + color : '#1e90ff' + } + } + } + }, + + chord : { + itemStyle : { + normal : { + borderWidth: 1, + borderColor: 'rgba(128, 128, 128, 0.5)', + chordStyle : { + lineStyle : { + color : 'rgba(128, 128, 128, 0.5)' + } + } + }, + emphasis : { + borderWidth: 1, + borderColor: 'rgba(128, 128, 128, 0.5)', + chordStyle : { + lineStyle : { + color : 'rgba(128, 128, 128, 0.5)' + } + } + } + } + }, + + gauge : { + axisLine: { // 坐标轴线 + lineStyle: { // 属性lineStyle控制线条样式 + color: [[0.2, '#2ec7c9'],[0.8, '#5ab1ef'],[1, '#d87a80']], + width: 10 + } + }, + axisTick: { // 坐标轴小标记 + splitNumber: 10, // 每份split细分多少段 + length :15, // 属性length控制线长 + lineStyle: { // 属性lineStyle控制线条样式 + color: 'auto' + } + }, + splitLine: { // 分隔线 + length :22, // 属性length控制线长 + lineStyle: { // 属性lineStyle(详见lineStyle)控制线条样式 + color: 'auto' + } + }, + pointer : { + width : 5 + } + }, + + textStyle: { + fontFamily: '微软雅黑, Arial, Verdana, sans-serif' + } + }); +}); \ No newline at end of file diff --git a/public/static/admin/lib/index.js b/public/static/admin/lib/index.js new file mode 100644 index 0000000..1a2f83e --- /dev/null +++ b/public/static/admin/lib/index.js @@ -0,0 +1,95 @@ +/** + + @Name:layuiAdmin iframe版主入口 + @Author:贤心 + @Site:http://www.layui.com/admin/ + @License:LPPL + + */ + +layui.extend({ + setter: 'config' //配置模块 + ,admin: 'lib/admin' //核心模块 + ,view: 'lib/view' //视图渲染模块 +}).define(['setter', 'admin'], function(exports){ + var setter = layui.setter + ,element = layui.element + ,admin = layui.admin + ,tabsPage = admin.tabsPage + ,view = layui.view + + //打开标签页 + ,openTabsPage = function(url, text){ + //遍历页签选项卡 + var matchTo + ,tabs = $('#LAY_app_tabsheader>li') + ,path = url.replace(/(^http(s*):)|(\?[\s\S]*$)/g, ''); + + tabs.each(function(index){ + var li = $(this) + ,layid = li.attr('lay-id'); + + if(layid === url){ + matchTo = true; + tabsPage.index = index; + } + }); + + text = text || '新标签页'; + + if(setter.pageTabs){ + //如果未在选项卡中匹配到,则追加选项卡 + if(!matchTo){ + $(APP_BODY).append([ + '
        ' + ,'' + ,'
        ' + ].join('')); + tabsPage.index = tabs.length; + element.tabAdd(FILTER_TAB_TBAS, { + title: ''+ text +'' + ,id: url + ,attr: path + }); + } + } else { + var iframe = admin.tabsBody(admin.tabsPage.index).find('.layadmin-iframe'); + iframe[0].contentWindow.location.href = url; + } + + //定位当前tabs + element.tabChange(FILTER_TAB_TBAS, url); + admin.tabsBodyChange(tabsPage.index, { + url: url + ,text: text + }); + } + + ,APP_BODY = '#LAY_app_body', FILTER_TAB_TBAS = 'layadmin-layout-tabs' + ,$ = layui.$, $win = $(window); + + //初始 + if(admin.screen() < 2) admin.sideFlexible(); + + //将模块根路径设置为 controller 目录 + layui.config({ + base: setter.base + 'modules/' + }); + + //扩展 lib 目录下的其它模块 + layui.each(setter.extend, function(index, item){ + var mods = {}; + mods[item] = '{/}' + setter.base + 'lib/extend/' + item; + layui.extend(mods); + }); + + view().autoRender(); + + //加载公共模块 + layui.use('common'); + + //对外输出 + exports('index', { + openTabsPage: openTabsPage + }); +}); diff --git a/public/static/admin/lib/view.js b/public/static/admin/lib/view.js new file mode 100644 index 0000000..c16a8e3 --- /dev/null +++ b/public/static/admin/lib/view.js @@ -0,0 +1,364 @@ +/** + + @Name:layuiAdmin 视图模块 + @Author:贤心 + @Site:http://www.layui.com/admin/ + @License:LPPL + + */ + +layui.define(['laytpl', 'layer'], function(exports){ + var $ = layui.jquery + ,laytpl = layui.laytpl + ,layer = layui.layer + ,setter = layui.setter + ,device = layui.device() + ,hint = layui.hint() + + //对外接口 + ,view = function(id){ + return new Class(id); + } + + ,SHOW = 'layui-show', LAY_BODY = 'LAY_app_body' + + //构造器 + ,Class = function(id){ + this.id = id; + this.container = $('#'+(id || LAY_BODY)); + }; + + //加载中 + view.loading = function(elem){ + elem.append( + this.elemLoad = $('') + ); + }; + + //移除加载 + view.removeLoad = function(){ + this.elemLoad && this.elemLoad.remove(); + }; + + //清除 token,并跳转到登入页 + view.exit = function(callback){ + //清空本地记录的 token + layui.data(setter.tableName, { + key: setter.request.tokenName + ,remove: true + }); + + //跳转到登入页 + //location.hash = '/user/login'; + callback && callback(); + }; + + //Ajax请求 + view.req = function(options){ + var that = this + ,success = options.success + ,error = options.error + ,request = setter.request + ,response = setter.response + ,debug = function(){ + return setter.debug + ? '
        URL:' + options.url + : ''; + }; + + options.data = options.data || {}; + options.headers = options.headers || {}; + + if(request.tokenName){ + var sendData = typeof options.data === 'string' + ? JSON.parse(options.data) + : options.data; + + //自动给参数传入默认 token + options.data[request.tokenName] = request.tokenName in sendData + ? options.data[request.tokenName] + : (layui.data(setter.tableName)[request.tokenName] || ''); + + //自动给 Request Headers 传入 token + options.headers[request.tokenName] = request.tokenName in options.headers + ? options.headers[request.tokenName] + : (layui.data(setter.tableName)[request.tokenName] || ''); + } + + delete options.success; + delete options.error; + + return $.ajax($.extend({ + type: 'get' + ,dataType: 'json' + ,success: function(res){ + var statusCode = response.statusCode; + + //只有 response 的 code 一切正常才执行 done + if(res[response.statusName] == statusCode.ok) { + typeof options.done === 'function' && options.done(res); + } + + //登录状态失效,清除本地 access_token,并强制跳转到登入页 + else if(res[response.statusName] == statusCode.logout){ + view.exit(); + } + + //增加的代码,增加登录失败时的状态码 + else if(res[response.statusName] == statusCode.error){ + layer.msg(res.msg); + } + + //其它异常 + else { + var error = [ + 'Error: ' + (res[response.msgName] || '返回状态码异常') + ,debug() + ].join(''); + view.error(error); + } + + //只要 http 状态码正常,无论 response 的 code 是否正常都执行 success + typeof success === 'function' && success(res); + } + ,error: function(e, code){ + var error = [ + '请求异常,请重试
        错误信息:'+ code + ,debug() + ].join(''); + view.error(error); + + typeof error === 'function' && error(res); + } + }, options)); + }; + + //弹窗 + view.popup = function(options){ + var success = options.success + ,skin = options.skin; + + delete options.success; + delete options.skin; + + return layer.open($.extend({ + type: 1 + ,title: '提示' + ,content: '' + ,id: 'LAY-system-view-popup' + ,skin: 'layui-layer-admin' + (skin ? ' ' + skin : '') + ,shadeClose: true + ,closeBtn: false + ,success: function(layero, index){ + var elemClose = $(''); + layero.append(elemClose); + elemClose.on('click', function(){ + layer.close(index); + }); + typeof success === 'function' && success.apply(this, arguments); + } + }, options)) + }; + + //异常提示 + view.error = function(content, options){ + return view.popup($.extend({ + content: content + ,maxWidth: 300 + //,shade: 0.01 + ,offset: 't' + ,anim: 6 + ,id: 'LAY_adminError' + }, options)) + }; + + + //请求模板文件渲染 + Class.prototype.render = function(views, params){ + var that = this, router = layui.router(); + views = setter.views + views + setter.engine; + + $('#'+ LAY_BODY).children('.layadmin-loading').remove(); + view.loading(that.container); //loading + + //请求模板 + $.ajax({ + url: views + ,type: 'get' + ,dataType: 'html' + ,data: { + v: layui.cache.version + } + ,success: function(html){ + html = '
        ' + html + '
        '; + + var elemTitle = $(html).find('title') + ,title = elemTitle.text() || (html.match(/\([\s\S]*)\<\/title>/)||[])[1]; + + var res = { + title: title + ,body: html + }; + + elemTitle.remove(); + that.params = params || {}; //获取参数 + + if(that.then){ + that.then(res); + delete that.then; + } + + that.parse(html); + view.removeLoad(); + + if(that.done){ + that.done(res); + delete that.done; + } + + } + ,error: function(e){ + view.removeLoad(); + + if(that.render.isError){ + return view.error('请求视图文件异常,状态:'+ e.status); + }; + + if(e.status === 404){ + that.render('template/tips/404'); + } else { + that.render('template/tips/error'); + } + + that.render.isError = true; + } + }); + return that; + }; + + //解析模板 + Class.prototype.parse = function(html, refresh, callback){ + var that = this + ,isScriptTpl = typeof html === 'object' //是否模板元素 + ,elem = isScriptTpl ? html : $(html) + ,elemTemp = isScriptTpl ? html : elem.find('*[template]') + ,fn = function(options){ + var tpl = laytpl(options.dataElem.html()) + ,res = $.extend({ + params: router.params + }, options.res); + + options.dataElem.after(tpl.render(res)); + typeof callback === 'function' && callback(); + + try { + options.done && new Function('d', options.done)(res); + } catch(e){ + console.error(options.dataElem[0], '\n存在错误回调脚本\n\n', e) + } + } + ,router = layui.router(); + + elem.find('title').remove(); + that.container[refresh ? 'after' : 'html'](elem.children()); + + router.params = that.params || {}; + + //遍历模板区块 + for(var i = elemTemp.length; i > 0; i--){ + (function(){ + var dataElem = elemTemp.eq(i - 1) + ,layDone = dataElem.attr('lay-done') || dataElem.attr('lay-then') //获取回调 + ,url = laytpl(dataElem.attr('lay-url')|| '').render(router) //接口 url + ,data = laytpl(dataElem.attr('lay-data')|| '').render(router) //接口参数 + ,headers = laytpl(dataElem.attr('lay-headers')|| '').render(router); //接口请求的头信息 + + try { + data = new Function('return '+ data + ';')(); + } catch(e) { + hint.error('lay-data: ' + e.message); + data = {}; + }; + + try { + headers = new Function('return '+ headers + ';')(); + } catch(e) { + hint.error('lay-headers: ' + e.message); + headers = headers || {} + }; + + if(url){ + view.req({ + type: dataElem.attr('lay-type') || 'get' + ,url: url + ,data: data + ,dataType: 'json' + ,headers: headers + ,success: function(res){ + fn({ + dataElem: dataElem + ,res: res + ,done: layDone + }); + } + }); + } else { + fn({ + dataElem: dataElem + ,done: layDone + }); + } + }()); + } + + return that; + }; + + //自动渲染数据模板 + Class.prototype.autoRender = function(id, callback){ + var that = this; + $(id || 'body').find('*[template]').each(function(index, item){ + var othis = $(this); + that.container = othis; + that.parse(othis, 'refresh'); + }); + }; + + //直接渲染字符 + Class.prototype.send = function(views, data){ + var tpl = laytpl(views || this.container.html()).render(data || {}); + this.container.html(tpl); + return this; + }; + + //局部刷新模板 + Class.prototype.refresh = function(callback){ + var that = this + ,next = that.container.next() + ,templateid = next.attr('lay-templateid'); + + if(that.id != templateid) return that; + + that.parse(that.container, 'refresh', function(){ + that.container.siblings('[lay-templateid="'+ that.id +'"]:last').remove(); + typeof callback === 'function' && callback(); + }); + + return that; + }; + + //视图请求成功后的回调 + Class.prototype.then = function(callback){ + this.then = callback; + return this; + }; + + //视图渲染完毕后的回调 + Class.prototype.done = function(callback){ + this.done = callback; + return this; + }; + + //对外接口 + exports('view', view); +}); \ No newline at end of file diff --git a/public/static/admin/modules/common.js b/public/static/admin/modules/common.js new file mode 100644 index 0000000..c10643b --- /dev/null +++ b/public/static/admin/modules/common.js @@ -0,0 +1,51 @@ +/** + + @Name:layuiAdmin 公共业务 + @Author:贤心 + @Site:http://www.layui.com/admin/ + @License:LPPL + + */ + +layui.define(function(exports){ + var $ = layui.$ + ,layer = layui.layer + ,laytpl = layui.laytpl + ,setter = layui.setter + ,view = layui.view + ,admin = layui.admin + + //公共业务的逻辑处理可以写在此处,切换任何页面都会执行 + //…… + + + + //退出 + admin.events.logout = function(){ + //执行退出接口 + admin.req({ + url: '/admin/user/logout' + ,type: 'get' + ,data: {} + ,done: function(res){ //这里要说明一下:done 是只有 response 的 code 正常才会执行。而 succese 则是只要 http 为 200 就会执行 + + //清空本地记录的 token,并跳转到登入页 + admin.exit(function(){ + + layer.msg(res.msg,{ + icon:1, + time:2000 + }, function(){ + location.href = '/admin/login/index'; + }); + + //location.href = '/admin/login/index'; + }); + } + }); + }; + + + //对外暴露的接口 + exports('common', {}); +}); \ No newline at end of file diff --git a/public/static/admin/modules/console.js b/public/static/admin/modules/console.js new file mode 100644 index 0000000..4f9bb49 --- /dev/null +++ b/public/static/admin/modules/console.js @@ -0,0 +1,223 @@ +/** + + @Name:layuiAdmin 主页控制台 + @Author:贤心 + @Site:http://www.layui.com/admin/ + @License:GPL-2 + + */ + + +layui.define(function(exports){ + + /* + 下面通过 layui.use 分段加载不同的模块,实现不同区域的同时渲染,从而保证视图的快速呈现 + */ + + + //区块轮播切换 + layui.use(['admin', 'carousel'], function(){ + var $ = layui.$ + ,admin = layui.admin + ,carousel = layui.carousel + ,element = layui.element + ,device = layui.device(); + + //轮播切换 + $('.layadmin-carousel').each(function(){ + var othis = $(this); + carousel.render({ + elem: this + ,width: '100%' + ,arrow: 'none' + ,interval: othis.data('interval') + ,autoplay: othis.data('autoplay') === true + ,trigger: (device.ios || device.android) ? 'click' : 'hover' + ,anim: othis.data('anim') + }); + }); + + element.render('progress'); + + }); + + //数据概览 + layui.use(['admin', 'carousel', 'echarts'], function(){ + var $ = layui.$ + ,admin = layui.admin + ,carousel = layui.carousel + ,echarts = layui.echarts; + + var echartsApp = [], options = [ + //今日流量趋势 + { + title: { + text: '今日流量趋势', + x: 'center', + textStyle: { + fontSize: 14 + } + }, + tooltip : { + trigger: 'axis' + }, + legend: { + data:['',''] + }, + xAxis : [{ + type : 'category', + boundaryGap : false, + data: ['06:00','06:30','07:00','07:30','08:00','08:30','09:00','09:30','10:00','11:30','12:00','12:30','13:00','13:30','14:00','14:30','15:00','15:30','16:00','16:30','17:00','17:30','18:00','18:30','19:00','19:30','20:00','20:30','21:00','21:30','22:00','22:30','23:00','23:30'] + }], + yAxis : [{ + type : 'value' + }], + series : [{ + name:'PV', + type:'line', + smooth:true, + itemStyle: {normal: {areaStyle: {type: 'default'}}}, + data: [111,222,333,444,555,666,3333,33333,55555,66666,33333,3333,6666,11888,26666,38888,56666,42222,39999,28888,17777,9666,6555,5555,3333,2222,3111,6999,5888,2777,1666,999,888,777] + },{ + name:'UV', + type:'line', + smooth:true, + itemStyle: {normal: {areaStyle: {type: 'default'}}}, + data: [11,22,33,44,55,66,333,3333,5555,12666,3333,333,666,1188,2666,3888,6666,4222,3999,2888,1777,966,655,555,333,222,311,699,588,277,166,99,88,77] + }] + }, + + //访客浏览器分布 + { + title : { + text: '访客浏览器分布', + x: 'center', + textStyle: { + fontSize: 14 + } + }, + tooltip : { + trigger: 'item', + formatter: "{a}
        {b} : {c} ({d}%)" + }, + legend: { + orient : 'vertical', + x : 'left', + data:['Chrome','Firefox','IE 8.0','Safari','其它浏览器'] + }, + series : [{ + name:'访问来源', + type:'pie', + radius : '55%', + center: ['50%', '50%'], + data:[ + {value:9052, name:'Chrome'}, + {value:1610, name:'Firefox'}, + {value:3200, name:'IE 8.0'}, + {value:535, name:'Safari'}, + {value:1700, name:'其它浏览器'} + ] + }] + }, + + //新增的用户量 + { + title: { + text: '最近一周新增的用户量', + x: 'center', + textStyle: { + fontSize: 14 + } + }, + tooltip : { //提示框 + trigger: 'axis', + formatter: "{b}
        新增用户:{c}" + }, + xAxis : [{ //X轴 + type : 'category', + data : ['11-07', '11-08', '11-09', '11-10', '11-11', '11-12', '11-13'] + }], + yAxis : [{ //Y轴 + type : 'value' + }], + series : [{ //内容 + type: 'line', + data:[200, 300, 400, 610, 150, 270, 380], + }] + } + ] + ,elemDataView = $('#LAY-index-dataview').children('div') + ,renderDataView = function(index){ + echartsApp[index] = echarts.init(elemDataView[index], layui.echartsTheme); + echartsApp[index].setOption(options[index]); + //window.onresize = echartsApp[index].resize; + admin.resize(function(){ + echartsApp[index].resize(); + }); + }; + + + //没找到DOM,终止执行 + if(!elemDataView[0]) return; + + + + renderDataView(0); + + //监听数据概览轮播 + var carouselIndex = 0; + carousel.on('change(LAY-index-dataview)', function(obj){ + renderDataView(carouselIndex = obj.index); + }); + + //监听侧边伸缩 + layui.admin.on('side', function(){ + setTimeout(function(){ + renderDataView(carouselIndex); + }, 300); + }); + + //监听路由 + layui.admin.on('hash(tab)', function(){ + layui.router().path.join('') || renderDataView(carouselIndex); + }); + }); + + //最新订单 + layui.use('table', function(){ + var $ = layui.$ + ,table = layui.table; + + //今日热搜 + table.render({ + elem: '#LAY-index-topSearch' + ,url: layui.setter.base + 'json/console/top-search.js' //模拟接口 + ,page: true + ,cols: [[ + {type: 'numbers', fixed: 'left'} + ,{field: 'keywords', title: '关键词', minWidth: 300, templet: ''} + ,{field: 'frequency', title: '搜索次数', minWidth: 120, sort: true} + ,{field: 'userNums', title: '用户数', sort: true} + ]] + ,skin: 'line' + }); + + //今日热贴 + table.render({ + elem: '#LAY-index-topCard' + ,url: layui.setter.base + 'json/console/top-card.js' //模拟接口 + ,page: true + ,cellMinWidth: 120 + ,cols: [[ + {type: 'numbers', fixed: 'left'} + ,{field: 'title', title: '标题', minWidth: 300, templet: ''} + ,{field: 'username', title: '发帖者'} + ,{field: 'channel', title: '类别'} + ,{field: 'crt', title: '点击率', sort: true} + ]] + ,skin: 'line' + }); + }); + + exports('console', {}) +}); \ No newline at end of file diff --git a/public/static/admin/modules/contlist.js b/public/static/admin/modules/contlist.js new file mode 100644 index 0000000..941ae35 --- /dev/null +++ b/public/static/admin/modules/contlist.js @@ -0,0 +1,244 @@ +/** + + @Name:layuiAdmin 内容系统 + @Author:star1029 + @Site:http://www.layui.com/admin/ + @License:LPPL + + */ + + +layui.define(['table', 'form'], function(exports){ + var $ = layui.$ + ,table = layui.table + ,form = layui.form; + + //文章管理 + table.render({ + elem: '#LAY-app-content-list' + ,url: layui.setter.base + 'json/content/list.js' //模拟接口 + ,cols: [[ + {type: 'checkbox', fixed: 'left'} + ,{field: 'id', width: 100, title: '文章ID', sort: true} + ,{field: 'label', title: '文章标签', minWidth: 100} + ,{field: 'title', title: '文章标题'} + ,{field: 'author', title: '作者'} + ,{field: 'uploadtime', title: '上传时间', sort: true} + ,{field: 'status', title: '发布状态', templet: '#buttonTpl', minWidth: 80, align: 'center'} + ,{title: '操作', minWidth: 150, align: 'center', fixed: 'right', toolbar: '#table-content-list'} + ]] + ,page: true + ,limit: 10 + ,limits: [10, 15, 20, 25, 30] + ,text: '对不起,加载出现异常!' + }); + + //监听工具条 + table.on('tool(LAY-app-content-list)', function(obj){ + var data = obj.data; + if(obj.event === 'del'){ + layer.confirm('确定删除此文章?', function(index){ + obj.del(); + layer.close(index); + }); + } else if(obj.event === 'edit'){ + layer.open({ + type: 2 + ,title: '编辑文章' + ,content: '../../../views/app/content/listform.html?id='+ data.id + ,maxmin: true + ,area: ['550px', '550px'] + ,btn: ['确定', '取消'] + ,yes: function(index, layero){ + var iframeWindow = window['layui-layer-iframe'+ index] + ,submit = layero.find('iframe').contents().find("#layuiadmin-app-form-edit"); + + //监听提交 + iframeWindow.layui.form.on('submit(layuiadmin-app-form-edit)', function(data){ + var field = data.field; //获取提交的字段 + + //提交 Ajax 成功后,静态更新表格中的数据 + //$.ajax({}); + obj.update({ + label: field.label + ,title: field.title + ,author: field.author + ,status: field.status + }); //数据更新 + + form.render(); + layer.close(index); //关闭弹层 + }); + + submit.trigger('click'); + } + }); + } + }); + + //分类管理 + table.render({ + elem: '#LAY-app-content-tags' + ,url: '/admin/forum/tags' //模拟接口 + ,cols: [[ + {type: 'numbers', fixed: 'left'} + ,{field: 'sort', title: '排序', width: 100, sort: true} + ,{field: 'id', title: 'ID',minWidth: 30} + ,{field: 'tags', title: '分类名', minWidth: 100} + ,{field: 'ename', title: 'EN别名', minWidth: 100} + + ,{title: '操作', width: 150, align: 'center', fixed: 'right', toolbar: '#layuiadmin-app-cont-tagsbar'} + ]] + ,text: '对不起,加载出现异常!' + }); + + //监听工具条 + table.on('tool(LAY-app-content-tags)', function(obj){ + var data = obj.data; + if(obj.event === 'del'){ + layer.confirm('确定删除此分类?', function(index){ + $.ajax({ + type:'post', + url:"/admin/forum/tagsdelete", + data:{id:data.id}, + dataType:'json', + success:function(data){ + if(data.code == 0){ + layer.msg(data.msg,{ + icon:6, + time:2000 + },function(){ + location.reload(); + }); + } else { + layer.open({ + title:'删除失败', + content:data.msg, + icon:5, + adim:6 + }) + } + } + }); + //obj.del(); + layer.close(index); + }); + } else if(obj.event === 'edit'){ + var tr = $(obj.tr); + layer.open({ + type: 2 + ,title: '编辑分类' + ,content: '/admin/forum/tagsform?id='+ data.id + ,area: ['450px', '300px'] + ,btn: ['确定', '取消'] + ,yes: function(index, layero){ + //获取iframe元素的值 + var othis = layero.find('iframe').contents().find("#layuiadmin-app-form-tags") + ,tags = othis.find('input[name="tags"]').val() + ,ename = othis.find('input[name="ename"]').val() + ,sort = othis.find('input[name="sort"]').val(); + + if(!tags.replace(/\s/g, '')) return; + + $.ajax({ + type:"post", + url:"/admin/forum/tagsform", + data:{"id":data.id,"catename":tags,"sort":sort,"ename":ename}, + daType:"json", + success:function (data){ + if (data.code == 0) { + layer.msg(data.msg,{ + icon:6, + time:2000 + }, function(){ + location.reload(); + }); + } else { + layer.open({ + tiele:'修改失败', + content:data.msg, + icon:5, + anim:6 + }); + } + } + }); +/* + obj.update({ + tags: tags + ,ename: ename + ,sort: sort + }); +*/ + layer.close(index); + } + ,success: function(layero, index){ + //给iframe元素赋值 + var othis = layero.find('iframe').contents().find("#layuiadmin-app-form-tags").click(); + othis.find('input[name="tags"]').val(data.tags) + ,othis.find('input[name="ename"]').val(data.ename) + ,othis.find('input[name="sort"]').val(data.sort); + } + }); + } + }); + + //评论管理 + table.render({ + elem: '#LAY-app-content-comm' + ,url: layui.setter.base + 'json/content/comment.js' //模拟接口 + ,cols: [[ + {type: 'checkbox', fixed: 'left'} + ,{field: 'id', width: 100, title: 'ID', sort: true} + ,{field: 'reviewers', title: '评论者', minWidth: 100} + ,{field: 'content', title: '评论内容', minWidth: 100} + ,{field: 'commtime', title: '评论时间', minWidth: 100, sort: true} + ,{title: '操作', width: 150, align: 'center', fixed: 'right', toolbar: '#table-content-com'} + ]] + ,page: true + ,limit: 10 + ,limits: [10, 15, 20, 25, 30] + ,text: '对不起,加载出现异常!' + }); + + //监听工具条 + table.on('tool(LAY-app-content-comm)', function(obj){ + var data = obj.data; + if(obj.event === 'del'){ + layer.confirm('确定删除此条评论?', function(index){ + obj.del(); + layer.close(index); + }); + } else if(obj.event === 'edit') { + layer.open({ + type: 2 + ,title: '编辑评论' + ,content: '../../../views/app/content/contform.html' + ,area: ['450px', '300px'] + ,btn: ['确定', '取消'] + ,yes: function(index, layero){ + var iframeWindow = window['layui-layer-iframe'+ index] + ,submitID = 'layuiadmin-app-comm-submit' + ,submit = layero.find('iframe').contents().find('#'+ submitID); + + //监听提交 + iframeWindow.layui.form.on('submit('+ submitID +')', function(data){ + var field = data.field; //获取提交的字段 + + //提交 Ajax 成功后,静态更新表格中的数据 + //$.ajax({}); + table.reload('LAY-app-content-comm'); //数据刷新 + layer.close(index); //关闭弹层 + }); + + submit.trigger('click'); + } + ,success: function(layero, index){ + + } + }); + } + }); + + exports('contlist', {}) +}); \ No newline at end of file diff --git a/public/static/admin/modules/forum.js b/public/static/admin/modules/forum.js new file mode 100644 index 0000000..06b5536 --- /dev/null +++ b/public/static/admin/modules/forum.js @@ -0,0 +1,164 @@ +/** + + @Name:layuiAdmin 社区系统 + @Author:star1029 + @Site:http://www.layui.com/admin/ + @License:LPPL + + */ + + +layui.define(['table', 'form'], function(exports){ + var $ = layui.$ + ,table = layui.table + ,form = layui.form; + + //帖子管理 + table.render({ + elem: '#LAY-app-forum-list' + ,url: '/admin/forum/list' //帖子数据接口 + ,cols: [[ + {type: 'checkbox', fixed: 'left'} + ,{field: 'id', width: 100, title: 'ID', sort: true} + ,{field: 'poster', title: '发帖人'} + ,{field: 'avatar', title: '头像', width: 100, templet: '#imgTpl'} + ,{field: 'content', title: '发帖内容',templet: '#title'} + ,{field: 'posttime', title: '发帖时间', sort: true} + ,{field: 'top', title: '置顶', templet: '#buttonTpl', minWidth: 80, align: 'center'} + ,{title: '操作', width: 150, align: 'center', fixed: 'right', toolbar: '#table-forum-list'} + ]] + ,page: true + ,limit: 15 + ,limits: [10, 15, 20, 25, 30] + ,text: '对不起,加载出现异常!' + }); + + //监听工具条 + table.on('tool(LAY-app-forum-list)', function(obj){ + var data = obj.data; + if(obj.event === 'del'){ + layer.confirm('确定删除此条帖子?', function(index){ + obj.del(); + layer.close(index); + }); + } else if(obj.event === 'edit'){ + var tr = $(obj.tr); + + layer.open({ + type: 2 + ,title: '编辑帖子' + ,content: '/admin/forum/listform?id='+ data.id + ,area: ['550px', '400px'] + ,btn: ['确定', '取消'] + ,resize: false + ,yes: function(index, layero){ + var iframeWindow = window['layui-layer-iframe'+ index] + ,submitID = 'LAY-app-forum-submit' + ,submit = layero.find('iframe').contents().find("#layuiadmin-form-list") + ,poster = submit.find('input[name="poster"]').val() + ,content = submit.find('input[name="content"]').val() + ,avatar = submit.find('input[name="avatar"]').val(); + + //监听提交 + iframeWindow.layui.form.on('submit('+ submitID +')', function(data){ + var field = data.field; //获取提交的字段 + + //提交 Ajax 成功后,静态更新表格中的数据 + //$.ajax({}); + $.ajax({ + type:"post", + url:"/admin/forum/listform", + data:{"id":data.id,"poster":name,"sort":sort,"ename":ename}, + daType:"json", + success:function (data){ + if (data.code == 0) { + layer.msg(data.msg,{ + icon:6, + time:2000 + }, function(){ + location.reload(); + }); + } else { + layer.open({ + tiele:'修改失败', + content:data.msg, + icon:5, + anim:6 + }); + } + } + }); + + + table.reload('LAY-app-forum-list'); //数据刷新 + layer.close(index); //关闭弹层 + }); + + submit.trigger('click'); + } + ,success: function(layero, index){ + + } + }); + } + }); + + //回帖管理 + table.render({ + elem: '#LAY-app-forumreply-list' + ,url: '/admin/forum/replys' + ,cols: [[ + {type: 'checkbox', fixed: 'left'} + ,{field: 'id', width: 100, title: 'ID', sort: true} + ,{field: 'replyer', title: '回帖人'} + ,{field: 'cardid', title: '回帖ID', sort: true} + ,{field: 'avatar', title: '头像', width: 100, templet: '#imgTpl'} + ,{field: 'content', title: '回帖内容', width: 200} + ,{field: 'replytime', title: '回帖时间', sort: true} + ,{title: '操作', width: 150, align: 'center', fixed: 'right', toolbar: '#table-forum-replys'} + ]] + ,page: true + ,limit: 10 + ,limits: [10, 15, 20, 25, 30] + ,text: '对不起,加载出现异常!' + }); + + //监听工具条 + table.on('tool(LAY-app-forumreply-list)', function(obj){ + var data = obj.data; + if(obj.event === 'del'){ + layer.confirm('确定删除此条评论?', function(index){ + obj.del(); + layer.close(index); + }); + } else if(obj.event === 'edit'){ + var tr = $(obj.tr); + + layer.open({ + type: 2 + ,title: '编辑评论' + ,content: '/admin/forum/replysform.html' + ,area: ['550px', '350px'] + ,btn: ['确定', '取消'] + ,resize: false + ,yes: function(index, layero){ + //获取iframe元素的值 + var othis = layero.find('iframe').contents().find("#layuiadmin-form-replys"); + var content = othis.find('textarea[name="content"]').val(); + + //数据更新 + obj.update({ + content: content + }); + layer.close(index); + } + ,success: function(layero, index){ + + } + + }); + } + }); + + exports('forum', {}) +}); \ No newline at end of file diff --git a/public/static/admin/modules/im.js b/public/static/admin/modules/im.js new file mode 100644 index 0000000..9fc1f75 --- /dev/null +++ b/public/static/admin/modules/im.js @@ -0,0 +1,418 @@ +/** + + @Name:layuiAdmin 用户登入和注册等 + @Author:贤心 + @Site:http://www.layui.com/admin/ + @License: LPPL + + */ + +layui.define(['index', 'layim'], function(exports){ + var $ = layui.$ + ,admin = layui.admin + ,element = layui.element + ,router = layui.router(); + + + var layim = layui.layim; + + //演示自动回复 + var autoReplay = [ + '您好,我现在有事不在,一会再和您联系。', + '你没发错吧?face[微笑] ', + '洗澡中,请勿打扰,偷窥请购票,个体四十,团体八折,订票电话:一般人我不告诉他!face[哈哈] ', + '你好,我是主人的美女秘书,有什么事就跟我说吧,等他回来我会转告他的。face[心] face[心] face[心] ', + 'face[威武] face[威武] face[威武] face[威武] ', + '<(@ ̄︶ ̄@)>', + '你要和我说话?你真的要和我说话?你确定自己想说吗?你一定非说不可吗?那你说吧,这是自动回复。', + 'face[黑线] 你慢慢说,别急……', + '(*^__^*) face[嘻嘻] ,是贤心吗?' + ]; + + //基础配置 + layim.config({ + //初始化接口 + init: { + url: layui.setter.base + 'json/layim/getList.js' + ,data: {} + } + //查看群员接口 + ,members: { + url: layui.setter.base + 'json/layim/getMembers.js' + ,data: {} + } + + ,uploadImage: { + url: '' //(返回的数据格式见下文) + ,type: '' //默认post + } + ,uploadFile: { + url: '' //(返回的数据格式见下文) + ,type: '' //默认post + } + + ,isAudio: true //开启聊天工具栏音频 + ,isVideo: true //开启聊天工具栏视频 + + //扩展工具栏 + ,tool: [{ + alias: 'code' + ,title: '代码' + ,icon: '' + }] + + //,brief: true //是否简约模式(若开启则不显示主面板) + + //,title: 'WebIM' //自定义主面板最小化时的标题 + //,right: '100px' //主面板相对浏览器右侧距离 + //,minRight: '90px' //聊天面板最小化时相对浏览器右侧距离 + ,initSkin: '3.jpg' //1-5 设置初始背景 + //,skin: ['aaa.jpg'] //新增皮肤 + //,isfriend: false //是否开启好友 + //,isgroup: false //是否开启群组 + //,min: true //是否始终最小化主面板,默认false + //,notice: true //是否开启桌面消息提醒,默认false + //,voice: false //声音提醒,默认开启,声音文件为:default.mp3 + + ,msgbox: '/layim/demo/msgbox.html' //消息盒子页面地址,若不开启,剔除该项即可 + ,find: '/layim/demo/find.html' //发现页面地址,若不开启,剔除该项即可 + ,chatLog: '/layim/demo/chatlog.html' //聊天记录页面地址,若不开启,剔除该项即可 + + }); + //监听在线状态的切换事件 + layim.on('online', function(status){ + layer.msg(status); + }); + + //监听签名修改 + layim.on('sign', function(value){ + layer.msg(value); + }); + //监听自定义工具栏点击,以添加代码为例 + layim.on('tool(code)', function(insert){ + layer.prompt({ + title: '插入代码 - 工具栏扩展示例' + ,formType: 2 + ,shade: 0 + }, function(text, index){ + layer.close(index); + insert('[pre class=layui-code]' + text + '[/pre]'); //将内容插入到编辑器 + }); + }); + + //监听layim建立就绪 + layim.on('ready', function(res){ + //console.log(res.mine); + layim.msgbox(5); //模拟消息盒子有新消息,实际使用时,一般是动态获得 + }); + //监听发送消息 + layim.on('sendMessage', function(data){ + var To = data.to; + //console.log(data); + + if(To.type === 'friend'){ + layim.setChatStatus('对方正在输入。。。'); + } + + //演示自动回复 + setTimeout(function(){ + var obj = {}; + if(To.type === 'group'){ + obj = { + username: '模拟群员'+(Math.random()*100|0) + ,avatar: layui.cache.dir + 'images/face/'+ (Math.random()*72|0) + '.gif' + ,id: To.id + ,type: To.type + ,content: autoReplay[Math.random()*9|0] + } + } else { + obj = { + username: To.name + ,avatar: To.avatar + ,id: To.id + ,type: To.type + ,content: autoReplay[Math.random()*9|0] + } + layim.setChatStatus('在线'); + } + layim.getMessage(obj); + }, 1000); + }); + //监听查看群员 + layim.on('members', function(data){ + //console.log(data); + }); + + //监听聊天窗口的切换 + layim.on('chatChange', function(res){ + var type = res.data.type; + console.log(res.data.id) + if(type === 'friend'){ + //模拟标注好友状态 + //layim.setChatStatus('在线'); + } else if(type === 'group'){ + //模拟系统消息 + layim.getMessage({ + system: true + ,id: res.data.id + ,type: "group" + ,content: '模拟群员'+(Math.random()*100|0) + '加入群聊' + }); + } + }); + + + //面板外的操作 + var $ = layui.jquery, active = { + chat: function(){ + //自定义会话 + layim.chat({ + name: '小闲' + ,type: 'friend' + ,avatar: '//tva3.sinaimg.cn/crop.0.0.180.180.180/7f5f6861jw1e8qgp5bmzyj2050050aa8.jpg' + ,id: 1008612 + }); + layer.msg('也就是说,此人可以不在好友面板里'); + } + ,message: function(){ + //制造好友消息 + layim.getMessage({ + username: "贤心" + ,avatar: "//tp1.sinaimg.cn/1571889140/180/40030060651/1" + ,id: "100001" + ,type: "friend" + ,content: "嗨,你好!欢迎体验LayIM。演示标记:"+ new Date().getTime() + ,timestamp: new Date().getTime() + }); + } + ,messageAudio: function(){ + //接受音频消息 + layim.getMessage({ + username: "林心如" + ,avatar: "//tp3.sinaimg.cn/1223762662/180/5741707953/0" + ,id: "76543" + ,type: "friend" + ,content: "audio[http://gddx.sc.chinaz.com/Files/DownLoad/sound1/201510/6473.mp3]" + ,timestamp: new Date().getTime() + }); + } + ,messageVideo: function(){ + //接受视频消息 + layim.getMessage({ + username: "林心如" + ,avatar: "//tp3.sinaimg.cn/1223762662/180/5741707953/0" + ,id: "76543" + ,type: "friend" + ,content: "video[http://www.w3school.com.cn//i/movie.ogg]" + ,timestamp: new Date().getTime() + }); + } + ,messageTemp: function(){ + //接受临时会话消息 + layim.getMessage({ + username: "小酱" + ,avatar: "//tva1.sinaimg.cn/crop.7.0.736.736.50/bd986d61jw8f5x8bqtp00j20ku0kgabx.jpg" + ,id: "198909151014" + ,type: "friend" + ,content: "临时:"+ new Date().getTime() + }); + } + ,add: function(){ + //实际使用时数据由动态获得 + layim.add({ + type: 'friend' + ,username: '麻花疼' + ,avatar: '//tva1.sinaimg.cn/crop.0.0.720.720.180/005JKVuPjw8ers4osyzhaj30k00k075e.jpg' + ,submit: function(group, remark, index){ + layer.msg('好友申请已发送,请等待对方确认', { + icon: 1 + ,shade: 0.5 + }, function(){ + layer.close(index); + }); + + //通知对方 + /* + $.post('/im-applyFriend/', { + uid: info.uid + ,from_group: group + ,remark: remark + }, function(res){ + if(res.status != 0){ + return layer.msg(res.msg); + } + layer.msg('好友申请已发送,请等待对方确认', { + icon: 1 + ,shade: 0.5 + }, function(){ + layer.close(index); + }); + }); + */ + } + }); + } + ,addqun: function(){ + layim.add({ + type: 'group' + ,username: 'LayIM会员群' + ,avatar: '//tva2.sinaimg.cn/crop.0.0.180.180.50/6ddfa27bjw1e8qgp5bmzyj2050050aa8.jpg' + ,submit: function(group, remark, index){ + layer.msg('申请已发送,请等待管理员确认', { + icon: 1 + ,shade: 0.5 + }, function(){ + layer.close(index); + }); + + //通知对方 + /* + $.post('/im-applyGroup/', { + uid: info.uid + ,from_group: group + ,remark: remark + }, function(res){ + + }); + */ + } + }); + } + ,addFriend: function(){ + var user = { + type: 'friend' + ,id: 1234560 + ,username: '李彦宏' //好友昵称,若申请加群,参数为:groupname + ,avatar: '//tva4.sinaimg.cn/crop.0.0.996.996.180/8b2b4e23jw8f14vkwwrmjj20ro0rpjsq.jpg' //头像 + ,sign: '全球最大的中文搜索引擎' + } + layim.setFriendGroup({ + type: user.type + ,username: user.username + ,avatar: user.avatar + ,group: layim.cache().friend //获取好友列表数据 + ,submit: function(group, index){ + //一般在此执行Ajax和WS,以通知对方已经同意申请 + //…… + + //同意后,将好友追加到主面板 + layim.addList({ + type: user.type + ,username: user.username + ,avatar: user.avatar + ,groupid: group //所在的分组id + ,id: user.id //好友ID + ,sign: user.sign //好友签名 + }); + + layer.close(index); + } + }); + } + ,addGroup: function(){ + layer.msg('已成功把[Angular开发]添加到群组里', { + icon: 1 + }); + //增加一个群组 + layim.addList({ + type: 'group' + ,avatar: "//tva3.sinaimg.cn/crop.64.106.361.361.50/7181dbb3jw8evfbtem8edj20ci0dpq3a.jpg" + ,groupname: 'Angular开发' + ,id: "12333333" + ,members: 0 + }); + } + ,removeFriend: function(){ + layer.msg('已成功删除[凤姐]', { + icon: 1 + }); + //删除一个好友 + layim.removeList({ + id: 121286 + ,type: 'friend' + }); + } + ,removeGroup: function(){ + layer.msg('已成功删除[前端群]', { + icon: 1 + }); + //删除一个群组 + layim.removeList({ + id: 101 + ,type: 'group' + }); + } + //置灰离线好友 + ,setGray: function(){ + layim.setFriendStatus(168168, 'offline'); + + layer.msg('已成功将好友[马小云]置灰', { + icon: 1 + }); + } + //取消好友置灰 + ,unGray: function(){ + layim.setFriendStatus(168168, 'online'); + + layer.msg('成功取消好友[马小云]置灰状态', { + icon: 1 + }); + } + + ,kefu1: function(){ + layim.chat({ + name: '在线客服一' //名称 + ,type: 'kefu' //聊天类型 + ,avatar: '//tp1.sinaimg.cn/5619439268/180/40030060651/1' //头像 + ,id: 1111111 //定义唯一的id方便你处理信息 + }) + } + ,kefu2: function(){ + layim.chat({ + name: '在线客服二' //名称 + ,type: 'kefu' //聊天类型 + ,avatar: '//tp1.sinaimg.cn/5619439268/180/40030060651/1' //头像 + ,id: 2222222 //定义唯一的id方便你处理信息 + }); + } + + //移动端版本 + ,mobile: function(){ + var device = layui.device(); + var mobileHome = '/layim/demo/mobile.html'; + if(device.android || device.ios){ + return location.href = mobileHome; + } + var index = layer.open({ + type: 2 + ,title: '移动版演示 (或手机扫右侧二维码预览)' + ,content: mobileHome + ,area: ['375px', '667px'] + ,shadeClose: true + ,shade: 0.8 + ,end: function(){ + layer.close(index + 2); + } + }); + layer.photos({ + photos: { + "data": [{ + "src": "http://cdn.layui.com/upload/2016_12/168_1481056358469_50288.png", + }] + } + ,anim: 0 + ,shade: false + ,success: function(layero){ + layero.css('margin-left', '350px'); + } + }); + } + }; + $('.LAY-senior-im-chat-demo .layui-btn').on('click', function(){ + var type = $(this).data('type'); + active[type] ? active[type].call(this) : ''; + }); + + + exports('im', {}); +}); \ No newline at end of file diff --git a/public/static/admin/modules/message.js b/public/static/admin/modules/message.js new file mode 100644 index 0000000..7e93c61 --- /dev/null +++ b/public/static/admin/modules/message.js @@ -0,0 +1,132 @@ +/** + + @Name:layuiAdmin(iframe版) 消息中心 + @Author:贤心 + @Site:http://www.layui.com/admin/ + @License:LPPL + + */ + + +layui.define(['admin', 'table', 'util'], function(exports){ + var $ = layui.$ + ,admin = layui.admin + ,table = layui.table + ,element = layui.element; + + var DISABLED = 'layui-btn-disabled' + + //区分各选项卡中的表格 + ,tabs = { + all: { + text: '全部消息' + ,id: 'LAY-app-message-all' + } + ,notice: { + text: '通知' + ,id: 'LAY-app-message-notice' + } + ,direct: { + text: '私信' + ,id: 'LAY-app-message-direct' + } + }; + + //标题内容模板 + var tplTitle = function(d){ + return ''+ d.title; + }; + + //全部消息 + table.render({ + elem: '#LAY-app-message-all' + ,url: layui.setter.base + 'json/message/all.js' //模拟接口 + ,page: true + ,cols: [[ + {type: 'checkbox', fixed: 'left'} + ,{field: 'title', title: '标题内容', minWidth: 300, templet: tplTitle} + ,{field: 'time', title: '时间', width: 170, templet: '
        {{ layui.util.timeAgo(d.time) }}
        '} + ]] + ,skin: 'line' + }); + + //通知 + table.render({ + elem: '#LAY-app-message-notice' + ,url: layui.setter.base + 'json/message/notice.js' //模拟接口 + ,page: true + ,cols: [[ + {type: 'checkbox', fixed: 'left'} + ,{field: 'title', title: '标题内容', minWidth: 300, templet: tplTitle} + ,{field: 'time', title: '时间', width: 170, templet: '
        {{ layui.util.timeAgo(d.time) }}
        '} + ]] + ,skin: 'line' + }); + + //私信 + table.render({ + elem: '#LAY-app-message-direct' + ,url: layui.setter.base + 'json/message/direct.js' //模拟接口 + ,page: true + ,cols: [[ + {type: 'checkbox', fixed: 'left'} + ,{field: 'title', title: '标题内容', minWidth: 300, templet: tplTitle} + ,{field: 'time', title: '时间', width: 170, templet: '
        {{ layui.util.timeAgo(d.time) }}
        '} + ]] + ,skin: 'line' + }); + + + //事件处理 + var events = { + del: function(othis, type){ + var thisTabs = tabs[type] + ,checkStatus = table.checkStatus(thisTabs.id) + ,data = checkStatus.data; //获得选中的数据 + if(data.length === 0) return layer.msg('未选中行'); + + layer.confirm('确定删除选中的数据吗?', function(){ + /* + admin.req('url', {}, function(){ //请求接口 + //do somethin + }); + */ + //此处只是演示,实际应用需把下述代码放入上述Ajax回调中 + layer.msg('删除成功', { + icon: 1 + }); + table.reload(thisTabs.id); //刷新表格 + }); + } + ,ready: function(othis, type){ + var thisTabs = tabs[type] + ,checkStatus = table.checkStatus(thisTabs.id) + ,data = checkStatus.data; //获得选中的数据 + if(data.length === 0) return layer.msg('未选中行'); + + //此处只是演示 + layer.msg('标记已读成功', { + icon: 1 + }); + table.reload(thisTabs.id); //刷新表格 + } + ,readyAll: function(othis, type){ + var thisTabs = tabs[type]; + + //do somethin + + layer.msg(thisTabs.text + ':全部已读', { + icon: 1 + }); + } + }; + + $('.LAY-app-message-btns .layui-btn').on('click', function(){ + var othis = $(this) + ,thisEvent = othis.data('events') + ,type = othis.data('type'); + events[thisEvent] && events[thisEvent].call(this, othis, type); + }); + + exports('message', {}); +}); \ No newline at end of file diff --git a/public/static/admin/modules/sample.js b/public/static/admin/modules/sample.js new file mode 100644 index 0000000..750cf75 --- /dev/null +++ b/public/static/admin/modules/sample.js @@ -0,0 +1,299 @@ +/** + + @Name:layuiAdmin 主页示例 + @Author:star1029 + @Site:http://www.layui.com/admin/ + @License:GPL-2 + + */ + + +layui.define(function(exports){ + var admin = layui.admin; + + //区块轮播切换 + layui.use(['admin', 'carousel'], function(){ + var $ = layui.$ + ,admin = layui.admin + ,carousel = layui.carousel + ,element = layui.element + ,device = layui.device(); + + //轮播切换 + $('.layadmin-carousel').each(function(){ + var othis = $(this); + carousel.render({ + elem: this + ,width: '100%' + ,arrow: 'none' + ,interval: othis.data('interval') + ,autoplay: othis.data('autoplay') === true + ,trigger: (device.ios || device.android) ? 'click' : 'hover' + ,anim: othis.data('anim') + }); + }); + + element.render('progress'); + + }); + + //八卦新闻 + layui.use(['carousel', 'echarts'], function(){ + var $ = layui.$ + ,carousel = layui.carousel + ,echarts = layui.echarts; + + var echartsApp = [], options = [ + { + title : { + subtext: '完全实况球员数据', + textStyle: { + fontSize: 14 + } + }, + tooltip : { + trigger: 'axis' + }, + legend: { + x : 'left', + data:['罗纳尔多','舍普琴科'] + }, + polar : [ + { + indicator : [ + {text : '进攻', max : 100}, + {text : '防守', max : 100}, + {text : '体能', max : 100}, + {text : '速度', max : 100}, + {text : '力量', max : 100}, + {text : '技巧', max : 100} + ], + radius : 130 + } + ], + series : [ + { + type: 'radar', + center : ['50%', '50%'], + itemStyle: { + normal: { + areaStyle: { + type: 'default' + } + } + }, + data:[ + {value : [97, 42, 88, 94, 90, 86], name : '舍普琴科'}, + {value : [97, 32, 74, 95, 88, 92], name : '罗纳尔多'} + ] + } + ] + } + ] + ,elemDataView = $('#LAY-index-pageone').children('div') + ,renderDataView = function(index){ + echartsApp[index] = echarts.init(elemDataView[index], layui.echartsTheme); + echartsApp[index].setOption(options[index]); + window.onresize = echartsApp[index].resize; + }; + //没找到DOM,终止执行 + if(!elemDataView[0]) return; + + renderDataView(0); + }); + + //访问量 + layui.use(['carousel', 'echarts'], function(){ + var $ = layui.$ + ,carousel = layui.carousel + ,echarts = layui.echarts; + + var echartsApp = [], options = [ + { + tooltip : { + trigger: 'axis' + }, + calculable : true, + legend: { + data:['访问量','下载量','平均访问量'] + }, + + xAxis : [ + { + type : 'category', + data : ['1月','2月','3月','4月','5月','6月','7月','8月','9月','10月','11月','12月'] + } + ], + yAxis : [ + { + type : 'value', + name : '访问量', + axisLabel : { + formatter: '{value} 万' + } + }, + { + type : 'value', + name : '下载量', + axisLabel : { + formatter: '{value} 万' + } + } + ], + series : [ + { + name:'访问量', + type:'line', + data:[900, 850, 950, 1000, 1100, 1050, 1000, 1150, 1250, 1370, 1250, 1100] + }, + { + name:'下载量', + type:'line', + yAxisIndex: 1, + data:[850, 850, 800, 950, 1000, 950, 950, 1150, 1100, 1240, 1000, 950] + }, + { + name:'平均访问量', + type:'line', + data:[870, 850, 850, 950, 1050, 1000, 980, 1150, 1000, 1300, 1150, 1000] + } + ] + } + ] + ,elemDataView = $('#LAY-index-pagetwo').children('div') + ,renderDataView = function(index){ + echartsApp[index] = echarts.init(elemDataView[index], layui.echartsTheme); + echartsApp[index].setOption(options[index]); + window.onresize = echartsApp[index].resize; + }; + //没找到DOM,终止执行 + if(!elemDataView[0]) return; + renderDataView(0); + + }); + + //地图 + layui.use(['carousel', 'echarts'], function(){ + var $ = layui.$ + ,carousel = layui.carousel + ,echarts = layui.echarts; + + var echartsApp = [], options = [ + { + title : { + text: '全国的 layui 用户分布', + subtext: '不完全统计' + }, + tooltip : { + trigger: 'item' + }, + dataRange: { + orient: 'horizontal', + min: 0, + max: 60000, + text:['高','低'], + splitNumber:0 + }, + series : [ + { + name: '全国的 layui 用户分布', + type: 'map', + mapType: 'china', + selectedMode : 'multiple', + itemStyle:{ + normal:{label:{show:true}}, + emphasis:{label:{show:true}} + }, + data:[ + {name:'西藏', value:60}, + {name:'青海', value:167}, + {name:'宁夏', value:210}, + {name:'海南', value:252}, + {name:'甘肃', value:502}, + {name:'贵州', value:570}, + {name:'新疆', value:661}, + {name:'云南', value:8890}, + {name:'重庆', value:10010}, + {name:'吉林', value:5056}, + {name:'山西', value:2123}, + {name:'天津', value:9130}, + {name:'江西', value:10170}, + {name:'广西', value:6172}, + {name:'陕西', value:9251}, + {name:'黑龙江', value:5125}, + {name:'内蒙古', value:1435}, + {name:'安徽', value:9530}, + {name:'北京', value:51919}, + {name:'福建', value:3756}, + {name:'上海', value:59190}, + {name:'湖北', value:37109}, + {name:'湖南', value:8966}, + {name:'四川', value:31020}, + {name:'辽宁', value:7222}, + {name:'河北', value:3451}, + {name:'河南', value:9693}, + {name:'浙江', value:62310}, + {name:'山东', value:39231}, + {name:'江苏', value:35911}, + {name:'广东', value:55891} + ] + } + ] + } + ] + ,elemDataView = $('#LAY-index-pagethree').children('div') + ,renderDataView = function(index){ + echartsApp[index] = echarts.init(elemDataView[index], layui.echartsTheme); + echartsApp[index].setOption(options[index]); + window.onresize = echartsApp[index].resize; + }; + //没找到DOM,终止执行 + if(!elemDataView[0]) return; + + renderDataView(0); + }); + + //项目进展 + layui.use('table', function(){ + var $ = layui.$ + ,table = layui.table; + + table.render({ + elem: '#LAY-index-prograss' + ,url: layui.setter.base + 'json/console/prograss.js' //模拟接口 + ,cols: [[ + {type: 'checkbox', fixed: 'left'} + ,{field: 'prograss', title: '任务'} + ,{field: 'time', title: '所需时间'} + ,{field: 'complete', title: '完成情况' + ,templet: function(d){ + if(d.complete == '已完成'){ + return ''+ d.complete +'' + }else if(d.complete == '进行中'){ + return ''+ d.complete +'' + }else{ + return ''+ d.complete +'' + } + } + } + ]] + ,skin: 'line' + }); + }); + + //回复留言 + admin.events.replyNote = function(othis){ + var nid = othis.data('id'); + layer.prompt({ + title: '回复留言 ID:'+ nid + ,formType: 2 + }, function(value, index){ + //这里可以请求 Ajax + //… + layer.msg('得到:'+ value); + layer.close(index); + }); + }; + + exports('sample', {}) +}); \ No newline at end of file diff --git a/public/static/admin/modules/senior.js b/public/static/admin/modules/senior.js new file mode 100644 index 0000000..ad5c47e --- /dev/null +++ b/public/static/admin/modules/senior.js @@ -0,0 +1,1166 @@ +/** + + @Name:layuiAdmin Echarts集成 + @Author:star1029 + @Site:http://www.layui.com/admin/ + @License:GPL-2 + + */ + + +layui.define(function(exports){ + + + //区块轮播切换 + layui.use(['admin', 'carousel'], function(){ + var $ = layui.$ + ,admin = layui.admin + ,carousel = layui.carousel + ,element = layui.element + ,device = layui.device(); + + //轮播切换 + $('.layadmin-carousel').each(function(){ + var othis = $(this); + carousel.render({ + elem: this + ,width: '100%' + ,arrow: 'none' + ,interval: othis.data('interval') + ,autoplay: othis.data('autoplay') === true + ,trigger: (device.ios || device.android) ? 'click' : 'hover' + ,anim: othis.data('anim') + }); + }); + + element.render('progress'); + + }); + + +//折线图 + + + layui.use(['carousel', 'echarts'], function(){ + var $ = layui.$ + ,carousel = layui.carousel + ,echarts = layui.echarts; + + //标准折线图 + var echnormline = [], normline = [ + { + title : { + text: '未来一周气温变化', + subtext: '纯属虚构' + }, + tooltip : { + trigger: 'axis' + }, + legend: { + data:['最高气温','最低气温'] + }, + calculable : true, + xAxis : [ + { + type : 'category', + boundaryGap : false, + data : ['周一','周二','周三','周四','周五','周六','周日'] + } + ], + yAxis : [ + { + type : 'value', + axisLabel : { + formatter: '{value} °C' + } + } + ], + series : [ + { + name:'最高气温', + type:'line', + data:[11, 11, 15, 13, 12, 13, 10], + markPoint : { + data : [{type : 'max', name: '最大值'},{type : 'min', name: '最小值'}] + }, + markLine : { + data : [{type : 'average', name: '平均值'}] + } + }, + { + name:'最低气温', + type:'line', + data:[1, -2, 2, 5, 3, 2, 0], + markPoint : { + data : [{name : '周最低', value : -2, xAxis: 1, yAxis: -1.5}] + }, + markLine : { + data : [{type : 'average', name : '平均值'}] + } + } + ] + } + ] + ,elemnormline = $('#LAY-index-normline').children('div') + ,rendernormline = function(index){ + echnormline[index] = echarts.init(elemnormline[index], layui.echartsTheme); + echnormline[index].setOption(normline[index]); + window.onresize = echnormline[index].resize; + }; + if(!elemnormline[0]) return; + rendernormline(0); + + //堆积折线图 + var echheapline = [], heapline = [ + { + tooltip : { + trigger: 'axis' + }, + legend: {data:['邮件营销','联盟广告','视频广告','直接访问','搜索引擎']}, + calculable : true, + xAxis : [ + { + type : 'category', + boundaryGap : false, + data : ['周一','周二','周三','周四','周五','周六','周日'] + } + ], + yAxis : [ + { + type : 'value' + } + ], + series : [ + { + name:'邮件营销', + type:'line', + stack: '总量', + data:[120, 132, 101, 134, 90, 230, 210] + }, + { + name:'联盟广告', + type:'line', + stack: '总量', + data:[220, 182, 191, 234, 290, 330, 310] + }, + { + name:'视频广告', + type:'line', + stack: '总量', + data:[150, 232, 201, 154, 190, 330, 410] + }, + { + name:'直接访问', + type:'line', + stack: '总量', + data:[320, 332, 301, 334, 390, 330, 320] + }, + { + name:'搜索引擎', + type:'line', + stack: '总量', + data:[820, 932, 901, 934, 1290, 1330, 1320] + } + ] + } + ] + ,elemheapline = $('#LAY-index-heapline').children('div') + ,renderheapline = function(index){ + echheapline[index] = echarts.init(elemheapline[index], layui.echartsTheme); + echheapline[index].setOption(heapline[index]); + window.onresize = echheapline[index].resize; + }; + if(!elemheapline[0]) return; + renderheapline(0); + + //不等距折线图 + var echdiffline = [], diffline = [ + { + title : { + text: '双数值轴折线', + subtext: '纯属虚构' + }, + tooltip : { + trigger: 'axis', + axisPointer:{ + show: true, + type : 'cross', + lineStyle: { + type : 'dashed', + width : 1 + } + }, + formatter : function (params) { + return params.seriesName + ' : [ '+ params.value[0] + ', ' + params.value[1] + ' ]'; + } + }, + legend: { + data:['数据1','数据2'] + }, + calculable : true, + xAxis : [ + { + type: 'value' + } + ], + yAxis : [ + { + type: 'value', + axisLine: { + lineStyle: { color: '#dc143c' } + } + } + ], + series : [ + { + name:'数据1', + type:'line', + data:[ + [1.5, 10], [5, 7], [8, 8], [12, 6], [11, 12], [16, 9], [14, 6], [17, 4], [19, 9] + ], + markPoint : { + data : [ + // 纵轴,默认 + {type : 'max', name: '最大值',symbol: 'emptyCircle', itemStyle:{normal:{color:'#dc143c',label:{position:'top'}}}}, + {type : 'min', name: '最小值',symbol: 'emptyCircle', itemStyle:{normal:{color:'#dc143c',label:{position:'bottom'}}}}, + // 横轴 + {type : 'max', name: '最大值', valueIndex: 0, symbol: 'emptyCircle', itemStyle:{normal:{color:'#1e90ff',label:{position:'right'}}}}, + {type : 'min', name: '最小值', valueIndex: 0, symbol: 'emptyCircle', itemStyle:{normal:{color:'#1e90ff',label:{position:'left'}}}} + ] + }, + markLine : { + data : [ + // 纵轴,默认 + {type : 'max', name: '最大值', itemStyle:{normal:{color:'#dc143c'}}}, + {type : 'min', name: '最小值', itemStyle:{normal:{color:'#dc143c'}}}, + {type : 'average', name : '平均值', itemStyle:{normal:{color:'#dc143c'}}}, + // 横轴 + {type : 'max', name: '最大值', valueIndex: 0, itemStyle:{normal:{color:'#1e90ff'}}}, + {type : 'min', name: '最小值', valueIndex: 0, itemStyle:{normal:{color:'#1e90ff'}}}, + {type : 'average', name : '平均值', valueIndex: 0, itemStyle:{normal:{color:'#1e90ff'}}} + ] + } + }, + { + name:'数据2', + type:'line', + data:[ + [1, 2], [2, 3], [4, 2], [7, 5], [11, 2], [18, 3] + ] + } + ] + } + ] + ,elemdiffline = $('#LAY-index-diffline').children('div') + ,renderdiffline = function(index){ + echdiffline[index] = echarts.init(elemdiffline[index], layui.echartsTheme); + echdiffline[index].setOption(diffline[index]); + window.onresize = echdiffline[index].resize; + }; + if(!elemdiffline[0]) return; + renderdiffline(0); + + //堆积面积图 + var echheaparea = [], heaparea = [ + { + tooltip : { + trigger: 'axis' + }, + legend: { + data:['邮件营销','联盟广告','视频广告','直接访问','搜索引擎'] + }, + calculable : true, + xAxis : [ + { + type : 'category', + boundaryGap : false, + data : ['周一','周二','周三','周四','周五','周六','周日'] + } + ], + yAxis : [ + { + type : 'value' + } + ], + series : [ + { + name:'邮件营销', + type:'line', + stack: '总量', + itemStyle: {normal: {areaStyle: {type: 'default'}}}, + data:[120, 132, 101, 134, 90, 230, 210] + }, + { + name:'联盟广告', + type:'line', + stack: '总量', + itemStyle: {normal: {areaStyle: {type: 'default'}}}, + data:[220, 182, 191, 234, 290, 330, 310] + }, + { + name:'视频广告', + type:'line', + stack: '总量', + itemStyle: {normal: {areaStyle: {type: 'default'}}}, + data:[150, 232, 201, 154, 190, 330, 410] + }, + { + name:'直接访问', + type:'line', + stack: '总量', + itemStyle: {normal: {areaStyle: {type: 'default'}}}, + data:[320, 332, 301, 334, 390, 330, 320] + }, + { + name:'搜索引擎', + type:'line', + stack: '总量', + itemStyle: {normal: {areaStyle: {type: 'default'}}}, + data:[820, 932, 901, 934, 1290, 1330, 1320] + } + ] + } + ] + ,elemheaparea = $('#LAY-index-heaparea').children('div') + ,renderheaparea = function(index){ + echheaparea[index] = echarts.init(elemheaparea[index], layui.echartsTheme); + echheaparea[index].setOption(heaparea[index]); + window.onresize = echheaparea[index].resize; + }; + if(!elemheaparea[0]) return; + renderheaparea(0); + + //面积图 + var echarea = [], area = [ + { + title : { + text: '雨量流量关系图', + x: 'center' + }, + tooltip : { + trigger: 'axis', + formatter: function(params) { + return params[0].name + '
        ' + params[0].seriesName + ' : ' + params[0].value + ' (m^3/s)
        ' + + params[1].seriesName + ' : ' + -params[1].value + ' (mm)'; + } + }, + legend: { + data:['流量','降雨量'], + x: 'left' + }, + dataZoom : { + show : true, + realtime : true, + start : 0, + end : 100 + }, + xAxis : [ + { + type : 'category', + boundaryGap : false, + axisLine: {onZero: false}, + data : [ + '2009/6/12 2:00', '2009/6/12 3:00', '2009/6/12 4:00', '2009/6/12 5:00', '2009/6/12 6:00', '2009/6/12 7:00', '2009/6/12 8:00', '2009/6/12 9:00', '2009/6/12 10:00', '2009/6/12 11:00', '2009/6/12 12:00', '2009/6/12 13:00', '2009/6/12 14:00', '2009/6/12 15:00', '2009/6/12 16:00', '2009/6/12 17:00', '2009/6/12 18:00', '2009/6/12 19:00', '2009/6/12 20:00', '2009/6/12 21:00', '2009/6/12 22:00', '2009/6/12 23:00', + '2009/6/13 0:00', '2009/6/13 1:00', '2009/6/13 2:00', '2009/6/13 3:00', '2009/6/13 4:00', '2009/6/13 5:00', '2009/6/13 6:00', '2009/6/13 7:00', '2009/6/13 8:00', '2009/6/13 9:00', '2009/6/13 10:00', '2009/6/13 11:00', '2009/6/13 12:00', '2009/6/13 13:00', '2009/6/13 14:00', '2009/6/13 15:00', '2009/6/13 16:00', '2009/6/13 17:00', '2009/6/13 18:00', '2009/6/13 19:00', '2009/6/13 20:00', '2009/6/13 21:00', '2009/6/13 22:00', '2009/6/13 23:00', + '2009/6/14 0:00', '2009/6/14 1:00', '2009/6/14 2:00', '2009/6/14 3:00', '2009/6/14 4:00', '2009/6/14 5:00', '2009/6/14 6:00', '2009/6/14 7:00', '2009/6/14 8:00', '2009/6/14 9:00', '2009/6/14 10:00', '2009/6/14 11:00', '2009/6/14 12:00', '2009/6/14 13:00', '2009/6/14 14:00', '2009/6/14 15:00', '2009/6/14 16:00', '2009/6/14 17:00', '2009/6/14 18:00', '2009/6/14 19:00', '2009/6/14 20:00', '2009/6/14 21:00', '2009/6/14 22:00', '2009/6/14 23:00', + '2009/6/15 0:00', '2009/6/15 1:00', '2009/6/15 2:00', '2009/6/15 3:00', '2009/6/15 4:00', '2009/6/15 5:00', '2009/6/15 6:00', '2009/6/15 7:00', '2009/6/15 8:00', '2009/6/15 9:00', '2009/6/15 10:00', '2009/6/15 11:00', '2009/6/15 12:00', '2009/6/15 13:00', '2009/6/15 14:00', '2009/6/15 15:00', '2009/6/15 16:00', '2009/6/15 17:00', '2009/6/15 18:00', '2009/6/15 19:00', '2009/6/15 20:00', '2009/6/15 21:00', '2009/6/15 22:00', '2009/6/15 23:00', + '2009/6/15 0:00', '2009/6/16 1:00', '2009/6/16 2:00', '2009/6/16 3:00', '2009/6/16 4:00', '2009/6/16 5:00', '2009/6/16 6:00', '2009/6/16 7:00', '2009/6/16 8:00', '2009/6/16 9:00', '2009/6/16 10:00', '2009/6/16 11:00', '2009/6/16 12:00', '2009/6/16 13:00', '2009/6/16 14:00', '2009/6/16 15:00', '2009/6/16 16:00', '2009/6/16 17:00', '2009/6/16 18:00', '2009/6/16 19:00', '2009/6/16 20:00', '2009/6/16 21:00', '2009/6/16 22:00', '2009/6/16 23:00', + '2009/6/15 0:00', '2009/6/17 1:00', '2009/6/17 2:00', '2009/6/17 3:00', '2009/6/17 4:00', '2009/6/17 5:00', '2009/6/17 6:00', '2009/6/17 7:00', '2009/6/17 8:00', '2009/6/17 9:00', '2009/6/17 10:00', '2009/6/17 11:00', '2009/6/17 12:00', '2009/6/17 13:00', '2009/6/17 14:00', '2009/6/17 15:00', '2009/6/17 16:00', '2009/6/17 17:00', '2009/6/17 18:00', '2009/6/17 19:00', '2009/6/17 20:00', '2009/6/17 21:00', '2009/6/17 22:00', '2009/6/17 23:00', + '2009/6/18 0:00', '2009/6/18 1:00', '2009/6/18 2:00', '2009/6/18 3:00', '2009/6/18 4:00', '2009/6/18 5:00', '2009/6/18 6:00', '2009/6/18 7:00', '2009/6/18 8:00', '2009/6/18 9:00', '2009/6/18 10:00', '2009/6/18 11:00', '2009/6/18 12:00', '2009/6/18 13:00', '2009/6/18 14:00', '2009/6/18 15:00', '2009/6/18 16:00', '2009/6/18 17:00', '2009/6/18 18:00', '2009/6/18 19:00', '2009/6/18 20:00', '2009/6/18 21:00', '2009/6/18 22:00', '2009/6/18 23:00', + '2009/6/15 0:00', '2009/6/19 1:00', '2009/6/19 2:00', '2009/6/19 3:00', '2009/6/19 4:00', '2009/6/19 5:00', '2009/6/19 6:00', '2009/6/19 7:00', '2009/6/19 8:00', '2009/6/19 9:00', '2009/6/19 10:00', '2009/6/19 11:00', '2009/6/19 12:00', '2009/6/19 13:00', '2009/6/19 14:00', '2009/6/19 15:00', '2009/6/19 16:00', '2009/6/19 17:00', '2009/6/19 18:00', '2009/6/19 19:00', '2009/6/19 20:00', '2009/6/19 21:00', '2009/6/19 22:00', '2009/6/19 23:00', + '2009/6/20 0:00', '2009/6/20 1:00', '2009/6/20 2:00', '2009/6/20 3:00', '2009/6/20 4:00', '2009/6/20 5:00', '2009/6/20 6:00', '2009/6/20 7:00', '2009/6/20 8:00', '2009/6/20 9:00', '2009/6/20 10:00', '2009/6/20 11:00', '2009/6/20 12:00', '2009/6/20 13:00', '2009/6/20 14:00', '2009/6/20 15:00', '2009/6/20 16:00', '2009/6/20 17:00', '2009/6/20 18:00', '2009/6/20 19:00', '2009/6/20 20:00', '2009/6/20 21:00', '2009/6/20 22:00', '2009/6/20 23:00', + '2009/6/21 0:00', '2009/6/21 1:00', '2009/6/21 2:00', '2009/6/21 3:00', '2009/6/21 4:00', '2009/6/21 5:00', '2009/6/21 6:00', '2009/6/21 7:00', '2009/6/21 8:00', '2009/6/21 9:00', '2009/6/21 10:00', '2009/6/21 11:00', '2009/6/21 12:00', '2009/6/21 13:00', '2009/6/21 14:00', '2009/6/21 15:00', '2009/6/21 16:00', '2009/6/21 17:00', '2009/6/21 18:00', '2009/6/21 19:00', '2009/6/21 20:00', '2009/6/21 21:00', '2009/6/21 22:00', '2009/6/21 23:00', + '2009/6/22 0:00', '2009/6/22 1:00', '2009/6/22 2:00', '2009/6/22 3:00', '2009/6/22 4:00', '2009/6/22 5:00', '2009/6/22 6:00', '2009/6/22 7:00', '2009/6/22 8:00', '2009/6/22 9:00', '2009/6/22 10:00', '2009/6/22 11:00', '2009/6/22 12:00', '2009/6/22 13:00', '2009/6/22 14:00', '2009/6/22 15:00', '2009/6/22 16:00', '2009/6/22 17:00', '2009/6/22 18:00', '2009/6/22 19:00', '2009/6/22 20:00', '2009/6/22 21:00', '2009/6/22 22:00', '2009/6/22 23:00', + '2009/6/23 0:00', '2009/6/23 1:00', '2009/6/23 2:00', '2009/6/23 3:00', '2009/6/23 4:00', '2009/6/23 5:00', '2009/6/23 6:00', '2009/6/23 7:00', '2009/6/23 8:00', '2009/6/23 9:00', '2009/6/23 10:00', '2009/6/23 11:00', '2009/6/23 12:00', '2009/6/23 13:00', '2009/6/23 14:00', '2009/6/23 15:00', '2009/6/23 16:00', '2009/6/23 17:00', '2009/6/23 18:00', '2009/6/23 19:00', '2009/6/23 20:00', '2009/6/23 21:00', '2009/6/23 22:00', '2009/6/23 23:00', + '2009/6/24 0:00', '2009/6/24 1:00', '2009/6/24 2:00', '2009/6/24 3:00', '2009/6/24 4:00', '2009/6/24 5:00', '2009/6/24 6:00', '2009/6/24 7:00', '2009/6/24 8:00', '2009/6/24 9:00', '2009/6/24 10:00', '2009/6/24 11:00', '2009/6/24 12:00', '2009/6/24 13:00', '2009/6/24 14:00', '2009/6/24 15:00', '2009/6/24 16:00', '2009/6/24 17:00', '2009/6/24 18:00', '2009/6/24 19:00', '2009/6/24 20:00', '2009/6/24 21:00', '2009/6/24 22:00', '2009/6/24 23:00', + '2009/6/25 0:00', '2009/6/25 1:00', '2009/6/25 2:00', '2009/6/25 3:00', '2009/6/25 4:00', '2009/6/25 5:00', '2009/6/25 6:00', '2009/6/25 7:00', '2009/6/25 8:00', '2009/6/25 9:00', '2009/6/25 10:00', '2009/6/25 11:00', '2009/6/25 12:00', '2009/6/25 13:00', '2009/6/25 14:00', '2009/6/25 15:00', '2009/6/25 16:00', '2009/6/25 17:00', '2009/6/25 18:00', '2009/6/25 19:00', '2009/6/25 20:00', '2009/6/25 21:00', '2009/6/25 22:00', '2009/6/25 23:00', + '2009/6/26 0:00', '2009/6/26 1:00', '2009/6/26 2:00', '2009/6/26 3:00', '2009/6/26 4:00', '2009/6/26 5:00', '2009/6/26 6:00', '2009/6/26 7:00', '2009/6/26 8:00', '2009/6/26 9:00', '2009/6/26 10:00', '2009/6/26 11:00', '2009/6/26 12:00', '2009/6/26 13:00', '2009/6/26 14:00', '2009/6/26 15:00', '2009/6/26 16:00', '2009/6/26 17:00', '2009/6/26 18:00', '2009/6/26 19:00', '2009/6/26 20:00', '2009/6/26 21:00', '2009/6/26 22:00', '2009/6/26 23:00', + '2009/6/27 0:00', '2009/6/27 1:00', '2009/6/27 2:00', '2009/6/27 3:00', '2009/6/27 4:00', '2009/6/27 5:00', '2009/6/27 6:00', '2009/6/27 7:00', '2009/6/27 8:00', '2009/6/27 9:00', '2009/6/27 10:00', '2009/6/27 11:00', '2009/6/27 12:00', '2009/6/27 13:00', '2009/6/27 14:00', '2009/6/27 15:00', '2009/6/27 16:00', '2009/6/27 17:00', '2009/6/27 18:00', '2009/6/27 19:00', '2009/6/27 20:00', '2009/6/27 21:00', '2009/6/27 22:00', '2009/6/27 23:00', + '2009/6/28 0:00', '2009/6/28 1:00', '2009/6/28 2:00', '2009/6/28 3:00', '2009/6/28 4:00', '2009/6/28 5:00', '2009/6/28 6:00', '2009/6/28 7:00', '2009/6/28 8:00', '2009/6/28 9:00', '2009/6/28 10:00', '2009/6/28 11:00', '2009/6/28 12:00', '2009/6/28 13:00', '2009/6/28 14:00', '2009/6/28 15:00', '2009/6/28 16:00', '2009/6/28 17:00', '2009/6/28 18:00', '2009/6/28 19:00', '2009/6/28 20:00', '2009/6/28 21:00', '2009/6/28 22:00', '2009/6/28 23:00', + '2009/6/29 0:00', '2009/6/29 1:00', '2009/6/29 2:00', '2009/6/29 3:00', '2009/6/29 4:00', '2009/6/29 5:00', '2009/6/29 6:00', '2009/6/29 7:00', '2009/6/29 8:00', '2009/6/29 9:00', '2009/6/29 10:00', '2009/6/29 11:00', '2009/6/29 12:00', '2009/6/29 13:00', '2009/6/29 14:00', '2009/6/29 15:00', '2009/6/29 16:00', '2009/6/29 17:00', '2009/6/29 18:00', '2009/6/29 19:00', '2009/6/29 20:00', '2009/6/29 21:00', '2009/6/29 22:00', '2009/6/29 23:00', + '2009/6/30 0:00', '2009/6/30 1:00', '2009/6/30 2:00', '2009/6/30 3:00', '2009/6/30 4:00', '2009/6/30 5:00', '2009/6/30 6:00', '2009/6/30 7:00', '2009/6/30 8:00', '2009/6/30 9:00', '2009/6/30 10:00', '2009/6/30 11:00', '2009/6/30 12:00', '2009/6/30 13:00', '2009/6/30 14:00', '2009/6/30 15:00', '2009/6/30 16:00', '2009/6/30 17:00', '2009/6/30 18:00', '2009/6/30 19:00', '2009/6/30 20:00', '2009/6/30 21:00', '2009/6/30 22:00', '2009/6/30 23:00', + '2009/7/1 0:00', '2009/7/1 1:00', '2009/7/1 2:00', '2009/7/1 3:00', '2009/7/1 4:00', '2009/7/1 5:00', '2009/7/1 6:00', '2009/7/1 7:00', '2009/7/1 8:00', '2009/7/1 9:00', '2009/7/1 10:00', '2009/7/1 11:00', '2009/7/1 12:00', '2009/7/1 13:00', '2009/7/1 14:00', '2009/7/1 15:00', '2009/7/1 16:00', '2009/7/1 17:00', '2009/7/1 18:00', '2009/7/1 19:00', '2009/7/1 20:00', '2009/7/1 21:00', '2009/7/1 22:00', '2009/7/1 23:00', + '2009/7/2 0:00', '2009/7/2 1:00', '2009/7/2 2:00', '2009/7/2 3:00', '2009/7/2 4:00', '2009/7/2 5:00', '2009/7/2 6:00', '2009/7/2 7:00', '2009/7/2 8:00', '2009/7/2 9:00', '2009/7/2 10:00', '2009/7/2 11:00', '2009/7/2 12:00', '2009/7/2 13:00', '2009/7/2 14:00', '2009/7/2 15:00', '2009/7/2 16:00', '2009/7/2 17:00', '2009/7/2 18:00', '2009/7/2 19:00', '2009/7/2 20:00', '2009/7/2 21:00', '2009/7/2 22:00', '2009/7/2 23:00', + '2009/7/3 0:00', '2009/7/3 1:00', '2009/7/3 2:00', '2009/7/3 3:00', '2009/7/3 4:00', '2009/7/3 5:00', '2009/7/3 6:00', '2009/7/3 7:00', '2009/7/3 8:00', '2009/7/3 9:00', '2009/7/3 10:00', '2009/7/3 11:00', '2009/7/3 12:00', '2009/7/3 13:00', '2009/7/3 14:00', '2009/7/3 15:00', '2009/7/3 16:00', '2009/7/3 17:00', '2009/7/3 18:00', '2009/7/3 19:00', '2009/7/3 20:00', '2009/7/3 21:00', '2009/7/3 22:00', '2009/7/3 23:00', + '2009/7/4 0:00', '2009/7/4 1:00', '2009/7/4 2:00', '2009/7/4 3:00', '2009/7/4 4:00', '2009/7/4 5:00', '2009/7/4 6:00', '2009/7/4 7:00', '2009/7/4 8:00', '2009/7/4 9:00', '2009/7/4 10:00', '2009/7/4 11:00', '2009/7/4 12:00', '2009/7/4 13:00', '2009/7/4 14:00', '2009/7/4 15:00', '2009/7/4 16:00', '2009/7/4 17:00', '2009/7/4 18:00', '2009/7/4 19:00', '2009/7/4 20:00', '2009/7/4 21:00', '2009/7/4 22:00', '2009/7/4 23:00', + '2009/7/5 0:00', '2009/7/5 1:00', '2009/7/5 2:00', '2009/7/5 3:00', '2009/7/5 4:00', '2009/7/5 5:00', '2009/7/5 6:00', '2009/7/5 7:00', '2009/7/5 8:00', '2009/7/5 9:00', '2009/7/5 10:00', '2009/7/5 11:00', '2009/7/5 12:00', '2009/7/5 13:00', '2009/7/5 14:00', '2009/7/5 15:00', '2009/7/5 16:00', '2009/7/5 17:00', '2009/7/5 18:00', '2009/7/5 19:00', '2009/7/5 20:00', '2009/7/5 21:00', '2009/7/5 22:00', '2009/7/5 23:00', + '2009/7/6 0:00', '2009/7/6 1:00', '2009/7/6 2:00', '2009/7/6 3:00', '2009/7/6 4:00', '2009/7/6 5:00', '2009/7/6 6:00', '2009/7/6 7:00', '2009/7/6 8:00', '2009/7/6 9:00', '2009/7/6 10:00', '2009/7/6 11:00', '2009/7/6 12:00', '2009/7/6 13:00', '2009/7/6 14:00', '2009/7/6 15:00', '2009/7/6 16:00', '2009/7/6 17:00', '2009/7/6 18:00', '2009/7/6 19:00', '2009/7/6 20:00', '2009/7/6 21:00', '2009/7/6 22:00', '2009/7/6 23:00', + '2009/7/7 0:00', '2009/7/7 1:00', '2009/7/7 2:00', '2009/7/7 3:00', '2009/7/7 4:00', '2009/7/7 5:00', '2009/7/7 6:00', '2009/7/7 7:00', '2009/7/7 8:00', '2009/7/7 9:00', '2009/7/7 10:00', '2009/7/7 11:00', '2009/7/7 12:00', '2009/7/7 13:00', '2009/7/7 14:00', '2009/7/7 15:00', '2009/7/7 16:00', '2009/7/7 17:00', '2009/7/7 18:00', '2009/7/7 19:00', '2009/7/7 20:00', '2009/7/7 21:00', '2009/7/7 22:00', '2009/7/7 23:00', + '2009/7/8 0:00', '2009/7/8 1:00', '2009/7/8 2:00', '2009/7/8 3:00', '2009/7/8 4:00', '2009/7/8 5:00', '2009/7/8 6:00', '2009/7/8 7:00', '2009/7/8 8:00', '2009/7/8 9:00', '2009/7/8 10:00', '2009/7/8 11:00', '2009/7/8 12:00', '2009/7/8 13:00', '2009/7/8 14:00', '2009/7/8 15:00', '2009/7/8 16:00', '2009/7/8 17:00', '2009/7/8 18:00', '2009/7/8 19:00', '2009/7/8 20:00', '2009/7/8 21:00', '2009/7/8 22:00', '2009/7/8 23:00', + '2009/7/9 0:00', '2009/7/9 1:00', '2009/7/9 2:00', '2009/7/9 3:00', '2009/7/9 4:00', '2009/7/9 5:00', '2009/7/9 6:00', '2009/7/9 7:00', '2009/7/9 8:00', '2009/7/9 9:00', '2009/7/9 10:00', '2009/7/9 11:00', '2009/7/9 12:00', '2009/7/9 13:00', '2009/7/9 14:00', '2009/7/9 15:00', '2009/7/9 16:00', '2009/7/9 17:00', '2009/7/9 18:00', '2009/7/9 19:00', '2009/7/9 20:00', '2009/7/9 21:00', '2009/7/9 22:00', '2009/7/9 23:00', + '2009/7/10 0:00', '2009/7/10 1:00', '2009/7/10 2:00', '2009/7/10 3:00', '2009/7/10 4:00', '2009/7/10 5:00', '2009/7/10 6:00', '2009/7/10 7:00', '2009/7/10 8:00', '2009/7/10 9:00', '2009/7/10 10:00', '2009/7/10 11:00', '2009/7/10 12:00', '2009/7/10 13:00', '2009/7/10 14:00', '2009/7/10 15:00', '2009/7/10 16:00', '2009/7/10 17:00', '2009/7/10 18:00', '2009/7/10 19:00', '2009/7/10 20:00', '2009/7/10 21:00', '2009/7/10 22:00', '2009/7/10 23:00', + '2009/7/11 0:00', '2009/7/11 1:00', '2009/7/11 2:00', '2009/7/11 3:00', '2009/7/11 4:00', '2009/7/11 5:00', '2009/7/11 6:00', '2009/7/11 7:00', '2009/7/11 8:00', '2009/7/11 9:00', '2009/7/11 10:00', '2009/7/11 11:00', '2009/7/11 12:00', '2009/7/11 13:00', '2009/7/11 14:00', '2009/7/11 15:00', '2009/7/11 16:00', '2009/7/11 17:00', '2009/7/11 18:00', '2009/7/11 19:00', '2009/7/11 20:00', '2009/7/11 21:00', '2009/7/11 22:00', '2009/7/11 23:00', + '2009/7/12 0:00', '2009/7/12 1:00', '2009/7/12 2:00', '2009/7/12 3:00', '2009/7/12 4:00', '2009/7/12 5:00', '2009/7/12 6:00', '2009/7/12 7:00', '2009/7/12 8:00', '2009/7/12 9:00', '2009/7/12 10:00', '2009/7/12 11:00', '2009/7/12 12:00', '2009/7/12 13:00', '2009/7/12 14:00', '2009/7/12 15:00', '2009/7/12 16:00', '2009/7/12 17:00', '2009/7/12 18:00', '2009/7/12 19:00', '2009/7/12 20:00', '2009/7/12 21:00', '2009/7/12 22:00', '2009/7/12 23:00', + '2009/7/13 0:00', '2009/7/13 1:00', '2009/7/13 2:00', '2009/7/13 3:00', '2009/7/13 4:00', '2009/7/13 5:00', '2009/7/13 6:00', '2009/7/13 7:00', '2009/7/13 8:00', '2009/7/13 9:00', '2009/7/13 10:00', '2009/7/13 11:00', '2009/7/13 12:00', '2009/7/13 13:00', '2009/7/13 14:00', '2009/7/13 15:00', '2009/7/13 16:00', '2009/7/13 17:00', '2009/7/13 18:00', '2009/7/13 19:00', '2009/7/13 20:00', '2009/7/13 21:00', '2009/7/13 22:00', '2009/7/13 23:00', + '2009/7/14 0:00', '2009/7/14 1:00', '2009/7/14 2:00', '2009/7/14 3:00', '2009/7/14 4:00', '2009/7/14 5:00', '2009/7/14 6:00', '2009/7/14 7:00', '2009/7/14 8:00', '2009/7/14 9:00', '2009/7/14 10:00', '2009/7/14 11:00', '2009/7/14 12:00', '2009/7/14 13:00', '2009/7/14 14:00', '2009/7/14 15:00', '2009/7/14 16:00', '2009/7/14 17:00', '2009/7/14 18:00', '2009/7/14 19:00', '2009/7/14 20:00', '2009/7/14 21:00', '2009/7/14 22:00', '2009/7/14 23:00', + '2009/7/15 0:00', '2009/7/15 1:00', '2009/7/15 2:00', '2009/7/15 3:00', '2009/7/15 4:00', '2009/7/15 5:00', '2009/7/15 6:00', '2009/7/15 7:00', '2009/7/15 8:00', '2009/7/15 9:00', '2009/7/15 10:00', '2009/7/15 11:00', '2009/7/15 12:00', '2009/7/15 13:00', '2009/7/15 14:00', '2009/7/15 15:00', '2009/7/15 16:00', '2009/7/15 17:00', '2009/7/15 18:00', '2009/7/15 19:00', '2009/7/15 20:00', '2009/7/15 21:00', '2009/7/15 22:00', '2009/7/15 23:00', + '2009/7/16 0:00', '2009/7/16 1:00', '2009/7/16 2:00', '2009/7/16 3:00', '2009/7/16 4:00', '2009/7/16 5:00', '2009/7/16 6:00', '2009/7/16 7:00', '2009/7/16 8:00', '2009/7/16 9:00', '2009/7/16 10:00', '2009/7/16 11:00', '2009/7/16 12:00', '2009/7/16 13:00', '2009/7/16 14:00', '2009/7/16 15:00', '2009/7/16 16:00', '2009/7/16 17:00', '2009/7/16 18:00', '2009/7/16 19:00', '2009/7/16 20:00', '2009/7/16 21:00', '2009/7/16 22:00', '2009/7/16 23:00', + '2009/7/17 0:00', '2009/7/17 1:00', '2009/7/17 2:00', '2009/7/17 3:00', '2009/7/17 4:00', '2009/7/17 5:00', '2009/7/17 6:00', '2009/7/17 7:00', '2009/7/17 8:00', '2009/7/17 9:00', '2009/7/17 10:00', '2009/7/17 11:00', '2009/7/17 12:00', '2009/7/17 13:00', '2009/7/17 14:00', '2009/7/17 15:00', '2009/7/17 16:00', '2009/7/17 17:00', '2009/7/17 18:00', '2009/7/17 19:00', '2009/7/17 20:00', '2009/7/17 21:00', '2009/7/17 22:00', '2009/7/17 23:00', + '2009/7/18 0:00', '2009/7/18 1:00', '2009/7/18 2:00', '2009/7/18 3:00', '2009/7/18 4:00', '2009/7/18 5:00', '2009/7/18 6:00', '2009/7/18 7:00', '2009/7/18 8:00', '2009/7/18 9:00', '2009/7/18 10:00', '2009/7/18 11:00', '2009/7/18 12:00', '2009/7/18 13:00', '2009/7/18 14:00', '2009/7/18 15:00', '2009/7/18 16:00', '2009/7/18 17:00', '2009/7/18 18:00', '2009/7/18 19:00', '2009/7/18 20:00', '2009/7/18 21:00', '2009/7/18 22:00', '2009/7/18 23:00', + '2009/7/19 0:00', '2009/7/19 1:00', '2009/7/19 2:00', '2009/7/19 3:00', '2009/7/19 4:00', '2009/7/19 5:00', '2009/7/19 6:00', '2009/7/19 7:00', '2009/7/19 8:00', '2009/7/19 9:00', '2009/7/19 10:00', '2009/7/19 11:00', '2009/7/19 12:00', '2009/7/19 13:00', '2009/7/19 14:00', '2009/7/19 15:00', '2009/7/19 16:00', '2009/7/19 17:00', '2009/7/19 18:00', '2009/7/19 19:00', '2009/7/19 20:00', '2009/7/19 21:00', '2009/7/19 22:00', '2009/7/19 23:00', + '2009/7/20 0:00', '2009/7/20 1:00', '2009/7/20 2:00', '2009/7/20 3:00', '2009/7/20 4:00', '2009/7/20 5:00', '2009/7/20 6:00', '2009/7/20 7:00', '2009/7/20 8:00', '2009/7/20 9:00', '2009/7/20 10:00', '2009/7/20 11:00', '2009/7/20 12:00', '2009/7/20 13:00', '2009/7/20 14:00', '2009/7/20 15:00', '2009/7/20 16:00', '2009/7/20 17:00', '2009/7/20 18:00', '2009/7/20 19:00', '2009/7/20 20:00', '2009/7/20 21:00', '2009/7/20 22:00', '2009/7/20 23:00', + '2009/7/21 0:00', '2009/7/21 1:00', '2009/7/21 2:00', '2009/7/21 3:00', '2009/7/21 4:00', '2009/7/21 5:00', '2009/7/21 6:00', '2009/7/21 7:00', '2009/7/21 8:00', '2009/7/21 9:00', '2009/7/21 10:00', '2009/7/21 11:00', '2009/7/21 12:00', '2009/7/21 13:00', '2009/7/21 14:00', '2009/7/21 15:00', '2009/7/21 16:00', '2009/7/21 17:00', '2009/7/21 18:00', '2009/7/21 19:00', '2009/7/21 20:00', '2009/7/21 21:00', '2009/7/21 22:00', '2009/7/21 23:00', + '2009/7/22 0:00', '2009/7/22 1:00', '2009/7/22 2:00', '2009/7/22 3:00', '2009/7/22 4:00', '2009/7/22 5:00', '2009/7/22 6:00', '2009/7/22 7:00', '2009/7/22 8:00', '2009/7/22 9:00', '2009/7/22 10:00', '2009/7/22 11:00', '2009/7/22 12:00', '2009/7/22 13:00', '2009/7/22 14:00', '2009/7/22 15:00', '2009/7/22 16:00', '2009/7/22 17:00', '2009/7/22 18:00', '2009/7/22 19:00', '2009/7/22 20:00', '2009/7/22 21:00', '2009/7/22 22:00', '2009/7/22 23:00', + '2009/7/23 0:00', '2009/7/23 1:00', '2009/7/23 2:00', '2009/7/23 3:00', '2009/7/23 4:00', '2009/7/23 5:00', '2009/7/23 6:00', '2009/7/23 7:00', '2009/7/23 8:00', '2009/7/23 9:00', '2009/7/23 10:00', '2009/7/23 11:00', '2009/7/23 12:00', '2009/7/23 13:00', '2009/7/23 14:00', '2009/7/23 15:00', '2009/7/23 16:00', '2009/7/23 17:00', '2009/7/23 18:00', '2009/7/23 19:00', '2009/7/23 20:00', '2009/7/23 21:00', '2009/7/23 22:00', '2009/7/23 23:00', + '2009/7/24 0:00', '2009/7/24 1:00', '2009/7/24 2:00', '2009/7/24 3:00', '2009/7/24 4:00', '2009/7/24 5:00', '2009/7/24 6:00', '2009/7/24 7:00', '2009/7/24 8:00', '2009/7/24 9:00', '2009/7/24 10:00', '2009/7/24 11:00', '2009/7/24 12:00', '2009/7/24 13:00', '2009/7/24 14:00', '2009/7/24 15:00', '2009/7/24 16:00', '2009/7/24 17:00', '2009/7/24 18:00', '2009/7/24 19:00', '2009/7/24 20:00', '2009/7/24 21:00', '2009/7/24 22:00', '2009/7/24 23:00', + '2009/7/25 0:00', '2009/7/25 1:00', '2009/7/25 2:00', '2009/7/25 3:00', '2009/7/25 4:00', '2009/7/25 5:00', '2009/7/25 6:00', '2009/7/25 7:00', '2009/7/25 8:00', '2009/7/25 9:00', '2009/7/25 10:00', '2009/7/25 11:00', '2009/7/25 12:00', '2009/7/25 13:00', '2009/7/25 14:00', '2009/7/25 15:00', '2009/7/25 16:00', '2009/7/25 17:00', '2009/7/25 18:00', '2009/7/25 19:00', '2009/7/25 20:00', '2009/7/25 21:00', '2009/7/25 22:00', '2009/7/25 23:00', + '2009/7/26 0:00', '2009/7/26 1:00', '2009/7/26 2:00', '2009/7/26 3:00', '2009/7/26 4:00', '2009/7/26 5:00', '2009/7/26 6:00', '2009/7/26 7:00', '2009/7/26 8:00', '2009/7/26 9:00', '2009/7/26 10:00', '2009/7/26 11:00', '2009/7/26 12:00', '2009/7/26 13:00', '2009/7/26 14:00', '2009/7/26 15:00', '2009/7/26 16:00', '2009/7/26 17:00', '2009/7/26 18:00', '2009/7/26 19:00', '2009/7/26 20:00', '2009/7/26 21:00', '2009/7/26 22:00', '2009/7/26 23:00', + '2009/7/27 0:00', '2009/7/27 1:00', '2009/7/27 2:00', '2009/7/27 3:00', '2009/7/27 4:00', '2009/7/27 5:00', '2009/7/27 6:00', '2009/7/27 7:00', '2009/7/27 8:00', '2009/7/27 9:00', '2009/7/27 10:00', '2009/7/27 11:00', '2009/7/27 12:00', '2009/7/27 13:00', '2009/7/27 14:00', '2009/7/27 15:00', '2009/7/27 16:00', '2009/7/27 17:00', '2009/7/27 18:00', '2009/7/27 19:00', '2009/7/27 20:00', '2009/7/27 21:00', '2009/7/27 22:00', '2009/7/27 23:00', + '2009/7/28 0:00', '2009/7/28 1:00', '2009/7/28 2:00', '2009/7/28 3:00', '2009/7/28 4:00', '2009/7/28 5:00', '2009/7/28 6:00', '2009/7/28 7:00', '2009/7/28 8:00', '2009/7/28 9:00', '2009/7/28 10:00', '2009/7/28 11:00', '2009/7/28 12:00', '2009/7/28 13:00', '2009/7/28 14:00', '2009/7/28 15:00', '2009/7/28 16:00', '2009/7/28 17:00', '2009/7/28 18:00', '2009/7/28 19:00', '2009/7/28 20:00', '2009/7/28 21:00', '2009/7/28 22:00', '2009/7/28 23:00', + '2009/7/29 0:00', '2009/7/29 1:00', '2009/7/29 2:00', '2009/7/29 3:00', '2009/7/29 4:00', '2009/7/29 5:00', '2009/7/29 6:00', '2009/7/29 7:00', '2009/7/29 8:00', '2009/7/29 9:00', '2009/7/29 10:00', '2009/7/29 11:00', '2009/7/29 12:00', '2009/7/29 13:00', '2009/7/29 14:00', '2009/7/29 15:00', '2009/7/29 16:00', '2009/7/29 17:00', '2009/7/29 18:00', '2009/7/29 19:00', '2009/7/29 20:00', '2009/7/29 21:00', '2009/7/29 22:00', '2009/7/29 23:00', + '2009/7/30 0:00', '2009/7/30 1:00', '2009/7/30 2:00', '2009/7/30 3:00', '2009/7/30 4:00', '2009/7/30 5:00', '2009/7/30 6:00', '2009/7/30 7:00', '2009/7/30 8:00', '2009/7/30 9:00', '2009/7/30 10:00', '2009/7/30 11:00', '2009/7/30 12:00', '2009/7/30 13:00', '2009/7/30 14:00', '2009/7/30 15:00', '2009/7/30 16:00', '2009/7/30 17:00', '2009/7/30 18:00', '2009/7/30 19:00', '2009/7/30 20:00', '2009/7/30 21:00', '2009/7/30 22:00', '2009/7/30 23:00', + '2009/7/31 0:00', '2009/7/31 1:00', '2009/7/31 2:00', '2009/7/31 3:00', '2009/7/31 4:00', '2009/7/31 5:00', '2009/7/31 6:00', '2009/7/31 7:00', '2009/7/31 8:00', '2009/7/31 9:00', '2009/7/31 10:00', '2009/7/31 11:00', '2009/7/31 12:00', '2009/7/31 13:00', '2009/7/31 14:00', '2009/7/31 15:00', '2009/7/31 16:00', '2009/7/31 17:00', '2009/7/31 18:00', '2009/7/31 19:00', '2009/7/31 20:00', '2009/7/31 21:00', '2009/7/31 22:00', '2009/7/31 23:00', + '2009/8/1 0:00', '2009/8/1 1:00', '2009/8/1 2:00', '2009/8/1 3:00', '2009/8/1 4:00', '2009/8/1 5:00', '2009/8/1 6:00', '2009/8/1 7:00', '2009/8/1 8:00', '2009/8/1 9:00', '2009/8/1 10:00', '2009/8/1 11:00', '2009/8/1 12:00', '2009/8/1 13:00', '2009/8/1 14:00', '2009/8/1 15:00', '2009/8/1 16:00', '2009/8/1 17:00', '2009/8/1 18:00', '2009/8/1 19:00', '2009/8/1 20:00', '2009/8/1 21:00', '2009/8/1 22:00', '2009/8/1 23:00', '2009/8/2 0:00', '2009/8/2 1:00', '2009/8/2 2:00', '2009/8/2 3:00', '2009/8/2 4:00', '2009/8/2 5:00', '2009/8/2 6:00', '2009/8/2 7:00', '2009/8/2 8:00', '2009/8/2 9:00', '2009/8/2 10:00', '2009/8/2 11:00', '2009/8/2 12:00', '2009/8/2 13:00', '2009/8/2 14:00', '2009/8/2 15:00', '2009/8/2 16:00', '2009/8/2 17:00', '2009/8/2 18:00', '2009/8/2 19:00', '2009/8/2 20:00', '2009/8/2 21:00', '2009/8/2 22:00', '2009/8/2 23:00', '2009/8/3 0:00', '2009/8/3 1:00', '2009/8/3 2:00', '2009/8/3 3:00', '2009/8/3 4:00', '2009/8/3 5:00', '2009/8/3 6:00', '2009/8/3 7:00', '2009/8/3 8:00', '2009/8/3 9:00', '2009/8/3 10:00', '2009/8/3 11:00', '2009/8/3 12:00', '2009/8/3 13:00', '2009/8/3 14:00', '2009/8/3 15:00', '2009/8/3 16:00', '2009/8/3 17:00', '2009/8/3 18:00', '2009/8/3 19:00', '2009/8/3 20:00', '2009/8/3 21:00', '2009/8/3 22:00', '2009/8/3 23:00', '2009/8/4 0:00', '2009/8/4 1:00', '2009/8/4 2:00', '2009/8/4 3:00', '2009/8/4 4:00', '2009/8/4 5:00', '2009/8/4 6:00', '2009/8/4 7:00', '2009/8/4 8:00', '2009/8/4 9:00', '2009/8/4 10:00', '2009/8/4 11:00', '2009/8/4 12:00', '2009/8/4 13:00', '2009/8/4 14:00', '2009/8/4 15:00', '2009/8/4 16:00', '2009/8/4 17:00', '2009/8/4 18:00', '2009/8/4 19:00', '2009/8/4 20:00', '2009/8/4 21:00', '2009/8/4 22:00', '2009/8/4 23:00', '2009/8/5 0:00', '2009/8/5 1:00', '2009/8/5 2:00', '2009/8/5 3:00', '2009/8/5 4:00', '2009/8/5 5:00', '2009/8/5 6:00', '2009/8/5 7:00', '2009/8/5 8:00', '2009/8/5 9:00', '2009/8/5 10:00', '2009/8/5 11:00', '2009/8/5 12:00', '2009/8/5 13:00', '2009/8/5 14:00', '2009/8/5 15:00', '2009/8/5 16:00', '2009/8/5 17:00', '2009/8/5 18:00', '2009/8/5 19:00', '2009/8/5 20:00', '2009/8/5 21:00', '2009/8/5 22:00', '2009/8/5 23:00', '2009/8/6 0:00', '2009/8/6 1:00', '2009/8/6 2:00', '2009/8/6 3:00', '2009/8/6 4:00', '2009/8/6 5:00', '2009/8/6 6:00', '2009/8/6 7:00', '2009/8/6 8:00', '2009/8/6 9:00', '2009/8/6 10:00', '2009/8/6 11:00', '2009/8/6 12:00', '2009/8/6 13:00', '2009/8/6 14:00', '2009/8/6 15:00', '2009/8/6 16:00', '2009/8/6 17:00', '2009/8/6 18:00', '2009/8/6 19:00', '2009/8/6 20:00', '2009/8/6 21:00', '2009/8/6 22:00', '2009/8/6 23:00', '2009/8/7 0:00', '2009/8/7 1:00', '2009/8/7 2:00', '2009/8/7 3:00', '2009/8/7 4:00', '2009/8/7 5:00', '2009/8/7 6:00', '2009/8/7 7:00', '2009/8/7 8:00', '2009/8/7 9:00', '2009/8/7 10:00', '2009/8/7 11:00', '2009/8/7 12:00', '2009/8/7 13:00', '2009/8/7 14:00', '2009/8/7 15:00', '2009/8/7 16:00', '2009/8/7 17:00', '2009/8/7 18:00', '2009/8/7 19:00', '2009/8/7 20:00', '2009/8/7 21:00', '2009/8/7 22:00', '2009/8/7 23:00', '2009/8/8 0:00', '2009/8/8 1:00', '2009/8/8 2:00', '2009/8/8 3:00', '2009/8/8 4:00', '2009/8/8 5:00', '2009/8/8 6:00', '2009/8/8 7:00', '2009/8/8 8:00', '2009/8/8 9:00', '2009/8/8 10:00', '2009/8/8 11:00', '2009/8/8 12:00', '2009/8/8 13:00', '2009/8/8 14:00', '2009/8/8 15:00', '2009/8/8 16:00', '2009/8/8 17:00', '2009/8/8 18:00', '2009/8/8 19:00', '2009/8/8 20:00', '2009/8/8 21:00', '2009/8/8 22:00', '2009/8/8 23:00', '2009/8/9 0:00', '2009/8/9 1:00', '2009/8/9 2:00', '2009/8/9 3:00', '2009/8/9 4:00', '2009/8/9 5:00', '2009/8/9 6:00', '2009/8/9 7:00', '2009/8/9 8:00', '2009/8/9 9:00', '2009/8/9 10:00', '2009/8/9 11:00', '2009/8/9 12:00', '2009/8/9 13:00', '2009/8/9 14:00', '2009/8/9 15:00', '2009/8/9 16:00', '2009/8/9 17:00', '2009/8/9 18:00', '2009/8/9 19:00', '2009/8/9 20:00', '2009/8/9 21:00', '2009/8/9 22:00', '2009/8/9 23:00', '2009/8/10 0:00', '2009/8/10 1:00', '2009/8/10 2:00', '2009/8/10 3:00', '2009/8/10 4:00', '2009/8/10 5:00', '2009/8/10 6:00', '2009/8/10 7:00', '2009/8/10 8:00', '2009/8/10 9:00', '2009/8/10 10:00', '2009/8/10 11:00', '2009/8/10 12:00', '2009/8/10 13:00', '2009/8/10 14:00', '2009/8/10 15:00', '2009/8/10 16:00', '2009/8/10 17:00', '2009/8/10 18:00', '2009/8/10 19:00', '2009/8/10 20:00', '2009/8/10 21:00', '2009/8/10 22:00', '2009/8/10 23:00', '2009/8/11 0:00', '2009/8/11 1:00', '2009/8/11 2:00', '2009/8/11 3:00', '2009/8/11 4:00', '2009/8/11 5:00', '2009/8/11 6:00', '2009/8/11 7:00', '2009/8/11 8:00', '2009/8/11 9:00', '2009/8/11 10:00', '2009/8/11 11:00', '2009/8/11 12:00', '2009/8/11 13:00', '2009/8/11 14:00', '2009/8/11 15:00', '2009/8/11 16:00', '2009/8/11 17:00', '2009/8/11 18:00', '2009/8/11 19:00', '2009/8/11 20:00', '2009/8/11 21:00', '2009/8/11 22:00', '2009/8/11 23:00', '2009/8/12 0:00', '2009/8/12 1:00', '2009/8/12 2:00', '2009/8/12 3:00', '2009/8/12 4:00', '2009/8/12 5:00', '2009/8/12 6:00', '2009/8/12 7:00', '2009/8/12 8:00', '2009/8/12 9:00', '2009/8/12 10:00', '2009/8/12 11:00', '2009/8/12 12:00', '2009/8/12 13:00', '2009/8/12 14:00', '2009/8/12 15:00', '2009/8/12 16:00', '2009/8/12 17:00', '2009/8/12 18:00', '2009/8/12 19:00', '2009/8/12 20:00', '2009/8/12 21:00', '2009/8/12 22:00', '2009/8/12 23:00', '2009/8/13 0:00', '2009/8/13 1:00', '2009/8/13 2:00', '2009/8/13 3:00', '2009/8/13 4:00', '2009/8/13 5:00', '2009/8/13 6:00', '2009/8/13 7:00', '2009/8/13 8:00', '2009/8/13 9:00', '2009/8/13 10:00', '2009/8/13 11:00', '2009/8/13 12:00', '2009/8/13 13:00', '2009/8/13 14:00', '2009/8/13 15:00', '2009/8/13 16:00', '2009/8/13 17:00', '2009/8/13 18:00', '2009/8/13 19:00', '2009/8/13 20:00', '2009/8/13 21:00', '2009/8/13 22:00', '2009/8/13 23:00', '2009/8/14 0:00', '2009/8/14 1:00', '2009/8/14 2:00', '2009/8/14 3:00', '2009/8/14 4:00', '2009/8/14 5:00', '2009/8/14 6:00', '2009/8/14 7:00', '2009/8/14 8:00', '2009/8/14 9:00', '2009/8/14 10:00', '2009/8/14 11:00', '2009/8/14 12:00', '2009/8/14 13:00', '2009/8/14 14:00', '2009/8/14 15:00', '2009/8/14 16:00', '2009/8/14 17:00', '2009/8/14 18:00', '2009/8/14 19:00', '2009/8/14 20:00', '2009/8/14 21:00', '2009/8/14 22:00', '2009/8/14 23:00', '2009/8/15 0:00', '2009/8/15 1:00', '2009/8/15 2:00', '2009/8/15 3:00', '2009/8/15 4:00', '2009/8/15 5:00', '2009/8/15 6:00', '2009/8/15 7:00', '2009/8/15 8:00', '2009/8/15 9:00', '2009/8/15 10:00', '2009/8/15 11:00', '2009/8/15 12:00', '2009/8/15 13:00', '2009/8/15 14:00', '2009/8/15 15:00', '2009/8/15 16:00', '2009/8/15 17:00', '2009/8/15 18:00', '2009/8/15 19:00', '2009/8/15 20:00', '2009/8/15 21:00', '2009/8/15 22:00', '2009/8/15 23:00', '2009/8/16 0:00', '2009/8/16 1:00', '2009/8/16 2:00', '2009/8/16 3:00', '2009/8/16 4:00', '2009/8/16 5:00', '2009/8/16 6:00', '2009/8/16 7:00', '2009/8/16 8:00', '2009/8/16 9:00', '2009/8/16 10:00', '2009/8/16 11:00', '2009/8/16 12:00', '2009/8/16 13:00', '2009/8/16 14:00', '2009/8/16 15:00', '2009/8/16 16:00', '2009/8/16 17:00', '2009/8/16 18:00', '2009/8/16 19:00', '2009/8/16 20:00', '2009/8/16 21:00', '2009/8/16 22:00', '2009/8/16 23:00', '2009/8/17 0:00', '2009/8/17 1:00', '2009/8/17 2:00', '2009/8/17 3:00', '2009/8/17 4:00', '2009/8/17 5:00', '2009/8/17 6:00', '2009/8/17 7:00', '2009/8/17 8:00', '2009/8/17 9:00', '2009/8/17 10:00', '2009/8/17 11:00', '2009/8/17 12:00', '2009/8/17 13:00', '2009/8/17 14:00', '2009/8/17 15:00', '2009/8/17 16:00', '2009/8/17 17:00', '2009/8/17 18:00', '2009/8/17 19:00', '2009/8/17 20:00', '2009/8/17 21:00', '2009/8/17 22:00', '2009/8/17 23:00', '2009/8/18 0:00', '2009/8/18 1:00', '2009/8/18 2:00', '2009/8/18 3:00', '2009/8/18 4:00', '2009/8/18 5:00', '2009/8/18 6:00', '2009/8/18 7:00', '2009/8/18 8:00', '2009/8/18 9:00', '2009/8/18 10:00', '2009/8/18 11:00', '2009/8/18 12:00', '2009/8/18 13:00', '2009/8/18 14:00', '2009/8/18 15:00', '2009/8/18 16:00', '2009/8/18 17:00', '2009/8/18 18:00', '2009/8/18 19:00', '2009/8/18 20:00', '2009/8/18 21:00', '2009/8/18 22:00', '2009/8/18 23:00', '2009/8/19 0:00', '2009/8/19 1:00', '2009/8/19 2:00', '2009/8/19 3:00', '2009/8/19 4:00', '2009/8/19 5:00', '2009/8/19 6:00', '2009/8/19 7:00', '2009/8/19 8:00', '2009/8/19 9:00', '2009/8/19 10:00', '2009/8/19 11:00', '2009/8/19 12:00', '2009/8/19 13:00', '2009/8/19 14:00', '2009/8/19 15:00', '2009/8/19 16:00', '2009/8/19 17:00', '2009/8/19 18:00', '2009/8/19 19:00', '2009/8/19 20:00', '2009/8/19 21:00', '2009/8/19 22:00', '2009/8/19 23:00', '2009/8/20 0:00', '2009/8/20 1:00', '2009/8/20 2:00', '2009/8/20 3:00', '2009/8/20 4:00', '2009/8/20 5:00', '2009/8/20 6:00', '2009/8/20 7:00', '2009/8/20 8:00', '2009/8/20 9:00', '2009/8/20 10:00', '2009/8/20 11:00', '2009/8/20 12:00', '2009/8/20 13:00', '2009/8/20 14:00', '2009/8/20 15:00', '2009/8/20 16:00', '2009/8/20 17:00', '2009/8/20 18:00', '2009/8/20 19:00', '2009/8/20 20:00', '2009/8/20 21:00', '2009/8/20 22:00', '2009/8/20 23:00', '2009/8/21 0:00', '2009/8/21 1:00', '2009/8/21 2:00', '2009/8/21 3:00', '2009/8/21 4:00', '2009/8/21 5:00', '2009/8/21 6:00', '2009/8/21 7:00', '2009/8/21 8:00', '2009/8/21 9:00', '2009/8/21 10:00', '2009/8/21 11:00', '2009/8/21 12:00', '2009/8/21 13:00', '2009/8/21 14:00', '2009/8/21 15:00', '2009/8/21 16:00', '2009/8/21 17:00', '2009/8/21 18:00', '2009/8/21 19:00', '2009/8/21 20:00', '2009/8/21 21:00', '2009/8/21 22:00', '2009/8/21 23:00', '2009/8/22 0:00', '2009/8/22 1:00', '2009/8/22 2:00', '2009/8/22 3:00', '2009/8/22 4:00', '2009/8/22 5:00', '2009/8/22 6:00', '2009/8/22 7:00', '2009/8/22 8:00', '2009/8/22 9:00', '2009/8/22 10:00', '2009/8/22 11:00', '2009/8/22 12:00', '2009/8/22 13:00', '2009/8/22 14:00', '2009/8/22 15:00', '2009/8/22 16:00', '2009/8/22 17:00', '2009/8/22 18:00', '2009/8/22 19:00', '2009/8/22 20:00', '2009/8/22 21:00', '2009/8/22 22:00', '2009/8/22 23:00', '2009/8/23 0:00', '2009/8/23 1:00', '2009/8/23 2:00', '2009/8/23 3:00', '2009/8/23 4:00', '2009/8/23 5:00', '2009/8/23 6:00', '2009/8/23 7:00', '2009/8/23 8:00', '2009/8/23 9:00', '2009/8/23 10:00', '2009/8/23 11:00', '2009/8/23 12:00', '2009/8/23 13:00', '2009/8/23 14:00', '2009/8/23 15:00', '2009/8/23 16:00', '2009/8/23 17:00', '2009/8/23 18:00', '2009/8/23 19:00', '2009/8/23 20:00', '2009/8/23 21:00', '2009/8/23 22:00', '2009/8/23 23:00', '2009/8/24 0:00', '2009/8/24 1:00', '2009/8/24 2:00', '2009/8/24 3:00', '2009/8/24 4:00', '2009/8/24 5:00', '2009/8/24 6:00', '2009/8/24 7:00', '2009/8/24 8:00', '2009/8/24 9:00', '2009/8/24 10:00', '2009/8/24 11:00', '2009/8/24 12:00', '2009/8/24 13:00', '2009/8/24 14:00', '2009/8/24 15:00', '2009/8/24 16:00', '2009/8/24 17:00', '2009/8/24 18:00', '2009/8/24 19:00', '2009/8/24 20:00', '2009/8/24 21:00', '2009/8/24 22:00', '2009/8/24 23:00', '2009/8/25 0:00', '2009/8/25 1:00', '2009/8/25 2:00', '2009/8/25 3:00', '2009/8/25 4:00', '2009/8/25 5:00', '2009/8/25 6:00', '2009/8/25 7:00', '2009/8/25 8:00', '2009/8/25 9:00', '2009/8/25 10:00', '2009/8/25 11:00', '2009/8/25 12:00', '2009/8/25 13:00', '2009/8/25 14:00', '2009/8/25 15:00', '2009/8/25 16:00', '2009/8/25 17:00', '2009/8/25 18:00', '2009/8/25 19:00', '2009/8/25 20:00', '2009/8/25 21:00', '2009/8/25 22:00', '2009/8/25 23:00', '2009/8/26 0:00', '2009/8/26 1:00', '2009/8/26 2:00', '2009/8/26 3:00', '2009/8/26 4:00', '2009/8/26 5:00', '2009/8/26 6:00', '2009/8/26 7:00', '2009/8/26 8:00', '2009/8/26 9:00', '2009/8/26 10:00', '2009/8/26 11:00', '2009/8/26 12:00', '2009/8/26 13:00', '2009/8/26 14:00', '2009/8/26 15:00', '2009/8/26 16:00', '2009/8/26 17:00', '2009/8/26 18:00', '2009/8/26 19:00', '2009/8/26 20:00', '2009/8/26 21:00', '2009/8/26 22:00', '2009/8/26 23:00', '2009/8/27 0:00', '2009/8/27 1:00', '2009/8/27 2:00', '2009/8/27 3:00', '2009/8/27 4:00', '2009/8/27 5:00', '2009/8/27 6:00', '2009/8/27 7:00', '2009/8/27 8:00', '2009/8/27 9:00', '2009/8/27 10:00', '2009/8/27 11:00', '2009/8/27 12:00', '2009/8/27 13:00', '2009/8/27 14:00', '2009/8/27 15:00', '2009/8/27 16:00', '2009/8/27 17:00', '2009/8/27 18:00', '2009/8/27 19:00', '2009/8/27 20:00', '2009/8/27 21:00', '2009/8/27 22:00', '2009/8/27 23:00', '2009/8/28 0:00', '2009/8/28 1:00', '2009/8/28 2:00', '2009/8/28 3:00', '2009/8/28 4:00', '2009/8/28 5:00', '2009/8/28 6:00', '2009/8/28 7:00', '2009/8/28 8:00', '2009/8/28 9:00', '2009/8/28 10:00', '2009/8/28 11:00', '2009/8/28 12:00', '2009/8/28 13:00', '2009/8/28 14:00', '2009/8/28 15:00', '2009/8/28 16:00', '2009/8/28 17:00', '2009/8/28 18:00', '2009/8/28 19:00', '2009/8/28 20:00', '2009/8/28 21:00', '2009/8/28 22:00', '2009/8/28 23:00', '2009/8/29 0:00', '2009/8/29 1:00', '2009/8/29 2:00', '2009/8/29 3:00', '2009/8/29 4:00', '2009/8/29 5:00', '2009/8/29 6:00', '2009/8/29 7:00', '2009/8/29 8:00', '2009/8/29 9:00', '2009/8/29 10:00', '2009/8/29 11:00', '2009/8/29 12:00', '2009/8/29 13:00', '2009/8/29 14:00', '2009/8/29 15:00', '2009/8/29 16:00', '2009/8/29 17:00', '2009/8/29 18:00', '2009/8/29 19:00', '2009/8/29 20:00', '2009/8/29 21:00', '2009/8/29 22:00', '2009/8/29 23:00', '2009/8/30 0:00', '2009/8/30 1:00', '2009/8/30 2:00', '2009/8/30 3:00', '2009/8/30 4:00', '2009/8/30 5:00', '2009/8/30 6:00', '2009/8/30 7:00', '2009/8/30 8:00', '2009/8/30 9:00', '2009/8/30 10:00', '2009/8/30 11:00', '2009/8/30 12:00', '2009/8/30 13:00', '2009/8/30 14:00', '2009/8/30 15:00', '2009/8/30 16:00', '2009/8/30 17:00', '2009/8/30 18:00', '2009/8/30 19:00', '2009/8/30 20:00', '2009/8/30 21:00', '2009/8/30 22:00', '2009/8/30 23:00', '2009/8/31 0:00', '2009/8/31 1:00', '2009/8/31 2:00', '2009/8/31 3:00', '2009/8/31 4:00', '2009/8/31 5:00', '2009/8/31 6:00', '2009/8/31 7:00', '2009/8/31 8:00', '2009/8/31 9:00', '2009/8/31 10:00', '2009/8/31 11:00', '2009/8/31 12:00', '2009/8/31 13:00', '2009/8/31 14:00', '2009/8/31 15:00', '2009/8/31 16:00', '2009/8/31 17:00', '2009/8/31 18:00', '2009/8/31 19:00', '2009/8/31 20:00', '2009/8/31 21:00', '2009/8/31 22:00', '2009/8/31 23:00', + '2009/9/1 0:00', '2009/9/1 1:00', '2009/9/1 2:00', '2009/9/1 3:00', '2009/9/1 4:00', '2009/9/1 5:00', '2009/9/1 6:00', '2009/9/1 7:00', '2009/9/1 8:00', '2009/9/1 9:00', '2009/9/1 10:00', '2009/9/1 11:00', '2009/9/1 12:00', '2009/9/1 13:00', '2009/9/1 14:00', '2009/9/1 15:00', '2009/9/1 16:00', '2009/9/1 17:00', '2009/9/1 18:00', '2009/9/1 19:00', '2009/9/1 20:00', '2009/9/1 21:00', '2009/9/1 22:00', '2009/9/1 23:00', '2009/9/2 0:00', '2009/9/2 1:00', '2009/9/2 2:00', '2009/9/2 3:00', '2009/9/2 4:00', '2009/9/2 5:00', '2009/9/2 6:00', '2009/9/2 7:00', '2009/9/2 8:00', '2009/9/2 9:00', '2009/9/2 10:00', '2009/9/2 11:00', '2009/9/2 12:00', '2009/9/2 13:00', '2009/9/2 14:00', '2009/9/2 15:00', '2009/9/2 16:00', '2009/9/2 17:00', '2009/9/2 18:00', '2009/9/2 19:00', '2009/9/2 20:00', '2009/9/2 21:00', '2009/9/2 22:00', '2009/9/2 23:00', '2009/9/3 0:00', '2009/9/3 1:00', '2009/9/3 2:00', '2009/9/3 3:00', '2009/9/3 4:00', '2009/9/3 5:00', '2009/9/3 6:00', '2009/9/3 7:00', '2009/9/3 8:00', '2009/9/3 9:00', '2009/9/3 10:00', '2009/9/3 11:00', '2009/9/3 12:00', '2009/9/3 13:00', '2009/9/3 14:00', '2009/9/3 15:00', '2009/9/3 16:00', '2009/9/3 17:00', '2009/9/3 18:00', '2009/9/3 19:00', '2009/9/3 20:00', '2009/9/3 21:00', '2009/9/3 22:00', '2009/9/3 23:00', '2009/9/4 0:00', '2009/9/4 1:00', '2009/9/4 2:00', '2009/9/4 3:00', '2009/9/4 4:00', '2009/9/4 5:00', '2009/9/4 6:00', '2009/9/4 7:00', '2009/9/4 8:00', '2009/9/4 9:00', '2009/9/4 10:00', '2009/9/4 11:00', '2009/9/4 12:00', '2009/9/4 13:00', '2009/9/4 14:00', '2009/9/4 15:00', '2009/9/4 16:00', '2009/9/4 17:00', '2009/9/4 18:00', '2009/9/4 19:00', '2009/9/4 20:00', '2009/9/4 21:00', '2009/9/4 22:00', '2009/9/4 23:00', '2009/9/5 0:00', '2009/9/5 1:00', '2009/9/5 2:00', '2009/9/5 3:00', '2009/9/5 4:00', '2009/9/5 5:00', '2009/9/5 6:00', '2009/9/5 7:00', '2009/9/5 8:00', '2009/9/5 9:00', '2009/9/5 10:00', '2009/9/5 11:00', '2009/9/5 12:00', '2009/9/5 13:00', '2009/9/5 14:00', '2009/9/5 15:00', '2009/9/5 16:00', '2009/9/5 17:00', '2009/9/5 18:00', '2009/9/5 19:00', '2009/9/5 20:00', '2009/9/5 21:00', '2009/9/5 22:00', '2009/9/5 23:00', '2009/9/6 0:00', '2009/9/6 1:00', '2009/9/6 2:00', '2009/9/6 3:00', '2009/9/6 4:00', '2009/9/6 5:00', '2009/9/6 6:00', '2009/9/6 7:00', '2009/9/6 8:00', '2009/9/6 9:00', '2009/9/6 10:00', '2009/9/6 11:00', '2009/9/6 12:00', '2009/9/6 13:00', '2009/9/6 14:00', '2009/9/6 15:00', '2009/9/6 16:00', '2009/9/6 17:00', '2009/9/6 18:00', '2009/9/6 19:00', '2009/9/6 20:00', '2009/9/6 21:00', '2009/9/6 22:00', '2009/9/6 23:00', '2009/9/7 0:00', '2009/9/7 1:00', '2009/9/7 2:00', '2009/9/7 3:00', '2009/9/7 4:00', '2009/9/7 5:00', '2009/9/7 6:00', '2009/9/7 7:00', '2009/9/7 8:00', '2009/9/7 9:00', '2009/9/7 10:00', '2009/9/7 11:00', '2009/9/7 12:00', '2009/9/7 13:00', '2009/9/7 14:00', '2009/9/7 15:00', '2009/9/7 16:00', '2009/9/7 17:00', '2009/9/7 18:00', '2009/9/7 19:00', '2009/9/7 20:00', '2009/9/7 21:00', '2009/9/7 22:00', '2009/9/7 23:00', '2009/9/8 0:00', '2009/9/8 1:00', '2009/9/8 2:00', '2009/9/8 3:00', '2009/9/8 4:00', '2009/9/8 5:00', '2009/9/8 6:00', '2009/9/8 7:00', '2009/9/8 8:00', '2009/9/8 9:00', '2009/9/8 10:00', '2009/9/8 11:00', '2009/9/8 12:00', '2009/9/8 13:00', '2009/9/8 14:00', '2009/9/8 15:00', '2009/9/8 16:00', '2009/9/8 17:00', '2009/9/8 18:00', '2009/9/8 19:00', '2009/9/8 20:00', '2009/9/8 21:00', '2009/9/8 22:00', '2009/9/8 23:00', '2009/9/9 0:00', '2009/9/9 1:00', '2009/9/9 2:00', '2009/9/9 3:00', '2009/9/9 4:00', '2009/9/9 5:00', '2009/9/9 6:00', '2009/9/9 7:00', '2009/9/9 8:00', '2009/9/9 9:00', '2009/9/9 10:00', '2009/9/9 11:00', '2009/9/9 12:00', '2009/9/9 13:00', '2009/9/9 14:00', '2009/9/9 15:00', '2009/9/9 16:00', '2009/9/9 17:00', '2009/9/9 18:00', '2009/9/9 19:00', '2009/9/9 20:00', '2009/9/9 21:00', '2009/9/9 22:00', '2009/9/9 23:00', '2009/9/10 0:00', '2009/9/10 1:00', '2009/9/10 2:00', '2009/9/10 3:00', '2009/9/10 4:00', '2009/9/10 5:00', '2009/9/10 6:00', '2009/9/10 7:00', '2009/9/10 8:00', '2009/9/10 9:00', '2009/9/10 10:00', '2009/9/10 11:00', '2009/9/10 12:00', '2009/9/10 13:00', '2009/9/10 14:00', '2009/9/10 15:00', '2009/9/10 16:00', '2009/9/10 17:00', '2009/9/10 18:00', '2009/9/10 19:00', '2009/9/10 20:00', '2009/9/10 21:00', '2009/9/10 22:00', '2009/9/10 23:00', '2009/9/11 0:00', '2009/9/11 1:00', '2009/9/11 2:00', '2009/9/11 3:00', '2009/9/11 4:00', '2009/9/11 5:00', '2009/9/11 6:00', '2009/9/11 7:00', '2009/9/11 8:00', '2009/9/11 9:00', '2009/9/11 10:00', '2009/9/11 11:00', '2009/9/11 12:00', '2009/9/11 13:00', '2009/9/11 14:00', '2009/9/11 15:00', '2009/9/11 16:00', '2009/9/11 17:00', '2009/9/11 18:00', '2009/9/11 19:00', '2009/9/11 20:00', '2009/9/11 21:00', '2009/9/11 22:00', '2009/9/11 23:00', '2009/9/12 0:00', '2009/9/12 1:00', '2009/9/12 2:00', '2009/9/12 3:00', '2009/9/12 4:00', '2009/9/12 5:00', '2009/9/12 6:00', '2009/9/12 7:00', '2009/9/12 8:00', '2009/9/12 9:00', '2009/9/12 10:00', '2009/9/12 11:00', '2009/9/12 12:00', '2009/9/12 13:00', '2009/9/12 14:00', '2009/9/12 15:00', '2009/9/12 16:00', '2009/9/12 17:00', '2009/9/12 18:00', '2009/9/12 19:00', '2009/9/12 20:00', '2009/9/12 21:00', '2009/9/12 22:00', '2009/9/12 23:00', '2009/9/13 0:00', '2009/9/13 1:00', '2009/9/13 2:00', '2009/9/13 3:00', '2009/9/13 4:00', '2009/9/13 5:00', '2009/9/13 6:00', '2009/9/13 7:00', '2009/9/13 8:00', '2009/9/13 9:00', '2009/9/13 10:00', '2009/9/13 11:00', '2009/9/13 12:00', '2009/9/13 13:00', '2009/9/13 14:00', '2009/9/13 15:00', '2009/9/13 16:00', '2009/9/13 17:00', '2009/9/13 18:00', '2009/9/13 19:00', '2009/9/13 20:00', '2009/9/13 21:00', '2009/9/13 22:00', '2009/9/13 23:00', '2009/9/14 0:00', '2009/9/14 1:00', '2009/9/14 2:00', '2009/9/14 3:00', '2009/9/14 4:00', '2009/9/14 5:00', '2009/9/14 6:00', '2009/9/14 7:00', '2009/9/14 8:00', '2009/9/14 9:00', '2009/9/14 10:00', '2009/9/14 11:00', '2009/9/14 12:00', '2009/9/14 13:00', '2009/9/14 14:00', '2009/9/14 15:00', '2009/9/14 16:00', '2009/9/14 17:00', '2009/9/14 18:00', '2009/9/14 19:00', '2009/9/14 20:00', '2009/9/14 21:00', '2009/9/14 22:00', '2009/9/14 23:00', '2009/9/15 0:00', '2009/9/15 1:00', '2009/9/15 2:00', '2009/9/15 3:00', '2009/9/15 4:00', '2009/9/15 5:00', '2009/9/15 6:00', '2009/9/15 7:00', '2009/9/15 8:00', '2009/9/15 9:00', '2009/9/15 10:00', '2009/9/15 11:00', '2009/9/15 12:00', '2009/9/15 13:00', '2009/9/15 14:00', '2009/9/15 15:00', '2009/9/15 16:00', '2009/9/15 17:00', '2009/9/15 18:00', '2009/9/15 19:00', '2009/9/15 20:00', '2009/9/15 21:00', '2009/9/15 22:00', '2009/9/15 23:00', '2009/9/16 0:00', '2009/9/16 1:00', '2009/9/16 2:00', '2009/9/16 3:00', '2009/9/16 4:00', '2009/9/16 5:00', '2009/9/16 6:00', '2009/9/16 7:00', '2009/9/16 8:00', '2009/9/16 9:00', '2009/9/16 10:00', '2009/9/16 11:00', '2009/9/16 12:00', '2009/9/16 13:00', '2009/9/16 14:00', '2009/9/16 15:00', '2009/9/16 16:00', '2009/9/16 17:00', '2009/9/16 18:00', '2009/9/16 19:00', '2009/9/16 20:00', '2009/9/16 21:00', '2009/9/16 22:00', '2009/9/16 23:00', '2009/9/17 0:00', '2009/9/17 1:00', '2009/9/17 2:00', '2009/9/17 3:00', '2009/9/17 4:00', '2009/9/17 5:00', '2009/9/17 6:00', '2009/9/17 7:00', '2009/9/17 8:00', '2009/9/17 9:00', '2009/9/17 10:00', '2009/9/17 11:00', '2009/9/17 12:00', '2009/9/17 13:00', '2009/9/17 14:00', '2009/9/17 15:00', '2009/9/17 16:00', '2009/9/17 17:00', '2009/9/17 18:00', '2009/9/17 19:00', '2009/9/17 20:00', '2009/9/17 21:00', '2009/9/17 22:00', '2009/9/17 23:00', '2009/9/18 0:00', '2009/9/18 1:00', '2009/9/18 2:00', '2009/9/18 3:00', '2009/9/18 4:00', '2009/9/18 5:00', '2009/9/18 6:00', '2009/9/18 7:00', '2009/9/18 8:00', '2009/9/18 9:00', '2009/9/18 10:00', '2009/9/18 11:00', '2009/9/18 12:00', '2009/9/18 13:00', '2009/9/18 14:00', '2009/9/18 15:00', '2009/9/18 16:00', '2009/9/18 17:00', '2009/9/18 18:00', '2009/9/18 19:00', '2009/9/18 20:00', '2009/9/18 21:00', '2009/9/18 22:00', '2009/9/18 23:00', '2009/9/19 0:00', '2009/9/19 1:00', '2009/9/19 2:00', '2009/9/19 3:00', '2009/9/19 4:00', '2009/9/19 5:00', '2009/9/19 6:00', '2009/9/19 7:00', '2009/9/19 8:00', '2009/9/19 9:00', '2009/9/19 10:00', '2009/9/19 11:00', '2009/9/19 12:00', '2009/9/19 13:00', '2009/9/19 14:00', '2009/9/19 15:00', '2009/9/19 16:00', '2009/9/19 17:00', '2009/9/19 18:00', '2009/9/19 19:00', '2009/9/19 20:00', '2009/9/19 21:00', '2009/9/19 22:00', '2009/9/19 23:00', '2009/9/20 0:00', '2009/9/20 1:00', '2009/9/20 2:00', '2009/9/20 3:00', '2009/9/20 4:00', '2009/9/20 5:00', '2009/9/20 6:00', '2009/9/20 7:00', '2009/9/20 8:00', '2009/9/20 9:00', '2009/9/20 10:00', '2009/9/20 11:00', '2009/9/20 12:00', '2009/9/20 13:00', '2009/9/20 14:00', '2009/9/20 15:00', '2009/9/20 16:00', '2009/9/20 17:00', '2009/9/20 18:00', '2009/9/20 19:00', '2009/9/20 20:00', '2009/9/20 21:00', '2009/9/20 22:00', '2009/9/20 23:00', '2009/9/21 0:00', '2009/9/21 1:00', '2009/9/21 2:00', '2009/9/21 3:00', '2009/9/21 4:00', '2009/9/21 5:00', '2009/9/21 6:00', '2009/9/21 7:00', '2009/9/21 8:00', '2009/9/21 9:00', '2009/9/21 10:00', '2009/9/21 11:00', '2009/9/21 12:00', '2009/9/21 13:00', '2009/9/21 14:00', '2009/9/21 15:00', '2009/9/21 16:00', '2009/9/21 17:00', '2009/9/21 18:00', '2009/9/21 19:00', '2009/9/21 20:00', '2009/9/21 21:00', '2009/9/21 22:00', '2009/9/21 23:00', '2009/9/22 0:00', '2009/9/22 1:00', '2009/9/22 2:00', '2009/9/22 3:00', '2009/9/22 4:00', '2009/9/22 5:00', '2009/9/22 6:00', '2009/9/22 7:00', '2009/9/22 8:00', '2009/9/22 9:00', '2009/9/22 10:00', '2009/9/22 11:00', '2009/9/22 12:00', '2009/9/22 13:00', '2009/9/22 14:00', '2009/9/22 15:00', '2009/9/22 16:00', '2009/9/22 17:00', '2009/9/22 18:00', '2009/9/22 19:00', '2009/9/22 20:00', '2009/9/22 21:00', '2009/9/22 22:00', '2009/9/22 23:00', '2009/9/23 0:00', '2009/9/23 1:00', '2009/9/23 2:00', '2009/9/23 3:00', '2009/9/23 4:00', '2009/9/23 5:00', '2009/9/23 6:00', '2009/9/23 7:00', '2009/9/23 8:00', '2009/9/23 9:00', '2009/9/23 10:00', '2009/9/23 11:00', '2009/9/23 12:00', '2009/9/23 13:00', '2009/9/23 14:00', '2009/9/23 15:00', '2009/9/23 16:00', '2009/9/23 17:00', '2009/9/23 18:00', '2009/9/23 19:00', '2009/9/23 20:00', '2009/9/23 21:00', '2009/9/23 22:00', '2009/9/23 23:00', '2009/9/24 0:00', '2009/9/24 1:00', '2009/9/24 2:00', '2009/9/24 3:00', '2009/9/24 4:00', '2009/9/24 5:00', '2009/9/24 6:00', '2009/9/24 7:00', '2009/9/24 8:00', '2009/9/24 9:00', '2009/9/24 10:00', '2009/9/24 11:00', '2009/9/24 12:00', '2009/9/24 13:00', '2009/9/24 14:00', '2009/9/24 15:00', '2009/9/24 16:00', '2009/9/24 17:00', '2009/9/24 18:00', '2009/9/24 19:00', '2009/9/24 20:00', '2009/9/24 21:00', '2009/9/24 22:00', '2009/9/24 23:00', '2009/9/25 0:00', '2009/9/25 1:00', '2009/9/25 2:00', '2009/9/25 3:00', '2009/9/25 4:00', '2009/9/25 5:00', '2009/9/25 6:00', '2009/9/25 7:00', '2009/9/25 8:00', '2009/9/25 9:00', '2009/9/25 10:00', '2009/9/25 11:00', '2009/9/25 12:00', '2009/9/25 13:00', '2009/9/25 14:00', '2009/9/25 15:00', '2009/9/25 16:00', '2009/9/25 17:00', '2009/9/25 18:00', '2009/9/25 19:00', '2009/9/25 20:00', '2009/9/25 21:00', '2009/9/25 22:00', '2009/9/25 23:00', '2009/9/26 0:00', '2009/9/26 1:00', '2009/9/26 2:00', '2009/9/26 3:00', '2009/9/26 4:00', '2009/9/26 5:00', '2009/9/26 6:00', '2009/9/26 7:00', '2009/9/26 8:00', '2009/9/26 9:00', '2009/9/26 10:00', '2009/9/26 11:00', '2009/9/26 12:00', '2009/9/26 13:00', '2009/9/26 14:00', '2009/9/26 15:00', '2009/9/26 16:00', '2009/9/26 17:00', '2009/9/26 18:00', '2009/9/26 19:00', '2009/9/26 20:00', '2009/9/26 21:00', '2009/9/26 22:00', '2009/9/26 23:00', '2009/9/27 0:00', '2009/9/27 1:00', '2009/9/27 2:00', '2009/9/27 3:00', '2009/9/27 4:00', '2009/9/27 5:00', '2009/9/27 6:00', '2009/9/27 7:00', '2009/9/27 8:00', '2009/9/27 9:00', '2009/9/27 10:00', '2009/9/27 11:00', '2009/9/27 12:00', '2009/9/27 13:00', '2009/9/27 14:00', '2009/9/27 15:00', '2009/9/27 16:00', '2009/9/27 17:00', '2009/9/27 18:00', '2009/9/27 19:00', '2009/9/27 20:00', '2009/9/27 21:00', '2009/9/27 22:00', '2009/9/27 23:00', '2009/9/28 0:00', '2009/9/28 1:00', '2009/9/28 2:00', '2009/9/28 3:00', '2009/9/28 4:00', '2009/9/28 5:00', '2009/9/28 6:00', '2009/9/28 7:00', '2009/9/28 8:00', '2009/9/28 9:00', '2009/9/28 10:00', '2009/9/28 11:00', '2009/9/28 12:00', '2009/9/28 13:00', '2009/9/28 14:00', '2009/9/28 15:00', '2009/9/28 16:00', '2009/9/28 17:00', '2009/9/28 18:00', '2009/9/28 19:00', '2009/9/28 20:00', '2009/9/28 21:00', '2009/9/28 22:00', '2009/9/28 23:00', '2009/9/29 0:00', '2009/9/29 1:00', '2009/9/29 2:00', '2009/9/29 3:00', '2009/9/29 4:00', '2009/9/29 5:00', '2009/9/29 6:00', '2009/9/29 7:00', '2009/9/29 8:00', '2009/9/29 9:00', '2009/9/29 10:00', '2009/9/29 11:00', '2009/9/29 12:00', '2009/9/29 13:00', '2009/9/29 14:00', '2009/9/29 15:00', '2009/9/29 16:00', '2009/9/29 17:00', '2009/9/29 18:00', '2009/9/29 19:00', '2009/9/29 20:00', '2009/9/29 21:00', '2009/9/29 22:00', '2009/9/29 23:00', '2009/9/30 0:00', '2009/9/30 1:00', '2009/9/30 2:00', '2009/9/30 3:00', '2009/9/30 4:00', '2009/9/30 5:00', '2009/9/30 6:00', '2009/9/30 7:00', '2009/9/30 8:00', '2009/9/30 9:00', '2009/9/30 10:00', '2009/9/30 11:00', '2009/9/30 12:00', '2009/9/30 13:00', '2009/9/30 14:00', '2009/9/30 15:00', '2009/9/30 16:00', '2009/9/30 17:00', '2009/9/30 18:00', '2009/9/30 19:00', '2009/9/30 20:00', '2009/9/30 21:00', '2009/9/30 22:00', '2009/9/30 23:00', + '2009/10/1 0:00', '2009/10/1 1:00', '2009/10/1 2:00', '2009/10/1 3:00', '2009/10/1 4:00', '2009/10/1 5:00', '2009/10/1 6:00', '2009/10/1 7:00', '2009/10/1 8:00', '2009/10/1 9:00', '2009/10/1 10:00', '2009/10/1 11:00', '2009/10/1 12:00', '2009/10/1 13:00', '2009/10/1 14:00', '2009/10/1 15:00', '2009/10/1 16:00', '2009/10/1 17:00', '2009/10/1 18:00', '2009/10/1 19:00', '2009/10/1 20:00', '2009/10/1 21:00', '2009/10/1 22:00', '2009/10/1 23:00', '2009/10/2 0:00', '2009/10/2 1:00', '2009/10/2 2:00', '2009/10/2 3:00', '2009/10/2 4:00', '2009/10/2 5:00', '2009/10/2 6:00', '2009/10/2 7:00', '2009/10/2 8:00', '2009/10/2 9:00', '2009/10/2 10:00', '2009/10/2 11:00', '2009/10/2 12:00', '2009/10/2 13:00', '2009/10/2 14:00', '2009/10/2 15:00', '2009/10/2 16:00', '2009/10/2 17:00', '2009/10/2 18:00', '2009/10/2 19:00', '2009/10/2 20:00', '2009/10/2 21:00', '2009/10/2 22:00', '2009/10/2 23:00', '2009/10/3 0:00', '2009/10/3 1:00', '2009/10/3 2:00', '2009/10/3 3:00', '2009/10/3 4:00', '2009/10/3 5:00', '2009/10/3 6:00', '2009/10/3 7:00', '2009/10/3 8:00', '2009/10/3 9:00', '2009/10/3 10:00', '2009/10/3 11:00', '2009/10/3 12:00', '2009/10/3 13:00', '2009/10/3 14:00', '2009/10/3 15:00', '2009/10/3 16:00', '2009/10/3 17:00', '2009/10/3 18:00', '2009/10/3 19:00', '2009/10/3 20:00', '2009/10/3 21:00', '2009/10/3 22:00', '2009/10/3 23:00', '2009/10/4 0:00', '2009/10/4 1:00', '2009/10/4 2:00', '2009/10/4 3:00', '2009/10/4 4:00', '2009/10/4 5:00', '2009/10/4 6:00', '2009/10/4 7:00', '2009/10/4 8:00', '2009/10/4 9:00', '2009/10/4 10:00', '2009/10/4 11:00', '2009/10/4 12:00', '2009/10/4 13:00', '2009/10/4 14:00', '2009/10/4 15:00', '2009/10/4 16:00', '2009/10/4 17:00', '2009/10/4 18:00', '2009/10/4 19:00', '2009/10/4 20:00', '2009/10/4 21:00', '2009/10/4 22:00', '2009/10/4 23:00', '2009/10/5 0:00', '2009/10/5 1:00', '2009/10/5 2:00', '2009/10/5 3:00', '2009/10/5 4:00', '2009/10/5 5:00', '2009/10/5 6:00', '2009/10/5 7:00', '2009/10/5 8:00', '2009/10/5 9:00', '2009/10/5 10:00', '2009/10/5 11:00', '2009/10/5 12:00', '2009/10/5 13:00', '2009/10/5 14:00', '2009/10/5 15:00', '2009/10/5 16:00', '2009/10/5 17:00', '2009/10/5 18:00', '2009/10/5 19:00', '2009/10/5 20:00', '2009/10/5 21:00', '2009/10/5 22:00', '2009/10/5 23:00', '2009/10/6 0:00', '2009/10/6 1:00', '2009/10/6 2:00', '2009/10/6 3:00', '2009/10/6 4:00', '2009/10/6 5:00', '2009/10/6 6:00', '2009/10/6 7:00', '2009/10/6 8:00', '2009/10/6 9:00', '2009/10/6 10:00', '2009/10/6 11:00', '2009/10/6 12:00', '2009/10/6 13:00', '2009/10/6 14:00', '2009/10/6 15:00', '2009/10/6 16:00', '2009/10/6 17:00', '2009/10/6 18:00', '2009/10/6 19:00', '2009/10/6 20:00', '2009/10/6 21:00', '2009/10/6 22:00', '2009/10/6 23:00', '2009/10/7 0:00', '2009/10/7 1:00', '2009/10/7 2:00', '2009/10/7 3:00', '2009/10/7 4:00', '2009/10/7 5:00', '2009/10/7 6:00', '2009/10/7 7:00', '2009/10/7 8:00', '2009/10/7 9:00', '2009/10/7 10:00', '2009/10/7 11:00', '2009/10/7 12:00', '2009/10/7 13:00', '2009/10/7 14:00', '2009/10/7 15:00', '2009/10/7 16:00', '2009/10/7 17:00', '2009/10/7 18:00', '2009/10/7 19:00', '2009/10/7 20:00', '2009/10/7 21:00', '2009/10/7 22:00', '2009/10/7 23:00', '2009/10/8 0:00', '2009/10/8 1:00', '2009/10/8 2:00', '2009/10/8 3:00', '2009/10/8 4:00', '2009/10/8 5:00', '2009/10/8 6:00', '2009/10/8 7:00', '2009/10/8 8:00', '2009/10/8 9:00', '2009/10/8 10:00', '2009/10/8 11:00', '2009/10/8 12:00', '2009/10/8 13:00', '2009/10/8 14:00', '2009/10/8 15:00', '2009/10/8 16:00', '2009/10/8 17:00', '2009/10/8 18:00', '2009/10/8 19:00', '2009/10/8 20:00', '2009/10/8 21:00', '2009/10/8 22:00', '2009/10/8 23:00', '2009/10/9 0:00', '2009/10/9 1:00', '2009/10/9 2:00', '2009/10/9 3:00', '2009/10/9 4:00', '2009/10/9 5:00', '2009/10/9 6:00', '2009/10/9 7:00', '2009/10/9 8:00', '2009/10/9 9:00', '2009/10/9 10:00', '2009/10/9 11:00', '2009/10/9 12:00', '2009/10/9 13:00', '2009/10/9 14:00', '2009/10/9 15:00', '2009/10/9 16:00', '2009/10/9 17:00', '2009/10/9 18:00', '2009/10/9 19:00', '2009/10/9 20:00', '2009/10/9 21:00', '2009/10/9 22:00', '2009/10/9 23:00', '2009/10/10 0:00', '2009/10/10 1:00', '2009/10/10 2:00', '2009/10/10 3:00', '2009/10/10 4:00', '2009/10/10 5:00', '2009/10/10 6:00', '2009/10/10 7:00', '2009/10/10 8:00', '2009/10/10 9:00', '2009/10/10 10:00', '2009/10/10 11:00', '2009/10/10 12:00', '2009/10/10 13:00', '2009/10/10 14:00', '2009/10/10 15:00', '2009/10/10 16:00', '2009/10/10 17:00', '2009/10/10 18:00', '2009/10/10 19:00', '2009/10/10 20:00', '2009/10/10 21:00', '2009/10/10 22:00', '2009/10/10 23:00', '2009/10/11 0:00', '2009/10/11 1:00', '2009/10/11 2:00', '2009/10/11 3:00', '2009/10/11 4:00', '2009/10/11 5:00', '2009/10/11 6:00', '2009/10/11 7:00', '2009/10/11 8:00', '2009/10/11 9:00', '2009/10/11 10:00', '2009/10/11 11:00', '2009/10/11 12:00', '2009/10/11 13:00', '2009/10/11 14:00', '2009/10/11 15:00', '2009/10/11 16:00', '2009/10/11 17:00', '2009/10/11 18:00', '2009/10/11 19:00', '2009/10/11 20:00', '2009/10/11 21:00', '2009/10/11 22:00', '2009/10/11 23:00', '2009/10/12 0:00', '2009/10/12 1:00', '2009/10/12 2:00', '2009/10/12 3:00', '2009/10/12 4:00', '2009/10/12 5:00', '2009/10/12 6:00', '2009/10/12 7:00', '2009/10/12 8:00', '2009/10/12 9:00', '2009/10/12 10:00', '2009/10/12 11:00', '2009/10/12 12:00', '2009/10/12 13:00', '2009/10/12 14:00', '2009/10/12 15:00', '2009/10/12 16:00', '2009/10/12 17:00', '2009/10/12 18:00', '2009/10/12 19:00', '2009/10/12 20:00', '2009/10/12 21:00', '2009/10/12 22:00', '2009/10/12 23:00', '2009/10/13 0:00', '2009/10/13 1:00', '2009/10/13 2:00', '2009/10/13 3:00', '2009/10/13 4:00', '2009/10/13 5:00', '2009/10/13 6:00', '2009/10/13 7:00', '2009/10/13 8:00', '2009/10/13 9:00', '2009/10/13 10:00', '2009/10/13 11:00', '2009/10/13 12:00', '2009/10/13 13:00', '2009/10/13 14:00', '2009/10/13 15:00', '2009/10/13 16:00', '2009/10/13 17:00', '2009/10/13 18:00', '2009/10/13 19:00', '2009/10/13 20:00', '2009/10/13 21:00', '2009/10/13 22:00', '2009/10/13 23:00', '2009/10/14 0:00', '2009/10/14 1:00', '2009/10/14 2:00', '2009/10/14 3:00', '2009/10/14 4:00', '2009/10/14 5:00', '2009/10/14 6:00', '2009/10/14 7:00', '2009/10/14 8:00', '2009/10/14 9:00', '2009/10/14 10:00', '2009/10/14 11:00', '2009/10/14 12:00', '2009/10/14 13:00', '2009/10/14 14:00', '2009/10/14 15:00', '2009/10/14 16:00', '2009/10/14 17:00', '2009/10/14 18:00', '2009/10/14 19:00', '2009/10/14 20:00', '2009/10/14 21:00', '2009/10/14 22:00', '2009/10/14 23:00', '2009/10/15 0:00', '2009/10/15 1:00', '2009/10/15 2:00', '2009/10/15 3:00', '2009/10/15 4:00', '2009/10/15 5:00', '2009/10/15 6:00', '2009/10/15 7:00', '2009/10/15 8:00', '2009/10/15 9:00', '2009/10/15 10:00', '2009/10/15 11:00', '2009/10/15 12:00', '2009/10/15 13:00', '2009/10/15 14:00', '2009/10/15 15:00', '2009/10/15 16:00', '2009/10/15 17:00', '2009/10/15 18:00', '2009/10/15 19:00', '2009/10/15 20:00', '2009/10/15 21:00', '2009/10/15 22:00', '2009/10/15 23:00', '2009/10/16 0:00', '2009/10/16 1:00', '2009/10/16 2:00', '2009/10/16 3:00', '2009/10/16 4:00', '2009/10/16 5:00', '2009/10/16 6:00', '2009/10/16 7:00', '2009/10/16 8:00', '2009/10/16 9:00', '2009/10/16 10:00', '2009/10/16 11:00', '2009/10/16 12:00', '2009/10/16 13:00', '2009/10/16 14:00', '2009/10/16 15:00', '2009/10/16 16:00', '2009/10/16 17:00', '2009/10/16 18:00', '2009/10/16 19:00', '2009/10/16 20:00', '2009/10/16 21:00', '2009/10/16 22:00', '2009/10/16 23:00', '2009/10/17 0:00', '2009/10/17 1:00', '2009/10/17 2:00', '2009/10/17 3:00', '2009/10/17 4:00', '2009/10/17 5:00', '2009/10/17 6:00', '2009/10/17 7:00', '2009/10/17 8:00', '2009/10/17 9:00', '2009/10/17 10:00', '2009/10/17 11:00', '2009/10/17 12:00', '2009/10/17 13:00', '2009/10/17 14:00', '2009/10/17 15:00', '2009/10/17 16:00', '2009/10/17 17:00', '2009/10/17 18:00', '2009/10/17 19:00', '2009/10/17 20:00', '2009/10/17 21:00', '2009/10/17 22:00', '2009/10/17 23:00', '2009/10/18 0:00', '2009/10/18 1:00', '2009/10/18 2:00', '2009/10/18 3:00', '2009/10/18 4:00', '2009/10/18 5:00', '2009/10/18 6:00', '2009/10/18 7:00', '2009/10/18 8:00' + ] + } + ], + yAxis : [ + { + name : '流量(m^3/s)', + type : 'value', + max : 500 + }, + { + name : '降雨量(mm)', + type : 'value', + axisLabel : { + formatter: function(v){ + return - v; + } + } + } + ], + series : [ + { + name:'流量', + type:'line', + itemStyle: {normal: {areaStyle: {type: 'default'}}}, + data:[ + 0.97,0.96,0.96,0.95,0.95,0.94,0.94,0.94,0.94,0.94,0.94,0.94,0.94,0.94,0.94,0.94,0.94,0.94,0.94,0.94,0.94,0.94,0.94,0.94,0.94,0.94,0.94,0.94,0.94,0.94,0.94,0.94,0.94,0.94,0.94,0.94,0.94,0.94,0.94,0.94,0.94,0.94,0.94,0.94,0.94,0.94,0.94,0.94,0.94,0.94,0.94,0.94,0.94,0.94,0.94,0.94,0.94,0.94,0.94,0.94,0.94,0.94,0.94,0.94,0.94,0.94,0.94,0.94,0.94,0.94,0.94,0.94,0.94,0.94,0.94,0.94,0.94,0.94,0.94,0.94,0.94,0.94,0.94,0.94,0.94,0.94,0.94,0.94,0.94,0.94,0.94,0.94,0.94,0.94,0.94,0.94,0.94,0.94,0.94,0.94,0.94,0.94,0.94,0.94,0.94,0.94,0.94,0.94,0.94,0.94,0.94,0.94,0.94,0.94,0.94,0.94,0.94,0.94,0.94,0.94,0.94,0.94,0.94,0.94,0.94,0.94,0.94,0.94,0.94,0.93,0.92,0.91,0.9,0.89,0.88,0.87,0.87,0.86,0.86,0.86,0.86,0.86,0.86,0.86,0.86,0.86,0.86,0.86,0.86,0.86,0.86,0.86,0.86,0.86,0.86,0.86,0.86,0.86,0.86,0.86,0.86,0.86,0.86,0.87,0.88,0.9,0.93,0.96,0.99,1.03,1.06,1.1,1.14,1.17,1.2,1.23,1.26,1.29,1.33,1.36,1.4,1.43,1.45,1.48,1.49,1.51,1.51,1.5,1.49,1.47,1.44,1.41,1.37,1.34,1.3,1.27,1.24,1.22,1.2,1.19,1.18,1.16,1.15,1.14,1.13,1.12,1.11,1.11,1.1,1.1,1.1,1.1,1.1,1.1,1.1,1.1,1.1,1.1,1.1,1.1,1.1,1.1,1.1,1.1,1.1,1.09,1.09,1.08,1.07,1.06,1.05,1.04,1.03,1.03,1.02,1.01,1.01,1,0.99,0.98,0.97,0.96,0.96,0.95,0.95,0.94,0.94,0.94,0.94,0.94,0.94,0.94,0.94,0.94,0.94,0.94,0.94,0.94,0.94,0.94,0.94,0.94,0.94,0.94,0.94,0.94,0.94,0.94,0.94,0.94,0.94,0.94,0.94,0.94,0.94,0.94,0.94,0.94,0.94,0.94,0.94,0.94,0.94,0.94,0.94,0.93,0.92,0.91,0.9,0.89,0.88,0.87,0.87,0.86,0.86,0.86,0.86,0.86,0.86,0.86,0.86,0.86,0.86,0.86,0.86,0.86,0.86,0.86,0.86,0.86,0.86,0.86,0.86,0.86,0.86,0.86,0.86,0.86,0.86,0.86,0.86,0.86,0.86,0.86,0.86,0.86,0.86,0.86,0.86,0.86,0.86,0.86,0.86,0.86,0.86,0.86,0.86,0.86,0.86,0.86,0.86,0.86,0.86,0.86,0.86,0.86,0.86,0.86,0.86,0.86,0.86,0.86,0.86,0.86,0.86,0.86,0.86,0.85,0.84,0.83,0.82,0.81,0.8,0.8,0.79,0.78,0.78,0.78,0.78,0.78,0.78,0.78,0.78,0.78,0.78,0.78,0.78,0.78,0.78,0.78,0.78,0.78,0.78,0.78,0.78,0.78,0.78,0.78,0.78,0.78,0.78,0.78,0.78,0.78,0.78,0.78,0.78,0.78,0.78,0.78,0.78,0.78,0.78,0.78,0.77,0.75,0.73,0.71,0.68,0.65,0.63,0.61,0.59,0.58,0.58,0.58,0.58,0.58,0.58,0.58,0.58,0.58,0.58,0.58,0.58,0.58,0.58,0.58,0.58,0.58,0.58,0.58,0.58,0.58,0.58,0.58,0.58,0.58,0.58,0.58,0.58,0.58,0.58,0.58,0.58,0.58,0.58,0.58,0.58,0.58,0.58,0.58,0.58,0.58,0.58,0.58,0.58,0.58,0.58,0.58,0.58,0.58,0.58,0.58,0.57,0.57,0.57,0.56,0.55,0.55,0.54,0.54,0.53,0.52,0.52,0.51,0.51,0.5,0.5,0.49,0.48,0.48,0.47,0.47,0.47,0.46,0.46,0.46,0.46,0.46,0.46,0.46,0.46,0.46,0.46,0.46,0.46,0.46,0.46,0.46,0.46,0.46,0.46,0.46,0.46,0.46,0.46,0.46,0.46,0.46,0.46,0.46,0.46,0.46,0.46,0.46,0.46,0.46,0.46,0.46,0.46,0.46,0.46,0.52,0.67,0.9,1.19,1.52,1.87,2.22,2.55,2.84,3.07,3.22,3.28,3.28,3.28,3.28,3.28,3.28,3.28,3.28,3.28,3.28,3.28,3.28,3.28,3.24,3.13,2.97,2.77,2.54,2.3,2.05,1.82,1.62,1.46,1.35,1.31,1.31,1.31,1.31,1.31,1.31,1.31,1.31,1.31,1.31,1.31,1.31,1.31,1.31,1.31,1.31,1.31,1.31,1.31,1.31,1.31,1.31,1.31,1.31,1.31,1.31,1.31,1.31,1.31,1.31,1.31,1.31,1.31,1.31,1.31,1.31,1.31,1.3,1.26,1.21,1.14,1.06,0.97,0.89,0.81,0.74,0.69,0.65,0.64,0.64,0.64,0.64,0.64,0.64,0.64,0.64,0.64,0.64,0.64,0.64,0.64,0.64,0.64,0.64,0.64,0.64,0.64,0.64,0.64,0.64,0.64,0.64,0.64,0.64,0.64,0.64,0.64,0.64,0.64,0.64,0.64,0.64,0.64,0.64,0.64,0.64,0.63,0.63,0.62,0.62,0.61,0.6,0.59,0.59,0.58,0.58,0.58,0.58,0.58,0.58,0.58,0.58,0.58,0.58,0.58,0.58,0.58,0.58,0.58,0.58,0.59,0.61,0.63,0.65,0.68,0.71,0.73,0.75,0.77,0.78,0.78,0.78,0.78,0.78,0.78,0.78,0.78,0.78,0.78,0.78,0.78,0.78,0.78,0.78,0.77,0.75,0.73,0.71,0.68,0.65,0.63,0.61,0.59,0.58,0.58,0.58,0.58,0.58,0.58,0.58,0.58,0.58,0.58,0.58,0.58,0.58,0.58,0.58,0.58,0.59,0.59,0.6,0.61,0.62,0.62,0.63,0.63,0.64,0.64,0.64,0.64,0.64,0.64,0.64,0.64,0.64,0.64,0.64,0.64,0.64,0.64,0.64,0.65,0.66,0.68,0.69,0.71,0.73,0.74,0.76,0.77,0.78,0.78,0.78,0.78,0.78,0.78,0.78,0.78,0.78,0.78,0.78,0.78,0.78,0.78,0.78,0.78,0.78,0.78,0.78,0.78,0.78,0.78,0.78,0.78,0.78,0.78,0.78,0.78,0.78,0.78,0.78,0.78,0.78,0.78,0.78,0.78,0.78,0.78,0.78,0.78,0.78,0.78,0.78,0.78,0.78,0.78,0.78,0.78,0.78,0.78,0.78,0.78,0.78,0.78,0.78,0.78,0.78,0.78,0.78,0.78,0.78,0.78,0.78,0.78,0.78,0.78,0.78,0.78,0.78,0.78,0.78,0.78,0.78,0.78,0.78,0.78,0.78,0.78,0.78,0.78,0.78,0.78,0.78,0.78,0.78,0.78,0.78,0.78,0.78,0.78,0.78,0.78,0.78,0.78,0.78,0.78,0.78,0.78,0.78,0.78,0.78,0.78,0.78,0.78,0.78,0.78,0.78,0.78,0.78,0.78,0.78,0.79,0.81,0.82,0.84,0.86,0.88,0.9,0.92,0.93,0.94,0.94,0.94,0.94,0.94,0.94,0.94,0.94,0.94,0.94,0.94,0.94,0.94,0.94,0.94,0.94,0.93,0.92,0.91,0.9,0.89,0.88,0.87,0.87,0.86,0.86,0.86,0.86,0.86,0.86,0.86,0.86,0.86,0.86,0.86,0.86,0.86,0.86,0.86,0.85,0.84,0.82,0.8,0.78,0.76,0.75,0.73,0.72,0.71,0.71,0.71,0.71,0.71,0.71,0.71,0.71,0.71,0.71,0.71,0.71,0.71,0.71,0.71,0.71,0.71,0.71,0.71,0.71,0.71,0.71,0.71,0.71,0.71,0.71,0.71,0.71,0.71,0.71,0.71,0.71,0.71,0.71,0.71,0.71,0.71,0.71,0.71,0.71,0.71,0.71,0.71,0.71,0.71,0.71,0.71,0.71,0.71,0.71,0.71,0.71,0.71,0.71,0.71,0.71,0.71,0.71,0.71,0.71,0.71,0.71,0.71,0.71,0.71,0.71,0.71,0.71,0.71,0.71,0.71,0.71,0.71,0.71,0.71,0.71,0.71,0.71,0.71,0.71,0.71,0.71,0.71,0.71,0.71,0.71,0.71,0.71,0.71,0.71,0.71,0.71,0.71,0.71,0.71,0.71,0.71,0.71,0.71,0.71,0.71,0.71,0.71,0.71,0.71,0.71,0.71,0.71,0.71,0.71,0.71,0.71,0.71,0.71,0.71,0.71,0.71,0.71,0.71,0.71,0.71,0.71,0.71,0.71,0.71,0.71,0.71,0.71,0.71,0.71,0.71,0.71,0.71,0.71,0.71,0.71,0.71,0.71,0.71,0.71,0.71,0.71,0.71,0.71,0.71,0.71,0.71,0.71,0.71,0.71,0.71,0.71,0.71,0.71,0.71,0.71,0.71,0.71,0.71,0.71,0.72,0.73,0.74,0.76,0.78,0.79,0.82,0.84,0.86,0.89,0.91,0.94,0.97,1,1.02,1.05,1.08,1.11,1.14,1.17,1.19,1.22,1.25,1.27,1.29,1.31,1.33,1.35,1.36,1.38,1.39,1.39,1.4,1.4,1.4,1.39,1.37,1.35,1.32,1.29,1.26,1.22,1.18,1.14,1.1,1.05,1.01,0.97,0.93,0.89,0.85,0.82,0.78,0.76,0.74,0.72,0.71,0.71,0.71,0.71,0.71,0.71,0.71,0.71,0.71,0.71,0.71,0.71,0.71,0.71,0.71,0.71,0.72,0.73,0.74,0.75,0.77,0.78,0.8,0.82,0.84,0.87,0.89,0.92,0.94,0.97,0.99,1.02,1.05,1.08,1.1,1.13,1.16,1.18,1.21,1.23,1.26,1.28,1.3,1.32,1.34,1.35,1.37,1.38,1.39,1.4,1.41,1.41,1.42,1.42,1.43,1.43,1.43,1.44,1.44,1.44,1.44,1.45,1.45,1.45,1.46,1.46,1.46,1.47,1.47,1.48,1.48,1.49,1.5,1.51,1.54,1.62,1.73,1.88,2.05,2.24,2.45,2.67,2.89,3.11,3.31,3.51,3.69,3.86,4.03,4.18,4.33,4.48,4.62,4.76,4.89,5.02,5.16,5.29,5.43,5.57,5.71,5.86,6.02,6.18,6.36,6.54,6.73,6.93,7.15,7.38,7.62,7.88,8.16,8.46,8.77,9.11,9.46,9.84,10.24,10.67,11.12,11.6,12.3,13.66,16,38.43,82.21,146.6,218.7,226,225.23,223.08,219.78,212,199.82,184.6,168,151.65,137.21,126.31,119.94,115.52,112.06,108.92,105.44,101,94.56,86.36,77.67,69.76,63.9,60.38,57.41,54.84,52.57,50.56,48.71,46.97,45.25,43.48,41.6,39.5,37.19,34.81,32.46,30.27,28.36,26.85,25.86,25.5,25.5,25.5,25.5,25.5,25.5,25.5,25.5,25.5,25.5,25.5,25.5,25.5,25.27,24.65,23.7,22.52,21.17,19.75,18.33,16.98,15.8,14.85,14.23,14,14.02,14.08,14.17,14.29,14.44,14.61,14.8,15.01,15.23,15.47,15.71,15.95,16.19,16.43,16.67,16.89,17.1,17.29,17.46,17.61,17.73,17.82,17.88,17.9,17.63,16.88,15.75,14.33,12.71,10.98,9.23,7.56,6.05,4.81,3.92,3.47,3.28,3.1,2.93,2.76,2.61,2.46,2.32,2.19,2.07,1.96,1.85,1.75,1.66,1.58,1.51,1.44,1.39,1.34,1.29,1.26,1.23,1.22,1.2,1.2,1.2,1.2,1.2,1.2,1.21,1.21,1.21,1.21,1.22,1.22,1.22,1.23,1.23,1.23,1.24,1.24,1.25,1.25,1.25,1.26,1.26,1.27,1.27,1.27,1.28,1.28,1.28,1.29,1.29,1.29,1.29,1.3,1.3,1.3,1.3,1.3,1.3,1.3,1.3,1.3,1.3,1.3,1.29,1.29,1.29,1.29,1.28,1.28,1.28,1.27,1.27,1.26,1.25,1.25,1.24,1.23,1.23,1.22,1.21,1.2,1.16,1.06,0.95,0.83,0.74,0.71,0.71,0.71,0.71,0.71,0.71,0.71,0.71,0.71,0.71,0.71,0.71,0.71,0.7,0.7,0.7,0.7,0.7,0.7,0.7,0.7,0.7,0.7,0.7,0.69,0.69,0.69,0.69,0.69,0.69,0.69,0.69,0.68,0.68,0.68,0.68,0.68,0.68,0.67,0.67,0.67,0.67,0.67,0.67,0.67,0.66,0.66,0.66,0.66,0.66,0.66,0.66,0.65,0.65,0.65,0.65,0.65,0.65,0.65,0.65,0.64,0.64,0.64,0.64,0.64,0.64,0.64,0.64,0.64,0.64,0.64,0.64,0.64,0.64,0.64,0.64,0.64,0.64,0.64,0.64,0.64,0.64,0.64,0.64,0.64,0.64,0.64,0.64,0.64,0.64,0.64,0.64,0.64,0.64,0.64,0.64,0.64,0.64,0.64,0.64,0.64,0.64,0.64,0.64,0.65,0.66,0.68,0.69,0.71,0.73,0.74,0.76,0.77,0.78,0.78,0.78,0.78,0.78,0.78,0.78,0.78,0.8,0.86,0.95,1.08,1.25,1.46,1.7,1.97,2.28,2.63,3.01,3.42,3.87,4.35,4.86,5.4,5.98,6.59,7.92,10.49,14.04,18.31,23.04,27.98,32.87,37.45,41.46,44.64,46.74,47.5,46.86,45.16,42.77,40.04,37.33,35,32.74,30.21,27.7,25.5,23.9,23.2,23.06,22.94,22.84,22.77,22.72,22.7,22.8,23.23,23.95,24.91,26.04,27.3,28.76,30.7,33.39,37.12,42.15,48.77,65.22,252.1,257,237.32,221.19,212,208.67,206.89,205.2,202.15,189.82,172,165.3,160.49,156.8,153.44,149.62,144.6,138.27,131,123.11,114.9,106.69,98.79,91.5,85.13,80,75.53,71.03,66.65,62.54,58.85,55.73,53.31,51.75,51.2,56.53,68.25,80,91.01,102.03,109,112.37,115.29,117.68,119.48,120.61,121,119.45,115.57,110.52,105.47,101.58,100,99.97,99.94,99.92,99.9,99.88,99.86,99.85,99.84,99.83,99.82,99.81,99.81,99.8,99.8,99.8,122.15,163.65,186,182.96,175.15,164.56,153.18,143,136,131.37,126.98,122.81,118.85,115.09,111.52,108.13,104.9,101.83,98.9,96.11,93.44,90.87,88.41,86.04,83.74,81.51,79.33,77.2,75.1,73.02,70.95,68.88,66.8,64.87,63.14,61.4,59.53,57.67,56,54.6,53.36,52.2,51.05,49.85,48.5,46.87,44.92,42.74,40.42,38.04,35.69,33.46,31.44,29.72,28.38,27.51,27.2,27.2,27.2,27.2,27.2,27.2,27.2,27.2,27.2,27.2,27.2,27.2,27.2,27.14,26.97,26.7,26.35,25.95,25.49,25.02,24.53,24.04,23.58,23.16,22.8,22.46,22.11,21.75,21.39,21.03,20.69,20.36,20.05,19.78,19.54,19.35,19.2,19.09,19,18.92,18.85,18.79,18.74,18.68,18.62,18.56,18.49,18.4,18.3,18.17,18.02,17.83,17.63,17.41,17.18,16.93,16.68,16.43,16.18,15.93,15.7,15.47,15.22,14.97,14.71,14.45,14.18,13.93,13.68,13.44,13.21,13,12.8,12.62,12.46,12.31,12.16,12.03,11.89,11.76,11.62,11.48,11.33,11.17,11,10.81,10.59,10.36,10.12,9.86,9.61,9.36,9.12,8.89,8.68,8.5,8.35,8.21,8.08,7.94,7.81,7.68,7.56,7.46,7.36,7.29,7.23,7.19,7.18,7.51,8.42,9.81,11.58,13.63,15.86,18.16,20.44,22.58,24.49,26.06,27.2,28.08,28.95,29.81,30.65,31.48,32.28,33.07,33.82,34.55,35.25,35.92,36.56,37.15,37.71,38.23,38.7,39.13,39.5,39.83,40.1,40.31,40.47,40.57,40.6,40.49,40.16,39.64,38.94,38.09,37.1,36,34.79,33.51,32.17,30.79,29.39,27.99,26.6,25.25,23.96,22.75,21.63,20.63,19.76,19.04,18.49,18.14,18,17.97,17.95,17.94,17.92,17.91,17.9,17.89,17.88,17.87,17.85,17.83,17.8,17.7,17.46,17.13,16.7,16.21,15.68,15.13,14.57,14.04,13.56,13.14,12.8,12.52,12.27,12.02,11.79,11.57,11.37,11.16,10.97,10.78,10.59,10.39,10.2,10.01,9.81,9.63,9.44,9.26,9.08,8.9,8.73,8.56,8.39,8.22,8.06,7.9,7.73,7.57,7.41,7.25,7.09,6.94,6.79,6.65,6.52,6.4,6.28,6.17,6.08,5.98,5.9,5.81,5.73,5.65,5.57,5.49,5.41,5.32,5.23,5.14,5.04,4.94,4.84,4.74,4.63,4.53,4.43,4.33,4.23,4.13,4.03,3.93,3.81,3.69,3.57,3.45,3.33,3.22,3.12,3.04,2.98,2.93,2.92,2.92,2.92,2.92,2.92,2.92,2.92,2.92,2.92,2.92,2.92,2.92,2.92,2.9,2.86,2.8,2.71,2.62,2.52,2.42,2.33,2.24,2.18,2.14,2.12,2.12,2.12,2.12,2.12,2.12,2.12,2.12,2.12,2.12,2.12,2.12,2.12,2.1,2.06,2,1.91,1.82,1.71,1.61,1.5,1.4,1.32,1.25,1.2,1.16,1.13,1.1,1.06,1.03,1,0.97,0.93,0.9,0.87,0.85,0.82,0.79,0.77,0.74,0.72,0.69,0.67,0.65,0.63,0.61,0.59,0.58,0.56,0.54,0.53,0.52,0.51,0.5,0.49,0.48,0.48,0.47,0.47,0.46,0.46,0.47,0.48,0.5,0.53,0.56,0.59,0.62,0.64,0.67,0.69,0.7,0.71,0.71,0.71,0.71,0.7,0.7,0.7,0.69,0.69,0.69,0.68,0.68,0.67,0.67,0.67,0.66,0.66,0.65,0.65,0.65,0.65,0.64,0.64,0.64,0.64,0.64,0.64,0.64,0.64,0.64,0.64,0.64,0.64,0.64,0.64,0.64,0.64,0.64,0.64,0.64,0.64,0.64,0.64,0.64,0.64,0.64,0.64,0.64,0.64,0.64,0.64,0.64,0.64,0.64,0.64,0.64,0.64,0.64,0.64,0.64,0.64,0.64,0.64,0.64,0.64,0.65,0.65,0.65,0.66,0.66,0.67,0.68,0.69,0.69,0.7,0.71,0.73,0.74,0.75,0.76,0.78,0.8,0.81,0.83,0.85,0.87,0.89,0.92,0.94,0.97,0.99,1.02,1.05,1.08,1.11,1.15,1.18,1.32,1.66,2.21,2.97,3.94,5.11,6.5,8.1,9.9,11.92,14.15,16.6,22.3,22.8,24.48,30.38,35.74,42.4,57.14,94.04,112.9,123.4,130.4,130,119.4,120.7,116.8,118.1,119.4,124.8,143.5,204,294,319.2,328.4,365,350.8,347.6,347.6,325,331.6,319.2,308,308,308,308,296.8,300,281,278.4,270.6,271,253.6,233.5,219.2,207.8,205.9,204,189.6,178.8,173.4,160,154.4,146,145,140.5,130.4,126.2,116.8,112.9,106.5,101.6,98.51,82.67,67.3,80.05,76.12,72.3,71.02,69.78,67.3,67.3,68.54,57.6,71.02,66.06,59.12,57.14,55.16,55.16,52.19,52.19,51.2,48.56,44.16,43,45.92,49.44,44.16,36.48,35.74,35,32.36,37.22,32.36,32.36,32.36,33.68,32.36,31.7,35.74,29.72,32.36,30.38,29.72,28.4,28.4,28.4,27.28,25.6,25.04,23.92,22.3,21.8,21.8,21.8,22.8,21.8,25.6,22.8,22.8,17.8,16.04,16.04,16.04,16.04,16.04,16.04,16.04,16.04,16.04,16.04,15.02,14,14.03,14.11,14.25,14.45,14.72,15.06,15.46,15.95,16.51,17.15,17.87,18.69,19.59,20.59,21.69,22.88,24.18,25.59,27.1,28.73,30.48,32.34,34.33,36.44,38.69,41.06,43.57,46.22,49.01,51.95,55.04,58.27,61.66,65.21,68.92,72.8,88.09,104.9,105.7,110.3,111.6,110.3,106.5,105.7,103.3,100,97.02,98.8,91.07,83.98,88.09,81.36,78.74,77.43,77.43,73.5,74.81,72.63,68.58,66.4,68.54,69.78,67.3,64.82,61.1,59.12,56.15,53.18,50.32,49.44,44.16,36.5,42.4,37.96,37.22,33.68,36.48,35.74,35,35,37.22,37.22,39.44,32.6,34.54,36.48,35.74,34.34,33.68,33.02,31.04,29.72,29.72,29.72,26.16,25.6,29.72,18.3,22.3,21.3,21.8,21.8,20.3,20.8,25.04,25.04,25.6,25.6,25.04,25.6,25.04,25.6,23.92,25.04,21.3,21.8,22.3,21.8,20.8,16.1,20.3,18.3,13.22,19.3,19.3,18.3,14.4,13.86,13.36,12.9,12.48,12.1,11.75,11.43,11.15,10.9,10.67,10.48,10.31,10.16,10.04,9.93,9.85,9.78,9.73,9.69,9.67,9.65,9.65,12.08,8.67,11.7,11.38,10.65,9.84,9.32,9.07,8.85,8.66,8.49,8.35,8.22,8.1,7.98,7.86,7.74,7.61,7.47,7.31,7.14,6.96,6.78,6.58,6.39,6.19,5.99,5.78,5.58,5.39,5.2,5.01,4.83,4.67,4.51,4.37,4.24,4.12,4.02,3.95,3.89,3.85,3.84,4.41,5.77,7.39,8.75,9.32,9.18,9,8.94,8.88,8.83,8.78,8.73,8.68,8.64,8.6,8.56,8.53,8.5,8.47,8.45,8.42,8.4,8.39,8.37,8.36,8.35,8.35,8.34,8.34,8.67,9.65,9.62,9.53,9.4,9.21,8.98,8.7,8.4,8.06,7.69,7.3,6.89,6.47,6.03,5.59,5.14,4.7,4.26,3.83,3.42,3.02,2.65,2.3,1.98,1.7,1.45,1.25,1.09,0.99,0.94,0.92,0.91,0.89,0.87,0.85,0.84,0.82,0.81,0.79,0.78,0.77,0.75,0.74,0.73,0.72,0.71,0.7,0.69,0.68,0.67,0.66,0.65,0.64,0.64,0.63,0.63,0.62,0.62,0.61,0.61,0.61,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.61,0.61,0.61,0.61,0.61,0.61,0.62,0.62,0.62,0.62,0.63,0.63,0.63,0.63,0.63,0.64,0.64,0.64,0.64,0.64,0.65,0.65,0.65,0.65,0.65,0.65,0.65,0.65,0.65,0.65,0.65,0.65,0.65,0.65,0.65,0.65,0.65,0.65,0.65,0.65,0.65,0.65,0.65,0.64,0.63,0.62,0.6,0.59,0.57,0.55,0.54,0.53,0.52,0.52,0.52,0.52,0.52,0.52,0.52,0.52,0.52,0.52,0.52,0.52,0.52,0.52,0.52,0.52,0.52,0.52,0.52,0.52,0.52,0.52,0.52,0.52,0.52,0.52,0.52,0.52,0.52,0.52,0.52,0.52,0.52,0.52,0.52,0.52,0.52,0.52,0.52,0.52,0.52,0.52,0.52,0.52,0.52,0.52,0.52,0.52,0.52,0.52,0.52,0.52,0.51,0.51,0.51,0.5,0.5,0.49,0.48,0.47,0.47,0.46,0.45,0.45,0.44,0.43,0.42,0.42,0.41,0.41,0.41,0.4,0.4,0.4,0.4,0.4,0.4,0.4,0.4,0.4,0.4,0.4,0.4,0.4,0.4,0.4,0.4,0.4,0.4,0.4,0.4,0.4,0.4,0.4,0.4,0.4,0.4,0.4,0.4,0.4,0.4,0.4,0.4,0.4,0.4,0.4,0.4,0.4,0.4,0.4,0.4,0.4,0.4,0.4,0.4,0.4,0.4,0.4,0.4,0.4,0.4,0.4,0.4,0.4,0.4,0.4,0.4,0.4,0.4,0.4,0.4,0.4,0.4,0.4,0.4,0.41,0.42,0.43,0.44,0.46,0.48,0.5,0.53,0.55,0.58,0.61,0.64,0.67,0.7,0.73,0.77,0.8,0.83,0.87,0.9,0.93,0.96,0.99,1.02,1.05,1.08,1.1,1.12,1.14,1.16,1.17,1.18,1.19,1.2,1.2,1.2,1.19,1.17,1.15,1.12,1.09,1.06,1.02,0.98,0.94,0.9,0.86,0.82,0.78,0.74,0.7,0.66,0.63,0.6,0.57,0.55,0.53,0.52,0.52,0.52,0.52,0.52,0.52,0.52,0.52,0.52,0.52,0.52,0.52,0.52,0.52,0.52,0.52,0.52,0.52,0.52,0.52,0.52,0.52,0.52,0.52,0.52,0.52,0.52,0.52,0.52,0.52,0.52,0.52,0.52,0.52,0.52,0.52,0.52,0.52,0.52,0.52,0.51,0.51,0.5,0.5,0.49,0.49,0.48,0.47,0.47,0.47,0.46,0.46,0.45,0.45,0.45,0.44,0.44,0.44,0.43,0.43,0.43,0.42,0.42,0.42,0.41,0.41,0.41,0.41,0.4,0.4,0.4,0.4,0.4,0.4,0.4,0.4,0.4,0.4,0.4,0.4,0.4,0.4,0.4,0.4,0.4,0.4,0.4,0.4,0.4,0.4,0.4,0.4,0.4,0.4,0.4,0.4,0.4,0.4,0.4,0.4,0.4,0.4,0.4,0.4,0.4,0.4,0.4,0.41,0.41,0.41,0.41,0.41,0.41,0.41,0.41,0.41,0.41,0.41,0.41,0.41,0.41,0.41,0.42,0.42,0.42,0.42,0.42,0.42,0.42,0.42,0.42,0.43,0.43,0.43,0.43,0.43,0.43,0.44,0.44,0.44,0.44,0.44,0.44,0.45,0.45,0.45 + ] + }, + { + name:'降雨量', + type:'line', + yAxisIndex:1, + itemStyle: {normal: {areaStyle: {type: 'default'}}}, + data: (function(){ + var oriData = [ + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.005,0.017,0.017,0.017,0.017,0.011,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.021,0.026,0.03,0.036,0.036,0.195,0.221,0.019,0.013,0.017,0.03,0.03,0.03,0.046,0.045,0.038,0.084,0.045,0.045,0.037,0.034,0.035,0.036,0.044,0.052,0.048,0.109,0.033,0.029,0.04,0.042,0.042,0.042,0.073,0.076,0.062,0.066,0.066,0.075,0.096,0.128,0.121,0.128,0.14,0.226,0.143,0.097,0.018,0,0,0,0,0,0.018,0.047,0.054,0.054,0.054,0.036,0.185,0.009,0.038,0.061,0.077,0.091,0.126,0.69,0.182,0.349,0.231,0.146,0.128,0.167,0.1,0.075,0.071,0.071,0.117,0.01,0.002,0.002,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.005,0.026,0.038,0.038,0.038,0.076,0.086,0.109,0.213,0.276,0.288,0.297,0.642,1.799,1.236,2.138,0.921,0.497,0.685,0.828,0.41,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.018,0.024,0.024,0.024,0.024,0.006,0.003,0.046,0.046,0.046,0.046,0.043,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.204,0.303,1.028,1.328,1.524,1.41,1.362,1.292,1.191,0.529,0.501,0.944,1.81,2.899,0.859,0.126,0.087,0.047,0,0,0,0,0.011,0.028,0.028,0.028,0.028,0.017,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.099,0.159,0.297,0.309,0.309,0.614,0.818,1.436,1.195,0.553,0.542,0.955,0.898,0.466,0.386,0.556,0.388,0.221,0.192,0.192,0.187,0.166,0.18,0.302,0.158,0.009,0.009,0.009,0.009,0.009,0.007,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.004,0.032,0.032,0.032,0.032,0.082,0.149,0.204,0.247,0.262,0.49,0.51,0.533,0.746,0.847,2.393,1.188,1.114,0.475,0.043,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.017,0.017,0.021,0.042,0.079,0.111,0.126,0.122,0.133,0.846,0.102,0.077,0.067,0.056,0.005,0,0,0,0,0,0,0,0,0,0,0,0,0,0.011,0.017,0.017,0.017,0.017,0.006,0,0,0,0,0,0.01,0.03,0.054,0.067,0.07,0.25,0.251,0.494,0.065,0.054,0.054,0.064,0.084,0.077,0.101,0.132,0.248,0.069,0.117,0.115,0.087,0.326,0.036,0.009,0.009,0.009,0.009,0.009,0.004,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.02,0.039,0.04,0.04,0.04,0.229,0.079,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.023,0.069,0.082,0.082,0.082,0.503,0.774,0.038,0.012,0.012,0.012,0.016,0.02,0.028,0.051,0.06,0.064,0.19,0.15,0.164,0.139,0.13,0.085,0.031,0.023,0.022,0.007,0.005,0.005,0.001,0,0.02,0.048,0.048,0.053,0.056,0.036,0.008,0.008,0.004,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.013,0.017,0.036,0.068,0.095,0.233,0.272,0.377,0.722,1.494,3.756,0.954,0.439,0.442,0.462,0.373,0.249,0.214,0.1,0.044,0.037,0.023,0.002,0,0,0,0,0,0,0.02,0.024,0.024,0.024,0.024,0.004,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.008,0.017,0.017,0.045,0.186,0.308,0.241,0.241,0.893,4.067,4.494,5.015,3.494,2.057,1.411,0.718,0.407,0.313,0.339,1.537,1.105,0.218,0.136,0.03,0.005,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.037,0.448,1.2,1.309,1.309,1.425,1.223,0.471,0.767,0.423,0.273,0.412,0.646,0.481,0.239,0.131,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.044,0.15,0.223,0.388,0.513,0.883,2.828,4.786,5.959,4.95,6.434,6.319,3.35,2.806,4.204,1.395,1.015,1.015,0.836,0.74,0.72,0.615,0.477,0.192,0.046,0.007,0.007,0.007,0.007,0.007,0.007,0.007,0.008,0.005,0.005,0.005,0.005,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.001,0.012,0.012,0.012,0.012,0.011,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.002,0.012,0.028,0.028,0.028,0.138,0.092,0.082,0.082,0.096,0.719,0.155,0.042,0.047,0.129,0.021,0.021,0.014,0.009,0.029,0.067,0.088,0.095,0.095,0.138,0.091,0.032,0.025,0.025,0.003,0,0,0,0,0,0,0,0,0,0,0,0,0.002,0.045,0.228,0.297,0.325,0.339,0.581,1.244,0.796,0.517,0.227,0.053,0.006,0,0,0,0,0,0,0,0,0,0.003,0.005,0.005,0.005,0.005,0.081,0.129,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.014,0.041,0.041,0.041,0.041,0.027,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.009,0.017,0.017,0.017,0.017,0.355,0.174,0.009,0.009,0.012,0.136,0.208,0.208,0.208,0.215,7.359,1.858,0.458,0.053,0.053,0.047,0.045,0.045,0.059,0.136,0.188,0.206,0.21,0.588,1.517,6.02,4.688,4.42,0.624,0.326,0.359,0.553,0.899,0.94,2.95,9.415,5.752,1.092,0.096,0.035,0.026,0.018,0.015,0.011,0.011,0.011,0,0,0,0,0,0,0,0,0,0,0,0.056,0.27,0.314,0.351,0.354,0.609,0.796,1.857,0.848,0.538,0.214,0.178,0.178,0.201,0.231,0.227,0.272,0.397,0.45,1.014,2.917,1.675,0.081,0.059,0.059,0.148,0.075,0.075,0.078,0.236,0.784,0.784,0.784,0.784,0.741,0.115,0.058,0.058,0.058,0.029,0.015,0.015,0.015,0.015,0.012,0.008,0.604,0.985,1.305,2.273,2.528,2.336,2.496,2.281,1.397,1.713,3.259,1.167,0.745,0.548,1.058,0.684,0.728,0.392,0.179,0.283,0.283,0.46,0.08,0.099,0.099,0.099,0.1,0.143,0.137,0.238,0.317,0.262,0.225,0.792,0.426,0.332,0.261,0.11,0.093,0.102,0.171,0.292,0.504,0.605,1.745,2.485,1.964,0.33,0.171,0.259,0.242,0.215,0.366,0.354,0.205,0.203,0.262,0.153,0.13,0.137,0.362,0.691,0.295,0.433,0.154,0.056,0.053,0.053,0.053,0.051,0.047,0.065,0.078,0.091,0.206,0.813,0.102,0.151,0.05,0.024,0.004,0.001,0,0,0,0.021,0.021,0.021,0.021,0.021,0.013,0.013,0.013,0.013,0.013,0.013,0.013,0.013,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.008,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.018,0.021,0.021,0.021,0.021,0.003,0,0,0,0,0,0,0,0,0,0.024,0.173,0.261,0.267,0.267,0.534,1.354,1.772,0.72,0.218,0.018,0.018,0.028,0.036,0.032,0.194,0.082,0.035,0.286,0.027,0.038,0.038,0.027,0.021,0.014,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.016,0.017,0.017,0.031,0.047,0.043,0.056,0.104,0.149,0.179,0.205,0.328,0.998,0.522,1.851,3.727,3.273,2.204,1.169,1.006,1.179,0.74,0.741,1.065,0.925,0.671,0.497,0.431,0.327,0.277,0.126,0.581,0.207,0.359,2.485,0.038,0.036,0.003,0.003,0.003,0.003,0.004,0.098,0.023,0.021,0.021,0.022,0.041,0.041,0.043,0.045,0.043,0.014,0.014,0.014,0.014,0.014,0.014,0.014,0.031,0.046,0.063,0.119,0.107,0.092,0.085,0.065,0.06,0.054,0.042,0.039,0.046,0.044,0.028,0.028,0.02,0.013,0.013,0.013,0.013,0.016,0.032,0.031,0.031,0.031,0.028,0.011,0.011,0.011,0.011,0.011,0.023,0.024,0.024,0.024,0.019,0.015,0.015,0.015,0.015,0.015,0.015,0.013,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.001,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.011,0.017,0.024,0.026,0.061,0.172,0.206,0.213,0.267,0.511,0.668,0.157,0.017,0.017,0.017,0.046,0.054,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.001,0.017,0.017,0.017,0.017,0.016,0,0,0,0,0,0,0,0,0,0.01,0.017,0.017,0.017,0.017,0.012,0.017,0.017,0.017,0.017,0.012,0,0,0,0,0,0.003,0.031,0.066,0.093,0.112,0.122,0.202,0.068,0.041,0.022,0.011,0,0,0,0,0,0,0,0,0,0,0,0.002,0.005,0.012,0.021,0.021,0.019,0.033,0.03,0.026,0.026,0.034,0.095,0.024,0.024,0.024,0.023,0.019,0.018,0.018,0.018,0.011,0.03,0.045,0.044,0.044,0.044,0.022,0.009,0.024,0.033,0.033,0.033,0.024,0.009,0,0,0,0,0,0,0.003,0.017,0.017,0.017,0.017,0.014,0,0,0,0,0,0.032,0.032,0.032,0.032,0.032,0.005,0.008,0.009,0.014,0.014,0.009,0.005,0.004,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.007,0.009,0.009,0.009,0.009,0.043,0.063,0.084,0.098,0.101,0.213,0.334,0.383,0.43,0.448,0.511,0.801,0.835,1.642,1.614,1.496,1.496,1.476,1.068,0.481,0.22,0.119,0.099,0.07,0.072,0.063,0.076,0.14,0.205,0.28,0.297,0.3,0.479,0.877,1.098,1.611,1.629,1.686,1.686,1.631,1.528,1.862,1.703,1.531,2.196,0.395,0.416,0.453,0.728,0.917,0.986,1.17,2.171,3.011,2.909,3.301,1.377,0.778,0.799,0.947,1.039,0.879,0.76,1.372,1.674,1.674,1.68,1.823,1.793,1.162,0.783,0.216,0.152,0.152,0.152,0.049,0,0,0,0.117,0.127,0.127,0.127,0.127,0.127,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.003,0.005,0.005,0.005,0.005,0.003,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.309,0.364,0.364,0.364,0.364,0.063,0.01,0.01,0.01,0.012,0.015,0.015,0.11,0.55,0.824,0.825,0.829,1.39,1.429,1.342,1.43,1.636,1.717,2.135,2.203,3.191,3.022,1.589,0.86,0.807,0.645,0.595,0.588,0.557,0.552,1.271,0.708,0.677,0.629,0.714,0.203,0.133,0.061,0.062,0.018,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.001,0.072,0.29,0.438,0.53,0.557,0.873,1.039,1.04,0.208,0.049,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.03,0.039,0.039,0.039,0.039,0.098,0.008,0.007,0.007,0.007,0.007,0.007,0.007,0.007,0.007,0.007,0.056,0.062,0.065,0.065,0.065,0.047,0.216,0.256,0.315,0.4,0.502,0.449,0.47,0.571,0.814,1.153,0.774,0.202,0.086,0.075,0.071,0.032,0.019,0.003,0.004,0.004,0.004,0.004,0.004,0.004,0.007,0.072,0.153,0.256,0.306,0.404,0.698,0.733,0.823,0.715,0.563,0.404,0.293,0.217,0.213,0.202,0.202,0.294,0.704,0.797,1.359,1.101,0.72,0.514,0.539,0.434,0.389,0.387,0.386,0.375,0.369,0.319,0.239,0.183,0.136,0.062,0.052,0.096,0.119,0.119,0.114,0.127,0.132,0.139,0.169,0.191,0.278,0.254,0.214,0.237,0.221,0.143,0.129,0.125,0.109,0.1,0.087,0.06,0.038,0.029,0.029,0.028,0.048,0.053,0.053,0.111,0.125,0.102,0.097,0.097,0.039,0.02,0.02,0.02,0.014,0.004,0.031,0.043,0.047,0.052,0.08,0.144,0.182,0.176,0.171,0.149,0.112,0.025,0,0,0,0,0,0,0,0.016,0.031,0.031,0.031,0.031,0.015,0,0,0,0,0,0.005,0.005,0.005,0.005,0.005,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.005,0.005,0.005,0.005,0.005,0.001,0,0,0 + ]; + var len = oriData.length; + while(len--) { + oriData[len] *= -1; + } + return oriData; + })() + } + ] + } + ] + ,elemarea = $('#LAY-index-area').children('div') + ,renderarea = function(index){ + echarea[index] = echarts.init(elemarea[index], layui.echartsTheme); + echarea[index].setOption(area[index]); + window.onresize = echarea[index].resize; + }; + if(!elemarea[0]) return; + renderarea(0); + + //对数轴 + var echlogline = [], logline = [ + { + title: { + text: "对数轴示例", + x: "center" + }, + tooltip: { + trigger: "item", + formatter: "{a}
        {b} : {c}" + }, + legend: { + x: 'left', + data: ["2的指数", "3的指数"] + }, + xAxis: [ + { + type: "category", + name: "x", + splitLine: {show: false}, + data: ["一", "二", "三", "四", "五", "六", "七", "八", "九"] + } + ], + yAxis: [ + { + type: "log", + name: "y" + } + ], + calculable: true, + series: [ + { + name: "3的指数", + type: "line", + data: [1, 3, 9, 27, 81, 247, 741, 2223, 6669] + }, + { + name: "2的指数", + type: "line", + data: [1, 2, 4, 8, 16, 32, 64, 128, 256] + } + ] + } + ] + ,elemlogline = $('#LAY-index-logline').children('div') + ,renderlogline = function(index){ + echlogline[index] = echarts.init(elemlogline[index], layui.echartsTheme); + echlogline[index].setOption(logline[index]); + window.onresize = echlogline[index].resize; + }; + if(!elemlogline[0]) return; + renderlogline(0); + }); + + +//柱状图 + + + layui.use(['carousel', 'echarts'], function(){ + var $ = layui.$ + ,carousel = layui.carousel + ,echarts = layui.echarts; + + //标准柱状图 + var echnormcol = [], normcol = [ + { + title : { + text: '某地区蒸发量和降水量', + subtext: '纯属虚构' + }, + tooltip : { + trigger: 'axis' + }, + legend: { + data:['蒸发量','降水量'] + }, + calculable : true, + xAxis : [ + { + type : 'category', + data : ['1月','2月','3月','4月','5月','6月','7月','8月','9月','10月','11月','12月'] + } + ], + yAxis : [ + { + type : 'value' + } + ], + series : [ + { + name:'蒸发量', + type:'bar', + data:[2.0, 4.9, 7.0, 23.2, 25.6, 76.7, 135.6, 162.2, 32.6, 20.0, 6.4, 3.3], + markPoint : { + data : [ + {type : 'max', name: '最大值'}, + {type : 'min', name: '最小值'} + ] + }, + markLine : { + data : [{type : 'average', name: '平均值'}] + } + }, + { + name:'降水量', + type:'bar', + data:[2.6, 5.9, 9.0, 26.4, 28.7, 70.7, 175.6, 182.2, 48.7, 18.8, 6.0, 2.3], + markPoint : { + data : [ + {name : '年最高', value : 182.2, xAxis: 7, yAxis: 183, symbolSize:18}, + {name : '年最低', value : 2.3, xAxis: 11, yAxis: 3} + ] + }, + markLine : { + data : [ + {type : 'average', name : '平均值'} + ] + } + } + ] + } + ] + ,elemNormcol = $('#LAY-index-normcol').children('div') + ,renderNormcol = function(index){ + echnormcol[index] = echarts.init(elemNormcol[index], layui.echartsTheme); + echnormcol[index].setOption(normcol[index]); + window.onresize = echnormcol[index].resize; + }; + if(!elemNormcol[0]) return; + renderNormcol(0); + + //堆积柱状图 + var echheapcol = [], heapcol = [ + { + tooltip : { + trigger: 'axis', + axisPointer : { // 坐标轴指示器,坐标轴触发有效 + type : 'shadow' // 默认为直线,可选为:'line' | 'shadow' + } + }, + legend: { + data:['直接访问','邮件营销','联盟广告','视频广告','搜索引擎','百度','谷歌','必应','其他'] + }, + calculable : true, + xAxis : [ + { + type : 'category', + data : ['周一','周二','周三','周四','周五','周六','周日'] + } + ], + yAxis : [ + { + type : 'value' + } + ], + series : [ + { + name:'直接访问', + type:'bar', + data:[320, 332, 301, 334, 390, 330, 320] + }, + { + name:'邮件营销', + type:'bar', + stack: '广告', + data:[120, 132, 101, 134, 90, 230, 210] + }, + { + name:'联盟广告', + type:'bar', + stack: '广告', + data:[220, 182, 191, 234, 290, 330, 310] + }, + { + name:'视频广告', + type:'bar', + stack: '广告', + data:[150, 232, 201, 154, 190, 330, 410] + }, + { + name:'搜索引擎', + type:'bar', + data:[862, 1018, 964, 1026, 1679, 1600, 1570], + markLine : { + itemStyle:{ + normal:{ + lineStyle:{ + type: 'dashed' + } + } + }, + data : [ + [{type : 'min'}, {type : 'max'}] + ] + } + }, + { + name:'百度', + type:'bar', + barWidth : 5, + stack: '搜索引擎', + data:[620, 732, 701, 734, 1090, 1130, 1120] + }, + { + name:'谷歌', + type:'bar', + stack: '搜索引擎', + data:[120, 132, 101, 134, 290, 230, 220] + }, + { + name:'必应', + type:'bar', + stack: '搜索引擎', + data:[60, 72, 71, 74, 190, 130, 110] + }, + { + name:'其他', + type:'bar', + stack: '搜索引擎', + data:[62, 82, 91, 84, 109, 110, 120] + } + ] + } + ] + ,elemHeapcol = $('#LAY-index-heapcol').children('div') + ,renderHeapcol = function(index){ + echheapcol[index] = echarts.init(elemHeapcol[index], layui.echartsTheme); + echheapcol[index].setOption(heapcol[index]); + window.onresize = echheapcol[index].resize; + }; + if(!elemHeapcol[0]) return; + renderHeapcol(0); + + //不等距柱形图 + var echdiffcol = [], diffcol = [ + { + title : { + text: '双数值柱形图', + subtext: '纯属虚构' + }, + tooltip : { + trigger: 'axis', + axisPointer:{ + show: true, + type : 'cross', + lineStyle: { + type : 'dashed', + width : 1 + } + }, + formatter : function (params) { + return params.seriesName + ' : [ ' + params.value[0] + ', ' + params.value[1] + ' ]'; + } + }, + legend: { + data:['数据1','数据2'] + }, + calculable : true, + xAxis : [ + { + type : 'value' + } + ], + yAxis : [ + { + type : 'value', + axisLine: { + lineStyle: { + color: '#dc143c' + } + } + } + ], + series : [ + { + name:'数据1', + type:'bar', + data:[ + [1.5, 10], [5, 7], [8, 8], [12, 6], [11, 12], [16, 9], [14, 6], [17, 4], [19, 9] + ], + markPoint : { + data : [ + // 纵轴,默认 + {type : 'max', name: '最大值',symbol: 'emptyCircle', itemStyle:{normal:{color:'#dc143c',label:{position:'top'}}}}, + {type : 'min', name: '最小值',symbol: 'emptyCircle', itemStyle:{normal:{color:'#dc143c',label:{position:'bottom'}}}}, + // 横轴 + {type : 'max', name: '最大值', valueIndex: 0, symbol: 'emptyCircle', itemStyle:{normal:{color:'#1e90ff',label:{position:'right'}}}}, + {type : 'min', name: '最小值', valueIndex: 0, symbol: 'emptyCircle', itemStyle:{normal:{color:'#1e90ff',label:{position:'left'}}}} + ] + }, + markLine : { + data : [ + // 纵轴,默认 + {type : 'max', name: '最大值', itemStyle:{normal:{color:'#dc143c'}}}, + {type : 'min', name: '最小值', itemStyle:{normal:{color:'#dc143c'}}}, + {type : 'average', name : '平均值', itemStyle:{normal:{color:'#dc143c'}}}, + // 横轴 + {type : 'max', name: '最大值', valueIndex: 0, itemStyle:{normal:{color:'#1e90ff'}}}, + {type : 'min', name: '最小值', valueIndex: 0, itemStyle:{normal:{color:'#1e90ff'}}}, + {type : 'average', name : '平均值', valueIndex: 0, itemStyle:{normal:{color:'#1e90ff'}}} + ] + } + }, + { + name:'数据2', + type:'bar', + barHeight:10, + data:[ + [1, 2], [2, 3], [4, 4], [7, 5], [11, 11], [18, 15] + ] + } + ] + } + ] + ,elemDiffcol = $('#LAY-index-diffcol').children('div') + ,renderDiffcol = function(index){ + echdiffcol[index] = echarts.init(elemDiffcol[index], layui.echartsTheme); + echdiffcol[index].setOption(diffcol[index]); + window.onresize = echdiffcol[index].resize; + }; + if(!elemDiffcol[0]) return; + renderDiffcol(0); + + //彩虹柱形图 + var echcolorline = [], colorline = [ + { + title: { + x: 'center', + text: 'ECharts例子个数统计', + subtext: 'Rainbow bar example', + link: 'http://echarts.baidu.com/doc/example.html' + }, + tooltip: { + trigger: 'item' + }, + calculable: true, + grid: { + borderWidth: 0, + y: 80, + y2: 60 + }, + xAxis: [ + { + type: 'category', + show: false, + data: ['Line', 'Bar', 'Scatter', 'K', 'Pie', 'Radar', 'Chord', 'Force', 'Map', 'Gauge', 'Funnel'] + } + ], + yAxis: [ + { + type: 'value', + show: false + } + ], + series: [ + { + name: 'ECharts例子个数统计', + type: 'bar', + itemStyle: { + normal: { + color: function(params) { + // build a color map as your need. + var colorList = [ + '#C1232B','#B5C334','#FCCE10','#E87C25','#27727B', + '#FE8463','#9BCA63','#FAD860','#F3A43B','#60C0DD', + '#D7504B','#C6E579','#F4E001','#F0805A','#26C0C0' + ]; + return colorList[params.dataIndex] + }, + label: { + show: true, + position: 'top', + formatter: '{b}\n{c}' + } + } + }, + data: [12,21,10,4,12,5,6,5,25,23,7], + markPoint: { + tooltip: { + trigger: 'item', + backgroundColor: 'rgba(0,0,0,0)', + formatter: function(params){ + return ''; + } + }, + data: [ + {xAxis:0, y: 350, name:'Line', symbolSize:20}, + {xAxis:1, y: 350, name:'Bar', symbolSize:20}, + {xAxis:2, y: 350, name:'Scatter', symbolSize:20}, + {xAxis:3, y: 350, name:'K', symbolSize:20}, + {xAxis:4, y: 350, name:'Pie', symbolSize:20}, + {xAxis:5, y: 350, name:'Radar', symbolSize:20}, + {xAxis:6, y: 350, name:'Chord', symbolSize:20}, + {xAxis:7, y: 350, name:'Force', symbolSize:20}, + {xAxis:8, y: 350, name:'Map', symbolSize:20}, + {xAxis:9, y: 350, name:'Gauge', symbolSize:20}, + {xAxis:10, y: 350, name:'Funnel', symbolSize:20}, + ] + } + } + ] + } + ] + ,elemColorline = $('#LAY-index-colorline').children('div') + ,renderColorline = function(index){ + echcolorline[index] = echarts.init(elemColorline[index], layui.echartsTheme); + echcolorline[index].setOption(colorline[index]); + window.onresize = echcolorline[index].resize; + }; + if(!elemColorline[0]) return; + renderColorline(0); + + //标准条形图 + var echnormbar = [], normbar = [ + { + title : { + text: '世界人口总量', + subtext: '数据来自网络' + }, + tooltip : { + trigger: 'axis' + }, + legend: { + data:['2011年', '2012年'] + }, + calculable : true, + xAxis : [ + { + type : 'value', + boundaryGap : [0, 0.01] + } + ], + yAxis : [ + { + type : 'category', + data : ['巴西','印尼','美国','印度','中国','世界人口(万)'] + } + ], + series : [ + { + name:'2011年', + type:'bar', + data:[18203, 23489, 29034, 104970, 131744, 630230] + }, + { + name:'2012年', + type:'bar', + data:[19325, 23438, 31000, 121594, 134141, 681807] + } + ] + } + ] + ,elemNormbar = $('#LAY-index-normbar').children('div') + ,renderNormbar = function(index){ + echnormbar[index] = echarts.init(elemNormbar[index], layui.echartsTheme); + echnormbar[index].setOption(normbar[index]); + window.onresize = echnormbar[index].resize; + }; + if(!elemNormbar[0]) return; + renderNormbar(0); + + //堆积条形图 + var echheapbar = [], heapbar = [ + { + tooltip : { + trigger: 'axis', + axisPointer : { // 坐标轴指示器,坐标轴触发有效 + type : 'shadow' // 默认为直线,可选为:'line' | 'shadow' + } + }, + legend: { + data:['直接访问', '邮件营销','联盟广告','视频广告','搜索引擎'] + }, + calculable : true, + xAxis : [ + { + type : 'value' + } + ], + yAxis : [ + { + type : 'category', + data : ['周一','周二','周三','周四','周五','周六','周日'] + } + ], + series : [ + { + name:'直接访问', + type:'bar', + stack: '总量', + itemStyle : { normal: {label : {show: true, position: 'insideRight'}}}, + data:[320, 302, 301, 334, 390, 330, 320] + }, + { + name:'邮件营销', + type:'bar', + stack: '总量', + itemStyle : { normal: {label : {show: true, position: 'insideRight'}}}, + data:[120, 132, 101, 134, 90, 230, 210] + }, + { + name:'联盟广告', + type:'bar', + stack: '总量', + itemStyle : { normal: {label : {show: true, position: 'insideRight'}}}, + data:[220, 182, 191, 234, 290, 330, 310] + }, + { + name:'视频广告', + type:'bar', + stack: '总量', + itemStyle : { normal: {label : {show: true, position: 'insideRight'}}}, + data:[150, 212, 201, 154, 190, 330, 410] + }, + { + name:'搜索引擎', + type:'bar', + stack: '总量', + itemStyle : { normal: {label : {show: true, position: 'insideRight'}}}, + data:[820, 832, 901, 934, 1290, 1330, 1320] + } + ] + } + ] + ,elemheapbar = $('#LAY-index-heapbar').children('div') + ,renderheapbar = function(index){ + echheapbar[index] = echarts.init(elemheapbar[index], layui.echartsTheme); + echheapbar[index].setOption(heapbar[index]); + window.onresize = echheapbar[index].resize; + }; + if(!elemheapbar[0]) return; + renderheapbar(0); + + //旋风条形图 + var echwindline = [], labelRight = {normal: {label : {position: 'right'}}}, windline = [ + { + title: { + text: '交错正负轴标签', + subtext: 'From ExcelHome', + sublink: 'http://e.weibo.com/1341556070/AjwF2AgQm' + }, + tooltip : { + trigger: 'axis', + axisPointer : { // 坐标轴指示器,坐标轴触发有效 + type : 'shadow' // 默认为直线,可选为:'line' | 'shadow' + } + }, + grid: { + y: 80, + y2: 30 + }, + xAxis : [ + { + type : 'value', + position: 'top', + splitLine: {lineStyle:{type:'dashed'}}, + } + ], + yAxis : [ + { + type : 'category', + axisLine: {show: false}, + axisLabel: {show: false}, + axisTick: {show: false}, + splitLine: {show: false}, + data : ['ten', 'nine', 'eight', 'seven', 'six', 'five', 'four', 'three', 'two', 'one'] + } + ], + series : [ + { + name:'生活费', + type:'bar', + stack: '总量', + itemStyle : { normal: { + color: 'orange', + borderRadius: 5, + label : { + show: true, + position: 'left', + formatter: '{b}' + } + }}, + data:[ + {value:-0.07, itemStyle:labelRight}, + {value:-0.09, itemStyle:labelRight}, + 0.2, 0.44, + {value:-0.23, itemStyle:labelRight}, + 0.08, + {value:-0.17, itemStyle:labelRight}, + 0.47, + {value:-0.36, itemStyle:labelRight}, + 0.18 + ] + } + ] + } + ] + ,elemwindline = $('#LAY-index-windline').children('div') + ,renderwindline = function(index){ + echwindline[index] = echarts.init(elemwindline[index], layui.echartsTheme); + echwindline[index].setOption(windline[index]); + window.onresize = echwindline[index].resize; + }; + if(!elemwindline[0]) return; + renderwindline(0); + }); + + +//地图 + + + layui.use(['carousel', 'echarts'], function(){ + var $ = layui.$ + ,carousel = layui.carousel + ,echarts = layui.echarts; + + var echplat = [], plat = [ + { + title : { + text: '2011全国GDP(亿元)', + subtext: '数据来自国家统计局' + }, + tooltip : { + trigger: 'item' + }, + dataRange: { + orient: 'horizontal', + min: 0, + max: 55000, + text:['高','低'], // 文本,默认为数值文本 + splitNumber:0 + }, + series : [ + { + name: '2011全国GDP分布', + type: 'map', + mapType: 'china', + mapLocation: { + x: 'center' + }, + selectedMode : 'multiple', + itemStyle:{ + normal:{label:{show:true}}, + emphasis:{label:{show:true}} + }, + data:[ + {name:'西藏', value:605.83}, + {name:'青海', value:1670.44}, + {name:'宁夏', value:2102.21}, + {name:'海南', value:2522.66}, + {name:'甘肃', value:5020.37}, + {name:'贵州', value:5701.84}, + {name:'新疆', value:6610.05}, + {name:'云南', value:8893.12}, + {name:'重庆', value:10011.37}, + {name:'吉林', value:10568.83}, + {name:'山西', value:11237.55}, + {name:'天津', value:11307.28}, + {name:'江西', value:11702.82}, + {name:'广西', value:11720.87}, + {name:'陕西', value:12512.3}, + {name:'黑龙江', value:12582}, + {name:'内蒙古', value:14359.88}, + {name:'安徽', value:15300.65}, + {name:'北京', value:16251.93, selected:true}, + {name:'福建', value:17560.18}, + {name:'上海', value:19195.69, selected:true}, + {name:'湖北', value:19632.26}, + {name:'湖南', value:19669.56}, + {name:'四川', value:21026.68}, + {name:'辽宁', value:22226.7}, + {name:'河北', value:24515.76}, + {name:'河南', value:26931.03}, + {name:'浙江', value:32318.85}, + {name:'山东', value:45361.85}, + {name:'江苏', value:49110.27}, + {name:'广东', value:53210.28, selected:true} + ] + } + ] + } + ] + ,elemplat = $('#LAY-index-plat').children('div') + ,renderplat = function(index){ + echplat[index] = echarts.init(elemplat[index], layui.echartsTheme); + echplat[index].setOption(plat[index]); + window.onresize = echplat[index].resize; + }; + if(!elemplat[0]) return; + renderplat(0); + }); + + exports('senior', {}) + +}); \ No newline at end of file diff --git a/public/static/admin/modules/set.js b/public/static/admin/modules/set.js new file mode 100644 index 0000000..bacd2e3 --- /dev/null +++ b/public/static/admin/modules/set.js @@ -0,0 +1,218 @@ +/** + + @Name:layuiAdmin(iframe版) 设置 + @Author:贤心 + @Site:http://www.layui.com/admin/ + @License: LPPL + + */ + +layui.define(['form', 'upload'], function(exports){ + var $ = layui.$ + ,layer = layui.layer + ,laytpl = layui.laytpl + ,setter = layui.setter + ,view = layui.view + ,admin = layui.admin + ,form = layui.form + ,upload = layui.upload; + + var $body = $('body'); + + //自定义验证 + form.verify({ + nickname: function(value, item){ //value:表单的值、item:表单的DOM对象 + if(!new RegExp("^[a-zA-Z0-9_\u4e00-\u9fa5\\s·]+$").test(value)){ + return '用户名不能有特殊字符'; + } + if(/(^\_)|(\__)|(\_+$)/.test(value)){ + return '用户名首尾不能出现下划线\'_\''; + } + if(/^\d+\d+\d$/.test(value)){ + return '用户名不能全为数字'; + } + } + + //我们既支持上述函数式的方式,也支持下述数组的形式 + //数组的两个值分别代表:[正则匹配、匹配不符时的提示文字] + ,pass: [ + /^[\S]{6,12}$/ + ,'密码必须6到12位,且不能出现空格' + ] + + //确认密码 + ,repass: function(value){ + if(value !== $('#LAY_password').val()){ + return '两次密码输入不一致'; + } + } + }); + + //网站设置 + form.on('submit(set_website)', function(obj){ + //layer.msg(JSON.stringify(obj.field)); + loading = layer.load(2, { + shade: [0.2, '#000'] + }); + //提交修改 + + admin.req({ + type: "post" + ,url: '/admin/set/website' + ,data: obj.field + ,success: function(data){ + if (data.code == 0) { + layer.close(loading); + layer.msg(data.msg,{ + icon:6, + time:2000 + }); + } else { + layer.close(loading); + layer.open({ + tiele:'设置失败', + content:data.msg, + icon:5, + anim:6 + }); + } + + } + }); + + return false; + }); + + //邮件服务 + form.on('submit(set_system_email)', function(obj){ + //layer.msg(JSON.stringify(obj.field)); + loading = layer.load(2, { + shade: [0.2, '#000'] + }); + + //提交修改 + + admin.req({ + type: 'post' + ,url: '/admin/set/email' + ,data: obj.field + ,success: function(data){ + if (data.code == 0) { + layer.close(loading); + layer.msg(data.msg,{ + icon:6, + time:2000 + }); + } else { + layer.close(loading); + layer.open({ + tiele:'设置失败', + content:data.msg, + icon:5, + anim:6 + }); + } + } + }); + + return false; + }); + + + //设置我的资料 + form.on('submit(setmyinfo)', function(obj){ + //layer.msg(JSON.stringify(obj.field)); + //console.log(obj.field); + //提交修改 + + admin.req({ + url: '/admin/admin/info' + ,data: obj.field + ,success: function(res){ + if(res.code == 0){ + //登入成功的提示与跳转 + layer.msg('修改成功', { + offset: '15px' + ,icon: 1 + ,time: 1000 + }, function(){ + location.reload(); + }); + } else { + layer.open({ + tiele:'修改失败', + content:res.msg, + icon:5, + anim:6 + }); + } + } + }); + + return false; + }); + + //上传头像 + var avatarSrc = $('#LAY_avatarSrc'); + upload.render({ + url: '/api/upload/' + ,elem: '#LAY_avatarUpload' + ,done: function(res){ + if(res.status == 0){ + avatarSrc.val(res.url); + } else { + layer.msg(res.msg, {icon: 5}); + } + } + }); + + //查看头像 + admin.events.avartatPreview = function(othis){ + var src = avatarSrc.val(); + layer.photos({ + photos: { + "title": "查看头像" //相册标题 + ,"data": [{ + "src": src //原图地址 + }] + } + ,shade: 0.01 + ,closeBtn: 1 + ,anim: 5 + }); + }; + + + //设置密码 + form.on('submit(setmypass)', function(obj){ + //layer.msg(JSON.stringify(obj.field)); + //console.log(obj.field); + //提交修改 + admin.req({ + url: '/admin/admin/repass' + ,data: obj.field + ,success: function(res){ + if(res.code == 0){ + layer.msg('修改成功', { + offset: '15px' + ,icon: 1 + ,time: 1000 + }, function(){ + location.reload(); + }); + } else { + layer.open({ + tiele:'修改失败', + content:res.msg, + icon:5, + anim:6 + }); + } + } + }); + return false; + }); + + //对外暴露的接口 + exports('set', {}); +}); \ No newline at end of file diff --git a/public/static/admin/modules/user.js b/public/static/admin/modules/user.js new file mode 100644 index 0000000..5680a17 --- /dev/null +++ b/public/static/admin/modules/user.js @@ -0,0 +1,65 @@ +/** + + @Name:layuiAdmin 用户登入和注册等 + @Author:贤心 + @Site:http://www.layui.com/admin/ + @License: LPPL + + */ + +layui.define('form', function(exports){ + var $ = layui.$ + ,layer = layui.layer + ,laytpl = layui.laytpl + ,setter = layui.setter + ,view = layui.view + ,admin = layui.admin + ,form = layui.form; + + var $body = $('body'); + + //自定义验证 + form.verify({ + nickname: function(value, item){ //value:表单的值、item:表单的DOM对象 + if(!new RegExp("^[a-zA-Z0-9_\u4e00-\u9fa5\\s·]+$").test(value)){ + return '用户名不能有特殊字符'; + } + if(/(^\_)|(\__)|(\_+$)/.test(value)){ + return '用户名首尾不能出现下划线\'_\''; + } + if(/^\d+\d+\d$/.test(value)){ + return '用户名不能全为数字'; + } + } + + //我们既支持上述函数式的方式,也支持下述数组的形式 + //数组的两个值分别代表:[正则匹配、匹配不符时的提示文字] + ,pass: [ + /^[\S]{6,12}$/ + ,'密码必须6到12位,且不能出现空格' + ] + }); + + + //发送短信验证码 + admin.sendAuthCode({ + elem: '#LAY-user-getsmscode' + ,elemPhone: '#LAY-user-login-cellphone' + ,elemVercode: '#LAY-user-login-vercode' + ,ajax: { + url: layui.setter.base + 'json/user/sms.js' //实际使用请改成服务端真实接口 + } + }); + + + + + //更换图形验证码 + $body.on('click', '#LAY-user-get-vercode', function(){ + var othis = $(this); + this.src = '/captcha?t='+ new Date().getTime() + }); + + //对外暴露的接口 + exports('user', {}); +}); \ No newline at end of file diff --git a/public/static/admin/modules/useradmin.js b/public/static/admin/modules/useradmin.js new file mode 100644 index 0000000..f04dbe5 --- /dev/null +++ b/public/static/admin/modules/useradmin.js @@ -0,0 +1,470 @@ +/** + + @Name:layuiAdmin 用户管理 管理员管理 角色管理 + @Author:star1029 + @Site:http://www.layui.com/admin/ + @License:LPPL + + */ + + +layui.define(['table', 'form'], function(exports){ + var $ = layui.$ + ,table = layui.table + ,form = layui.form; + + //用户管理 + table.render({ + elem: '#LAY-user-manage' + ,url: '/admin/user/list' //模拟接口 + ,cols: [[ + {type: 'checkbox', fixed: 'left'} + ,{field: 'id', width: 100, title: 'ID', sort: true} + ,{field: 'username', title: '用户名', minWidth: 100} + ,{field: 'avatar', title: '头像', width: 100, templet: '#imgTpl'} + ,{field: 'phone', title: '手机'} + ,{field: 'email', title: '邮箱'} + ,{field: 'sex', width: 80, title: '性别',templet: '#sex'} + ,{field: 'ip', title: '登录IP'} + ,{field: 'jointime', title: '申请时间', sort: true} + ,{field: 'status', title: '状态', templet: '#buttonStatus', minWidth: 80, align: 'center'} + ,{title: '操作', width: 150, align:'center', fixed: 'right', toolbar: '#table-useradmin-webuser'} + ]] + ,page: true + ,limit: 30 + ,height: 'full-220' + ,text: '对不起,加载出现异常!' + }); + + //监听工具条 + table.on('tool(LAY-user-manage)', function(obj){ + var data = obj.data; + if(obj.event === 'del'){ + layer.prompt({ + formType: 1 + ,title: '敏感操作,请验证口令' + }, function(value, index){ + layer.close(index); + + layer.confirm('真的删除行么', function(index){ + //obj.del(); + $.ajax({ + type:'post', + url:"/admin/user/delete", + data:{id:data.id}, + dataType:'json', + success:function(data){ + if(data.code == 1){ + layer.msg(data.msg,{ + icon:6, + time:2000 + },function(){ + location.reload(); + }); + } else { + layer.open({ + title:'删除失败', + content:data.msg, + icon:5, + adim:6 + }) + } + } + }); + + layer.close(index); + }); + }); + } else if(obj.event === 'edit'){ + var tr = $(obj.tr); + + layer.open({ + type: 2 + ,title: '编辑用户' + ,content: '/admin/user/useredit?id='+ data.id + ,maxmin: true + ,area: ['500px', '450px'] + ,btn: ['确定', '取消'] + ,yes: function(index, layero){ + + var iframeWindow = window['layui-layer-iframe'+ index] + ,submitID = 'LAY-user-front-submit' + ,submit = layero.find('iframe').contents().find('#'+ submitID); + + //监听提交 + iframeWindow.layui.form.on('submit('+ submitID +')', function(data){ + var field = data.field; //获取提交的字段 + + //提交 Ajax 成功后,静态更新表格中的数据 + $.ajax({ + type:"post", + url:"/admin/user/useredit", + data:{"id":field.id,"name":field.username,"phone":field.phone,"email":field.email,"user_img":field.avatar,"sex":field.sex}, + daType:"json", + success:function (res){ + if (res.code == 1) { + layer.msg(res.msg,{ + icon:6, + time:2000 + }, function(){ + location.reload(); + }); + } else { + layer.open({ + tiele:'修改失败', + content:res.msg, + icon:5, + anim:6 + }); + } + } + }); + + table.reload('LAY-user-front-submit'); //数据刷新 + layer.close(index); //关闭弹层 + }); + + submit.trigger('click'); + } + ,success: function(layero, index){ + + } + }); + } + }); + + //管理员管理 + table.render({ + elem: '#LAY-user-back-manage' + ,url: '/admin/admin/adminList' //模拟接口 + ,cols: [[ + {type: 'checkbox', fixed: 'left'} + ,{field: 'id', width: 80, title: 'ID', sort: true} + ,{field: 'loginname', title: '登录名'} + ,{field: 'telphone', title: '手机'} + ,{field: 'email', title: '邮箱'} + ,{field: 'role', title: '角色'} + ,{field: 'check', title:'审核状态', templet: '#buttonTpl', minWidth: 80, align: 'center'} + ,{field: 'ip', title: 'IP'} + ,{field: 'logintime', title: '最后登陆'} + ,{title: '操作', width: 150, align: 'center', fixed: 'right', toolbar: '#table-useradmin-admin'} + ]] + ,text: '对不起,加载出现异常!' + }); + + //监听工具条 + table.on('tool(LAY-user-back-manage)', function(obj){ + var data = obj.data; + if(obj.event === 'del'){ + layer.prompt({ + formType: 1 + ,title: '敏感操作,请验证口令' + }, function(value, index){ + layer.close(index); + layer.confirm('确定删除此管理员?', function(index){ + //console.log(obj) + //obj.del(); + $.ajax({ + type:'post', + url:"/admin/admin/delete", + data:{id:data.id}, + dataType:'json', + success:function(data){ + if(data.code == 1){ + layer.msg(data.msg,{ + icon:6, + time:2000 + },function(){ + location.reload(); + }); + } else { + layer.open({ + title:'删除失败', + content:data.msg, + icon:5, + adim:6 + }) + } + } + }); + + layer.close(index); + }); + }); + }else if(obj.event === 'edit'){ + var tr = $(obj.tr); + + layer.open({ + type: 2 + ,title: '编辑管理员' + ,content: '/admin/admin/adminedit?id='+ data.id + ,area: ['420px', '420px'] + ,btn: ['确定', '取消'] + ,yes: function(index, layero){ + var iframeWindow = window['layui-layer-iframe'+ index] + ,submitID = 'LAY-user-back-submit' + ,submit = layero.find('iframe').contents().find('#'+ submitID); + + //监听提交 + iframeWindow.layui.form.on('submit('+ submitID +')', function(data){ + var field = data.field; //获取提交的字段 + + //提交 Ajax 成功后,静态更新表格中的数据 + $.ajax({ + type:"post", + url:"/admin/admin/adminedit", + data:{"id":field.id,"password":field.password,"mobile":field.mobile,"email":field.email,"auth_group_id":field.auth_group_id}, + daType:"json", + success:function (res){ + if (res.code == 1) { + layer.msg(res.msg,{ + icon:6, + time:2000 + }); + } else { + layer.open({ + tiele:'修改失败', + content:res.msg, + icon:5, + anim:6 + }); + } + } + }); + + table.reload('LAY-user-back-manage'); //数据刷新 + layer.close(index); //关闭弹层 + }); + + submit.trigger('click'); + } + ,success: function(layero, index){ + + } + }) + } + //执行管理员审核 + $('#adcheck').click(function() {}) + + }); + + //角色管理 + table.render({ + elem: '#LAY-user-back-role' + ,url: '/admin/authgroup/list' //模拟接口 + ,cols: [[ + {type: 'checkbox', fixed: 'left'} + ,{field: 'id', width: 80, title: 'ID', sort: true} + ,{field: 'rolename', title: '角色名'} + ,{field: 'limits', title: '拥有权限'} + ,{field: 'descr', title: '具体描述'} + ,{title: '操作', width: 150, align: 'center', fixed: 'right', toolbar: '#table-useradmin-admin'} + ]] + ,text: '对不起,加载出现异常!' + }); + + //监听工具条 + table.on('tool(LAY-user-back-role)', function(obj){ + var data = obj.data; + + if(obj.event === 'del'){ + layer.confirm('确定删除此角色?', function(index){ + obj.del(); + layer.close(index); + }); + }else if(obj.event === 'edit'){ + var tr = $(obj.tr); + + layer.open({ + type: 2 + ,title: '编辑角色' + ,content: '/admin/authgroup/roleedit?id='+ data.id + ,area: ['500px', '480px'] + ,btn: ['确定', '取消'] + ,yes: function(index, layero){ + var iframeWindow = window['layui-layer-iframe'+ index] + ,submit = layero.find('iframe').contents().find("#LAY-user-role-submit"); + + //监听提交 + iframeWindow.layui.form.on('submit(LAY-user-role-submit)', function(data){ + var field = data.field; //获取提交的字段 + + var mId = ""; + var e =iframeWindow.$(":checkbox"); + e.each(function () { + if($(this).next().hasClass("layui-form-checked")){ + mId+=$(this).val()+","; + }; + }) + mId = mId.substring(0,mId.length-1); + rules = mId; + + // var arr = new Array(); //获取提交的字段 + // $(iframeWindow.document).find('input[name=rules]:checked').each(function(){ + // arr.push($(this).val()); + // }); + // console.log(arr); + // var rules = arr.join(',');//将数组元素连接起来以构建一个字符串 + + + //提交 Ajax 成功后,静态更新表格中的数据 + $.ajax({ + type:"post", + url:"/admin/authgroup/roleedit", + data:{"id":field.id,"rules":rules,"title":field.title,"descr":field.descr}, + daType:"json", + success:function (res){ + if (res.code == 1) { + layer.msg(res.msg,{ + icon:6, + time:2000 + }); + } else { + layer.open({ + tiele:'修改失败', + content:res.msg, + icon:5, + anim:6 + }); + } + } + }); + + table.reload('LAY-user-back-role'); //数据刷新 + layer.close(index); //关闭弹层 + }); + + submit.trigger('click'); + } + ,success: function(layero, index){ + + } + }) + } + }); + + + //权限管理 + table.render({ + elem: '#LAY-user-auth-rule' + ,url: '/admin/authrule/index' //权限接口 + ,cols: [[ + {type: 'checkbox', fixed: 'left'} + ,{field: 'id', width: 50, title: 'ID'} + ,{field: 'sort', title: '排序',width: 60 , align: 'center',templet: '#rules-sort'} + ,{field: 'title', title: '权限名', templet: '#rules-title'} + ,{field: 'name', title: '权限地址', minWidth: 150} + ,{field: 'icon', title: '图标'} + ,{field: 'status', title:'权限状态', templet: '#buttonAuth', minWidth: 80, align: 'center'} + ,{field: 'level', title: '层级',width: 40} + ,{field: 'ishidden', title: '菜单',templet: '#menu', Width: 40} + ,{title: '操作', width: 150, align: 'center', fixed: 'right', toolbar: '#table-useradmin-admin'} + ]] + ,text: '对不起,加载出现异常!' + }); + + //监听工具条 + table.on('tool(LAY-user-auth-rule)', function(obj){ + var data = obj.data; + if(obj.event === 'del'){ + layer.prompt({ + formType: 1 + ,title: '敏感操作,请验证口令' + }, function(value, index){ + layer.close(index); + layer.confirm('确定删除此权限?', function(index){ + //obj.del(); + console.log(data.id); + $.ajax({ + type:'post', + url:"/admin/authrule/delete", + data:{id:data.id}, + dataType:'json', + success:function(data){ + if(data.code == 1){ + layer.msg(data.msg,{ + icon:6, + time:2000 + },function(){ + location.reload(); + }); + } else { + layer.open({ + title:'删除失败', + content:data.msg, + icon:5, + adim:6 + }) + } + } + }); + layer.close(index); + }); + }); + }else if(obj.event === 'edit'){ + var tr = $(obj.tr); + + layer.open({ + type: 2 + ,title: '编辑权限' + ,content: '/admin/authrule/edit?id='+ data.id + ,area: ['420px', '420px'] + ,btn: ['确定', '取消'] + ,yes: function(index, layero){ + var iframeWindow = window['layui-layer-iframe'+ index] + ,submitID = 'LAY-user-rule-submit' + ,submit = layero.find('iframe').contents().find('#'+ submitID); + + //监听提交 + iframeWindow.layui.form.on('submit('+ submitID +')', function(data){ + var field = data.field; //获取提交的字段 + + if (field.ishidden == 'on'){ + field.ishidden = 0; + } else { + field.ishidden = 1; + } + + //提交 Ajax 成功后,静态更新表格中的数据 + $.ajax({ + type:"post", + url:"/admin/authrule/edit", + data:{"id":field.id,"pid":field.pid,"title":field.title,"name":field.name,"icon":field.icon,"sort":field.sort,"ishidden":field.ishidden}, + daType:"json", + success:function (res){ + if (res.code == 0) { + layer.msg(res.msg,{ + icon:6, + time:2000 + }, function(){ + location.reload(); + }); + } else { + layer.open({ + tiele:'修改失败', + content:res.msg, + icon:5, + anim:6 + }); + } + } + }); + + table.reload('LAY-user-auth-rule'); //数据刷新 + layer.close(index); //关闭弹层 + }); + + submit.trigger('click'); + } + ,success: function(layero, index){ + + } + }); + } + + }); + + + + exports('useradmin', {}) +}); \ No newline at end of file diff --git a/public/static/admin/modules/workorder.js b/public/static/admin/modules/workorder.js new file mode 100644 index 0000000..254d082 --- /dev/null +++ b/public/static/admin/modules/workorder.js @@ -0,0 +1,76 @@ +/** + + @Name:layuiAdmin 工单系统 + @Author:star1029 + @Site:http://www.layui.com/admin/ + @License:GPL-2 + + */ + + +layui.define(['table', 'form', 'element'], function(exports){ + var $ = layui.$ + ,table = layui.table + ,form = layui.form + ,element = layui.element; + + table.render({ + elem: '#LAY-app-system-order' + ,url: layui.setter.base + 'json/workorder/demo.js' //模拟接口 + ,cols: [[ + {type: 'numbers', fixed: 'left'} + ,{field: 'orderid', width: 100, title: '工单号', sort: true} + ,{field: 'attr', width: 100, title: '业务性质'} + ,{field: 'title', width: 100, title: '工单标题', width: 300} + ,{field: 'progress', title: '进度', width: 200, align: 'center', templet: '#progressTpl'} + ,{field: 'submit', width: 100, title: '提交者'} + ,{field: 'accept', width: 100, title: '受理人员'} + ,{field: 'state', title: '工单状态', templet: '#buttonTpl', minWidth: 80, align: 'center'} + ,{title: '操作', align: 'center', fixed: 'right', toolbar: '#table-system-order'} + ]] + ,page: true + ,limit: 10 + ,limits: [10, 15, 20, 25, 30] + ,text: '对不起,加载出现异常!' + ,done: function(){ + element.render('progress') + } + }); + + //监听工具条 + table.on('tool(LAY-app-system-order)', function(obj){ + var data = obj.data; + if(obj.event === 'edit'){ + var tr = $(obj.tr); + layer.open({ + type: 2 + ,title: '编辑工单' + ,content: '../../../views/app/workorder/listform.html' + ,area: ['450px', '450px'] + ,btn: ['确定', '取消'] + ,yes: function(index, layero){ + var iframeWindow = window['layui-layer-iframe'+ index] + ,submitID = 'LAY-app-workorder-submit' + ,submit = layero.find('iframe').contents().find('#'+ submitID); + + //监听提交 + iframeWindow.layui.form.on('submit('+ submitID +')', function(data){ + var field = data.field; //获取提交的字段 + + //提交 Ajax 成功后,静态更新表格中的数据 + //$.ajax({}); + table.reload('LAY-user-front-submit'); //数据刷新 + layer.close(index); //关闭弹层 + }); + + submit.trigger('click'); + } + ,success: function(layero, index){ + + } + }); + } + }); + + exports('workorder', {}) +}); \ No newline at end of file diff --git a/public/static/admin/style/admin.css b/public/static/admin/style/admin.css new file mode 100644 index 0000000..b032968 --- /dev/null +++ b/public/static/admin/style/admin.css @@ -0,0 +1,526 @@ +/** + + @Name:layuiAdmin + @Author:贤心 + @Site:http://www.layui.com/admin/ + @License:LPPL + + */ + +html #layuicss-layuiAdmin{display: none; position: absolute; width: 1989px;} + + + + +/* 系统 */ +::-webkit-input-placeholder{color: #ccc} + +/** 滚动条 **/ +/* +::-webkit-scrollbar{width: 10px; height: 10px;} +::-webkit-scrollbar-button:vertical{display: none;} +::-webkit-scrollbar-track, ::-webkit-scrollbar-corner{background-color: #e2e2e2;} +::-webkit-scrollbar-thumb{border-radius: 0; background-color: rgba(0,0,0,.3);} +::-webkit-scrollbar-thumb:vertical:hover{background-color: rgba(0,0,0,.35);} +::-webkit-scrollbar-thumb:vertical:active{background-color: rgba(0,0,0,.38);} +*/ + + +/* 全局 */ +html{background-color: #f2f2f2; color: #666;} +*[template], +.layadmin-tabsbody-item{display: none;} +*[lay-href], +*[lay-tips], +*[layadmin-event]{cursor: pointer;} + +/* 重置布局结构 */ +.layui-layout-admin .layui-header{position: fixed; top: 0; left: 0; width: 100%; height: 50px;} + +/* +.layui-layout-admin .layui-header .layui-layout-right .layui-nav-item a{color: #fff;} +.layui-layout-admin .layui-header .layui-layout-right .layui-nav-item a cite{color: rgba(255,255,255,.7);} +*/ + +.layui-layout-admin .layui-header .layui-nav .layui-nav-child a{color: #333;} +.layui-layout-admin .layui-side{width: 220px; top: 0; z-index: 1001;} +.layui-layout-admin .layui-logo, +.layui-layout-admin .layui-header .layui-nav .layui-nav-item{height: 50px; line-height: 50px;} +.layui-layout-admin .layui-logo{position: fixed; left: 0; top: 0; z-index: 1002; width: 220px; height: 49px; padding: 0 15px; box-sizing: border-box; overflow: hidden; font-weight: 300; background-repeat: no-repeat; background-position: center center;} +.layui-layout-admin .layui-layout-left, +.layadmin-pagetabs, +.layui-layout-admin .layui-body, +.layui-layout-admin .layui-footer{left: 220px;} +.layadmin-pagetabs{position: fixed; top: 50px; right: 0; z-index: 999;} +.layadmin-pagetabs .layui-breadcrumb{padding: 0 15px;} +.layui-layout-admin .layui-body{position: fixed; top: 90px; bottom: 0;} +.layui-layout-admin .layui-body .layadmin-tabsbody-item{position: absolute; top: 0; bottom: 0; left: 0; right: 0; overflow: hidden;} +.layui-layout-admin .layui-header .layui-nav-img{width: 26px; height: 26px;} +.layui-layout-admin .layui-header .layui-nav-child{top: 55px;} +.layui-layout-admin .layui-header .layui-layout-right .layui-nav-child{left: auto; right: 0;} +.layui-layout-admin .layui-header .layui-nav .layui-nav-child dd.layui-this a, +.layui-layout-admin .layui-header .layui-nav .layui-nav-child dd.layui-this{background: none} + +/* 统一动画 */ +.layui-layout-admin .layui-header .layui-nav .layui-nav-item, +.layui-layout-admin .layui-layout-left, +.layadmin-pagetabs, +.layui-layout-admin .layui-body, +.layui-layout-admin .layui-footer, +.layui-layout-admin .layui-side, +.layui-layout-admin .layui-logo, +.layui-layout-admin .layui-header .layui-layout-right{transition: all .3s; -webkit-transition: all .3s;} + +/* 图标 */ +.layui-icon-login-qq{color: #3492ED;} +.layui-icon-login-wechat{color: #4DAF29;} +.layui-icon-login-weibo{color: #CF1900;} + +/* 重置表格风格 */ +/* +.layui-table th, +.layui-table td, +.layui-table[lay-skin="line"], +.layui-table[lay-skin="row"], +.layui-table-view, +.layui-table-header, +.layui-table-tool, +.layui-table-page, +.layui-table-fixed-r, +.layui-table-tips-main{border-color: #f6f6f6;} + +.layui-table thead tr, +.layui-table-header, +.layui-table-tool, +.layui-table-patch, +.layui-table-mend{background-color: #fff;} + +.layui-table[lay-even] tr:nth-child(even), +.layui-table tbody tr:hover, +.layui-table-hover, +.layui-table-click{background-color: #f8f8f8;} +*/ + +/* 表单 */ +.layui-form[wid100] .layui-form-label{width: 100px;} +.layui-form[wid100] .layui-input-block{margin-left: 130px;} +@media screen and (max-width: 450px){ + .layui-form[wid100] .layui-form-item .layui-input-inline{margin-left: 132px;} + .layui-form[wid100] .layui-form-item .layui-input-inline+.layui-form-mid{margin-left: 130px;} +} +.layui-form-item .layui-input-company{width: auto; padding-right: 10px; line-height: 38px;} + +/* 辅助 */ +.layadmin-flexible{} +.layui-bg-white{background-color: #fff;} +.layadmin-loading{position: absolute; left: 50%; top: 50%; margin: -16px -15px; font-size: 30px; color: #c2c2c2;} +.layadmin-fixed{position: fixed; left: 0; top: 0; z-index: 999;} +.layadmin-link{color: #029789!important;} +.layadmin-link:hover{opacity: 0.8;} + +/* 弹出面板 */ +.layui-layer-admin .layui-layer-title{height: 50px; line-height: 50px; border: none 0; background-color: #20222A; color: #fff;} +.layui-layer-admin i[close]{position: absolute; padding: 5px; right: 10px; top: 12px; color: #fff; cursor: pointer;} +.layui-layer-admin .layui-layer-content{padding: 20px; line-height: 22px;} +.layui-layer-admin .layui-layer-content cite{font-style: normal; color: #FF5722;} + +/* 右侧面板 */ +.layui-layer-adminRight{top: 50px !important; bottom: 0; box-shadow: 1px 1px 10px rgba(0,0,0,.1); border-radius: 0; overflow: auto;} + +/* 弹出便签 */ +.layadmin-note .layui-layer-content{padding: 0;} +.layadmin-note textarea{display: block; width: 300px; height: 132px; min-width: 300px; min-height: 132px; line-height: 20px; padding: 10px 20px; border: none; box-sizing: border-box; color: #666; word-wrap: break-word;} + +/* 头部导航 */ +.layui-layout-admin .layui-layout-left{padding: 0 10px;} +.layui-layout-admin .layui-layout-left .layui-nav-item{margin: 0 20px;} +.layui-layout-admin .layui-input-search{display: inline-block; vertical-align: middle; height: 32px; border: none; cursor: text;} +.layui-layout-admin .layui-layout-left a{padding: 0;} +.layui-layout-admin .layui-layout-right{padding: 0;} +.layui-header .layui-nav-item .layui-icon{position: relative; top: 1px; font-size: 16px;} +.layui-header .layui-nav-item:hover{} +.layui-header .layui-layout-right .layui-badge-dot{margin-left: 11px;} +.layui-header .layui-nav .layui-this:after, +.layui-layout-admin .layui-header .layui-nav-bar{top: 0 !important; bottom: auto; height: 3px; background-color: #fff; background-color: rgba(255,255,255,.3);} + +/* 遮罩 */ +.layadmin-body-shade{position: fixed; display: none; left: 0; right: 0; top: 0; bottom: 0; background-color: rgba(0,0,0,.3); z-index: 1000;} + +/* 侧边菜单 */ +.layui-side-menu .layui-side-scroll{width: 240px;} +.layui-side-menu .layui-nav{width: 220px; margin-top: 50px; background: none;} +.layui-side-menu .layui-nav .layui-nav-item a{height: 40px; line-height: 40px; padding-left: 45px; padding-right: 30px;} +.layui-side-menu .layui-nav .layui-nav-item > a{padding-top: 8px; padding-bottom: 8px;} +.layui-side-menu .layui-nav .layui-nav-item a:hover{background: none;} +.layui-side-menu .layui-nav .layui-nav-itemed > .layui-nav-child{padding: 5px 0;} +.layui-side-menu .layui-nav .layui-nav-item .layui-icon{position: absolute; top: 50%; left: 20px; margin-top: -19px;} +.layui-side-menu .layui-nav .layui-nav-child .layui-nav-child{background: none!important;} +.layui-side-menu .layui-nav .layui-nav-child .layui-nav-child a{padding-left: 60px} +.layui-side-menu .layui-nav .layui-nav-more{right: 15px;} + +/* 侧边菜单 - 平板移动设备 */ +@media screen and (max-width: 992px) { + .layui-layout-admin .layui-side{transform: translate3d(-220px, 0, 0); -webkit-transform: translate3d(-220px, 0, 0); width: 220px;} + .layui-layout-admin .layui-layout-left, + .layadmin-pagetabs, + .layui-layout-admin .layui-body, + .layui-layout-admin .layui-footer{left: 0;} +} + +/* 侧边收缩模式 */ +.layadmin-side-shrink .layui-layout-admin .layui-logo{width: 60px; background-image: url(res/logo.png); /*background-size: 20px;)*/} +.layadmin-side-shrink .layui-layout-admin .layui-logo span{display: none;} +.layadmin-side-shrink .layui-side{left: 0; width: 60px;} +.layadmin-side-shrink .layui-layout-admin .layui-layout-left, +.layadmin-side-shrink .layadmin-pagetabs, +.layadmin-side-shrink .layui-layout-admin .layui-body, +.layadmin-side-shrink .layui-layout-admin .layui-footer{left: 60px;} +.layadmin-side-shrink .layui-side-menu .layui-nav{position: static; width: 60px;} +.layadmin-side-shrink .layui-side-menu .layui-nav-item{position: static;} +.layadmin-side-shrink .layui-side-menu .layui-nav-item>a{padding-right: 0;} +.layadmin-side-shrink .layui-side-menu .layui-nav-item cite, +.layadmin-side-shrink .layui-side-menu .layui-nav > .layui-nav-item > a .layui-nav-more, +.layadmin-side-shrink .layui-side-menu .layui-nav > .layui-nav-item > .layui-nav-child{display: none; padding: 8px 0; width: 200px;} +.layadmin-side-shrink .layui-side-menu .layui-nav > .layui-nav-itemed>a{background: rgba(0,0,0,.3);} + +/* 移动端展开模式 */ +.layadmin-side-spread-sm .layui-layout-admin .layui-layout-left, +.layadmin-side-spread-sm .layadmin-pagetabs, +.layadmin-side-spread-sm .layui-layout-admin .layui-body, +.layadmin-side-spread-sm .layui-layout-admin .layui-footer{left: 0; transform: translate3d(220px, 0, 0); -webkit-transform: translate3d(220px, 0, 0);} +.layadmin-side-spread-sm .layui-layout-admin .layui-layout-right{transform: translate3d(220px, 0, 0); -webkit-transform: translate3d(220px, 0, 0);} +.layadmin-side-spread-sm .layui-side{transform: translate3d(0, 0, 0); -webkit-transform: translate3d(0, 0, 0);} +.layadmin-side-spread-sm .layadmin-body-shade{display: block; } + + +/* 页面标签 */ +.layadmin-pagetabs{height: 40px; line-height: 40px; padding: 0 80px 0 40px; /*border-bottom: 2px solid #292B34;*/ background-color: #fff; box-sizing: border-box; box-shadow: 0 1px 2px 0 rgba(0,0,0,.1);} +.layadmin-pagetabs .layadmin-tabs-control{position: absolute; top: 0; width: 40px; height: 100%; text-align: center; cursor: pointer; transition: all .3s; -webkit-transition: all .3s; box-sizing: border-box; border-left: 1px solid #f6f6f6;} +.layadmin-pagetabs .layadmin-tabs-control:hover{background-color: #f6f6f6;} +.layadmin-pagetabs .layui-icon-prev{left: 0; border-left: none; border-right: 1px solid #f6f6f6;} +.layadmin-pagetabs .layui-icon-next{right: 40px; right: 40px;} +.layadmin-pagetabs .layui-icon-down{right: 0;} +.layadmin-tabs-select.layui-nav{position: absolute; left: 0; top: 0; width: 100%; height: 100%; padding: 0; background: none;} +.layadmin-tabs-select.layui-nav .layui-nav-item{line-height: 40px;} +.layadmin-tabs-select.layui-nav .layui-nav-item>a{height: 40px;} +.layadmin-tabs-select.layui-nav .layui-nav-item a{color: #666;} +.layadmin-tabs-select.layui-nav .layui-nav-child{top: 40px; left: auto; right: 0;} +.layadmin-tabs-select.layui-nav .layui-nav-child dd.layui-this, +.layadmin-tabs-select.layui-nav .layui-nav-child dd.layui-this a{background-color: #f2f2f2!important; color: #333;} +.layadmin-tabs-select.layui-nav .layui-nav-more, +.layadmin-tabs-select.layui-nav .layui-nav-bar{display: none;} + +.layadmin-pagetabs .layui-tab{margin: 0; overflow: hidden;} +.layadmin-pagetabs .layui-tab-title{height: 40px; border: none;} +.layadmin-pagetabs .layui-tab-title li{min-width: 0; line-height: 40px; max-width: 160px; text-overflow: ellipsis; padding-right: 40px; overflow: hidden; border-right: 1px solid #f6f6f6; vertical-align: top;} +.layadmin-pagetabs .layui-tab-title li:first-child{ padding-right: 15px;} +.layadmin-pagetabs .layui-tab-title li:first-child .layui-tab-close{display: none;} +.layadmin-pagetabs .layui-tab-title li .layui-tab-close{position: absolute; right: 8px; top: 50%; margin: -7px 0 0 0; width: 16px; height: 16px; line-height: 16px; border-radius: 50%; font-size: 12px;} +.layadmin-pagetabs .layui-tab-title li:after{content:''; position: absolute; top: 0; left: 0; width: 0; height: 2px; border-radius: 0; background-color: #292B34; transition: all .3s; -webkit-transition: all .3s;} +.layadmin-pagetabs .layui-tab-title li:hover:after{width: 100%;} +.layadmin-pagetabs .layui-tab-title li:hover, +.layadmin-pagetabs .layui-tab-title li.layui-this{background-color: #f6f6f6;} +.layadmin-pagetabs .layui-tab-title li.layui-this:after{width: 100%; border: none; height: 2px; background-color: #292B34;} + +/* 不开启页面标签时 */ +.layadmin-tabspage-none .layui-layout-admin .layui-header{border-bottom: none; box-shadow: 0 1px 2px 0 rgba(0,0,0,.05);} +.layadmin-tabspage-none .layui-layout-admin .layui-body{top: 50px;} +.layadmin-tabspage-none .layadmin-header{display: block;} +.layadmin-tabspage-none .layadmin-header .layui-breadcrumb{border-top: 1px solid #f6f6f6;} + +/* 底部固定区域 */ +.layui-layout-admin .layui-footer{padding: 10px 0; text-align: center;} + +/* 默认主题修饰 */ +.layui-layout-admin .layui-header{border-bottom: 1px solid #f6f6f6; box-sizing: border-box; background-color: #fff;} +.layui-layout-admin .layui-header a, +.layui-layout-admin .layui-header a cite{color: #333;} +.layui-layout-admin .layui-header a:hover{color: #000;} +.layui-layout-admin .layui-header .layui-nav .layui-nav-more{border-top-color: #666} +.layui-layout-admin .layui-header .layui-nav .layui-nav-mored{border-color: transparent; border-bottom-color: #666;} +.layui-layout-admin .layui-header .layui-nav .layui-this:after, +.layui-layout-admin .layui-header .layui-nav-bar{height: 2px; background-color: #20222A} +.layui-layout-admin .layui-logo{background-color: #20222A; box-shadow: 0 1px 2px 0 rgba(0,0,0,.15);} +.layui-layout-admin .layui-logo, +.layui-layout-admin .layui-logo a{color: #fff; color: rgba(255,255,255,.8)} +.layui-side-menu{box-shadow: 1px 0 2px 0 rgba(0,0,0,.05);} +.layui-layout-admin .layui-footer{box-shadow: 0 -1px 2px 0 rgba(0,0,0,.05);} + +.layui-side-menu, +.layadmin-setTheme-side{background-color: #20222A; color: #fff;} +.layadmin-setTheme-header{background-color: #fff;} + +.layui-layout-admin .layui-footer{background-color: #fff;} +.layui-tab-admin .layui-tab-title{background-color: #393D49; color: #fff;} + + +/* + + 格局 + +*/ + +.layui-fluid{padding: 15px;} +.layadmin-header{display: none; height: 50px; line-height: 50px; margin-bottom: 0; border-radius: 0;} +.layadmin-header .layui-breadcrumb{padding: 0 15px;} +.layui-card-header{position: relative;} +.layui-card-header .layui-icon{line-height: initial; position: absolute; right: 15px; top: 50%; margin-top: -7px;} +.layadmin-iframe{position: absolute; width: 100%; height: 100%; left: 0; top: 0; right: 0; bottom: 0;} + + +/* + + 控制台 + +*/ + + +/* 重置轮播样式 */ +.layadmin-carousel{height: 185px !important; background-color: #fff;} +.layadmin-carousel .layui-carousel-ind li{background-color: #e2e2e2;} +.layadmin-carousel .layui-carousel-ind li:hover{background-color: #c2c2c2;} +.layadmin-carousel .layui-carousel-ind li.layui-this{background-color: #999;} +.layadmin-carousel .layui-carousel, +.layadmin-carousel > *[carousel-item] > *{background-color: #fff;} +.layadmin-carousel .layui-col-space10{margin: 0;} +.layadmin-carousel .layui-carousel-ind{position: absolute; top: -41px; text-align: right;} +.layadmin-carousel .layui-carousel-ind ul{background: none;} + +/* 重置tab样式 */ +.layui-card .layui-tab-brief .layui-tab-title{height: 42px; border-bottom-color: #f6f6f6;} +.layui-card .layui-tab-brief .layui-tab-title li{margin: 0 15px; padding: 0; line-height: 42px;} +.layui-card .layui-tab-brief .layui-tab-title li.layui-this{color: #333;} +.layui-card .layui-tab-brief .layui-tab-title .layui-this:after{height: 43px;} +.layui-card .layui-tab-brief .layui-tab-content{padding: 15px;} +.layui-card .layui-table-view{margin: 0;} + +/* 快捷方式 */ +.layadmin-shortcut li{text-align: center;} +.layadmin-shortcut li .layui-icon{display: inline-block; width: 100%; height: 60px; line-height: 60px; text-align: center; border-radius: 2px; font-size: 30px; background-color: #F8F8F8; color: #333; transition: all .3s; -webkit-transition: all .3s;} +.layadmin-shortcut li cite{position: relative; top: 2px; display: block; color: #666; text-overflow: ellipsis; overflow: hidden; white-space: nowrap; font-size: 14px;} +.layadmin-shortcut li:hover .layui-icon{background-color: #f2f2f2;} + +/* 待办事项 */ +.layadmin-backlog .layadmin-backlog-body{display: block; padding: 10px 15px; background-color: #f8f8f8; color: #999; border-radius: 2px; transition: all .3s; -webkit-transition: all .3s;} +.layadmin-backlog-body h3{padding-bottom: 10px; font-size: 12px;} +.layadmin-backlog-body p cite{font-style: normal; font-size: 30px; font-weight: 300; color: #009688;} +.layadmin-backlog-body:hover{background-color: #f2f2f2; color: #888;} + +/* 数据概览 */ +.layadmin-dataview{height: 332px !important;} +.layadmin-dataview>*[carousel-item]:before{display: none;} +.layadmin-dataview>*[carousel-item]>div{height: 332px;} + +/* 控制台效果报告 */ +.layadmin-takerates{padding-top: 5px;} +.layadmin-takerates .layui-progress{margin: 50px 0 60px;} +.layadmin-takerates .layui-progress:last-child{margin-bottom: 10px;} +.layadmin-takerates .layui-progress h3{position: absolute; right: 0; top: -35px; color: #999; font-size: 14px;} +.layadmin-takerates .layui-progress-bar{text-align: left;} +.layadmin-takerates .layui-progress-text{top: -35px; line-height: 26px; font-size: 26px;} + +/* 产品动态 */ +.layadmin-news{height: 60px !important; padding: 5px 0;} +.layadmin-news a{display: block; line-height: 60px; text-align: center;} +.layadmin-news .layui-carousel-ind{height: 45px;} + +/* 文字列表 */ +.layadmin-list li{margin-bottom: 6px; padding-bottom: 6px; border-bottom-color: #f6f6f6; list-style-position: inside; list-style-type: disc;} +.layadmin-list li{text-overflow: ellipsis; overflow: hidden; white-space: nowrap;} +.layadmin-list li a{color: #666;} +.layadmin-list li a:hover{color: #009688;} +.layadmin-list li:last-child{border: none; padding: 0; margin: 0;} + +/* 文本区域 */ +.layadmin-text p{margin-bottom: 10px; text-indent: 2em;} +.layadmin-text p:last-child{margin: 0;} +.layadmin-font-em{font-size: 13px; color: #758697;} + + + + +/******************************** + + 其它主页开始 By star1029 + +*******************************/ + +/* 主页示例一 by star1029 */ +/* 进行中的项目 */ +.layui-card-header .layui-a-tips{position: absolute; right: 15px; color: #01AAED;} +.layuiadmin-card-text{background-color: #f8f8f8; color: #777; padding: 24px;} +.layuiadmin-card-text .layui-text-top{padding-bottom: 10px;} +.layuiadmin-card-text .layui-text-top i{margin-right: 10px; font-size: 24px; color: #009688;} +.layuiadmin-card-text .layui-text-top a{line-height: 24px; font-size: 16px; vertical-align: top;} +.layuiadmin-card-text .layui-text-center{height: 44px; line-height: 22px; margin-bottom: 10px; overflow: hidden;} +.layuiadmin-card-text .layui-text-bottom{position: relative;} +.layuiadmin-card-text .layui-text-bottom a{color: #777; font-size: 12px; text-overflow: ellipsis; word-break: break-all;} +.layuiadmin-card-text .layui-text-bottom span{color: #CCC; font-size: 12px; position: absolute; right: 0;} +.layuiadmin-card-text a:hover, +.layuiadmin-card-link a:hover, +.layuiadmin-card-team li a:hover{color: #01AAED; transition: all 300ms;} + +/* 动态 */ +.layuiadmin-card-status{padding: 0 10px 10px 10px;} +.layuiadmin-card-status dd{padding: 15px 0; border-bottom: 1px solid #EEE; display: -webkit-flex; display: flex;} +.layuiadmin-card-status dd:last-child{border: none;} +.layuiadmin-card-status dd div.layui-status-img, +.layuiadmin-card-team .layui-team-img{width: 32px; height: 32px; border-radius: 50%; background-color: #009688; margin-right: 15px;} +.layuiadmin-card-status dd div.layui-status-img a{width: 100%; height: 100%; display: inline-block; text-align: center; line-height: 32px;} +.layuiadmin-card-status dd div.layui-status-img img, +.layuiadmin-card-team .layui-team-img img{width: 50%; height: 50%;} +.layuiadmin-card-status dd div a{color: #01AAED;} +.layuiadmin-card-status dd div span{color: #BBB;} + +/* 便捷导航 */ +.layuiadmin-card-link{padding-left: 10px; font-size: 0} +.layuiadmin-card-link a{display: inline-block; width: 25%; color: #666; font-size: 14px; margin-bottom: 12px;} +.layuiadmin-card-link button{vertical-align: top;} +.layuiadmin-card-link button:hover{color: #009688;} + +/* 团队 */ +.layuiadmin-card-team li{padding: 10px 0 10px 10px;} +.layuiadmin-card-team .layui-team-img{display: inline-block; margin-right: 8px; width: 24px; height: 24px; text-align: center; line-height: 24px;} +.layuiadmin-card-team span{color: #777;} + + +/* 主页示例二 by star1029 */ +.layuiadmin-badge{position: absolute; top: 50%; margin-top: -9px; right: 15px; color: #01AAED; } +.layuiadmin-card-list{padding: 15px;} +.layuiadmin-card-list p.layuiadmin-big-font{font-size: 36px; color: #666; line-height: 36px; padding: 5px 0 10px; overflow: hidden; text-overflow: ellipsis; word-break: break-all; white-space: nowrap;} +.layuiadmin-card-list p.layuiadmin-normal-font{padding-bottom: 10px; font-size: 20px; color: #666; line-height: 24px;} +.layuiadmin-span-color{font-size: 14px; position: absolute; right: 15px;} +.layuiadmin-span-color i{padding-left: 5px;} +.layuiadmin-btn-group{position: absolute; right: 15px;} + +.layuiadmin-card-status li{position: relative; padding: 10px 0; border-bottom: 1px solid #EEE;} +.layuiadmin-card-status li h3{padding-bottom: 5px; font-weight: 700;} +.layuiadmin-card-status li p{padding-bottom: 10px;} +.layuiadmin-card-status li>span{color: #999;} +.layuiadmin-home2-usernote .layuiadmin-reply{display: none; position: absolute; right: 0; bottom: 12px;} +.layuiadmin-home2-usernote li:hover .layuiadmin-reply{display: block;} + +.layuiadmin-page-table td span{color: #2F4056;} +.layuiadmin-page-table td span.first{color: #FF5722;} +.layuiadmin-page-table td span.second{color: #FFB800;} +.layuiadmin-page-table td span.third{color: #5FB878;} + + +/****** 其它主页结束 By star1029 ******/ + + + + +/* + + 应用 + +*/ + + +/* 消息中心 */ +.layuiAdmin-msg-detail h1{font-size: 16px;} +.layuiAdmin-msg-detail .layui-card-header{height: auto; line-height: 30px; padding: 15px;} +.layuiAdmin-msg-detail .layui-card-header span{padding: 0 5px; color: #999;} +.layuiAdmin-msg-detail .layui-card-header span:first-child{padding-left: 0;} +.layuiAdmin-msg-detail .layui-card-body{padding: 15px;} + +/* 文章列表 */ +.layuiadmin-content-bread{padding-bottom: 20px;} + +/* 进度条样式 */ +.layuiadmin-order-progress{position: relative; top: 12px;} + + + + +/* + + 系统 + +*/ + + +/* 头部图标重置 */ +.layui-card-header.layuiadmin-card-header-auto{padding-top: 15px; padding-bottom: 15px; height: auto;} +.layuiadmin-card-header-auto i.layuiadmin-button-btn{position: relative; right: 0; top: 0; vertical-align: middle;} +.layuiadmin-card-header-auto .layui-form-item:last-child{margin-bottom: 0;} + + +/* 主题设置 */ +.layadmin-setTheme{padding: 15px; overflow-x: hidden;} +.layadmin-setTheme>h5{padding: 20px 0 10px; color: #000;} +.layadmin-setTheme>h5:first-child{padding-top: 0;} +.layadmin-setTheme-color{width: 330px; font-size: 0;} +.layadmin-setTheme-color li{position: relative; display: inline-block; vertical-align: top; width: 80px; height: 50px; margin: 0 15px 15px 0; background-color: #f2f2f2; cursor: pointer; font-size: 12px; color: #666;} +.layadmin-setTheme-color li:after{content: ''; position: absolute; z-index: 20; top: 50%; left: 50%; width: 1px; height: 0; border: 1px solid #f2f2f2; transition: all .3s; -webkit-transition: all .3s; opacity: 0;} +.layadmin-setTheme-color li.layui-this:after, +.layadmin-setTheme-color li:hover:after{width: 100%; height: 100%; padding: 4px; top: -5px; left: -5px; border-color: #5FB878; opacity: 1;} + +.layadmin-setTheme-header{position: relative; z-index: 10; height: 10px; border-top: 1px solid #f2f2f2; border-right: 1px solid #f2f2f2;} +.layadmin-setTheme-side{position: absolute; left: 0; top: 0; width: 20px; height: 100%; z-index: 11; box-shadow: 1px 0 2px 0 rgba(0,0,0,.05);} +.layadmin-setTheme-logo{position: absolute; left: 0; top: 0; width: 100%; height: 10px; box-shadow: 0 1px 2px 0 rgba(0,0,0,.15);} +.layadmin-form-right{text-align: right;} + + +/* 关于 */ +.layadmin-about p{margin-bottom: 10px;} + +/* 菜单列表 */ +.layadmin-menu-list .layui-card-header{height: 50px; line-height: 50px; font-size: 16px;} +.layadmin-menu-list .layui-card-header:active{background-color: #f2f2f2;} +.layadmin-menu-list .layui-card-header .layui-icon{position: relative; top: 1px; left: 0; display: inline-block; margin: 0 10px 0; font-size: 18px;} + + +/* 动画 */ +@-webkit-keyframes layui-rl{ /* 从右往左滑入 */ + from {-webkit-transform: translate3d(100%, 0, 0);} + to {-webkit-transform: translate3d(0, 0, 0);} +} +@keyframes layui-rl{ + from {transform: translate3d(100%, 0, 0);} + to {transform: translate3d(0, 0, 0);} +} +.layui-anim-rl{-webkit-animation-name: layui-rl; animation-name: layui-rl;} + +@-webkit-keyframes layui-lr{ /* 从右往左滑入 */ + from {-webkit-transform: translate3d(0 0, 0); opacity: 1;} + to {-webkit-transform: translate3d(100%, 0, 0); opacity: 1;} +} +@keyframes layui-lr{ + from {transform: translate3d(0, 0, 0);} + to {transform: translate3d(100%, 0, 0);} +} +.layui-anim-lr{-webkit-animation-name: layui-lr; animation-name: layui-lr;} + +.layui-anim-rl.layer-anim-close{-webkit-animation-name: layui-lr; animation-name: layui-lr;} + + +/* 提示页 */ +.layadmin-tips{margin-top: 30px; text-align: center;} +.layadmin-tips .layui-icon[face]{display: inline-block; font-size: 300px; color: #393D49;} +.layadmin-tips .layui-text{width: 500px; margin: 30px auto; padding-top: 20px; border-top: 5px solid #009688; font-size: 16px;} +.layadmin-tips h1{font-size: 100px; line-height: 100px; color: #009688;} +.layadmin-tips .layui-text .layui-anim{display: inline-block;} + + +/* + + 响应式补充 + +*/ + +@media screen and (max-width: 768px) { + + /* 产品清单模板 */ + .layadmin-panel-selection{margin: 0; width: auto;} + + /* 导航 */ + .layui-body .layui-nav .layui-nav-item{display: block;} + + /* 主体容器 */ + .layui-layout-admin .layui-body .layadmin-tabsbody-item{-webkit-overflow-scrolling: touch; overflow: auto;} +} + + + diff --git a/public/static/admin/style/login.css b/public/static/admin/style/login.css new file mode 100644 index 0000000..30fb615 --- /dev/null +++ b/public/static/admin/style/login.css @@ -0,0 +1,55 @@ +/** + + @Name:layuiAdmin 登入注册页 + @Author:贤心 + @Site:http://www.layui.com/admin/ + @License:GPL-2 + + */ + +html,body,#LAY_app{height:100%;} +.layui-layout-body{overflow: auto;} + +#LAY-user-login, +.layadmin-user-display-show{display: block !important;} +.layadmin-user-login{position: relative; left: 0; top: 0; padding: 110px 0; min-height: 100%; box-sizing: border-box;} +.layadmin-user-login-main{width: 375px; margin: 0 auto; box-sizing: border-box;} +.layadmin-user-login-box{padding: 20px;} +.layadmin-user-login-header{text-align: center;} +.layadmin-user-login-header h2{margin-bottom: 10px; font-weight: 300; font-size: 30px; color: #000;} +.layadmin-user-login-header p{font-weight: 300; color: #999;} + +.layadmin-user-login-body .layui-form-item{position: relative;} +.layadmin-user-login-icon{position: absolute; left: 1px; top: 1px; width: 38px; line-height: 36px; text-align: center; color: #d2d2d2;} +.layadmin-user-login-body .layui-form-item .layui-input{padding-left: 38px;} +.layadmin-user-login-codeimg{max-height: 38px; width: 100%; cursor: pointer; box-sizing: border-box;} + +.layadmin-user-login-other{position: relative; font-size: 0; line-height: 38px; padding-top: 20px;} +.layadmin-user-login-other>*{display: inline-block; vertical-align: middle; margin-right: 10px; font-size: 14px;} +.layadmin-user-login-other .layui-icon{position: relative; top: 2px; font-size: 26px;} +.layadmin-user-login-other a:hover{opacity: 0.8;} + +.layadmin-user-jump-change{float: right;} + +.layadmin-user-login-footer{position: absolute; left: 0; bottom: 0; width: 100%; line-height: 30px; padding: 20px; text-align: center; box-sizing: border-box; color: rgba(0,0,0,.5)} +.layadmin-user-login-footer span{padding: 0 5px;} +.layadmin-user-login-footer a{padding: 0 5px; color: rgba(0,0,0,.5);} +.layadmin-user-login-footer a:hover{color: rgba(0,0,0,1);} + +/* 有背景图时 */ +.layadmin-user-login-main[bgimg]{background-color: #fff; box-shadow: 0 0 5px rgba(0,0,0,0.05);} + +/* 主题背景 */ +.ladmin-user-login-theme{position: fixed; bottom: 0; left: 0; width: 100%; text-align: center;} +.ladmin-user-login-theme ul{display: inline-block; padding: 5px; background-color: #fff;} +.ladmin-user-login-theme ul li{display: inline-block; vertical-align: top; width: 64px; height: 43px; cursor: pointer; transition: all .3s; -webkit-transition: all .3s; background-color: #f2f2f2;} +.ladmin-user-login-theme ul li:hover{opacity: 0.9} + +@media screen and (max-width: 768px) { + .layadmin-user-login{padding-top: 60px;} + .layadmin-user-login-main{width: 300px;} + .layadmin-user-login-box{padding: 10px;} +} + + + diff --git a/public/static/admin/style/res/bg-none.jpg b/public/static/admin/style/res/bg-none.jpg new file mode 100644 index 0000000000000000000000000000000000000000..b7c9e7b864d9354ae00404bb74f1e144ab57e03b GIT binary patch literal 832 zcmex=76T7ZFOwj%ATaE{cASwgX5%^7Y|PA-aBzk}8jk@^fh}&{hLSo* zQZ@@t1{wl#DNZ;Zwm-mu+Vl>Q_HtgT*9|CH2iZ&kqzz#o5}<- z^#Yj5j9@Y`vDq^@LqriwMn<6MsZ(iN6OA^_TpQuDW?6Qau(sx`t1Z{osD%ZauI8LN zXOKo}2X-UI-(5y<5L literal 0 HcmV?d00001 diff --git a/public/static/admin/style/res/layui-logo.jpg b/public/static/admin/style/res/layui-logo.jpg new file mode 100644 index 0000000000000000000000000000000000000000..da24fdfc9a047daea9128a967bc13a3766aea200 GIT binary patch literal 2871 zcmds%X;hN=8o*yfvD^ulO4PE&%<(#|xr8*;xTI*Nv}mIfnyD$K=7y$C-LlldYi_v& zR~aq_w?a@xL@vl-t(UGJm>kpzvuTpAO6yA z=>VW{$jQ|S0D(Y2oa_OlJm3HTk(ZZOkcTKJK-NQKuktzwWSz2#l9IBLl8T1PAEBY5 zrmmr`rUHX$YQkV}U0q%HmM`%c0#Z~|R8>*ksG+fOvldiq^Oxp-nn<4j&~+dP2m%H{ z0XZlL3vPxc2 zR{uHoGZ*TmumQH!9P-1dY%Lj;@|3N)ZT}I>C2hm)R?&k~rP3ZiMW!JK1w#QOuw1xx z-xufqgJgY?UIFoho1a!S9QKGEI*LYZqICCGIO$_{Umq>+q6SWUdT^mu5`kJGrBOsa z?z@^Jl8y=9XMRXN>|=59+Y2DxopWRbxGWXov=`@6!bGoaj3Q1+ZYB~I6IXnTJL)T{ z6Z-v}1kN|yoXQ?n#^AkGuD)UOT*>#1N9+6@;ybm;(FOaTV1}S!CXA((&w_4j5(}X{A+U2kZn-hQL|rgMpLhigR+16CJlfTB*W?OEKdcBV_(+b zP5cNC7>0YfRrNJKJ$~5Q@iOi%yc8(oygz?(uj6D^ytw(J@cUG36Cr6Xv7HnqwD;Dd zj&F-sM@+}g#&?D>aF$DE5ooj*b~4piL)yz%TIYB{Iw3#FtX5R_;nZ==Qm!_*X|Tn;@pGYh0<;5wr7jspCY(=oL=K7yN7K?s_3GT^heB^&NRK?I{h5a zaIR2d(vN+X=)=#u+>B1)d+AGob%7C~^hyrb@^MNPJ_BVA%{`y?^zd5S?(p_=;UYw8 znGyHaZahAoR@2vV3|YP7h=$^x$iwEonf@=la&#_n42rfhD+WJC@+xaF@IEsDQ0s{Z zCZSTk(-|xj;GZuryGybuwr=s|yN9eMX}A^MgQ&^LUZf~M`*_o!&@naR^~#noYu{f{ zl3D*q#4YyB6`0+few;PoJ zP#*85#D)+cxYl%g+sTQ38`GCUYsXE^a#ww1kbclV)}ny*4h}kW?$4y4zMUyvugHX| zr2QX<(}sSgs3QFpC(M#()u`jo;ZZ1jn15HNYQb4fh9>S)b?k#d$c0v=hxL_h5DUS(_xbZRK0lTSN-=yRU_P`14$-c&LhOjPLDYk0R;nN!Any8yz>|}krs!o z^G6V^H@pZ106nX@4{tGb7X${y-6vYm3~coj@p1$r6dRmDqh;501nBhR^X*ovq(E3$ z<{mSY^g;`pb%qd<3o{n{<_u#j^XvK4NJ#gFbRsj+Bc_L6}-P`y2Nnd6B(g!su{4 zLJPLH2x*lnw9HU#`FcN)tei!&)0blR;0ckJ+lh}>$iCRVwn;7%pF1a(-F){1pHHXJ zX%Az4ja$4K{|1paFsK~oqo#9;XH^q^K1!8Th>}WcaHz*qwa~B5E?Fl6B;#`#emO__GG)C zRz+^QR?H1WwA^6;{f1!YC?I$`8I?<7R71RzpI;5`rm15{Rwx|%5SiX3{b5^>`?6xp&Ji+P}JoHzSf`ms{oDt LmH+Q&(s#cDsUr%7 literal 0 HcmV?d00001 diff --git a/public/static/admin/style/res/logo-black.png b/public/static/admin/style/res/logo-black.png new file mode 100644 index 0000000000000000000000000000000000000000..73e5ebcb43833eeb621ff764dc7e44323c9afe10 GIT binary patch literal 455 zcmeAS@N?(olHy`uVBq!ia0vp^0zk~q!3HGX7W?Z1DVAa<&kznEsNqQI0P;BtJR*x3 z7=(O5nDO)UBg=t;VkNE-CC){ui6xo&c?uz!xv30>hWbX9`iACTwud+YRmgx;1m~xf zlqVLYGB~E>C#5R5WfrBD=NDxcD>w(6z1XvIwhi*x%GkhWbX9`iACTwud+YRmgx;1m~xf zlqVLYGB~E>C#5R5WfrBD=NDxcD>w(6z1Xv?mq)LJVQ&Orvhh3ZhBjJwL{si@i8$Z~hZfH6NoY=UdxG=(8f}dx% z_2%ldXJ^60g?*18$|4;XJS`KiBE zP^;Mbm-T|g=Ve?zOF2#{gdNR$^iinwM)`p_p9$`fza4ayELhkM@D;Fx{Arb3@buj6 zXVt~~qEFvp%WIezUgCPGyY7R|%E5ZPMa}8-t3p_tY z``aAc)A=}%`4wlAYjl6(8WjtMYm2)ZlZ@m}-}uo`n;@XFmMQ#zo6_yck!&@AFSa~; u)bDs{X{bSo?#XMB;jRpJjpgF&>zVIg*(;naCF>3hR0dC1KbLh*2~7ZTNv#_I literal 0 HcmV?d00001 diff --git a/public/static/admin/style/res/template/character.jpg b/public/static/admin/style/res/template/character.jpg new file mode 100644 index 0000000000000000000000000000000000000000..ba5e4d1da76da014d1238c4a121c619a087b615e GIT binary patch literal 6153 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 literal 0 HcmV?d00001 diff --git a/public/static/admin/style/res/template/huge.jpg b/public/static/admin/style/res/template/huge.jpg new file mode 100644 index 0000000000000000000000000000000000000000..ce8acbdfab13feee52eeae73072801313f993665 GIT binary patch literal 419343 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 _+asM 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

        ;!Zx4qP$#r&m-OG^b^KjfBukBRWF!1_nS{dQj+ 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 X7sHz0hCtTz_-C?s^CWi>ZbrvaLF@Ie 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

        EBX0>f^ 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

        lU+YZp z#Qq@hKaS6Upz$2KW}R(h*KOo&65L2e0)``i3CRHV#c6n^-x8foBFjDz)O9|D{uRsk z($h`TEJnSnX->^)33z0Hlx}bU45Sb;dGxI#?`UG~ozCMz)n{#D^TN7~(URiD{JEI6 zKyU#iTe^@#4*ZaMR@1z$23Kjo7{{e~*TX-Bem~dYO=|1JzwnR4aD2$^Y?)qp6@lfM zj~U?PtypC7FM_@#Tlhx%#tpAoUfR6bln=C9GWK#hWaJK+E zFEo-|G?R^>9_`e6RG(`c>^uR1fzWyn^NOzXM1lA_SdLEzKg<6B)l5Rq31)D|8D-i4 z{{Z#kvufpa)V*zTBbbvY83jNjoOY&PqTO0Og~At7Fh=f!IT${gKEGnB`27w!T zpH|zFJ&EsJeBS|nA9$*B6|abHG+U?pk~)cCbN$i}Dfy9JovdjV`ph9(LX$_86JxOT z^%c+SJ{s0ESWWfJX)U^ex>)4SKA`i8))gFfc4ktGzN+UTeftjlMv(=zuZ^^exY>6D zBS;T!ar1t4qoDr7o;o)Hb*~xemg;bKBvMF7_8bq+w){Kd?O(&%t-h;ib17&D`6P3+ zq2#U)Y*)GXZ(q~ANu|ZFS~{}Gr(oz+hb2$At99#I*Zd2oMwI$%>U&506Jy~em%-nG zI{ue!cy8s?d{??lw~t{WC_q)(2?P%?^YrzvbGm4vndEsSA;&vdoMY3|`q!TR%34&q zf5FqO$#h86_50@$h5Nfaw8{0(4R>2Itt^4JAo;oB$EEe4oiW7-2Syj_VC@?v=T_ATm4*s{J{SJ zT3t@B4co+AoI^2^uptyR>cxn0)M?_W{gx}@U`Tio7F zEm>~pS_;7qoeqn#CmhJAx}jIiLMox~rYs`KlYxoGS( zJBbPpza}F?_?~|uSyrc7q??Nyw^Hk-!T0G49&!Mx*GsHk#D>!TD`UZNugW)T0>txT7Z@{c7lj8lqa3 zpoYiiZo}Y@Ow+o2xin+ntw>DTM6a@K3Wz)#{~0B zHCdEk8a&tT**VW5uk4y$+5rKZ=I!lID+nZp&(fG#o00(fQVujS99-e>zjUaA3{Hy;NMBbtjv!=8c)RG>!NgcG57s@+pq&Mne#Nshix4 z7ByNTT&&5np5Kw7jxgP-6=xrGnt7XyfHU-^&8DR(COum?0QD58qBEV}g)%8on`0>C z_ovB$jla&4)GnAa0&~yhNLXW^_%Q7MUs1ZT0P)ruGhW*IdF02e{%zU&s4 z62@n@4q<)qvoGCmQB#EqH!&E;dPyXV02#;E)|9VeWw6vC#&h&Iq`uQE?-?Yywnu2r zV=OXM`&5xK9zn>>ILVQ_cNCVwdzFoo1t;Y`+iJD7{hhtX*;xumycJl<&*UpZ%=V@` z5OT4c;~Z4DtryySHCuPd_nf24c?*6)0ArRp~~7CNq>o2y3|5E&0Fxacd@4&L~x*OoTd>*ZbB ztf`PnILP9OMKI=)*mb4c7uM-{YanRkUCQ2|)T#+M6hx877)4O31_FUj%7eiDC{b+) zt$$%{sM@`q)IpWhf(XrWmJO`@JJg}kjj~UqOy4ETNrMX>xg9ZGmm9vOtLpk?wyR+- zpL(04l?t{xjQ1XfqEz1KX|##amQ@lX0vnJ;Iam0Y*DK)tQe7JUZwTsc7wqmun>&2c z#l{J)oXL^F&*MvVsNy8>!E+N^&kDS5rCA(g5$J0c_-prjK&s@|ln8x}X(MZ2|NXi%RAe`2WZ6l~IfFAtjn6o0B zV16QnxlG{GvuG}fX&B&ge=1?P2Y@k=)}v|IgSolvD)$p$>Sg&n=>~lp2lEvK+BTJQ za<_LDo8(o%a>U}E&Nl81jC82;zl3A>)a=PpNF~v9cN?2ejj(!^%~2i}@S(p=Rs20> z*AaiKovqZe{R!z>@y5bEjns-@uta_82R%(szQdXJ7Au8sk%oOK?<%8hMHGo-7v~Mn zrYZhbequSTVHqWQvz6El0|c9QLN%;hYiQnw}FA+wDlnIOhvdt>vaRzF5?0sI(t(20hMe zq6#$Sb+h@Cc&*7}i54<~4o9s*RY5A;Q(FFFNm4mASnBb+7FkuuY&ILA^r)JQlCX2d z7c#+im+ero1d;&fy;far&RCjgCr4B`W(Ob|$JBgde`$WOS=dE1dr2~xNYA%Q&D{f< zdmHDb2SGs?;GTUeiM;r?e`kIzX7F9hL{H5;GY13k#%euN;_d24wpvGqZsnQ&?3;c? z`jd)o4WfC{JAokGwZENB9k%q{A15A_=hmJ%@dll6ZhS{^Zm>(pOk>OZMQ-We6?8dm z%SEW8V~j`7G*YCT?LCWAgGSxNt!_`4gaO~BbN(jync?3HT)}6l8Mj8dJH?h(Wr>SblgW;;B~)^UK*5}adix;Ny@tJU_PCwbkt<+v72&i^e+?s(mxG6 zF(9;?R`X{E8)8yN<|_)z_N2SH)`MGkLQ|xX&Y>KiGW+c~$gd`s$KD-Fxf;jAB0^-y zk=zWA$kk0l3*Tdh#phonOV?JJzHZe{cH)rfua`-EhOx z2iCd$YgU;xU+uf=yLP(-=0;Em>G@WRl_r>!JkNi+@h8Putme^gJbM$Fr6qL;pdr)~ zz`)yUp@c#ggW!8{sQuxLg;zRq)D8R2= z@CU>l5#wDCPt@nVVgj^_@}mC$-(72_gskjb6`Ac<{yR%(SX~I&HsG;p@=u6g9H7yR zkZI;-8+PUn6@ByCwlxcDSgt3$y77(W%t;Q|EDgL+#~Wks7Q+_$SAqOm_=T>;B)Uzs zOB5285;?)#d*E~*gLZx!0R+jL{p$8D)}9sxkfMIsQhdf5IuN-c9yRdgDu$)zO6FEn-HI8@3ci20ind z<4s@35PU@O9T;|-!2-VN{{Vvgd{Fp%<6qh* z!2SvFR=*w2r{J#w{{Urps@6L*AK34j@_UVi{{ZEwF-;R^ws!WfgyOkCaVQ@7756v> zr-Oo)nple?^vC`Q_5T0`=<%1sKMq0g!}grK)%-y!&amm8AeT^*QRVq-9C6JaaqGQ0JFF4i~CRh%aKaI3A}KS!ylnh%6Uyx2nCZ@5>}8L!aq4|uXmyI3aK5LQ7VHcF{e-FoNg+P+4$ z3DBzHC1!->$hFk(Vss>9x37AzrY7VM#;|O43#pJ9lq#RP4+MQ{MjNbrqdER`B<-lw z)7ZXM3gF;+j8YgQ>Z1d&UMd8*EP4HERh@bgDCHfZ#A`TM5ww0?YA3TLN@pVgVD z4B%rOD882!n%s^LyrTm@?4AW#j^Rp-Fe9fGU&&xd3^AUZV-)ueSh)+F_x^P@W4)1N zGL!Z6rxa8CLZFS9HV*)tj1HABX9o@GO-DkLT|{`7r9maQBa!-5u)xzIxMI=Rt zBL|%FNAt}`aeO1>w+E;k@!qoHl4wf0s2K+tZdd9klI@!;vXh<;4_aKUvMk9ibvAfe zqkX4v!wwti^r}}H?bK{h-{uD`yMg!`p{#3m_RYDa$pbjtG4-xjT=5FdS{rG2Zb;8s zwGQTyh0eO`#J1(iN(Kne9Pah3xwZIacV=*$X92P?Ts`)>kc>2de4oO3KAiQchs0N9 zQH!rkg2SddQ@mrbqNa|Q#U3cNw1MU_Fxr`H4D_#9X+G@f)gmR-*wJd(#Goa5h*N}9DB zhblLvO+{SzYvD|dG&9&VfU5k^!?&lY2h-ZN{6d($^4SR?6r2z9?_B4Dp}WvLUj>cS zO&qb^c@r=9dBFqJS7YMHrMJ~nAdS$BGM+aB`q!UTFKKgod!}3wmLZgKP6<~2RdzIN z1w|tS78vL{R5o_N0M6$uZ~z(2UyB5l-a{4na4~>8X0imVTe6Ya!Xn@dA92sMc3utE z3rdgCxP0r zd`+fD;r{>;iLHKErIXEooN>=9$Du#UvP*cgM(yt-sFGzHa7%8Kf|1#^Y2{dsM?I$be38z=h-K45#?4Ols|cM>PKu=iE|+;i$T2jAs5zxEg7jxH&&A2qzr{a$1e$!T6VP;~O6j4IK@*hT~7( z8RT$zX#x$ZeKGa-sO5y4v8Jge&cr;VlFPZ2<&R;G^v4BSGF^)o;fGQ&k6*%_ZF3Fu z5zB1<03?f@x#asA8)%i(sV6-99MoG-dySoK)@&dw5DbRsPxyT*8?x{@p4m?9fC7>T z&T+u)QnIm#V1gH`9Q5pc`t+!lXyIcSCAW0J?b41>HK}Jv)fVwx4&`{q%y#1@u3Ft0 zVv;8W#_P4whIcM7Mi26=JJ{wQ>6UG_SkKI$V?Ls@B-L)>xLKZ3S~Hg!Ju}Y~xe#3< z&b#3Yt63WFLyhHwC7J|cT?b#pRGtg*=B?nH@R3EBC2-dk^CD$#S68fQmbX_H_i1r7GQ%if@UQ{@0N8I;_OC7d zk;nFLzz+*(diJ9Pmln5rkM?}Qc_`N|00isg2;aIIN;S~iZ=pHtCa)zamP>PR_ET?lf0SW9Opm9vUW`k2Qs!HxldB^f^fe%{ zj&%;sRDsKSR!*Cfu-tkWws2odH1fy@jhpviobirLUbnexc=pC{fN@V`mI+lu?m#~B z{{RrEnnzUL(QwBZ_U%nkYm}CoaUzmpueIaJbCP=Ip9IDU12M-udechf45J+P9jUOR zO(wuc%6VdY(yFEHSWQ1@&W}x)&j6QU10CwrH;){F19b0IEM)Sb2_eS-ao(nBGB+o`l=Ej*}T*4nm0YywP;1+-CWMMPa+p1{b7%j_}3;b0*)J=#)Q`5 zi1{)~GJ0g!lZve8qA{G&=yu*byf9(PDFg2TPaZz8)v;l88zHm3K^U(+Ull!ua=Ah< z4tmp}@ol8=m}F5DkHWTV&1zD5{pL}r2}|BbtZ4os)AYCmZE-ZYJZ?F_6{q(77g8%c z({3N#XFE^TbA$O;fJ5;L;>%W+-%PzrnIb{vLS)HN&Iuj6{#9u{Gu&As$*5_`uyE|o zf5NqrHZc9VoETz(IfJ+EqiE+{>!2VTjFJM13ZJs*{@O?kyj-P%6))qjJFiOmL z{VPJ-&~|V>@$$QpYhT0lCjL;@Stq zEhJw50BK%LG?Oc27h}`Xx~Tp#=@TIG;~D5wll~P{+^z2#P1)#=MOhS#1_aO;o-ze_ zuA}j)dwWK0J5Gt14g<(Z{IO7IKO6O{>vmm7OMxXnae;0=qO|8pf|7j?QW9-B1ZJKj zEOOYdJe%U|c1p2a#~Zs3`DVmq(`Wd-9JYolSjtP;i*fX-O((c>c^-}(x{@h8{&s_t z>?_XC##!3fh_sXw05D9)8T_hiUyLv1?7z|kZ-MhHxd-2+E_jvBj{ICH{u54FP>;R& z*ATxItkJy5kqRCZBOLz#D$&z?eWdC#2u@S`tWO8=p*XTRqI9l9;07O^AP?7?$vV7K zzSt(sI^R|Sib($eN-nv9RF1}`TXu6!LeAK7MP{8`Z~1aS=t-$#)gd?!Aob>}nOvnf zwp(U(ZJDJphFtBzs%KHRbGaq`X@^veUu$&FP-!_u4Y-#83ixrwJjSj#0CU$Bp4aN{ zwlXj(NbeCqVJZSi{N8b#QL*9Vm`H6FdV^-F;KOs zB)Xhuu{9`@2Pg2S2}XJfT#3Cz)y6Hes^MfKniAc?0LV!7ry0&TD@UGxytMgJWbz@! zNEtMMWO~wlqu73QdEougkD;SPg~%vV$*7yn^Lo_Yc>d|8`HPN*rfIZSD-SQ`$WfoA z4H}*{kII*FV{<(rVBH%(jR_)oZVQzdQIYkf$pic-47utkI6RNSsXkOTtRpjHKhA;c z>rX4YkxCUn#wfGgG$IEroS$lOIpouXYC2Nv9;S;lO_3V04TDO@cUp0bXCjl!Am)uh z-=RZM(zNNN7t>frB&skRuONMDC?4}+K)`gtBDGlqE(jFCZyGjLK&f%mO+JJT3lt=~ zFSsxNa=eEW&p79Te>#;1eMQQNFssffs_nou#<-0WEZ_hsg6|w{tgCHQ z&u{0->YYz5o(Fy^t%r|%Jtn4XVbmj&QlyovUT#`9f7d6HCLc5Ht-W!9mm zLGu3qX+T@J5(E6JD_XShr;P01PSrvXP=+37BD}lAQT!_KZP)f4=B{D~C0Ma1uS|;G zbh#sUt@a-@t)c2#zmEJNps4=T)}lsX@}eEgPo@QP`hUf1jeAymEjveKwnhL?HdL_3 zVT$wr01n=KIMJq?R?zJqQ1fKnyoO?1@fDHdUyk~{uCW}tTET9SDa=A&n2)A7ta)VP zWUND!neBR(p{olg{>|DYDt0sWHRo4t@q*&)#d+c@Rg9mKSkZ$IYV!$yXg?JQo#JWa zkmsK~TwPAyAoz&U+bP{@+H}5C zf&JFbcYSK^mvd>O>F*SND0$_SA2MmKa@qCkUTE64h;;+L_WpSnvKbBqQ@n|8ppxC@ z5Gg!NPu(?6H+zcLN2X2j14hvh+uUpOqk;1zB#^}YDVnFpe+=lFd74;flqdrwPBZV5 zUT1NvcxoF}wVzp8WI@ZKa$SAYdlj8~AXM`8LSJ1I~!=ntvR(Bd#DsqYsY>syYU^-oF|Z^ z1^wA0KHX~`2x5?A#;h~W{z)H=HcN=5xoc)DJh7fof%%%A-O-mJ*Cb$6UAL)LMVm`l zVpTTLARYFo{*|+%Yu7p?f@?V%H|+eJR&9_j1TnGP2Wnf*CTT99ovx)(5Mt=9g?#$@ z)yKG+I??e*#-T`-+6%bK{N@}qo@o$K=J$~zJcx*?I327i@ApR#5<|U97Bmv(% z)jPzPu#qG=BN-%~D(88tHpdpw+bG4fd6^e?d15QCFaSMQdDwskS4dkA@0y}!u_~DQp zyK%=0o|O!y)n@xVvyI2@D3hPdyh^FDf1efLRvJCf zh+SM+kdOBryZcw@7-(M!PtkrxUkRCQYjEgfP}l<`sl{k%o+Z`vaKa0-BI5-n8-O0( zm2UP}tswGQ2^@og-n|d@Y5j)3Xdl|QR<@7f{{V+0wb5mrQscy$l*=8ZxGYyEozKW4 z3J*%swCQ2#b4l5GhK$_(mp(AQiSZ9j)qE@C8@&fuhT$cJ7U83f*&QE}2n-2aZ9JUd zSMT5KE&l)o4)|5^Yr*jNZ{j7~8V8814%uUwHbHW7NNAXolY%qTJv!IsU&3GbA&0}A z4*Y69CGnoI;_Jv1I$OsSHde8?1Cka;c>rvXOD;w-wbDLOFj{J*G#sbTGnE-y}LmF z0B4d$*n_FTDlzo;?^ssCSEVaS6=wE6u1m3w^(;3bhI3yrYM<~@ui5iPxe)4pGqJah zMj|=ocPh9Y@VNa&RkHs8f}DI7)%;5rhWr=eeJ5LzYpCIc?52}zmS8iS9B_MzkE_*6 z_8%;-Yads~Fm5VX$R@Mx<|F{a4URzVS0R1FZ>3@c+ZWQ2qYd7jMJ)vF)QrLhAbwQe zFW#o3jkMR??@x|l z4ZP$Gs4*#0&8GSQHD2cFgBKOetle+>Le zx0l4a2A^$V;uxU)-PBP4E=EffZbnHs8;?rXGHqH%MJ!W~yFHHt@bU=?H2 z^872P(e+f3;*xOS6P0L4C-Ki}^4aaR-v;Y)={_RSq_w=YlWg{L9#oN@y~m;VuD8N| zC1~YW@|A!fG%1`YKhB$rOxASluh8{4H8^0~HKm&;m@*lH;N#n%t=%&60NzoROox}> zjlWTYTwH!Bj^@=Zt)m4(;6%gpt!*b!Ne04Lga8=9!B58(cJn!>8#A}Jnn#GptVTG? z5x9Q6DwX})MvRQdfO4^%M7D_vZ&h}Pkb7v(J72jx<`?2CGZ>5`p+^&a(UB#fG| z$#|@m zUAC{L-y>e6pk7->*(z7=la4cjM_$7<)Jtckc%M#7t7!vnPcj*lat~qs2(DMe9}cx! ze;7e$VDWi6t@g`lrC=5*T>aKPyYuKPw9q^yulPF5_;+2{E)rHT2(nSofI&h>J@e3v z@;T?4R&-HLJ&T_R^B9t+kYL167McfO#>l;!a6DtEBN4hlSKFe`-eP*XIL` z;B`NT^sES&d0{}{jC`ZLOLrxvnKWw@OkZY5AP_&#sI5CqsDYRcR1c@VD>@-I6$jo> zcXc`IpXpca5+_wFCl0wI9eqD4hjFcqtt#cM*pcNfbJP;Vkx>>hGQ7l0VN%O;{GX7UZ~& zGEw_-5u1vROST^{MJIMRJ^SPEtgTC5vD2<%it6Yr(zotnKv|e`oG8gX{{SjoOIOlt zZ9dM?`JKVMN=M(w1sj(c_(iF~&V*xSwl{Hbj8 z3nsNPyaDklZw6~$WW84V3%=Wh1MW6{@E@Ta>(IPe;B6iSw z>~WaXcEQQ*o|L5A(j&dGhhj59L$u zBBdzDsm4TvC}|sp;fOqsdSXFrW)C!J=8|$srySy5Lmtdc)*Nu8^hNN z(;lhEPx32Y!@scC?SJCNE293-`s(DIKBwi`p(BI-xs>$pj&sFL*D;fDJa5Dv9*0n} zX)Ga)E@MV;smGW=$sBjbO3l&jbzM61P4Nw_ypzWE(#v#uor#=}f0u4PmGv|q@JwIZ zDI{5B_;;kE0ycxQ$)G*EKHI~BQ$EK_lba4aViv^hP@VD%mkZ22k&CI z)TXB|T|EpjGD^}$W~pZ#sykV-!z9_>Aiyo}^{lI_b(zcwJN)Q3tFhz(gOA3p>X9|w z+(s#-Dl*9FkIUAeg(4E}cZnq4e|NW_#ya*jq+@w%V-}c}P{RaXWPEKi?Id(HddwL}ZF;hUju{WDJ0WVDh*mfk-z<-k=q#~krmD7fxER+gnk zjIa_$pDF9c1u@l`0Z?+k!rkgtxSrxc5R9Nzz(dgfRIeL`Rc_n{2dy~4-%x}-?Mmv) z6XIe%Z@LKJRF;aH%P>$_@E5%$zzTe}QX2$}ie-dyn2}tr;4(<4s-ewh6(f0E*M};b zfjm^l<^T{0KGa* zo+@UwRA73XQ<4=VmEex}s+DOtx6rj&^0rA0!BogWjPb@yMV&}?9HY{OJ&Dy;W#0Gs%!fhha zLOh5<$~$CYxUYtP1@(UgYcDC@vBzeCirBMmKTMy#z9^y$F&H=ZkEc#FE}7naKN_Y$j5~|Y~Z`M@_fh{v&$ojTiYls)V0ibP;ej2tlrBIH31p*ABJ3+5WWpBQ{qHG@v9P{yG7o6bn5?I7KO)0gB= zYUUFi%%^8{EOSFbMFUAcUdq&!Iz`^6E zKjBs{{w8SAX)<3VjEocHLxOYk?_L{ktzCIQJ^OsUGHX8jTf357reeyC%9GNwl$DB9 z(|aEEp?K}Ct&;BRRU24+&m~9x&08^evfkx01kn~B-jEOFUphssNW~sG-Eap+tld*v z@l~Fvw_0|yD%#|Rjavo11su_e)PBiMS|3MhzAV(OZJq6I;z={|j-ZOIq&5JKj}U5B4D)J?r#~W(n>35!U2+#eJfO=N`9XZ{sdXUG)i#f5)HOd4 zUZYQWuEv2l9$94v^c7aa;t-&B!e^x8?yQJ+xo z_l6;F5J2lG2Rm8$IqGU9Clz$dj5(c}J<5NGmVhC*jhMGDmFe{6oo(?F+GcoUM;lMd z6?s2e@cUnl+Fa#DyhLPVoFB@jpW`-}46)rTxGp|qRXG)mYDVp*RH(I~?RLI7gn}+v zhdgnTYZFrOqg_udR+o1X5Zqv}{Hw@3Mf*eBMH@w<>8#R!430<{q92VqmCb~AQl{qe z^3Ay8>C%*|S!hzCuXcMkhx~DIrb>`sUCl9>hCISsABj9yU1j3kKIv61Cs^IM0hkK; zm%=|6^%*baxx9-g5AOQoy=f1Pn!D<`p57+6L!6wFzl~{5YAc%iig25DT@Rxr)r=sr zPA~^jdWy)`J|x&^@feolGKJs*Fl)yj_JeIo)9m&!t^vc7kVmypUx~Id-n@F9ssPKC zk%=JvY07%uESOT4+C9I+e-muABnx#Z-pzm%aa&rKh~U$0{Q2YqCj$qX`Rc>sZi8iV z87GenamGg9(xuk?Yjdh9+{dX%$Op=d#~7-OX46fMRGN~u$GltX<5FGmIRGAc6!^SD zX@e5#QM0d6xEk>v4*X6Q_|wLq12SXF4agNs#2zTS(`A!Tw7e&B=V3i66Oz@E>HFF< z=p8FvlHm(n%)5a&QC7dTTYlCce_HvT!{ZjeZE}~X2`HKQRmd5s{{Z2qbz5ClIIe6P z0FBMO@GD7Ic0n3dE`1{&p(;5tvh5vCaf-7Y>`XEwU%=Oa-Tu@XJW=@)!d=P_-HqJ- zm7(GP0NO7|o)Z+1vgZVDEyZZ1H6*)|qcs-U?K9sV3~T`IdeV#VV=SZ`b*~q_{h@50 z=tj9z!0EdO-=%KD@r%M5xlKMTS7W~=a7KNrRNpn5Gist&vFVn#jWIc81F;9KNhYBb zCl26et$BsliLGoMXNOjJi0A_mTe@G1^xv^7YI>eo#&?y-KZvS~+jg*}%^2M7Be_TF zZ4>hkIp6kdQ~cY}kBJ*Chp2ZQmVLNyw!c zbY*il(Dav)2W)#%ZCB?xu0|gk+(<&SJwV-u=xXzL+QQ9qb20)4KuI+0q{-(=>U1C| z7$+ZEY?6cEJL0)I>nht$)?S6 ziIU7tI~wO~d~2XRvphPg?2jSbws3vxA5{3m;9GQeeQ<4z{LH9MYW7!1pJ@6WY?_c} zJa_!6rT2`qJu>I)mv@^R8Rw;WUy6Te-wJ6(4Xg%e9kINU2=zFwU&WuaH-Ti+8&D7D zx%;tgCBIQmm8O-6QmJ#?t^Of+Q&70_to4Z8hQJDQlUCnf(`8RL?a=|y7LX6?Ume;0 z(6^fP+>!W4!*6S_fMyCoW9m4l^?wz3@LIN`FN)*~{ld&}-koZcIhfk1-1?ivUlTN~ zC0YpXp=RhA+y(seT;=b@%_i4Rdz%aR%-eot6RB1Db6+;;R(>q;!ktT3*5`DLU`BZa zel=Eqhqu#RJ;Yunxv`DT9uyoOQ-FKcv8PTZZZ~?f+$Z?`c@2frE~gC6M*xLlKO@C) zSHB!Qa8^jHbrne4t1{%D$2G;<_&Z3^;Cs8RR#(sQV;QRYandjDnQS#-D#yb|?^Nu% z7Z}9sf8k(!PlnB}+h0aS1no0&e_F@5@xO~N?o(Gy9`Z*A<~GcJVO-{@BDdAzpFg@M z_ljGu;ay^UL7K-;@+>2XSyKo{YEyUEt6OAsnt#Mk8|k(Y&7yc_>@=VN&mkle^{h`5 zcq8IBi*FZM)%?35A!B#5Ykuv0K~-@IQtz&2o0yGDPhpDA;mYi9f~kso*z| z6@o`31K4z`YAlxRN^R+Q$fGV}k42n%7}jBu4~`3}m@H9&&1qp{dLf_5$FHu3Noy{wMHl)}L&zC9^2U zan`wsEY(*Ep!O;%q?}%$tjZSG_LnyJmPHKX459eVXm}sN7ndif z<|MqnHcD;?W>P>3i<8fwsSEjl4d*BLcGQ9yZb8C~DCB$8(P_d}Q#6<>+#a+f0GiMzJdEG#WF(KJ_6d2`%v1IQoVIqOX) zEi5$5yOfdvAcJvb8N>eoAxWXBzq4Dng`#I0nkg3rPo;KVBk(QWhKX}=ED}cR$Vn9c z04m6`v5wV#X57v9iS0+Tw&8t7+CtIB8aRe?$;CbiE^elh-Q&iWW z*S;&yC$RADkKuHK#M130NeLD=1MT#$qJQA2b{b}(`*t<@A1nJyK(&!~g+5_bE1nOk zn(^-r_(w%w7TW6`A)Y&!{@8($(<{RajCK|F)GJ5ol<%dYzsSZ{xts8h_J6SPt@?PU z#M%a?x-tXg+s-_>E?)qtBOi15*V5ncv%GQP=%CYd5Om9HD8gIYS;OVW5cE|T1MsaD z@dlF9D%|QZM#2U1AOvBP9cw$p*N-Kyn-UGXaO8EbI<;wHY9~1Q1bef;_)+^+{9Cv2 z1-ibyAtgj@xtNS_0p$L5^k;%UZXXosaK@U#M>`O9D@G+9y7%kNan_+`+)=7_KTy6C{@2=Hh;3pw7lI)C zZ5YQv)iZHU{MZuzT0zkH?RN zAGY`GHSsq4;g7~`OU2qV>687Q-&Je7nKY}o&nYFmvJH$F46ZPGf(9%15B7Hbp>>s0 zq-wg%(g=tmNhWsB_;md%*}P}tp9B0@@M-W5#NP|(o+HsFU}e&^?K(TlV!$3uQmX=a z#&ABh+k?l|q3+2k$FtpfT*gtHU61Bd#{NC{pW~f8$FKZSzP&@AHY0k$B=%)o1Ni2d z@CQ%$iK%>L@V|ik1FCD^ZPoloWp0*w4gAo}H<@u79i}stI49;Kj=ih)zxKQT0D=~N z$G^112gUyY1R#UqSBRmrm0*v;8ca*2Udx5@{QFYCCm`jcAajxpN&f%@_WuBafBY`} zg#0lBc>BWE*B=qAudXhC;V!we4AQ1mP}|GML>n>`5aS~t9M`E=H^V$5j3DmxwUW1= zW``MTq56lS+^x>}<5yVs6pzhd#DzOSE!5|3d9AB3YY6V( zJ+w~a2dQAc;a;f<1>m0b@(wOKG1=I(nPvH@)X4GxC+SZd^fay5C9qLT{6Bl}pkoDb z)`YA`l&#eLX(%9$z3E>;*@YBRt8ML4G|-fep@%fIP$#)sc*7D@06?m;rz0bS#b~+% z$Q4HMLdXaog=-dLIN6ll3t+1B>sj|mQHd##6q4Sa)v~F(flyrAhRNw#EzFv^<=-2A z0eElY7M3J2MQN)+hO*QU1uWSaSqK?rz{e-Oe66hLJ|*xLwC(85jUNg$Z;GBBn@_p73x6C;Y;M5ABMw0N6M^{Fkd?H19aL*L zE?2Sg&Yj|mv{esss@WS^Q~v<3T@H=no5JCvyTNApqys;lao!~Gp0D7&UT+QSwk-_y zkB3sP zcNzfmfnaoBBw&g7B`8l*nozN`;_Ws$|xJU=Wq?xq8@pOv`gt^2~K zD?1z%t92PWhst>!>wx&%t^Jq7QfUS7bqv4?sLBqc`+xQ8)ov^Tf*54~0CyGh{{Y7Q zS!VHz>GpE57J#b`xnqKH_*NBKgl=`mRB zmgG%^M8MBhQS*D%JDZqdiKDQ8qh&kV*mmgadSR8|8Z2V;!;QAG>kG@rzJ``*kJBmr=7oC7KQo>7}5=}z`T_roi=t^6VTIe0cHBbRBqy3v;AXFYc_%vhGsdMK=F{{RT& z#5c^puBUsT+UQ;shyE#V2(^{Y?xGny;ZOL|w!3sOh+^mclm0YOS<7=FvTOHnz7iO?>6Jg@PEQct zx}&sF5_^3>VFl8CqSZA9T+Fty22dCfr>=gqQC+k65!d!nBkFT1 zBl$>6Cppjf(`~hzjQJ)Q%8r=_{Ai-0JD4rXm%6>oY}-*eZgLO!)u?qjqF{*(KosZY zKjTFe$zOC8Hb&Gs)yu#$6k`B%2h;0Jk5rsoYzUbAf5wU{X#6GplGE!K3$=Wx$Zoj@ z{AtUoP5=TV>F9sPiYZk788i3>NvvFKKe~_dKjTXluQ_A;nEwDH{xnfubUq`BI}lvz z*9fN(r%vGi0F5Q4t#K?P%#9C2(E5F7qP4?+5Z4XyGGFZ(1FQK-oO}NOjavTExJa3m zP!ZGRqKfT0p64OrJxX~s0Ph@RlgTSm+Upk$7;_AH+Bw1h02(Nz_L)-nQ9L@V#kZIu z&(Qw>jaiRbxqrPBeLWBO(M2`!Fk1+^tkFAdhCVuEAMvb}@h+t{uFyZ1umS>wzC3zLw_C3#h3`u#MnTJK`qQ1 zZxrg5^3UZI8%f6pkJgKi6l$Bu-oLzGpRYfy6jeQ#{?Z>|u3jain-vD^X8`{IjcC~G zH?lxWl{v>%qKdkI0HwK?sB0HOcli^BE>QCdkWBRDr^T#LXO0?OCG-0xKw2H@a+6{+D(7f+jC z`#jN?L|>H|xa&m~v`pJ~I(=8enibSc?WRVBSA!WN*WSGMNOZi`R%swrXi4(Q5;6MG zMO*lgqx?2(+W5Ozx;GKeBCtpKat|M^Xxn&`QUNWuDNjS6e|jjb*T!Kjj$h)}kGw&q z*%Y#pG{k#>3Ui;%to#-Dm*QU%cziyp&_5?3V<0!znkb;t{#~8*{p(%muMCi&82$`{ z)9YNnhqc@5JF>RrS0j_of1MOjGbsEgLvP}JSs?S4Z<`04pYg2uyk)KV;oena>e)Zm ziYr&TC2Tg^;tz-*1`zk^4d;!At(9KMGJ6&v!rX6QA%eJ#7elpWh8a_*G=ND z8S0a13vSldp?K*JJwCKiTF2pFaTfah@G>qOq3X zI(Nd9%Js(68}ECgpsvQ9_M93&slG*MbFgbI3n<2;2j&t*HD+pR{azZrAQ~Z5Gk&Z7so)U9Y-4Q53UdR*E^_qPe8iYlf@EPV(KBd6_J7y$5qY^6jECYsigXY!U>89*LPe4{xpMA zoq#(Odkp^ojTBZ-;uwQdn6XbOG4wy+-LZKKh~*hck;AxS*j|m&K1h!9ChI4iYlYHbuYoF%M3syNyn~##;yIjRCU59 zBc3RtoIVi<+JnghyTKVDc;Np4jYS3Qv7p$hIrO56(QYn-W7X#oZxF?t<2XO#TOJni z7Ne)?CG8AqLZ9HGinZ|r*te?qg7;CE?U!jANLQA@{{R|`?b1OA*&6aW$tU{JMK`+? zhNioER6f)PfyRHvv;1Xr4~DOideo+4a!Duv_8%zHHgWfu| zhs)G;F95gNE71HAu4FXMi6I-6=o^wSN=2q4Gzfe7ISok;a`$q7x z_>aR{JepO)L>-2ocOoQ=-AgHA4r;H%Pl!GyhgzG%GTkKBvD+CCOBmc6*CQGHXrj2P z>lbsP8>85M6KZoot6X_;C)@{+f4%juYVh8#G|mi=M1E7){{W2?S3233KZNcqd}Xa@ z`eBmE&|q*F5f0QSiE z(eTIiu#dn#8ojYLR{Hc2ME4f#(uHPFPT=F56WYIMJQ3r4XIJpOo}qlOw6a*EvjjZ0 z(a%~atZ^xGFGFgd3pVY%M}H!RXyVBOqMz}rG3(ci`%H1;ccJw9(M5Ae=ldgK5 zqx_Hf(fzS={{TFr{Ezt2MPjxz1FYPEpDI7d{{W32+ZR9c%0I~e0F4w@od}lW8(X>= z#Bu&d{A#7vw{%A19C^o~{{R{&t6veE_8?7i?>O?K{Ezt4C)aMk{{UAXRoZN26xw%qQPB@7I$|okl?PtQ#2HcTX0X10xwot=;?R! z|La_y**ANw(TlzI%ri58SO4w+UaA3AfdDi#G=R##1Ne&oC;;%Vv2n4n@NjW(@$vBR z2`PvOU%VisA$#?bf{~7yiII+hfraB8Hw&8p8v_H61h2q*AyH9LW^O4tNnyEnBBDb7 zGlGVPk55QINKHgUEyT*eD)j$Me}@1hxM*o;X&7j)0q7)X7$j(aM*wsH02LV*t0Av8j_0P#~U)(9X!+s!z|vdi*v?oE*WG_2!XisAQi z@u9{^6LW;Ofa`t~F(;YS9|)fNrWD0kP(<(|F2}Sxx6JqBEJs&66fswb`n_zY^Dn)i zyo+SQgsuL5LR82~zq(g4Vf=O&!B*LIEUD$&>zEWZL1EVKlHh`fLnC!PxnbRB`=Oqh zb!=6s%q#7T<7L-I%LsUVW(_E@(v|b}Nm5!aM&#aNrS9=MC_ju(&RSzU?9J8|yzup!~S3r~?>Ze{~&JN~WSgel#X@J4#+SxZptUV}HPh`A}iT7&{% z>g}MvIN>kuTq?pv$aGf2@N%+oo>blovI~F@)=52HB!?i zYM-@uj;VGHh!8!c&%y57Y^T?+r5ew|eEz(RzjnD1H*vZpeM~m1YI&(Ozeo7&4$o+- zak>#Blt9r7iH0uEY=wEWwEO;u9;0qtPO@Mi-lUuTwfE+Ns54{@OLM#pVW_%nNLbuz z)PMW3i)m|w(^q>WDD^uYOO#l>Z^8a_ANhyMp>ZYT8CGX|x=) z8qwYb1972QdA7)X4V=`?_ls&R$|5vC$Z0a&Ht6UtbZ@sF`QGx^)_iW1%ye&ExaG5} z;2Y#&J!`le*Ud3?EBBL^k@rsan0e`%G;!W=&>*Ab=uV2qm>H@MpOoMYZfMNoBMXI3 zf8E7V#sSarCS#9&JW*x958nQmhplhxNBYK4o8K#3_(D(XrD*r_Z{|w5W*(k@@_KK`{ErRd7OH6xNHK2zV%*w@|RtiNMUe#6e zDAG*pFyw{A&ud(cy&+ZIo6N?jSy6!KLjyNxmM>+hA1okse*rJqYh<#@)2ChQ?=dEI zZhx53+gHu%4a~Nudp<{wX0ZA(7TQmnTgUX5fonlAw*ISG4|(J5k8KpC04}D4V(_)5 zGZBHF+Ufzug12R;U*`y)DMIDp%JB%)l~(@FVC?+6KLd$tx$|fN-EzsHn&1M}y4Af% z3oICozD{bjfL)^F{8K%r)7~2iS8&pkXD`ZOLSedM`jI{bvG_ViP0Y-}rhM@9unH@f zOrO>5E<>FmBqQK=-Bup>&xYPRxu40yUB54Dw`Gx3NR#D>aj)g8-&}$;D|*WX4ijdC zaf6>E*i<2v?0jk}cVXhCTicI_P4eolrSd=1U2~JF81pzL8@j529@+Bv`N*MJ+@!KUCkAqbs}5FW z^=LN`8}1UL=u`tQa@7ElRart+4ZU)c!f?Fl%7l{3A$4poH?f9-a;63_Qmi=#U7 zNo+D5&>?EHS!Wo>5xiI7K^y|J4=G$Rc6kyF-LKdMy~x7i-xQ)J>mCYa@oYucH!OBCf5=^<;HOC~+ zIKt}AC2H5$LdJFs7MFkzY_#n8-CnO;%iq$meAVDig?l@xNP=+*yES~=aH1SvxGMdE zrpZ9DnRdM53EBGRzG|(Vfo)glm@LLWWRwz}`l~BYA$Pa{?#})g=PqA&?h5>PiO=?|A^@hePW?fvdc01t_ypV zhm&g9VN&S#YNpMd(l`lLy|cY*tN^SS98svWNVWXvO}a340e{P12Ps?}S}(AU6-UpK?D!q+GhD@v*8v`5h&VKVA66_z?F%c_zpg9hiw6B;wnp6~ogu?YNdYcyveS zLi`1&?mUk}nV04#)lVkQXTYAke*x>Cx!33x433lD0dpjYcK!kmg~j4o#qSXvMlrdD zK@l|&$kr*se)m8mvCO#xRBLD5?Hcbd1xI(vjS2d+Mt85Ly8u1knBO}yTWM8LmlDn~ zgVF2jV90H_UU0)yUOT%WEqhZvJ4s$HjY4LH#cVdNa#|&cdlROeXo?N4#l8cC@0zK( zf;oGus-nRQ0|J_x-@1)-=cGA{eAc^U{sNqbW$Yq-6*d4KGIo5@<*f3EM3+F&gw|e@ z>s{iKkhrUEWZUA~7ov;{*IgtAonI*?UqqaFbTfP5^Mf;ZHE7>FLtaEz&kCJ@oIj5ql)L^qw#=qqh|QTE zNq1+mVsUfyr2jUw%-pv$5Y~&51(vyy(~gN*iavU8J6gF=d;vR4i51Kng{-vZM3yZq zcC0i*c{e28>e@jW@vlLLrq~<2samK=6BGXSs~hsR+zgpx%k9+*|mK@B+=b>*0 zKn2R4(BnVMY{gBUE{2$;>^q@T;=bH5?XLd6xPTo(onmDeGbH8Z3(t0`{@p#s1I>L! zIelCei~R~McYw>7YQo@n43M@OCH7ZKD%+T6e4*^ndh3`U)}skO1ao?$TzO}9F3+A% znsKWuNu*lk_f9OI)<2UI*m$HjB4SyP5wBHd+z_Ss^F$>+S-bZ`jvoH7!kpxi5)!h) zjr28bCD!RXB`@u)&x^VjXhVV+pY}>$iTiR9=l@7conNs2o#j$5s4q3$Z}5fwOWF~I z*!C1Arp+nWf&FTQjoJJ0r$wu7mgX*dy2>>7UAdz zb5uu*CMyvhjCf+d>t~v<$TkNGfD^wDuXe(054jeaPTCSSX-ZW2P*kJOx}HiP#Jy=s z`jV7YN!4cT$O7%)S^KMw^6RAfIR{reTHY-(RKW`+0wp6lZ2eQGFE(N(YknuW5OLJW zH>WQVlJyG@W>&TSHGI!Tb{qUfA!0wrNIc`GV`obTL z+_n4??=5At(!`ldre5raO3bbZqgcq|^)1*y6sCf}v7D^?KB1ZwTpHw^;DJYY6-w>s zo7#WD)?V~h)l17_t4wr!?&haNjyGmMYpm(q+>Ev97VWY(eH+u_68!jb&eO57kTvG? z5&~`%DNdb1l71$p2vy{(j&SjnzW~lSa4(RY++as#elbKyUmfc*G2X>c-@gNooUL+0 zjbp{8#Ul?{FrPBioiYbEUObnqy=couFhRGjoY-~lgFL)0E{@Jn7=)@YtU?N`YuIDF4Lt1$j74ToG+ zeC85t>xF%BGs$4Ux9JjD>3s0xF}?`LC04;)s~q z81X%x&L<}{65h$P)96_yX4On2HA}Fvw4*QtyF>v85BN?_uQ7_u0$@G!KC}P*bpEE) zl*D^IrIx0Iqcv^FV>N6aW47f9U(i_q!U>ZJy}yL?_64*SyQFA-z$5DN&p?%>YzhRm()OxFPlExwK!ic(hrCPrUwi| zG-+wR7m`hf8>ZOsni6Zx^dbpdr&FKOmPp`IvmMFw)2)q8M=2PcGoIKR+(G$YDp@U~ z?guF5Tjo1m@9uLQBBO7d1kU(9Wbon2gP^NJd2TA1BlX^a6;lh`@`Up7ZLMqNoUc_; z3mvI98j43N#}}_|HWjp1u(f_|m;n*ysnCqZfsBsEmrBSCH?2L@-<$8&{{kwle(t(c z3X_tT#Z=7>`ogDutb_jo-fFLP2JmQr7=m9xlUj3~*9mQ$l`bGPOBkzOZCCPl3@BBq zr_LUITLwe(27|{YMDU@$WUyiT4XL!e=JX=b{8sgnwvL#EglZri=SVR+SWwaeeMe&`a0t29->(S%(U(y)CUQ_*qTSr7V^kDEGsBK7UXMfk{ z#Aj^%uuI428Ps_2Y1(+i-D>mR_Wo+BDx! z4@U}~@?^eNw4PktJV6TgySCD(P_I7TS2T3tg}}YfrXazs#0M@-bMBeFfGNTeTYz{x%tXxg#fms?fcX%aW=qtFJT1kDhie zuv0ma>tJEhQNpaDlwl#9OeyZ%m!eR_6ml`xzTbUle=8;S)8j=T#lcG`T^deOc+IVp z)W51{$Db~$NPizdI)ymL#XUDL>n0U=U+4xCmDffyqh@t5XqS+BI@8T}n??CDf{*x$W?|-{rv+ z8s`;aq*2QzB0w{xqB?eKn}$!dWWEp1Je5lv(fg>B`==G4pex(QF#PsoD9E|w*wyiE zDwa>Lsa@yM(Qh? zq{qLP7!Jej&sgKI-CYBeOTGYy7m3MoQfr|jakzk_Wt~>%c85D};;6SrX#BP3vdzU( zo&N$_EQ~aIy&h=>k_%#rrFcsF6zLD&5$)wy5+nt@{4B&5rA}oqO0`7x8cV;}T<=!r#1~a0% zeSfSqjney6K(1mA@Lg4Tjy9T=62p9`q~r8;?fc zUF19-{4oJ-b98~uRk6=tVZs}66tF8tDp zt_m0HtWQj>--Q*wg)!k3Op``Tc=LOj!;rbhn_BTEZTs>v1EHPG27U@Hs~OR)6hG8k ziK$$@a)){<2~)3inZupY23zL zos`PuMgb$`vl|g`XKK$44wt(-167P+Q7uw}Kh?6&ldyMzXzv!a=F>C2MNYBZSAP)xJuKk5uCezNsT8Wl|Q z)Y3JRC1grmu231lCYml;lt1>f3-mBMCftB@|Fc7O)kz#Je-mxt3$I$!Y|oU zSgj3L>|aS}ryf#~*WY}N8yl6QCCQ#bE~{?Jti?slg)Sh#pl8Y?UjQVFQwcC2d_7so zfxyF+Rm3KX#lyi<#>K+G8)7{xLPyijz&yZ-B$%6h2Dw9cz=(k#xY8(Fm6doIfptc!XEg)ambmNY{>B z5vi?;*@ypb5xN?hO<`-M`rSQU9oZo)1bJ^7m>r#sCDdMXHWDrl#Chu}DrJt85d>HSbxvtQhKR)j~h;LBw%!C5G(=7gclb(Ua~ zcNtr1knqyK_fMHU%E=LNOR%+3VU)9M_Z8V_m+fMPU<+73qW!vNM(2fdmP+Hza_~_y zie8B-=N^N5$Td?$)0t-$ z`)m%Q0-0f%MSbtcpzc1M>UOKw8mhJj#c6~rcw{O1DsVJ>1-L&RU(_%un~Ih`rb>WX zpUw-OWp$UzR&=I+U$ES;79G>87i_IslixV8v{WS6e%eL=jU%iuxMXFyttJ65b8A3< zMpE?dzYEh>)FY)KlKBklN5r1or9|x`cg!##9kvUq`zZ8EZ$vCu#pIrhTmTF-@%sy~ zOXa;V{(x<4q|_jzbDk?e=-@UnAr51bx}ad>p_U@o)M>M{_K~6`g5ChR^nOy=WZQ3!p7p$8UVz5{j&*yzlmb6Qvs!*+g)9@)& zt+o~=46^wPnB}{NyUOfgc9If`D+4_T!#kdus%IXwJAY`D<)=J*cZ(7zX;V46_w9bV z8EC7lNw3e((3jf4!)p57ASLB&HEVVn+1B~PVPC*A>{Z_AVoJ#GT4+#<2Y-t7mVi&E z5s1UNp4fc8W5ErBrwr}fG^Muk7U2J>iD3QR4MEjO7*}}hQ1ZlD2Bbf_0yaST zMDRO}hG(CJt5(@7uUyl75DSmw@5w<1E74-D6;0qyaJBtNRDh8uY;|&#XkpE8#{GTE zrt3F}jvv?WHsa>{k2u|CX6g{`GHbs+d=o{D3%$3k;mevp*s*2SXH1^GtYpD+ z=?ef3*G&dm$;y%q!5nuW5#iyt&Dk7ypP3k41kkd=A%L{ts2z_qJBe0|Z)kkYX&yzQ zDw1!CU06HyuETXiP0sa*ft^+T{px=KzAXl38??2wKC_E5&yL6hLVb8g;ie*!x6`1iWr_S@{rCvW7Q|% zh8%XG1JU)nr}QlGnKEtysU=;Lo<_d5xc}^e>wRve%MF}r7*4GI^B02s1*~byRs97J z6K9Cv*{8W~oe5P85d`N@1bOeLctwMkrR;Yr1L>EJ3MHI)(Rvdqa+Qm;Cco^1K#yi( z_z2acF8%mq>=_S>Uz0bevE{K??chBeke;EAYtqI`qm;<}`uOg1xZ0ype>Z^?%a1Ox zMV8M3Ojt_B`cQY(lzYLo3r5KPMOQ%s+N5Lu@}~-ITYk0{G;i;eXZ>QKd{^DZo0FQ^ zeP7&d7NTPUyDcMswX&MJ25`hyUwZ8Mjf;oGuKUS^d&kf!Pp#_5@GarDDN^5*{sN%e z43?T=|Ly*CdQyOZP=Y6%yHRdQyT>_yELGJjH5CCi8?t9j%;~9;q-w&V!;D%+VwO#e z%V=N0=_76fZkqNZfI8$Hi^9j;clmh0 zzkn$@TD;v_Gj8_Bs_*Vg*_f`k_JB01tx(jW<}2Ob^j>%2_w=?q3=(W&W8va&x79*QaImLGkr3NP*@*>BV82YW7Cm5nJ%L@K zXDU7^QATT<1M^gMVaKyO6(ET|Wq%p93j zp?Ce`%fWPEau;OvnJ|4g# z0ES-k>C6&_f3!%4-iaz`11`Hmq@=3*rM@DJ`#B`iKh{r+;zX6ih#IyThnnMmQ!eWd zX6vMp({iDdLxeV)xet0XkfD&#l;@S%>&6Y@o;fP&ybmF+rTu1Lj?I!R`FpJ9xvzK4U^M$ zM$IXWVd$6apwli3Yka^VQ|LG8K>L=!i;dF~HN_fS^B$EzD|MKB-s@|FIP4PRIH=b@*sevHpqExg z1Jola(NE>VN2|0J5^dtf&OU%dMWf;FK#0iXv~X~-)QI#jqWUWF(Y+jZ`DXFOvU z1K$hRGjL@>`QmdMzo`#}rXfZXt#0bB5wfvQlN~-fLISUbRd|PkphT9HY4U8-?^L^5 zQyO!Bi8zWX8Pxt_?isY(#eS7u6dak|fW?MQvf3o}>WI^7gsyxlP8jP=#<71Z%K}cT zG7unlPNy-T520{MPi`|X#6kRS5d8~SATobk#3S8c?Y7k7NKiUWY;psXNd{V}dWITz zVdB*Hud(l5W_n!balsV}W3vj!vq-e$wWbiG^X`;~Z?5J0yFX-=l*tA}MF)Fpd-QjI zX0caD>+A2voWG1j=P@hcMjU$o1w5(S+>$$})(x0kyd&#Z(r|4EJ3_e0-yhRRL}%43 zF~0IQyg-Q%ofLfCxAEgK4VBk58{YgVbIaVdSP+yKF{!19g5owf+;ZUGk-(2-9;;R! z6Fg9{<|xiN6jb0i|B$mDMAzsiUUbJsPOM8Qe6Kc5X!PHIuAR7gogqVXyd~K+&<=z< zY*|M?C<$}ZA;(Lo$S6z2C3lIlMftLjjen@(n&-04mugT9GD#e4Iq0hd(fC=l>LL8J zv}wxgN6uO{Y~G6`wGCOe$erpw*~w+dZ5H40^wC7v8EQ*~i|kUr=w0S(zf~6zaSqa*cF~#Jx2In`C{{sZySfeQ zkhTK(y1k-G+1FsgKIl`o)n2mLIBeCzpyA3zU^VAdk3;_O@DqUElr z^;+y4I<7yE2OF_pUl$x`x$>oVC*++38xt((IP^m#A-{+(NB*0!p@cSM8n&JL7~0?^ z{qE())`zNP@au|U?OKNjcr79cKSCTY+Su-l#C<)JUNm?Y#=}tULbEvfyZwE}N^GECU!ZMp z(aal0+fi(UXKIy&7^-~4DXIvwYrKh}agem`Qf#HR2KBz_f+}l{tzw^CLmFrI-lii{ zD2%ha_D)?^R3(<`5q66=4>DOxvB-W_eH1^FIZvf7jFvXQ#KGT~y}Tqj5*-R0nacJQ z^mCfHmGTCC^xeR^#9Ev=!O%6EWLrm&8j#OYpKK_Ee7_gcMcxV&G5paa98{1|qFI_} zEsX|Ep%2W)s!AD_mo)pr87itW9}X#9{3rrv35m=G@sxW01FRLF6Da#KZHMxT2NaU9 zG?xv$p&2ybH&6=F6;VI#qvB3SSXcQC1RNryfRWEOj05YFYK1>^pQ@66=-T|CW0?4& z{IOIaG`eo!C0_LNN%28|oUS{jZCy*iVJB2PCT~DzNeh!MJUaejt+2fII2ah9U**E5 zX#JBLYVsFQ0062B!EXi8jW0ZQ4Uod;HV`$cIj{OrlV(c8PfTMrcvQP#)iwP!pV!k^ zpbQR=qXdKsaR}!q0}cLwF;ZG>b^0;%_NvHnX5kF>jtblpbFXx>0^#tjS6*!%irBvm zM5Yr+Ax-5j)6xiX1I`iFL#HZd;S&CuI*flS66D;q0bPkE?7GP0TY+{<1{Tb(puE|$ z@ci@PE=x*9yf7-c_D`s7)rt&b^ts^1Q{cm@PqhMCf* z@)QcV)%&yHREx~l{KBmj+YeaROh`0xt%b+L4}N#;Yq;$`zFt-rb7ZYyoT5~|xyySD zg8i~-mRhK=P{5-D`=_kKAWXGtf_{q1v{WY2!I`w6Y)cb^f zeL0%Of`@e)Hh1Xz|8~7EkH>z2YE4XeZ6g;}?=2N{7kB2`dz`sdUc^~#X-AKMQ8*}? zekDtV&d2MF?Nl@a*jl$YTeK2$-fs)#H3H#$b82kyu86&f2ZtWF1CX~BVjbmgXYpKJ z_(z__<48pY-tu+v)+Em+6y?+85MZcpRPe673;vm{unI&WO17E^sA(MC4xf`m6Vfm^yH!pB^sjvjFt zkn7|W=N(Cm-_>~tPTz;AN3VJe2kcnEKaq75fr+PT?8Y~UT46UI#_yQkZhry0AGvHm zOzj&C_^4S$?i)F>YxXaor}gf;QfLCSLMwaggq8Qlu;u3fjjOhENj=N+$Z_pgJ*sHCIT|o8lD33fui9LW<-XhNvcm=VFP#g)4MP~$9t$7jnM}u+X zDYi<<14dNSn?hZ>N%f5`w?rZrWp;82I!7fhDW?}A;AbmlUgmcv#e9ph>te*wO*su2 z3Z5>}<2REUdN>#^4R?j+sCjg4XWsYU&gaHU)}9+_kGs1mO~>eCv#U|;Ka*!Vk_kwnAf?Pc?8({fgt)Mg>aFX^>U}zFXa-&{xTRVRiLxaxVE__ zO{lg%8*P4<#58XbS{n(BrK>M!i0Y)Pw#zTCn(+YGX6x(L3FFZAMkk!|w+7d2D*>+w zn(v7TG~V=t?IdiENH>W0e>kYI3gbhY9yIT(*Jt_jJ$an3|wlruF}M*@P5$}DNsmj%efyh^66CHQe#tH{RK`=B`-OCHVV^g93 zpxTS2w0s%WUsYD)<7+v8DJp;D*V8jt#|IKF~?CWq$HOo@x=+P

        ?h3^UOi`{sq^&;ia{z<`(g&UV;R|Z!<<9yC$G4COw8(z6A zghstdTmLh<)V_k#ZSz6LV3C?|W6$8bP_X4e4qrLSDTltv7uH_2L~Ss8K9tb{)K1Yg z`+UU37pgyn7eXOf;9Se<{8fxV#`HsTA;X)*KXY&Gr=%=?YwU)qnbf#Qu93gGZy|xYhkr09 zc+j91)L%hRnEg=tgYsyw4|VCE6l0##`&^mqMYg|yhd+(RD>2vPxpe0c4wDw;ta@Rt zT)4N|nU|S(hGiwjq0^1i)VJ0@ytY~`#_Jj*;%ladscPf=%a1+$aewMRmkAq(tSDE^ z(N~YqnYkERb+IZF*ZY@HkCu$CFM?M$SqiD+Md0eR;OLu{{=Y;o4&MZc=70EMwmuo4ECw27N zV2%dHJh0o^IMd}{z@LgB{cw4ri3(*1<-$vXi!A5_&g>UK*p-k+2jy(_R z$MRO-Zr2t@;1sDOO5LCjNs)VYDY_E%qB_JPDoB@fU5x;`Le`v0?CXe(3diH97ukp+ zDn!qWFu+SE@x-NrxIlK|;#hR8%%8`m3>gMH@tY73jP?EjCjht0Ov1Qp*9jFy*XN}p z_Ai>^;mbA<=|GptO}jzT;=h1BVv7Dlhu>x?@)MzK8pPV~_=X#OrdjTwh{UG}ld$Tc zxk1EDQCOvmUT$E^4mUg~W0vZ)J zpqXw69{h;qLZ%Q~4dOmN7d4i--2*=`-imOyZ+u$QucN#7UVE;})X0TeQ*c!tR8{_> z@8z1E>{PGrzV1WAoz3S{((cNrb2{wHRkM@u^pTikKlrN9;}VU?4B+{ey|<82CvRvY z^OVbAta=h?afG((y-pKmRnu^7Y=x9!Yo2coe{V-uuwWt8uGg2~I|bdjNNcP!BwF|C zF*Y4DXGu=wk(O~ffP)fQxTax7z+dzoN&KFo080xUpT=?%x08PMUw)JZh1PF-f)cu? zQw*15=!KjC*h2?(n=%z#pQbfpjJvwfKIrQ&=*F~`P`r7{yhKzGr{+R?7j8MZIP;ca z_kG0p+^Cv5GdV{aVkBLe#$mElf@dwCGrw{M*wco8(;JUGdr{zKFy~FMDbA~R|GJo! z1YYgLwebhJqG)jZnlp(K1fVOsyuXS3> z_oxs(KTCf|yOUdf`ODVPA=`VSS2sRT?7UUb>T*mwmhy)W!Nn{57Ia0q`~&GS*1qCP zsGcDsgP>juzy<}^x%V~{HKkQmqHNh^a^5$lvSef=tU?q>AodYSJgGFnYQ1_IS^0J0 zgE3zLEatFCZ&4cH!nxF}MMx z6*g)_PEz4z(Z7qpa*G~ zX(4csecXJpxys39=kvu|rRNZm78e{orulEDIt@6s@+IB-rWD^PXeE}){;-ePgn>a8 z)Rk*3Z45iP&&BTkgmffwwessjUqG}*HpwmAl7*=N|J&@A6Ly_(1obD6Pbew8FLf?- z$ZF*Lm+3|+D(13Z-TS^J6ZE@iTaaTVrBIn)AsY4RuC=gGm{G>3d6Lf5i;K^b(nitM z|FQU7N@I29-EFh=su99mWi>tjpKh)+25NjC+E|>DTq#ybGQsV0*liI~n~EiWmCf^u zTZH|Gy`ZH`N0xd0DHp<-HJA``4rz3|;D@egIq4?Y6Mh5mn`%N5)-J4UYy!RJlh=J& zge82GX@>{zwXS}NKZsuc7=*|*E`MBWRw3waHVsh#LKcrUb(vQK9SzfsUrqtMVfoqa zKAKEVqQb_huSVBI-~J}k1nYukIwW~r2X!YE#=VkGVe>JG#G0se4eYA*S2_WB)*qjUg|F& zl1P8bx=tJ~5~bx{AA?F9Tq#3TROxfx`DV%_dn=iZAjk!!5V%zQ`oe2+^yTK^9ONE}kGhfW@Cc zbLldy0*ecG=GZ5J5>{(hg$+7?%FN%JJ|6r0aGQgRo4VxNLTiYu!n|Rv$eEJJT5Ekneg2=-N?Ln# z%DECT!~;ev2_eLz(xr+XeLXX!^-ftDsn_1I3qoZ=O}&NgkzS#wi`0fY(f2xFUXIu? zH<{LNyguLfYFfq#>dqsnIrH_qOuUnV0l!PtW;usOyp2!ptiyykQbDY z3}LoL6)4!LmL8K#4)-k3{DyuT*a9^3^nf!v(C%|w-4UC4r4efja_dhx4?)5 zs=Ysg1zs@2?lsM**gbLsCh2OJt2d>dGjzh;IyK{|abtmaIFwF>r0>Me_Itz28Wuo8 z*ra!^{JX;}md!i1Rkw^@2(A`tn|F6pPW>GEDjHeG%c=X>rTMAJ2&?&diI>nM@87b1 z{4YBm`6y~(YZWg%ch6yF9@n2ue^S21p3#eJ^leP3E#G7lyR~tbmNi`wI~VpHrq41t z=st{IGSh{#fVc5hzsXpm3D$~>FbFc{vo9OIr5Kh$j1H{Yp<-aVfVAD@j!PTYR1_Z|w zdY6R#qu|M^u25yE#d0iJVQ*RLom!-6yJxVFMStPco!6X4U6qZca)c>5MTaIP4;mX5=HuE=%q*nSdP0@;-v3}IP&J#M z@@ji5#;`gKuirMOrOwQ@)U6iUz#283G)$j&^~e7U&_IwWXRADpMHVxFZTv-5&JZ6b z8^!b4EQ6|a|8wHL{NwHN0`a8%Np1!3@5o}Acv)9>ugl)M2(!sM zp}BJgO-6vd@68>RjKno-x(z_r&9oWwl-Nt4e8|jQi2H{3@5V3YD>pu~QAAP&m8PSY+sbZ~QD6m$?O&oB#Fd1FECZiwgEU`j z%0syw(fHHCLvga#AHC(iXfAw$B!^?aDD(=>ZeqJi3Ve4}@J0{#+L@MC1$_uDoGdI7 zFZl^A`fCcdpmiCSY_kQz>x7S7g6XTXI<^==x>2{G(^6(3@v(&C`3$9XF^rq5But$y z47N8Xu_$n6wHF3IdH6T1Ub%AcE4rs_7ja}?YfTXe(rB5W)H`>b*^p>)x@u-3@i%Ao zlhDKn5MXrnS4I8>2vj2O?umkjhR;xe11)J4iW25UE?mqRN@T0DME-6*RWWrci#W}%}yKCyY_>P zD=#073FC8FCe*@}uan;ZW;y5PL>tK5$bKix7T9`*ebGIDUQ7`)V4vsZ5n9$JCAW}f zJc25)k5LoDxaH|T_m1nBUBYkqA?15|A&$n40hy)) zZZks5>~zvgk#;*swy%;oEgq5dJg;(LgB=2F`bo6vwg#hs2oLw`>BuDGXTaM{JV}{v zr^14%z>1A;>(3-UGr`Cxtu_m^7DIA0^_o0Y$8O5Mfb*qdYzVn5;gkG`1AeLALQ=Za zT#}%}p^h-vi8_!E@WoDqN9yaLLznhjWtR0FE%WpK9yudS;lH#&~@TeFA=&&c4i zbUa)?+E2T7n1!%3bkwEh)Hbp> zTznaWfJIK_K`5rDH_=KqIBd>L^(vJh@$iE#^@plaa>WjT`|fO~b!Bm$)!K_92r=zO zhlaB-S|YzNwbi2ox8VIt*Wfa?NEIzPv$aoly-bx5n+w7;eRiAwZUm&Yv1dcyuhhCfF~nP4&*$VeP8*9uS@XXo${pTL9nOx78Fw( z3aSR*S*ONhK}ufzE)zUw@N33nWpnt~<*8+ztKN(G`7Z}cSnNL1Zv0#OX<`uJ0h_9# z#GWBFqq^0T1Q z1&UY|3*gVx=$-^-T3PxW?{eQDR~v|RNp{M|B;1k}uX&1!=*i;FyS*QMy(~)2MWU)M zRl1dR(8#bUpL3rt?fhML76Hl~d9Rl-8*7&5U6A774BA0wfqR}D>==aim(LHDgEY>x zmV>lQ5Exp2EPbT>PfuaCso9pp(H)APJq&znfmdnIo|9fDzSORjq6EJbSH<$_u70yC zk(uDQKJ`FV6U%I9RQA(!NP)XNpBcIABrI4!6Z>a<#}xV(-5W~bbl|i#!l{OKi(hiD zt36|~S6O@d{(y(nSwNoX%TQO(zkt~Io@eKtpLU!WHlHa{FTTil+zR(~UkF3Wq#;a@f&JzcuLq8YNN;@v@rF5-r!X|Ki~?|$c8})E zlt!CG${$mFxJ2^iD)>6Tc)6EYyC;P*xJ2sx25r3*pE>deqBbwglD#2(i;;o0E}L%nZYG38(`D&C_~X}7A30w)n1 zC4Z4_h>-01K#JMKH)6nQgnSe;Nbc`(A1e>nL_Accj>)af6-AH zPf#@MHJ2DxWess64nfvpEeCVQx27 zb6fS?7c`UIdXCR?n{Y?_@};ef&n1Lo>Ne#5=z3z-RPcSg1*>cAJn;`eI13Sg6a*H& z*0%usBjjb84$>RVyCKAOmQD6^O^HA0GasfjO;%ia?2V`!oKv)#7eh*FBxcb5Kk%h2 z-IeBijJKaodv|EPHoVis8Wp`Rs%1M(!p+4SjDQ8C)3kzE9#=Mz)L4?|viIc-_m-7o z9X`g`ggs3#aKKFiC#Re{*xRT>CT}b#9zVf8$0;K%Y3zg#dw!;r@h#3m z2aeWIy{jAehGD9fo;e7xH$QIb*H+e9qqVJ&+DEqGzY7PfSIwzMQ7qr2*`NDYUj`X@ zc{IZtF4=ucQ*~!hvElonr~XuD!*77JErLTMUk1@5nTDPoEyBu6MI;bQDQPSY1UvrA zZ=*r{N|KtMS-me+wx^ZY0#41pYy7UPJ=J0M-hLB6Y4lpS+yLJwk+$$fh(9-5*5oWV zLF&$Ql~k3@5LeUKOv_t%97qTITb4Kw2)0)zEY?mwNvwtkdV$j%n)@fxJH^f0$3&V7#_0>nAH04*N=Nxy#fUWW|U4*vj;HGyV% zX5GI_MT2`LT)D4dHopnMhFiRn<^y7pyWC#lJ-?-+m9wEFV2N5CVhyZPN;kQ{x0~4Z zO)?gOK?H%p39XdvwX8tMKuXI31MJhyifh?<97BO=b^hu2nW2whVBP+Frpn{!<|?7bE8i2E5)$0XLD>KeB2^)U!5CcWKCEK!0>BKy4%wjskB}0{w1n zw+90sWC*E}0l$zx(#IR8FBe!vxQAVQLnsZFO^0zimG2h2#`_?tsiPi+L}ExzbCGWML00tRCv&Pac}!CC=In`lo9Z@^t#Bz=tI|5Yqf`4p1wVIVE zm5z7?&Snqay3A8a{5Mx?z#ur-tLhD4YE)$0HerW?a&g!y4Pn2{-q1l7Afqnk#&&g- zZJh63AnRh*clK4GuWQ@xBKG?gHiJ^ijW`z^?KdB?j<69s0R%MI*mhU+)7*1%OqXcE+r=D4h9=l~nI6acc7;FZd>tXpj@xX=wEp2*Y@{ z%E!S|vDvyYwI`Oj16yp{P{{(0SA4AfCaJUl=Oe{%aOE2-j)fNsuWxU{7*5mOHS@Kj zlqW)6>7KzOV~C%mD(BZRr!EK@{-chX2bMc?nma4U46^D)Ol|2!*HXtOtN0J6bS{poP$7ciQxFIEWnIufp^`gc)p7wNS+{^a|!rIW&>Du0e z-LDeqvwI^h%jn*JL%g(}4`n%ZS=-y%gP#Mbb$VGvO-(a5GGH-PPx^zu>S*W6+~~FO zS5PuYWDj9za}Rx|i~j(n&NRI;eJY-}N~oRwlOA8P*K{L+D-Utlj|#t~`j(@nb%s+_ zy70v*id@`nCj@`Bo>+NCd12)pp*G%EqLH%3*RY2*z!s6g2ZW^Ma(~Aoo&F%texiw) z_Ci0&S$8bKd}D*%AnftUf}W_W$AIx);%sMtRiMT ztck|YO@aRa zkoSs6+R^|dUg|EctZTZ8R)Lt>7^@@oWM$)Z&lXtBx^wa6`pC9^olj6f+AnYHgrBD% zkOIxY#PTe1gmjgSlic7)!Adncm|bGSbZ%d2zBk*_bgfW!*kA7N+RAt+I*N}l$|Pw0 zE_Ksl>Pev^2Ht$48P(U4?}*&;J0nbePIEqe=Ya4m~>UO&P0Q0u-n$;jGvpNy;D{a*h7>YBGmsL|@bF+@y| zstbC}m z#hsd3^p#0uPGPYl7FRm8gkn>J#g!b>B}~q z%QL97HgZ}QA>yxd3r*6tOA(wW?`wsUwlGj)Y3(TID#{3+2X#`&i)>nKtZ8)zum-qY z8cy~!MoG2Sb6KsLp0vc-cC<7Sv@WX*jnW$c2P+w=&g#0!B?j%dAGgZt_}Fglw8Czq zmT5?K_vi1(Lx%f_Ci}+Q_V`cS)&NVr%^$UtN8I6epC-c}3((Y_of@A?>WN!SW{yE| zAJjY91n0Usak<6R@?tqhANx;)ZmCN5)V6qRWFUtF`p1HoMr>{mjjR(ew$G<`{Kj`6 zc5_r+vb&XG({*orb2W`M3@swEh2QfT{{Z$zKd5*`Q^_Yr>TIghh^*49n})lI8{MuQ zoE2L%$LSi)B+%9vsii;gm7IpV`d$8tuc-o;mUo;vzpe>BK;rzYcUV%zNvOqNLjBYg?B5yZVf{=$Be%j1Jwfs5 zbu3`tOHc>qA^w+kcpa2Nu6nMYl9zaJjlspFc;Jto$k5ZR{uOlr)jECD6FT$IxHMek zu<`!@!rOkJxDVmJyZjrhDYrXpRX@p+{vF5pUGAb!N*NwawltsY7cO|~Cmwj~Cn44< zO;)d1T5erX>z{x~AL#@EZ`X5dFHI|~^2--U<7;H(l9<;$%{z|Z%yIP<=t-#_mNQty z%q_44lX31Rx7jqmbGHCS+&Fnmkhp`s-~s_Y6t6kEiMSU8dHGF6abu$qwWY4Vi{A;6 z$k>S^^y3}V++4_-CH8nDl^dfDYnmSMdt%55UiOw+z>r7AJE7V9%IOP905-t!wl}nZICE1jOwMhKNWUrN*L#_|;kmbxqa$rb;7JFM zlmhQ_WNrI$f6^E<6DPLhoAKco!Fd6=Z(b%7 literal 0 HcmV?d00001 diff --git a/public/static/admin/style/template.css b/public/static/admin/style/template.css new file mode 100644 index 0000000..599e607 --- /dev/null +++ b/public/static/admin/style/template.css @@ -0,0 +1,186 @@ +/** + + @Name:layuiAdmin + @Author:贤心 + @Site:http://www.layui.com/admin/ + @License:LPPL + + */ + + + +/******************************** + + 模板开始 By xuzhiwen + +*******************************/ + + +/* 产品版本选择面板 */ +.layadmin-panel-selection{width: 768px; margin: 30px auto;} +.layadmin-panel-selection .layui-panel-window{padding: 30px 50px; border-top-color: #ddd; text-align: center;} +.layadmin-panel-selection .layui-panel-window h2{padding-bottom: 15px; font-size: 18px;} +.layadmin-panel-selection .layui-panel-window ul{margin-top: 15px; text-align: left;} +.layadmin-panel-selection .layui-btn-container{margin-top: 30px;} +.layadmin-panel-selection .layui-btn-container .layui-btn{width: 100%;} + +/* 通讯录面板 */ +.layadmin-maillist-fluid .layadmin-contact-box{padding:20px;background-color: #fff; + border: 1px solid #e7eaec;overflow: hidden;} +.layadmin-maillist-fluid .layadmin-text-center{text-align: center;} +.layadmin-maillist-fluid .layadmin-text-center img{max-width: 80%;border-radius: 50%;margin-top: 5px;} +.layadmin-maillist-fluid .layadmin-font-blod{font-weight: 600;} +.layadmin-maillist-fluid .layadmin-maillist-img{margin-top: 5px;} +.layadmin-maillist-fluid .layadmin-title{margin:5px 0 10px 0;} +.layadmin-maillist-fluid .layadmin-textimg{line-height: 25px;margin-bottom: 10px;} +.layadmin-maillist-fluid .layadmin-address{line-height: 1.5;margin-bottom: 20px;} +.layadmin-maillist-fluid .layadmin-padding-left20{padding-left: 20px;} + +/* 个人主页 */ +.layadmin-homepage-shadow{box-shadow: 0 1px 1px rgba(0,0,0,.05);background-color: #fff;border-bottom: 1px solid rgba(0,0,0,0.17);border-radius: 0;border: 1px solid #e7ecf3;} +.layadmin-homepage-panel{margin-bottom: 15px;} +.layadmin-homepage-panel .text-center{text-align: center;} +.layadmin-homepage-information{padding: 15px; border-bottom: 1px solid #e9e9e9;} +.layadmin-homepage-pad-ver{ padding-top: 15px;padding-bottom: 15px;} +.layadmin-homepage-pad-img{box-shadow: 0 0 0 4px rgba(0,0,0,0.1);border-radius: 50%;} +.layadmin-homepage-font{font-weight: 600;color: #2b425b;font-size: 1.2em;} +.layadmin-homepage-min-font{margin:5px 0 10px 0;font-size: 0.9em;color: #afb9c3;} +.layadmin-homepage-pad-ver a{line-height: 1.1em;font-size: 1.3em;vertical-align: middle; cursor: pointer;background-color: transparent;color: inherit;padding: 6px 12px;} +.layadmin-homepage-pad-ver a:hover{background: #5FB878; color:#fff;} + +.layadmin-homepage-about{padding: 15px;font-weight: 600;color: #2b425b;} +.layadmin-homepage-list-group{font-size: 0.9em;line-height: 1.25;margin-bottom: 5px;} +.layadmin-homepage-list-group li{ padding: 5px 15px;border: 1px solid #ddd;margin-bottom: -1px;border-width: 1px 0;border-radius: 0; background-color: transparent;border-color: transparent;color: inherit;} +.layadmin-homepage-list-group li i{font-size: 1.333em;line-height: 1.095em;vertical-align: middle; margin-right: 4px;} +.layadmin-homepage-list-group li a.color{color:#337ab7;} +.layadmin-homepage-pad-hor{ padding-left: 15px; padding-right: 15px;border-bottom: 15px;color: #758697; text-indent:20px;} +.layadmin-homepage-list-inline{margin-left: 15px;margin-right: 15px;padding-bottom: 20px} +.layadmin-homepage-list-inline a{display: inline-block;} +.layadmin-homepage-list-inline .layui-btn{font-size: .9em;line-height: 1.42857;vertical-align: middle;height: auto;padding:4px 7px;margin-left: 0px;margin:0 10px 10px 0;} + +/* 左侧个人信息区域 */ +.layadmin-homepage-text-center{text-align: center;margin-bottom: 15px;} +.layadmin-homepage-padding15{padding:15px;margin-bottom: 15px;} +.layadmin-homepage-padding8{padding: 0 8px;} +.layadmin-homepage-paddingmb{margin-bottom: 15px;margin: 0 -7.5px;} +.layadmin-homepage-content{margin-left: 15px;padding: 0;} +.layadmin-homepage-content .new-section-xs{margin: 12px 0;color: inherit;border: 0!important;height: 0px;box-sizing: content-box;} +.layadmin-homepage-content .h4{font-size: 16px;font-weight: 600;color: #2b425b;} +.layadmin-homepage-content small{color: #afb9c3} +.layadmin-homepage-text-center .layui-icon{color:#FFB800;padding-right:5px;} +.layadmin-homepage-padding15 .layui-col-sm5 a{font-size: 11px;height: auto;line-height: 1.5;padding:5px 10px;float: right;} +.layadmin-homepage-padding15 .layui-btn-normal{margin:0 15px;} +.layadmin-homepage-list-imgtxt .layui-col-sm10,.layadmin-homepage-list-imgtxt .layui-col-sm2{background: none} +.layadmin-homepage-list-imgtxt .panel-body{padding: 15px 20px 25px;overflow: hidden;margin-bottom: 15px;} +.layadmin-homepage-list-imgtxt .panel-body .media-left{display: block;float: left;vertical-align: top;padding-right: 10px;} +.layadmin-homepage-list-imgtxt .panel-body .media-left img{border-radius: 50%;} +.layadmin-homepage-list-imgtxt .media-body{width: auto;display: block;overflow: hidden;} +.layadmin-homepage-list-imgtxt .media-body .pad-btm{padding-bottom: 15px;} +.layadmin-homepage-list-imgtxt .media-body .pad-btm p:first-child{padding-bottom: 5px;} +.layadmin-homepage-list-imgtxt .media-body .min-font{margin-bottom: 10px;} +.layadmin-homepage-list-imgtxt .media-body .min-font .layui-breadcrumb a{font-size: 11px;} +.layui-breadcrumb span[lay-separator]{margin:0 5px;} +.layadmin-homepage-list-imgtxt .media-body .pad-btm .fontColor a{font-weight: 600;color: #337ab7;} +.layadmin-homepage-list-imgtxt .media-body .pad-btm .fontColor span{color: #758697;font-weight: 600;} +.layadmin-homepage-list-imgtxt .media-body .h-img{display: block;max-width: 100%;height: auto;margin-top: 10px;} +.layadmin-homepage-list-imgtxt .img-xs{width: 32px;height: 32px;border-radius: 50%;} +.layadmin-homepage-list-imgtxt .media-body .media{margin-top: 15px;overflow: hidden;} +.layadmin-homepage-list-imgtxt .media-body .media .media-right{float: right;padding-top: 10px;} +.layadmin-homepage-list-imgtxt .media-body .media .media-right .list-inline{margin-bottom: 10px;} +.layadmin-homepage-list-imgtxt .media-body .media .list-inline li{padding:0 5px;display: inline-block;} +.layadmin-homepage-list-imgtxt .media-body .media .media-right .list-inline li span{font-weight: 600;} +.layadmin-homepage-list-imgtxt .media-body .media .media-left{display: block;overflow: hidden;width: auto;} +.layadmin-homepage-list-imgtxt .media-body .media .media-left .font-blod{font-weight: 700;color: #758697;} +.layadmin-homepage-list-imgtxt .media-body .media-list{padding-top: 15px;margin-top: 15px;border-top: 1px solid #e9e9e9;} +.layadmin-homepage-list-imgtxt .media-body .media-list .media-item{padding-bottom: 15px;margin-top: 15px;} +.layadmin-homepage-list-imgtxt .media-body .media-list .media-item-left{display:inline-block;padding-right: 10px;margin-bottom: 5px;} +.layadmin-homepage-list-imgtxt .media-body .media-list .media-item-left img{display: block;float: left;} +.layadmin-homepage-list-imgtxt .media-body .media-list .media-text{overflow: hidden;width: auto;display: inline-block;} +.layadmin-homepage-list-imgtxt .media-body .media-list .media-text a{margin-right: 10px;font-weight: 600;display: inline-block;} +.layadmin-homepage-list-imgtxt .media-body .media-list .media-text div:nth-child(2){margin-top: 5px;} +.layadmin-homepage-list-imgtxt .media-body .media-list .layui-btn{height: 24px;line-height: 24px;font-size: 12px;padding:0 20px;margin-bottom: 10px;} +.layadmin-homepage-list-imgtxt .media-body .media-list .layui-btn{height: 24px;line-height: 24px;font-size: 12px;padding:0 20px;margin-bottom: 10px;} + +/* 个人内容区域 */ + +.homepage-top .layui-card-body img{width: 100%} +.homepage-top .layui-card-body .margin-top10{margin-top: 10px;} +.homepage-top .layui-card-body .layui-btn{width: 100%;display: block;} +.homepage-top{padding-bottom: 20px;} +.layadmin-privateletterlist-item{position: relative;display: block;padding: 10px 15px;} +.homepage-bottom .layui-card-body{padding:0;} +.homepage-bottom .layui-card-body img{width: 32px;height: 32px;border-radius: 50%;margin-top: 10px;} +.homepage-bottom .layui-card-body .meida-left{display: table-cell;padding-right: 10px;} +.homepage-bottom .layui-card-body .meida-right{display: table-cell;vertical-align: top;} +.homepage-bottom .layui-card-body a:hover{background: #F2F2F2;} +.homepage-bottom .layui-card-body{background: #fff;} +.layui-card-header .panel-title .layui-icon{position: relative;left: 0;right: 0px;} + +/* 右侧信息栏 */ +.layadmin-cmdlist-fluid{padding-bottom: 60px;} +.cmdlist-container{background: #fff;border:1px solid transparent;} +.cmdlist-container:hover{border:1px solid #e8e8e8;} +.cmdlist-container img{width: 100%;} +.cmdlist-text{padding:20px;} +.cmdlist-text .info{height: 40px;font-size: 14px;line-height: 20px;width: 100%;overflow: hidden;color: #666;margin-bottom:10px;} +.cmdlist-text .price{font-size: 14px;} +.cmdlist-text .price b{margin-right: 20px;} +.cmdlist-text .price p{display: inline-block;} +.cmdlist-text .flow{text-align: right;float: right;} +#demo0{text-align: center;} + +/* 商品列表 */ +.layadmin-message-fluid .layui-col-md12{background: #fff;height: auto;padding-bottom: 50px;} +.layadmin-message-fluid .layui-input-block{margin-left: 0;} +.layadmin-message-fluid .layui-form{padding:45px 40px 0 40px;} +.layadmin-message-fluid .layui-form-label{text-align: left;font-size: 18px;padding-left: 10px;} +.layadmin-message-fluid .layui-textarea{min-height: 100px;font-size: 16px;} +.layadmin-message-fluid .layui-input-right{float: right;} +.layadmin-messag-icon{overflow: hidden;float: left;} +.layadmin-messag-icon .layui-icon{font-size: 24px;line-height: 30px;margin-right: 15px;color: #C4CBCF;} +.layadmin-messag-icon{margin-top: 4px;} +.message-content{padding:0 40px;} +.message-content .media-body{margin-bottom: 60px;} +.message-content .media-body .pad-btm{padding-bottom: 0;} +.message-content .media-left{float: left;margin-right: 10px;} +.message-content .media-left img{border-radius: 50%;} +.message-text{padding-top: 10px;} +.message-content-btn{text-align: center;} +.message-content .layui-btn{height: auto;line-height: 26px; padding: 5px 30px; font-size: 16px;} + +/* 搜索结果页面 */ +.layadmin-serach-main .layui-card-header{height: auto; line-height: 24px; padding: 15px;} +.layadmin-serach-list{margin-bottom: 10px; padding: 10px 0; border-bottom: 1px solid #f6f6f6;} +.layadmin-serach-list h3{padding: 10px 0;} +.layadmin-serach-list h3 .layui-badge{top: -2px;} +.layadmin-serach-list p{color: #666;} +.layadmin-serach-list li{margin-bottom: 20px; padding-bottom: 20px; clear: both;} +.layui-serachlist-cover{float: left; margin-right: 15px;} +.layui-serachlist-cover img{width: 90px; height: 90px;} + + + +/* 用户列表开始 */ +.layadmin-caller{background: #fff;padding: 30px;} +.layadmin-caller em{font-style: normal;} +.layadmin-caller .caller-fl{float: left;} +.layadmin-caller .caller-fr{float: right;} +.layadmin-caller .caller-seach{position: relative;padding-bottom:40px;} +.layadmin-caller .caller-seach .caller-icon{font-size: 18px;position: absolute;top: 9px;} +.layadmin-caller .caller-seach-icon{left: 6px;} +.layadmin-caller .caller-dump-icon{right: 6px;cursor: pointer;} +.layadmin-caller .caller-pl32{padding:0 32px;} +.layadmin-caller .caller-tab{margin:0;} +.layadmin-caller .caller-contar{padding-bottom:20px;} +.layadmin-caller .caller-contar .caller-item{padding:25px 0;overflow: hidden;border-bottom: 1px solid #e0e0e0;} +.layadmin-caller .caller-contar .caller-item .caller-main{margin-left: 20px;} +.layadmin-caller .caller-contar .caller-item .caller-main p{line-height: 100%;padding:8px 0;} +.layadmin-caller .caller-contar .caller-item .caller-main p:first-child{padding-top:0;} +.layadmin-caller .caller-contar .caller-item .caller-main em{margin-left: 5px;} +.layadmin-caller .caller-contar .caller-item .caller-main .caller-adds i{padding-right: 5px;margin:0;} +.layadmin-caller .caller-contar .caller-item .caller-main .caller-adds{padding-bottom:12px;} +.layadmin-caller .caller-contar .caller-iconset i{margin:0 5px;} +.layadmin-caller .caller-contar .caller-iconset i:first-child{margin-left: 0;} +.layadmin-caller .caller-contar button{margin-top: 22px;} +.layadmin-caller .caller-contar .caller-img{width: 40px;height: 40px;border-radius: 100%;} +/****** 模板结束 By xuzhiwen ******/ \ No newline at end of file diff --git a/public/static/admin/tpl/layim/demo.html b/public/static/admin/tpl/layim/demo.html new file mode 100644 index 0000000..249bc79 --- /dev/null +++ b/public/static/admin/tpl/layim/demo.html @@ -0,0 +1,25 @@ +
        + + + + + + +
        + + + + + + + + +
        + + + + + + + +
        \ No newline at end of file diff --git a/public/static/admin/tpl/system/about.html b/public/static/admin/tpl/system/about.html new file mode 100644 index 0000000..42b3471 --- /dev/null +++ b/public/static/admin/tpl/system/about.html @@ -0,0 +1,22 @@ + +
        版本信息
        +
        + +
        关于版权
        +
        + +
        + layuiAdmin 受国家计算机软件著作权保护(登记号:2018SR410669),必须经官网授权才可获得源文件使用权。不得恶意分享产品源代码、二次转售等,违者将承担相应的法律责任。 +

        详见:《layui 付费产品服务条款》 +
        +

        © 2018 layui.com 版权所有

        +
        \ No newline at end of file diff --git a/public/static/admin/tpl/system/get.html b/public/static/admin/tpl/system/get.html new file mode 100644 index 0000000..7585a7e --- /dev/null +++ b/public/static/admin/tpl/system/get.html @@ -0,0 +1,61 @@ + + + + + + + 授权获得 layuiAdmin + + + + + + + + +
        +
        +
        +
        +

        专业版

        +
          +
        • 始终基于全新的 layui 版本
        • +
        • 单页面应用,所有操作无需跳转
        • +
        • 支持前后端分离开发模式
        • +
        • 面向全屏幕尺寸的响应式适配能力
        • +
        • 灵活的主题色配置
        • +
        • 专属的开发者文档,助你快速掌握
        • +
        • 版本的持续更新,集大众之所需
        • +
        • 专属的会员群,与同道中人隔空交流
        • +
        • layui 社区 VIP 标识
        • +
        • 不限制域名、不限制应用的项目数量
        • +
        + +
        +
        +
        + 你所获得的不仅仅是一款高精品的后台管理模板系统,更是一项关于时间与效率的高收益回报 +
        +
        +
        + + + + + \ No newline at end of file diff --git a/public/static/admin/tpl/system/more.html b/public/static/admin/tpl/system/more.html new file mode 100644 index 0000000..c1f570b --- /dev/null +++ b/public/static/admin/tpl/system/more.html @@ -0,0 +1,22 @@ + + + diff --git a/public/static/admin/tpl/system/theme.html b/public/static/admin/tpl/system/theme.html new file mode 100644 index 0000000..9c497fa --- /dev/null +++ b/public/static/admin/tpl/system/theme.html @@ -0,0 +1,43 @@ + + + + + + diff --git a/public/static/admin/tpl/system/璇存槑.txt b/public/static/admin/tpl/system/璇存槑.txt new file mode 100644 index 0000000..e9d0a23 --- /dev/null +++ b/public/static/admin/tpl/system/璇存槑.txt @@ -0,0 +1,3 @@ + +注意: +该目录存放的是 layuiAdmin 的系统模板碎片,很多界面需要依赖到它,切勿随意剔除。 \ No newline at end of file diff --git a/public/static/admin/tpl/璇存槑.txt b/public/static/admin/tpl/璇存槑.txt new file mode 100644 index 0000000..d4d4a31 --- /dev/null +++ b/public/static/admin/tpl/璇存槑.txt @@ -0,0 +1,3 @@ + +注意: +该目录存放的是 layuiAdmin 的动态模板碎片 \ No newline at end of file diff --git a/public/static/res/css/admin.css b/public/static/res/css/admin.css new file mode 100644 index 0000000..201cb58 --- /dev/null +++ b/public/static/res/css/admin.css @@ -0,0 +1,103 @@ +body{background:#fff} +.cl{zoom:1} +.cl:after{content:'\20';display:block;height:0;clear:both;visibility:hidden} +.z{float:left} +.y{float:right} +.header{background:#009688;height:60px;width:100%;position:fixed;left:0;top:0;z-index:999} +.header a{font-size:18px;padding:0 30px 0 0;line-height:60px;font-weight:100;color:#fff} +.header h2{font-size:18px;padding:0 0 0 30px;line-height:60px;font-weight:100;color:#fff} +.header a:hover{color:#fff} +.admin{background:#fff;min-height:100%;width:100%} +.aleft{position:fixed;left:0;top:60px;width:200px;height:100%;background:#fff;border-right:1px solid #EAEAEA} +.aright{margin-left:200px;margin-top:80px} +.bform{margin:20px 30px 0 10px} +.aright .arz a{color:#fff;padding:10px 18px;background:#009688;height:36px;line-height:36px;border-radius:2px} +.aright .arz a i{position:relative;right:3px;top:1px} +.aright .arz{margin:20px 0 0 30px} +.aright .arz a:hover{opacity:.8;filter:alpha(opacity=80);color:#fff} +.aform tr{border:1px solid #EAEAEA} +.aform tr th{border-left:1px solid #EAEAEA;background:#F9F9F9;line-height:45px} +.aform tr td{border-left:1px solid #EAEAEA;line-height:40px} +.aform{margin:20px 30px 0 30px} +.aleft h3{font-size:16px;padding:15px 30px;font-weight:100;color:#333;border-bottom:1px solid #EAEAEA;background:#F9F9F9} +.aleft ul li{padding:12px 0 12px 50px;float:left;color:#333;width:150px;border-bottom:1px solid #EAEAEA} +.aleft ul li a:hover{color:#009688} +.aleft ul li i{position:relative;right:3px;top:1px;color:#009688} +.sort-input{width:25px;text-align:center} +.file-box img{margin-top:15px;} +.file-box{position:relative;width:800px} +.file-txt{width:660px;height:36px;line-height:36px;background:#fff;border:0 solid #fff;padding-left:5px} +.file-box i{position:absolute;left:16px;top:11px;font-size:16px;color:#5FB878} +.file-btn:hover{border-color:#D2D2D2!important} +.file-btn{width:110px;height:36px;line-height:36px;background:#fff;border:1px solid #e6e6e6;padding-left:15px;border-radius:2px} +.file-file{position:absolute;top:0;left:0;height:36px;filter:alpha(opacity:0);opacity:0;width:110px} +.pages{float:left;margin:20px 30px 0 30px} +.pages .current,.pages a,.pages a:hover{display:inline-block;height:28px;line-height:28px;vertical-align:middle} +.pages a{color:#333;background-color:#f0f0f0} +.pages .current,.pages a:hover{text-decoration:none;color:#FFF;background-color:#009688;vertical-align:middle} +.pages .next,.pages .prev{padding:0 15px;font-family:"����"} +.pages .current,.pages .num{margin:0 3px;padding:0 11px} +#login{background:#179898} +.login{border-radius:4px;width:260px;margin-top:100px!important;margin:0 auto;background:#fff;padding:60px 80px} +.login h2{font-size:28px;font-weight:100;color:#333;text-align:center;margin-bottom:50px} +.aright_1{margin:20px 30px 0 30px} +.aright_1 tr{font-size:13px;line-height:38px;border-bottom:1px solid #EAEAEA} +.aright_1 table{margin-bottom:10px} +.aright_1 tr:last-child{border:none} +.inside{width:100%;min-width:1000px;height:65px;background:#393D49} +.inside h2 img{float:left;padding:0} +.inside ul{width:120px;height:65px;float:left;margin-left:68px} +.inside .innumber1{background:#FF5722!important;color:#fff!important} +.inside .innumber{margin-top:12px;width:40px;height:40px;line-height:40px;text-align:center;font-size:20px;border-radius:50%;background:#fff;float:left;color:#009688} +.inside .inword{width:80px;height:65px;float:left;line-height:65px;text-indent:10px;font-size:16px;color:#fff} +.inwp{width:1000px;margin:0 auto} +.inout1 a{float:left;border:1px solid #C9C9C9;background-color:#fff;color:#555;padding:8px 18px;border-radius:2px;margin-right:10px;margin-top:20px} +.inout2 a{float:left;color:#fff;padding:9px 18px;background:#009688;border-radius:2px;margin-top:20px} +.inout1 a:hover{color:#555;opacity:.8;filter:alpha(opacity=80)} +.inout2 a:hover{color:#fff;opacity:.8;filter:alpha(opacity=80)} +.inout2 input{float:left;color:#fff;padding:9px 18px;background:#009688;border-radius:2px;margin-top:20px;border:none} +.inout2 input:hover{color:#fff;opacity:.8;filter:alpha(opacity=80)} +.inside2 h2{font-size:20px;margin:20px 0} +.inside2 h3{font-size:16px;margin:20px 0 10px 0;color:#FF5722} +.inside2 p{font-size:14px;line-height:28px;margin-bottom:10px} +.inside2 tr{border:1px solid #EAEAEA} +.inside2 tr th{border-left:1px solid #EAEAEA;background:#F9F9F9;line-height:45px} +.inside2 tr td{border-left:1px solid #EAEAEA;line-height:40px;padding-left:20px} +.layui-form-pane .layui-form-label{width:132px!important} +.layui-form-pane .layui-input-block{margin-left:132px!important} +.formbtngroup { +float:right;margin-right:30px; + } + +.login .login-title {color: #fff;text-align: center;font-size: 20px;margin-top: 200px;} +.login .login-form {max-width: 450px;margin: 10px auto;position: relative;left: -50px;color: #fff;} +.login .login-form .captcha {width: 140px;height: 38px;} +.login .login-form input {background-color: rgba(255, 255, 255, 0.3);border: 1px solid rgba(255, 255, 255, 0.3);color: #fff;} +.login .login-form button {width: 100%;background-color: #048f74;} + +.logo {margin-top: 20px;margin-left: 20px;} + +.header {background-color: #393D49;} + +.footer {line-height: 44px;} + +.layui-body {left: 210px;} +.layui-side {top: 60px;} +.layui-table tbody tr:hover {background-color: #f2f2f2;} +.layui-tab {overflow: visible;} +.layui-tab-title > li > a {display: block;} +.layui-btn-normal {background: #4caf50;} +.layui-btn-danger {background: #e90d24;} +.layui-nav-tree .layui-nav-child dd a {text-indent: 16px;} + +.form-container {max-width: 800px;} +.form-container .edui-editor {margin-top: -7px;margin-bottom: -7px;margin-left: -11px;} + +/*分页*/ +.pagination {} +.pagination li {display: inline-block;margin-right: -1px;padding: 5px;border: 1px solid #e2e2e2;min-width: 20px;text-align: center;padding: 5px 8px; font-size: 18px; line-height: 1.3333333;} + +.pagination li.active {background: #009688;color: #fff;border: 1px solid #009688;} +.pagination li a {display: block;text-align: center;} + +.photo-list {margin: 5px 0;} \ No newline at end of file diff --git a/public/static/res/css/font-awesome.min.css b/public/static/res/css/font-awesome.min.css new file mode 100644 index 0000000..ee4e978 --- /dev/null +++ b/public/static/res/css/font-awesome.min.css @@ -0,0 +1,4 @@ +/*! + * Font Awesome 4.4.0 by @davegandy - http://fontawesome.io - @fontawesome + * License - http://fontawesome.io/license (Font: SIL OFL 1.1, CSS: MIT License) + */@font-face{font-family:'FontAwesome';src:url('../fonts/fontawesome-webfont.eot?v=4.4.0');src:url('../fonts/fontawesome-webfont.eot?#iefix&v=4.4.0') format('embedded-opentype'),url('../fonts/fontawesome-webfont.woff2?v=4.4.0') format('woff2'),url('../fonts/fontawesome-webfont.woff?v=4.4.0') format('woff'),url('../fonts/fontawesome-webfont.ttf?v=4.4.0') format('truetype'),url('../fonts/fontawesome-webfont.svg?v=4.4.0#fontawesomeregular') format('svg');font-weight:normal;font-style:normal}.fa{display:inline-block;font:normal normal normal 14px/1 FontAwesome;font-size:inherit;text-rendering:auto;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.fa-lg{font-size:1.33333333em;line-height:.75em;vertical-align:-15%}.fa-2x{font-size:2em}.fa-3x{font-size:3em}.fa-4x{font-size:4em}.fa-5x{font-size:5em}.fa-fw{width:1.28571429em;text-align:center}.fa-ul{padding-left:0;margin-left:2.14285714em;list-style-type:none}.fa-ul>li{position:relative}.fa-li{position:absolute;left:-2.14285714em;width:2.14285714em;top:.14285714em;text-align:center}.fa-li.fa-lg{left:-1.85714286em}.fa-border{padding:.2em .25em .15em;border:solid .08em #eee;border-radius:.1em}.fa-pull-left{float:left}.fa-pull-right{float:right}.fa.fa-pull-left{margin-right:.3em}.fa.fa-pull-right{margin-left:.3em}.pull-right{float:right}.pull-left{float:left}.fa.pull-left{margin-right:.3em}.fa.pull-right{margin-left:.3em}.fa-spin{-webkit-animation:fa-spin 2s infinite linear;animation:fa-spin 2s infinite linear}.fa-pulse{-webkit-animation:fa-spin 1s infinite steps(8);animation:fa-spin 1s infinite steps(8)}@-webkit-keyframes fa-spin{0%{-webkit-transform:rotate(0deg);transform:rotate(0deg)}100%{-webkit-transform:rotate(359deg);transform:rotate(359deg)}}@keyframes fa-spin{0%{-webkit-transform:rotate(0deg);transform:rotate(0deg)}100%{-webkit-transform:rotate(359deg);transform:rotate(359deg)}}.fa-rotate-90{filter:progid:DXImageTransform.Microsoft.BasicImage(rotation=1);-webkit-transform:rotate(90deg);-ms-transform:rotate(90deg);transform:rotate(90deg)}.fa-rotate-180{filter:progid:DXImageTransform.Microsoft.BasicImage(rotation=2);-webkit-transform:rotate(180deg);-ms-transform:rotate(180deg);transform:rotate(180deg)}.fa-rotate-270{filter:progid:DXImageTransform.Microsoft.BasicImage(rotation=3);-webkit-transform:rotate(270deg);-ms-transform:rotate(270deg);transform:rotate(270deg)}.fa-flip-horizontal{filter:progid:DXImageTransform.Microsoft.BasicImage(rotation=0, mirror=1);-webkit-transform:scale(-1, 1);-ms-transform:scale(-1, 1);transform:scale(-1, 1)}.fa-flip-vertical{filter:progid:DXImageTransform.Microsoft.BasicImage(rotation=2, mirror=1);-webkit-transform:scale(1, -1);-ms-transform:scale(1, -1);transform:scale(1, -1)}:root .fa-rotate-90,:root .fa-rotate-180,:root .fa-rotate-270,:root .fa-flip-horizontal,:root .fa-flip-vertical{filter:none}.fa-stack{position:relative;display:inline-block;width:2em;height:2em;line-height:2em;vertical-align:middle}.fa-stack-1x,.fa-stack-2x{position:absolute;left:0;width:100%;text-align:center}.fa-stack-1x{line-height:inherit}.fa-stack-2x{font-size:2em}.fa-inverse{color:#fff}.fa-glass:before{content:"\f000"}.fa-music:before{content:"\f001"}.fa-search:before{content:"\f002"}.fa-envelope-o:before{content:"\f003"}.fa-heart:before{content:"\f004"}.fa-star:before{content:"\f005"}.fa-star-o:before{content:"\f006"}.fa-user:before{content:"\f007"}.fa-film:before{content:"\f008"}.fa-th-large:before{content:"\f009"}.fa-th:before{content:"\f00a"}.fa-th-list:before{content:"\f00b"}.fa-check:before{content:"\f00c"}.fa-remove:before,.fa-close:before,.fa-times:before{content:"\f00d"}.fa-search-plus:before{content:"\f00e"}.fa-search-minus:before{content:"\f010"}.fa-power-off:before{content:"\f011"}.fa-signal:before{content:"\f012"}.fa-gear:before,.fa-cog:before{content:"\f013"}.fa-trash-o:before{content:"\f014"}.fa-home:before{content:"\f015"}.fa-file-o:before{content:"\f016"}.fa-clock-o:before{content:"\f017"}.fa-road:before{content:"\f018"}.fa-download:before{content:"\f019"}.fa-arrow-circle-o-down:before{content:"\f01a"}.fa-arrow-circle-o-up:before{content:"\f01b"}.fa-inbox:before{content:"\f01c"}.fa-play-circle-o:before{content:"\f01d"}.fa-rotate-right:before,.fa-repeat:before{content:"\f01e"}.fa-refresh:before{content:"\f021"}.fa-list-alt:before{content:"\f022"}.fa-lock:before{content:"\f023"}.fa-flag:before{content:"\f024"}.fa-headphones:before{content:"\f025"}.fa-volume-off:before{content:"\f026"}.fa-volume-down:before{content:"\f027"}.fa-volume-up:before{content:"\f028"}.fa-qrcode:before{content:"\f029"}.fa-barcode:before{content:"\f02a"}.fa-tag:before{content:"\f02b"}.fa-tags:before{content:"\f02c"}.fa-book:before{content:"\f02d"}.fa-bookmark:before{content:"\f02e"}.fa-print:before{content:"\f02f"}.fa-camera:before{content:"\f030"}.fa-font:before{content:"\f031"}.fa-bold:before{content:"\f032"}.fa-italic:before{content:"\f033"}.fa-text-height:before{content:"\f034"}.fa-text-width:before{content:"\f035"}.fa-align-left:before{content:"\f036"}.fa-align-center:before{content:"\f037"}.fa-align-right:before{content:"\f038"}.fa-align-justify:before{content:"\f039"}.fa-list:before{content:"\f03a"}.fa-dedent:before,.fa-outdent:before{content:"\f03b"}.fa-indent:before{content:"\f03c"}.fa-video-camera:before{content:"\f03d"}.fa-photo:before,.fa-image:before,.fa-picture-o:before{content:"\f03e"}.fa-pencil:before{content:"\f040"}.fa-map-marker:before{content:"\f041"}.fa-adjust:before{content:"\f042"}.fa-tint:before{content:"\f043"}.fa-edit:before,.fa-pencil-square-o:before{content:"\f044"}.fa-share-square-o:before{content:"\f045"}.fa-check-square-o:before{content:"\f046"}.fa-arrows:before{content:"\f047"}.fa-step-backward:before{content:"\f048"}.fa-fast-backward:before{content:"\f049"}.fa-backward:before{content:"\f04a"}.fa-play:before{content:"\f04b"}.fa-pause:before{content:"\f04c"}.fa-stop:before{content:"\f04d"}.fa-forward:before{content:"\f04e"}.fa-fast-forward:before{content:"\f050"}.fa-step-forward:before{content:"\f051"}.fa-eject:before{content:"\f052"}.fa-chevron-left:before{content:"\f053"}.fa-chevron-right:before{content:"\f054"}.fa-plus-circle:before{content:"\f055"}.fa-minus-circle:before{content:"\f056"}.fa-times-circle:before{content:"\f057"}.fa-check-circle:before{content:"\f058"}.fa-question-circle:before{content:"\f059"}.fa-info-circle:before{content:"\f05a"}.fa-crosshairs:before{content:"\f05b"}.fa-times-circle-o:before{content:"\f05c"}.fa-check-circle-o:before{content:"\f05d"}.fa-ban:before{content:"\f05e"}.fa-arrow-left:before{content:"\f060"}.fa-arrow-right:before{content:"\f061"}.fa-arrow-up:before{content:"\f062"}.fa-arrow-down:before{content:"\f063"}.fa-mail-forward:before,.fa-share:before{content:"\f064"}.fa-expand:before{content:"\f065"}.fa-compress:before{content:"\f066"}.fa-plus:before{content:"\f067"}.fa-minus:before{content:"\f068"}.fa-asterisk:before{content:"\f069"}.fa-exclamation-circle:before{content:"\f06a"}.fa-gift:before{content:"\f06b"}.fa-leaf:before{content:"\f06c"}.fa-fire:before{content:"\f06d"}.fa-eye:before{content:"\f06e"}.fa-eye-slash:before{content:"\f070"}.fa-warning:before,.fa-exclamation-triangle:before{content:"\f071"}.fa-plane:before{content:"\f072"}.fa-calendar:before{content:"\f073"}.fa-random:before{content:"\f074"}.fa-comment:before{content:"\f075"}.fa-magnet:before{content:"\f076"}.fa-chevron-up:before{content:"\f077"}.fa-chevron-down:before{content:"\f078"}.fa-retweet:before{content:"\f079"}.fa-shopping-cart:before{content:"\f07a"}.fa-folder:before{content:"\f07b"}.fa-folder-open:before{content:"\f07c"}.fa-arrows-v:before{content:"\f07d"}.fa-arrows-h:before{content:"\f07e"}.fa-bar-chart-o:before,.fa-bar-chart:before{content:"\f080"}.fa-twitter-square:before{content:"\f081"}.fa-facebook-square:before{content:"\f082"}.fa-camera-retro:before{content:"\f083"}.fa-key:before{content:"\f084"}.fa-gears:before,.fa-cogs:before{content:"\f085"}.fa-comments:before{content:"\f086"}.fa-thumbs-o-up:before{content:"\f087"}.fa-thumbs-o-down:before{content:"\f088"}.fa-star-half:before{content:"\f089"}.fa-heart-o:before{content:"\f08a"}.fa-sign-out:before{content:"\f08b"}.fa-linkedin-square:before{content:"\f08c"}.fa-thumb-tack:before{content:"\f08d"}.fa-external-link:before{content:"\f08e"}.fa-sign-in:before{content:"\f090"}.fa-trophy:before{content:"\f091"}.fa-github-square:before{content:"\f092"}.fa-upload:before{content:"\f093"}.fa-lemon-o:before{content:"\f094"}.fa-phone:before{content:"\f095"}.fa-square-o:before{content:"\f096"}.fa-bookmark-o:before{content:"\f097"}.fa-phone-square:before{content:"\f098"}.fa-twitter:before{content:"\f099"}.fa-facebook-f:before,.fa-facebook:before{content:"\f09a"}.fa-github:before{content:"\f09b"}.fa-unlock:before{content:"\f09c"}.fa-credit-card:before{content:"\f09d"}.fa-feed:before,.fa-rss:before{content:"\f09e"}.fa-hdd-o:before{content:"\f0a0"}.fa-bullhorn:before{content:"\f0a1"}.fa-bell:before{content:"\f0f3"}.fa-certificate:before{content:"\f0a3"}.fa-hand-o-right:before{content:"\f0a4"}.fa-hand-o-left:before{content:"\f0a5"}.fa-hand-o-up:before{content:"\f0a6"}.fa-hand-o-down:before{content:"\f0a7"}.fa-arrow-circle-left:before{content:"\f0a8"}.fa-arrow-circle-right:before{content:"\f0a9"}.fa-arrow-circle-up:before{content:"\f0aa"}.fa-arrow-circle-down:before{content:"\f0ab"}.fa-globe:before{content:"\f0ac"}.fa-wrench:before{content:"\f0ad"}.fa-tasks:before{content:"\f0ae"}.fa-filter:before{content:"\f0b0"}.fa-briefcase:before{content:"\f0b1"}.fa-arrows-alt:before{content:"\f0b2"}.fa-group:before,.fa-users:before{content:"\f0c0"}.fa-chain:before,.fa-link:before{content:"\f0c1"}.fa-cloud:before{content:"\f0c2"}.fa-flask:before{content:"\f0c3"}.fa-cut:before,.fa-scissors:before{content:"\f0c4"}.fa-copy:before,.fa-files-o:before{content:"\f0c5"}.fa-paperclip:before{content:"\f0c6"}.fa-save:before,.fa-floppy-o:before{content:"\f0c7"}.fa-square:before{content:"\f0c8"}.fa-navicon:before,.fa-reorder:before,.fa-bars:before{content:"\f0c9"}.fa-list-ul:before{content:"\f0ca"}.fa-list-ol:before{content:"\f0cb"}.fa-strikethrough:before{content:"\f0cc"}.fa-underline:before{content:"\f0cd"}.fa-table:before{content:"\f0ce"}.fa-magic:before{content:"\f0d0"}.fa-truck:before{content:"\f0d1"}.fa-pinterest:before{content:"\f0d2"}.fa-pinterest-square:before{content:"\f0d3"}.fa-google-plus-square:before{content:"\f0d4"}.fa-google-plus:before{content:"\f0d5"}.fa-money:before{content:"\f0d6"}.fa-caret-down:before{content:"\f0d7"}.fa-caret-up:before{content:"\f0d8"}.fa-caret-left:before{content:"\f0d9"}.fa-caret-right:before{content:"\f0da"}.fa-columns:before{content:"\f0db"}.fa-unsorted:before,.fa-sort:before{content:"\f0dc"}.fa-sort-down:before,.fa-sort-desc:before{content:"\f0dd"}.fa-sort-up:before,.fa-sort-asc:before{content:"\f0de"}.fa-envelope:before{content:"\f0e0"}.fa-linkedin:before{content:"\f0e1"}.fa-rotate-left:before,.fa-undo:before{content:"\f0e2"}.fa-legal:before,.fa-gavel:before{content:"\f0e3"}.fa-dashboard:before,.fa-tachometer:before{content:"\f0e4"}.fa-comment-o:before{content:"\f0e5"}.fa-comments-o:before{content:"\f0e6"}.fa-flash:before,.fa-bolt:before{content:"\f0e7"}.fa-sitemap:before{content:"\f0e8"}.fa-umbrella:before{content:"\f0e9"}.fa-paste:before,.fa-clipboard:before{content:"\f0ea"}.fa-lightbulb-o:before{content:"\f0eb"}.fa-exchange:before{content:"\f0ec"}.fa-cloud-download:before{content:"\f0ed"}.fa-cloud-upload:before{content:"\f0ee"}.fa-user-md:before{content:"\f0f0"}.fa-stethoscope:before{content:"\f0f1"}.fa-suitcase:before{content:"\f0f2"}.fa-bell-o:before{content:"\f0a2"}.fa-coffee:before{content:"\f0f4"}.fa-cutlery:before{content:"\f0f5"}.fa-file-text-o:before{content:"\f0f6"}.fa-building-o:before{content:"\f0f7"}.fa-hospital-o:before{content:"\f0f8"}.fa-ambulance:before{content:"\f0f9"}.fa-medkit:before{content:"\f0fa"}.fa-fighter-jet:before{content:"\f0fb"}.fa-beer:before{content:"\f0fc"}.fa-h-square:before{content:"\f0fd"}.fa-plus-square:before{content:"\f0fe"}.fa-angle-double-left:before{content:"\f100"}.fa-angle-double-right:before{content:"\f101"}.fa-angle-double-up:before{content:"\f102"}.fa-angle-double-down:before{content:"\f103"}.fa-angle-left:before{content:"\f104"}.fa-angle-right:before{content:"\f105"}.fa-angle-up:before{content:"\f106"}.fa-angle-down:before{content:"\f107"}.fa-desktop:before{content:"\f108"}.fa-laptop:before{content:"\f109"}.fa-tablet:before{content:"\f10a"}.fa-mobile-phone:before,.fa-mobile:before{content:"\f10b"}.fa-circle-o:before{content:"\f10c"}.fa-quote-left:before{content:"\f10d"}.fa-quote-right:before{content:"\f10e"}.fa-spinner:before{content:"\f110"}.fa-circle:before{content:"\f111"}.fa-mail-reply:before,.fa-reply:before{content:"\f112"}.fa-github-alt:before{content:"\f113"}.fa-folder-o:before{content:"\f114"}.fa-folder-open-o:before{content:"\f115"}.fa-smile-o:before{content:"\f118"}.fa-frown-o:before{content:"\f119"}.fa-meh-o:before{content:"\f11a"}.fa-gamepad:before{content:"\f11b"}.fa-keyboard-o:before{content:"\f11c"}.fa-flag-o:before{content:"\f11d"}.fa-flag-checkered:before{content:"\f11e"}.fa-terminal:before{content:"\f120"}.fa-code:before{content:"\f121"}.fa-mail-reply-all:before,.fa-reply-all:before{content:"\f122"}.fa-star-half-empty:before,.fa-star-half-full:before,.fa-star-half-o:before{content:"\f123"}.fa-location-arrow:before{content:"\f124"}.fa-crop:before{content:"\f125"}.fa-code-fork:before{content:"\f126"}.fa-unlink:before,.fa-chain-broken:before{content:"\f127"}.fa-question:before{content:"\f128"}.fa-info:before{content:"\f129"}.fa-exclamation:before{content:"\f12a"}.fa-superscript:before{content:"\f12b"}.fa-subscript:before{content:"\f12c"}.fa-eraser:before{content:"\f12d"}.fa-puzzle-piece:before{content:"\f12e"}.fa-microphone:before{content:"\f130"}.fa-microphone-slash:before{content:"\f131"}.fa-shield:before{content:"\f132"}.fa-calendar-o:before{content:"\f133"}.fa-fire-extinguisher:before{content:"\f134"}.fa-rocket:before{content:"\f135"}.fa-maxcdn:before{content:"\f136"}.fa-chevron-circle-left:before{content:"\f137"}.fa-chevron-circle-right:before{content:"\f138"}.fa-chevron-circle-up:before{content:"\f139"}.fa-chevron-circle-down:before{content:"\f13a"}.fa-html5:before{content:"\f13b"}.fa-css3:before{content:"\f13c"}.fa-anchor:before{content:"\f13d"}.fa-unlock-alt:before{content:"\f13e"}.fa-bullseye:before{content:"\f140"}.fa-ellipsis-h:before{content:"\f141"}.fa-ellipsis-v:before{content:"\f142"}.fa-rss-square:before{content:"\f143"}.fa-play-circle:before{content:"\f144"}.fa-ticket:before{content:"\f145"}.fa-minus-square:before{content:"\f146"}.fa-minus-square-o:before{content:"\f147"}.fa-level-up:before{content:"\f148"}.fa-level-down:before{content:"\f149"}.fa-check-square:before{content:"\f14a"}.fa-pencil-square:before{content:"\f14b"}.fa-external-link-square:before{content:"\f14c"}.fa-share-square:before{content:"\f14d"}.fa-compass:before{content:"\f14e"}.fa-toggle-down:before,.fa-caret-square-o-down:before{content:"\f150"}.fa-toggle-up:before,.fa-caret-square-o-up:before{content:"\f151"}.fa-toggle-right:before,.fa-caret-square-o-right:before{content:"\f152"}.fa-euro:before,.fa-eur:before{content:"\f153"}.fa-gbp:before{content:"\f154"}.fa-dollar:before,.fa-usd:before{content:"\f155"}.fa-rupee:before,.fa-inr:before{content:"\f156"}.fa-cny:before,.fa-rmb:before,.fa-yen:before,.fa-jpy:before{content:"\f157"}.fa-ruble:before,.fa-rouble:before,.fa-rub:before{content:"\f158"}.fa-won:before,.fa-krw:before{content:"\f159"}.fa-bitcoin:before,.fa-btc:before{content:"\f15a"}.fa-file:before{content:"\f15b"}.fa-file-text:before{content:"\f15c"}.fa-sort-alpha-asc:before{content:"\f15d"}.fa-sort-alpha-desc:before{content:"\f15e"}.fa-sort-amount-asc:before{content:"\f160"}.fa-sort-amount-desc:before{content:"\f161"}.fa-sort-numeric-asc:before{content:"\f162"}.fa-sort-numeric-desc:before{content:"\f163"}.fa-thumbs-up:before{content:"\f164"}.fa-thumbs-down:before{content:"\f165"}.fa-youtube-square:before{content:"\f166"}.fa-youtube:before{content:"\f167"}.fa-xing:before{content:"\f168"}.fa-xing-square:before{content:"\f169"}.fa-youtube-play:before{content:"\f16a"}.fa-dropbox:before{content:"\f16b"}.fa-stack-overflow:before{content:"\f16c"}.fa-instagram:before{content:"\f16d"}.fa-flickr:before{content:"\f16e"}.fa-adn:before{content:"\f170"}.fa-bitbucket:before{content:"\f171"}.fa-bitbucket-square:before{content:"\f172"}.fa-tumblr:before{content:"\f173"}.fa-tumblr-square:before{content:"\f174"}.fa-long-arrow-down:before{content:"\f175"}.fa-long-arrow-up:before{content:"\f176"}.fa-long-arrow-left:before{content:"\f177"}.fa-long-arrow-right:before{content:"\f178"}.fa-apple:before{content:"\f179"}.fa-windows:before{content:"\f17a"}.fa-android:before{content:"\f17b"}.fa-linux:before{content:"\f17c"}.fa-dribbble:before{content:"\f17d"}.fa-skype:before{content:"\f17e"}.fa-foursquare:before{content:"\f180"}.fa-trello:before{content:"\f181"}.fa-female:before{content:"\f182"}.fa-male:before{content:"\f183"}.fa-gittip:before,.fa-gratipay:before{content:"\f184"}.fa-sun-o:before{content:"\f185"}.fa-moon-o:before{content:"\f186"}.fa-archive:before{content:"\f187"}.fa-bug:before{content:"\f188"}.fa-vk:before{content:"\f189"}.fa-weibo:before{content:"\f18a"}.fa-renren:before{content:"\f18b"}.fa-pagelines:before{content:"\f18c"}.fa-stack-exchange:before{content:"\f18d"}.fa-arrow-circle-o-right:before{content:"\f18e"}.fa-arrow-circle-o-left:before{content:"\f190"}.fa-toggle-left:before,.fa-caret-square-o-left:before{content:"\f191"}.fa-dot-circle-o:before{content:"\f192"}.fa-wheelchair:before{content:"\f193"}.fa-vimeo-square:before{content:"\f194"}.fa-turkish-lira:before,.fa-try:before{content:"\f195"}.fa-plus-square-o:before{content:"\f196"}.fa-space-shuttle:before{content:"\f197"}.fa-slack:before{content:"\f198"}.fa-envelope-square:before{content:"\f199"}.fa-wordpress:before{content:"\f19a"}.fa-openid:before{content:"\f19b"}.fa-institution:before,.fa-bank:before,.fa-university:before{content:"\f19c"}.fa-mortar-board:before,.fa-graduation-cap:before{content:"\f19d"}.fa-yahoo:before{content:"\f19e"}.fa-google:before{content:"\f1a0"}.fa-reddit:before{content:"\f1a1"}.fa-reddit-square:before{content:"\f1a2"}.fa-stumbleupon-circle:before{content:"\f1a3"}.fa-stumbleupon:before{content:"\f1a4"}.fa-delicious:before{content:"\f1a5"}.fa-digg:before{content:"\f1a6"}.fa-pied-piper:before{content:"\f1a7"}.fa-pied-piper-alt:before{content:"\f1a8"}.fa-drupal:before{content:"\f1a9"}.fa-joomla:before{content:"\f1aa"}.fa-language:before{content:"\f1ab"}.fa-fax:before{content:"\f1ac"}.fa-building:before{content:"\f1ad"}.fa-child:before{content:"\f1ae"}.fa-paw:before{content:"\f1b0"}.fa-spoon:before{content:"\f1b1"}.fa-cube:before{content:"\f1b2"}.fa-cubes:before{content:"\f1b3"}.fa-behance:before{content:"\f1b4"}.fa-behance-square:before{content:"\f1b5"}.fa-steam:before{content:"\f1b6"}.fa-steam-square:before{content:"\f1b7"}.fa-recycle:before{content:"\f1b8"}.fa-automobile:before,.fa-car:before{content:"\f1b9"}.fa-cab:before,.fa-taxi:before{content:"\f1ba"}.fa-tree:before{content:"\f1bb"}.fa-spotify:before{content:"\f1bc"}.fa-deviantart:before{content:"\f1bd"}.fa-soundcloud:before{content:"\f1be"}.fa-database:before{content:"\f1c0"}.fa-file-pdf-o:before{content:"\f1c1"}.fa-file-word-o:before{content:"\f1c2"}.fa-file-excel-o:before{content:"\f1c3"}.fa-file-powerpoint-o:before{content:"\f1c4"}.fa-file-photo-o:before,.fa-file-picture-o:before,.fa-file-image-o:before{content:"\f1c5"}.fa-file-zip-o:before,.fa-file-archive-o:before{content:"\f1c6"}.fa-file-sound-o:before,.fa-file-audio-o:before{content:"\f1c7"}.fa-file-movie-o:before,.fa-file-video-o:before{content:"\f1c8"}.fa-file-code-o:before{content:"\f1c9"}.fa-vine:before{content:"\f1ca"}.fa-codepen:before{content:"\f1cb"}.fa-jsfiddle:before{content:"\f1cc"}.fa-life-bouy:before,.fa-life-buoy:before,.fa-life-saver:before,.fa-support:before,.fa-life-ring:before{content:"\f1cd"}.fa-circle-o-notch:before{content:"\f1ce"}.fa-ra:before,.fa-rebel:before{content:"\f1d0"}.fa-ge:before,.fa-empire:before{content:"\f1d1"}.fa-git-square:before{content:"\f1d2"}.fa-git:before{content:"\f1d3"}.fa-y-combinator-square:before,.fa-yc-square:before,.fa-hacker-news:before{content:"\f1d4"}.fa-tencent-weibo:before{content:"\f1d5"}.fa-qq:before{content:"\f1d6"}.fa-wechat:before,.fa-weixin:before{content:"\f1d7"}.fa-send:before,.fa-paper-plane:before{content:"\f1d8"}.fa-send-o:before,.fa-paper-plane-o:before{content:"\f1d9"}.fa-history:before{content:"\f1da"}.fa-circle-thin:before{content:"\f1db"}.fa-header:before{content:"\f1dc"}.fa-paragraph:before{content:"\f1dd"}.fa-sliders:before{content:"\f1de"}.fa-share-alt:before{content:"\f1e0"}.fa-share-alt-square:before{content:"\f1e1"}.fa-bomb:before{content:"\f1e2"}.fa-soccer-ball-o:before,.fa-futbol-o:before{content:"\f1e3"}.fa-tty:before{content:"\f1e4"}.fa-binoculars:before{content:"\f1e5"}.fa-plug:before{content:"\f1e6"}.fa-slideshare:before{content:"\f1e7"}.fa-twitch:before{content:"\f1e8"}.fa-yelp:before{content:"\f1e9"}.fa-newspaper-o:before{content:"\f1ea"}.fa-wifi:before{content:"\f1eb"}.fa-calculator:before{content:"\f1ec"}.fa-paypal:before{content:"\f1ed"}.fa-google-wallet:before{content:"\f1ee"}.fa-cc-visa:before{content:"\f1f0"}.fa-cc-mastercard:before{content:"\f1f1"}.fa-cc-discover:before{content:"\f1f2"}.fa-cc-amex:before{content:"\f1f3"}.fa-cc-paypal:before{content:"\f1f4"}.fa-cc-stripe:before{content:"\f1f5"}.fa-bell-slash:before{content:"\f1f6"}.fa-bell-slash-o:before{content:"\f1f7"}.fa-trash:before{content:"\f1f8"}.fa-copyright:before{content:"\f1f9"}.fa-at:before{content:"\f1fa"}.fa-eyedropper:before{content:"\f1fb"}.fa-paint-brush:before{content:"\f1fc"}.fa-birthday-cake:before{content:"\f1fd"}.fa-area-chart:before{content:"\f1fe"}.fa-pie-chart:before{content:"\f200"}.fa-line-chart:before{content:"\f201"}.fa-lastfm:before{content:"\f202"}.fa-lastfm-square:before{content:"\f203"}.fa-toggle-off:before{content:"\f204"}.fa-toggle-on:before{content:"\f205"}.fa-bicycle:before{content:"\f206"}.fa-bus:before{content:"\f207"}.fa-ioxhost:before{content:"\f208"}.fa-angellist:before{content:"\f209"}.fa-cc:before{content:"\f20a"}.fa-shekel:before,.fa-sheqel:before,.fa-ils:before{content:"\f20b"}.fa-meanpath:before{content:"\f20c"}.fa-buysellads:before{content:"\f20d"}.fa-connectdevelop:before{content:"\f20e"}.fa-dashcube:before{content:"\f210"}.fa-forumbee:before{content:"\f211"}.fa-leanpub:before{content:"\f212"}.fa-sellsy:before{content:"\f213"}.fa-shirtsinbulk:before{content:"\f214"}.fa-simplybuilt:before{content:"\f215"}.fa-skyatlas:before{content:"\f216"}.fa-cart-plus:before{content:"\f217"}.fa-cart-arrow-down:before{content:"\f218"}.fa-diamond:before{content:"\f219"}.fa-ship:before{content:"\f21a"}.fa-user-secret:before{content:"\f21b"}.fa-motorcycle:before{content:"\f21c"}.fa-street-view:before{content:"\f21d"}.fa-heartbeat:before{content:"\f21e"}.fa-venus:before{content:"\f221"}.fa-mars:before{content:"\f222"}.fa-mercury:before{content:"\f223"}.fa-intersex:before,.fa-transgender:before{content:"\f224"}.fa-transgender-alt:before{content:"\f225"}.fa-venus-double:before{content:"\f226"}.fa-mars-double:before{content:"\f227"}.fa-venus-mars:before{content:"\f228"}.fa-mars-stroke:before{content:"\f229"}.fa-mars-stroke-v:before{content:"\f22a"}.fa-mars-stroke-h:before{content:"\f22b"}.fa-neuter:before{content:"\f22c"}.fa-genderless:before{content:"\f22d"}.fa-facebook-official:before{content:"\f230"}.fa-pinterest-p:before{content:"\f231"}.fa-whatsapp:before{content:"\f232"}.fa-server:before{content:"\f233"}.fa-user-plus:before{content:"\f234"}.fa-user-times:before{content:"\f235"}.fa-hotel:before,.fa-bed:before{content:"\f236"}.fa-viacoin:before{content:"\f237"}.fa-train:before{content:"\f238"}.fa-subway:before{content:"\f239"}.fa-medium:before{content:"\f23a"}.fa-yc:before,.fa-y-combinator:before{content:"\f23b"}.fa-optin-monster:before{content:"\f23c"}.fa-opencart:before{content:"\f23d"}.fa-expeditedssl:before{content:"\f23e"}.fa-battery-4:before,.fa-battery-full:before{content:"\f240"}.fa-battery-3:before,.fa-battery-three-quarters:before{content:"\f241"}.fa-battery-2:before,.fa-battery-half:before{content:"\f242"}.fa-battery-1:before,.fa-battery-quarter:before{content:"\f243"}.fa-battery-0:before,.fa-battery-empty:before{content:"\f244"}.fa-mouse-pointer:before{content:"\f245"}.fa-i-cursor:before{content:"\f246"}.fa-object-group:before{content:"\f247"}.fa-object-ungroup:before{content:"\f248"}.fa-sticky-note:before{content:"\f249"}.fa-sticky-note-o:before{content:"\f24a"}.fa-cc-jcb:before{content:"\f24b"}.fa-cc-diners-club:before{content:"\f24c"}.fa-clone:before{content:"\f24d"}.fa-balance-scale:before{content:"\f24e"}.fa-hourglass-o:before{content:"\f250"}.fa-hourglass-1:before,.fa-hourglass-start:before{content:"\f251"}.fa-hourglass-2:before,.fa-hourglass-half:before{content:"\f252"}.fa-hourglass-3:before,.fa-hourglass-end:before{content:"\f253"}.fa-hourglass:before{content:"\f254"}.fa-hand-grab-o:before,.fa-hand-rock-o:before{content:"\f255"}.fa-hand-stop-o:before,.fa-hand-paper-o:before{content:"\f256"}.fa-hand-scissors-o:before{content:"\f257"}.fa-hand-lizard-o:before{content:"\f258"}.fa-hand-spock-o:before{content:"\f259"}.fa-hand-pointer-o:before{content:"\f25a"}.fa-hand-peace-o:before{content:"\f25b"}.fa-trademark:before{content:"\f25c"}.fa-registered:before{content:"\f25d"}.fa-creative-commons:before{content:"\f25e"}.fa-gg:before{content:"\f260"}.fa-gg-circle:before{content:"\f261"}.fa-tripadvisor:before{content:"\f262"}.fa-odnoklassniki:before{content:"\f263"}.fa-odnoklassniki-square:before{content:"\f264"}.fa-get-pocket:before{content:"\f265"}.fa-wikipedia-w:before{content:"\f266"}.fa-safari:before{content:"\f267"}.fa-chrome:before{content:"\f268"}.fa-firefox:before{content:"\f269"}.fa-opera:before{content:"\f26a"}.fa-internet-explorer:before{content:"\f26b"}.fa-tv:before,.fa-television:before{content:"\f26c"}.fa-contao:before{content:"\f26d"}.fa-500px:before{content:"\f26e"}.fa-amazon:before{content:"\f270"}.fa-calendar-plus-o:before{content:"\f271"}.fa-calendar-minus-o:before{content:"\f272"}.fa-calendar-times-o:before{content:"\f273"}.fa-calendar-check-o:before{content:"\f274"}.fa-industry:before{content:"\f275"}.fa-map-pin:before{content:"\f276"}.fa-map-signs:before{content:"\f277"}.fa-map-o:before{content:"\f278"}.fa-map:before{content:"\f279"}.fa-commenting:before{content:"\f27a"}.fa-commenting-o:before{content:"\f27b"}.fa-houzz:before{content:"\f27c"}.fa-vimeo:before{content:"\f27d"}.fa-black-tie:before{content:"\f27e"}.fa-fonticons:before{content:"\f280"} diff --git a/public/static/res/css/font_24081_qs69ykjbea.css b/public/static/res/css/font_24081_qs69ykjbea.css new file mode 100644 index 0000000..b3d6a28 --- /dev/null +++ b/public/static/res/css/font_24081_qs69ykjbea.css @@ -0,0 +1,157 @@ + +@font-face {font-family: "iconfont"; + src: url('//at.alicdn.com/t/font_24081_qs69ykjbea.eot?t=1535387101554'); /* IE9*/ + src: url('//at.alicdn.com/t/font_24081_qs69ykjbea.eot?t=1535387101554#iefix') format('embedded-opentype'), /* IE6-IE8 */ + url('data:application/x-font-woff;charset=utf-8;base64,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') format('woff'), + url('//at.alicdn.com/t/font_24081_qs69ykjbea.ttf?t=1535387101554') format('truetype'), /* chrome, firefox, opera, Safari, Android, iOS 4.2+*/ + url('//at.alicdn.com/t/font_24081_qs69ykjbea.svg?t=1535387101554#iconfont') format('svg'); /* iOS 4.1- */ +} + +.iconfont { + font-family:"iconfont" !important; + font-size:16px; + font-style:normal; + -webkit-font-smoothing: antialiased; + -moz-osx-font-smoothing: grayscale; +} + +.icon-zan:before { content: "\e612"; } + +.icon-jiazaizhong:before { content: "\e60e"; } + +.icon-sousuo:before { content: "\e621"; } + +.icon-quanpingpad:before { content: "\e61d"; } + +.icon-shezhi:before { content: "\e607"; } + +.icon-renzhengv:before { content: "\e62b"; } + +.icon-shijian:before { content: "\e60a"; } + +.icon-guanbi:before { content: "\e614"; } + +.icon-tianjia:before { content: "\e616"; } + +.icon-tuichu:before { content: "\e601"; } + +.icon-shui:before { content: "\e602"; } + +.icon-qq:before { content: "\e618"; } + +.icon-weibo:before { content: "\e617"; } + +.icon-tupian:before { content: "\e608"; } + +.icon-logo:before { content: "\e603"; } + +.icon-daima:before { content: "\e609"; } + +.icon-biaoqing:before { content: "\e60f"; } + +.icon-nan:before { content: "\e619"; } + +.icon-nv:before { content: "\e61a"; } + +.icon-quitquanping:before { content: "\e61e"; } + +.icon-zuichun:before { content: "\e61c"; } + +.icon-charushuipingxian:before { content: "\e622"; } + +.icon-yulan:before { content: "\e60d"; } + +.icon-liulanyanjing:before { content: "\e60b"; } + +.icon-touxiang:before { content: "\e604"; } + +.icon-caina:before { content: "\e613"; } + +.icon-room:before { content: "\e615"; } + +.icon-svgmoban53:before { content: "\e610"; } + +.icon-shichang:before { content: "\e600"; } + +.icon-shouye:before { content: "\e605"; } + +.icon-tishilian:before { content: "\e629"; } + +.icon-fabu:before { content: "\e606"; } + +.icon-pinglun:before { content: "\e60c"; } + +.icon-zan1:before { content: "\e611"; } + +.icon-chengshi:before { content: "\e61b"; } + +.icon-lianjie:before { content: "\e620"; } + +.icon-yulan1:before { content: "\e785"; } + +.icon-renshu:before { content: "\e61f"; } + +.icon-huizongzuoyoutuodong:before { content: "\e623"; } + +.icon-404:before { content: "\e627"; } + +.icon-iconmingxinganli:before { content: "\e652"; } + +.icon-wenda:before { content: "\e626"; } + +.icon-top:before { content: "\e624"; } + +.icon-ui:before { content: "\e625"; } + +.icon-fengexian:before { content: "\e63a"; } + +.icon-jiacu:before { content: "\e62f"; } + +.icon-kiss:before { content: "\e6cd"; } + +.icon-biaoqing1:before { content: "\e63b"; } + +.icon-liwu:before { content: "\e9c5"; } + +.icon-emwdaima:before { content: "\e62a"; } + +.icon-quanzi:before { content: "\e7bb"; } + +.icon-wendang:before { content: "\e722"; } + +.icon-jifen:before { content: "\e632"; } + +.icon-aqrenzheng:before { content: "\e62d"; } + +.icon-pinglun1:before { content: "\e631"; } + +.icon-web:before { content: "\e6e9"; } + +.icon-yxj-expression:before { content: "\e628"; } + +.icon-tongzhi:before { content: "\e647"; } + +.icon-kaifashili:before { content: "\e638"; } + +.icon-huiyuan:before { content: "\e637"; } + +.icon-pinglun2:before { content: "\e62c"; } + +.icon-alipay:before { content: "\e630"; } + +.icon-jiaoliu:before { content: "\e6b7"; } + +.icon-chanpin:before { content: "\e634"; } + +.icon-renzheng:before { content: "\e62e"; } + +.icon-tiezi:before { content: "\e635"; } + +.icon-rizhi:before { content: "\e69d"; } + +.icon-weixinzhifu:before { content: "\e633"; } + +.icon-yinyong:before { content: "\e636"; } + +.icon-xiazai:before { content: "\e78e"; } + diff --git a/public/static/res/css/font_24081_qs69ykjbea.ttf b/public/static/res/css/font_24081_qs69ykjbea.ttf new file mode 100644 index 0000000000000000000000000000000000000000..9591644661095ad782f94e5f6527779788a33cce GIT binary patch literal 26036 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 literal 0 HcmV?d00001 diff --git a/public/static/res/css/full.css b/public/static/res/css/full.css new file mode 100644 index 0000000..75b65c9 --- /dev/null +++ b/public/static/res/css/full.css @@ -0,0 +1,53 @@ +/*! 默认风格 */ + +html body{margin-top:0; margin-left: 136px;} +html .fly-full{margin-top: 0;} + +.main{width:auto; margin:15px 24px 15px 24px;} +.content{margin-right: 360px;} +.jie-row li .jie-title{max-width:70%;} + +/* 头部 */ +.header{width:136px; height:100%;} +.header .main{position: static; width:auto;} +.logo{top:20px; left:50%; width:86px; height:74px; margin-left:-43px; background:url(../images/logo-1.png);} +.nav{position:relative; left:0; top:110px; border-top:1px solid #282C35;} +.nav a{display:block; height:50px; line-height:50px; padding:0; text-align:center;} +.nav a:first-child{border-top:1px solid #424857;} +.nav-user span{margin-top: 10px;} + +.icon-touxiang{font-size: 60px;} + +.nav-user{top: auto; bottom:20px; left:0; width:100%;} +.nav-user span, +.nav-user .unlogin, +.out-login, +.avatar, +.avatar cite, +.nav-user .nav{display:block; *display:block; text-align:center;} +.nav-user span{top: 0;} +.nav-user span a{padding:0 6px;} +.nav-user .unlogin{margin-right: 0;} +.out-login{margin-left:0; margin-top:20px;} +.out-login a{ padding:0 5px;} +.nav-user .nav{position:relative; margin-left: 0; margin-top: 15px;} + +.avatar img{width:60px; height:60px;} +.avatar cite{margin-left: 0; margin-top:10px; } +.avatar i{margin-left: 0;} + +.nav-message{left: auto; right: 10px;} + +/* 适配 */ +@media screen and (max-width: 1024px) { + html body{margin-left: 140px;} + .main{margin: 15px 10px;} + .content{margin: 0;} + .edge{display:none} +} + +@media screen and (max-width: 750px) { + html body{margin-left:0;} + .header{left:-140px;} + .edge{display: block;} +} diff --git a/public/static/res/css/global.css b/public/static/res/css/global.css new file mode 100644 index 0000000..04c3197 --- /dev/null +++ b/public/static/res/css/global.css @@ -0,0 +1,733 @@ +/** + + @Name: Fly社区 + @Author: 贤心 + @Site: fly.layui.com + + */ + + +/* 全局 */ +html,body{overflow-x: hidden;} +html body{margin-top: 61px;} +html{background-color: #F2F2F2;} +i{font-style: normal;} + +/* 图标 */ + +@font-face {font-family: "iconfont"; + src: url('//at.alicdn.com/t/font_24081_qs69ykjbea.eot?t=1535387101554'); /* IE9*/ + src: url('//at.alicdn.com/t/font_24081_qs69ykjbea.eot?t=1535387101554#iefix') format('embedded-opentype'), /* IE6-IE8 */ + url('data:application/x-font-woff;charset=utf-8;base64,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') format('woff'), + url('//at.alicdn.com/t/font_24081_qs69ykjbea.ttf?t=1535387101554') format('truetype'), /* chrome, firefox, opera, Safari, Android, iOS 4.2+*/ + url('//at.alicdn.com/t/font_24081_qs69ykjbea.svg?t=1535387101554#iconfont') format('svg'); /* iOS 4.1- */ +} + +.iconfont { + font-family:"iconfont" !important; + font-size:16px; + font-style:normal; + -webkit-font-smoothing: antialiased; + -moz-osx-font-smoothing: grayscale; +} + +.icon-zan:before { content: "\e612"; } + +.icon-jiazaizhong:before { content: "\e60e"; } + +.icon-sousuo:before { content: "\e621"; } + +.icon-quanpingpad:before { content: "\e61d"; } + +.icon-shezhi:before { content: "\e607"; } + +.icon-renzhengv:before { content: "\e62b"; } + +.icon-shijian:before { content: "\e60a"; } + +.icon-guanbi:before { content: "\e614"; } + +.icon-tianjia:before { content: "\e616"; } + +.icon-tuichu:before { content: "\e601"; } + +.icon-shui:before { content: "\e602"; } + +.icon-qq:before { content: "\e618"; } + +.icon-weibo:before { content: "\e617"; } + +.icon-tupian:before { content: "\e608"; } + +.icon-logo:before { content: "\e603"; } + +.icon-daima:before { content: "\e609"; } + +.icon-biaoqing:before { content: "\e60f"; } + +.icon-nan:before { content: "\e619"; } + +.icon-nv:before { content: "\e61a"; } + +.icon-quitquanping:before { content: "\e61e"; } + +.icon-zuichun:before { content: "\e61c"; } + +.icon-charushuipingxian:before { content: "\e622"; } + +.icon-yulan:before { content: "\e60d"; } + +.icon-liulanyanjing:before { content: "\e60b"; } + +.icon-touxiang:before { content: "\e604"; } + +.icon-caina:before { content: "\e613"; } + +.icon-room:before { content: "\e615"; } + +.icon-svgmoban53:before { content: "\e610"; } + +.icon-shichang:before { content: "\e600"; } + +.icon-shouye:before { content: "\e605"; } + +.icon-tishilian:before { content: "\e629"; } + +.icon-fabu:before { content: "\e606"; } + +.icon-pinglun:before { content: "\e60c"; } + +.icon-zan1:before { content: "\e611"; } + +.icon-chengshi:before { content: "\e61b"; } + +.icon-lianjie:before { content: "\e620"; } + +.icon-yulan1:before { content: "\e785"; } + +.icon-renshu:before { content: "\e61f"; } + +.icon-huizongzuoyoutuodong:before { content: "\e623"; } + +.icon-404:before { content: "\e627"; } + +.icon-iconmingxinganli:before { content: "\e652"; } + +.icon-wenda:before { content: "\e626"; } + +.icon-top:before { content: "\e624"; } + +.icon-ui:before { content: "\e625"; } + +.icon-fengexian:before { content: "\e63a"; } + +.icon-jiacu:before { content: "\e62f"; } + +.icon-kiss:before { content: "\e6cd"; } + +.icon-biaoqing1:before { content: "\e63b"; } + +.icon-liwu:before { content: "\e9c5"; } + +.icon-emwdaima:before { content: "\e62a"; } + +.icon-quanzi:before { content: "\e7bb"; } + +.icon-wendang:before { content: "\e722"; } + +.icon-jifen:before { content: "\e632"; } + +.icon-aqrenzheng:before { content: "\e62d"; } + +.icon-pinglun1:before { content: "\e631"; } + +.icon-web:before { content: "\e6e9"; } + +.icon-yxj-expression:before { content: "\e628"; } + +.icon-tongzhi:before { content: "\e647"; } + +.icon-kaifashili:before { content: "\e638"; } + +.icon-huiyuan:before { content: "\e637"; } + +.icon-pinglun2:before { content: "\e62c"; } + +.icon-alipay:before { content: "\e630"; } + +.icon-jiaoliu:before { content: "\e6b7"; } + +.icon-chanpin:before { content: "\e634"; } + +.icon-renzheng:before { content: "\e62e"; } + +.icon-tiezi:before { content: "\e635"; } + +.icon-rizhi:before { content: "\e69d"; } + +.icon-weixinzhifu:before { content: "\e633"; } + +.icon-yinyong:before { content: "\e636"; } + +.icon-xiazai:before { content: "\e78e"; } + + + + +/* 辅助 */ +a:hover{color: #009688; transition: all .3s;} +pre{padding: 10px 15px; margin: 10px 0; font-size: 12px; border-left: 6px solid #009688; background-color: #f8f8f8; font-family: Courier New; overflow: auto;} +a:hover{color: #009688; transition: all .3s;} +pre{padding: 10px 15px; margin: 10px 0; font-size: 12px; border-left: 6px solid #009688; background-color: #f8f8f8; font-family: Courier New; overflow: auto;} + +pre{position: relative; margin: 10px 0; padding: 15px; line-height: 20px; border: 1px solid #ddd; border-left-width: 6px; background-color: #F2F2F2; color: #333; font-family: Courier New; font-size: 12px;} +pre{border: none; border-left: 5px solid #ddd;} + +.layui-container{padding: 0;} +.fly-main{width: 1079px; min-height: 600px; margin: 0 auto 15px;} +.layui-badge{height: 20px; line-height: 20px; border-radius: 2px;} + +.fly-link{color: #01AAED;} +.fly-link:hover{color: #5FB878;} +.fly-grey{color: #999;} + +.fly-msg, .fly-error{padding: 10px 15px; line-height: 24px;} +.fly-msg{background-color:#F8F8F8; color:#666;} +.fly-msg a{color:#4F99CF} +.fly-editbox{position: relative;} + +.fly-marginTop{margin-top: 15px;} +.fly-mid{display: inline-block; height: 10px; width: 1px; margin: 0 10px; vertical-align: middle; background-color: #e2e2e2;} +.fly-right{position: absolute; right: 15px; top: 0;} + +/* 过度 */ +.fly-loading{position: absolute; top: 50%; left: 50%; margin: -12px 0 0 -15px; font-size: 30px; color: #c2c2c2;} + +/* 头像 */ +.fly-avatar{position: absolute; left: 15px; top: 15px;} +.fly-avatar img{display: block; width: 45px; height: 45px; margin: 0; border-radius: 2px;} + +/* 徽章 */ +.fly-badge-vip{height: 16px; line-height: 16px; padding: 0 3px; background-color: #FF5722; color: #fff; border-radius: 2px;} +.fly-badge-accept{height: 18px; line-height: 18px; padding: 0 5px !important; background-color: #5FB878; border-radius: 2px;} + +/* 赞助商 */ +.fly-zanzhu{display: block; position: relative; height: 60px; line-height: 60px; margin-top: 10px; padding: 0 20px; text-align: center; font-size: 16px; font-weight: 300; background-color: #009688; color: #fff;} +.fly-zanzhu:first-child{margin-top: 0;} +.fly-zanzhu:hover{opacity: 0.9; color: #fff;} + +/* 图标 */ +.icon-touxiang{display: inline-block; font-size: 34px;} +.icon-qq, .icon-weibo{font-size: 30px;} +.icon-renzheng{position: relative; color: #FFB800;} +.icon-kiss{font-size: 18px;} +.icon-pinglun1{position: relative; top: 2px;} + +/* 头部 */ +.fly-header{position: fixed; left: 0; top: 0; z-index: 10000; width: 100%; height: 60px; border-bottom: 1px solid #404553; border-right: 1px solid #404553; border-radius: 0;} +.fly-logo{position: absolute; left: 15px; top: 11px;} +.fly-nav{margin-left: 200px;} +.fly-nav a i{position: absolute; left: 25px; top: 0; padding-right: 10px; font-size: 26px;} +.fly-nav a .icon-shouye, .nav a .icon-shezhi{top: 2px;} + +.fly-nav-user{position: absolute; top: 0; right: 0;} +.fly-nav-user .iconfont{position: relative;} +.fly-nav-avatar img{width: 36px; height: 36px; margin-left: 10px; border-radius: 100%;} +.fly-nav-avatar .icon-renzheng{font-size: 16px; top: 1px;} +.fly-nav-avatar .fly-badge-vip{position: relative; margin-left: 10px;} +.fly-nav-user .layui-nav-child a i{position: relative; top: 2px; margin-right: 10px; font-size: 26px;} + +.fly-nav-msg{position:absolute; top: 50%; left: -25px; height: 20px; line-height: 20px; margin-top: -10px; padding:0 6px; background-color: #FF7200; color: #fff; border-radius: 2px;} +.fly-nav-msg:hover{color:#fff;} + +.fly-header .layui-nav{padding: 0; background: none;} +.fly-header .fly-nav a{padding: 0 25px 0 60px;} +.fly-header .fly-nav-user li a{padding: 0 10px;} +.fly-header .fly-nav-user li .fly-nav-avatar{padding-right: 0;} +.fly-header .fly-nav-user a.iconfont{color: #A9B7B7;} +.fly-header>.layui-nav-item a{color: rgba(255,255,255,0.5);} +.fly-header .layui-this a{color: #fff;} +.fly-header .layui-nav .layui-this:after, +.fly-header .layui-nav .layui-nav-bar, +.fly-header .fly-nav-user .layui-nav-more{display: none !important;} +.fly-header .fly-nav-user .layui-nav-child{left: auto; right: 0; width: 120px; min-width: 0;} + +.fly-html-layui .fly-nav-avatar .layui-nav-more{display: none !important;} +.fly-header .fly-nav-user .layui-nav-child{left: auto; right: 0; width: 120px; min-width: 0;} +.fly-html-layui .fly-nav-msg{left: -30px;} +.fly-html-layui .layui-header .layui-nav-child dd{text-align: center;} +.fly-html-layui .layui-header .layui-nav-item a cite{padding: 0 0 0 10px;} +.fly-html-layui .layui-header .layui-nav .fly-layui-user{margin: 0; margin-left: 40px;} +.fly-html-layui .layui-header .layui-nav .fly-layui-user a{padding: 0;} +.fly-layui-user .layui-nav-child{left: auto; right: 0; min-width: 0; width: 120px;} + + + +/* 底部 */ +.fly-footer {margin: 50px 0 0; padding: 20px 0 30px; line-height: 30px; text-align: center; color: #737573; border-top: 1px solid #e2e2e2;} +.fly-footer a{padding:0 6px; font-weight: 300; color: #333;} +.fly-footer a:hover{color: #777;} +.fly-union{margin-top: 10px; color: #999;} +.fly-union>*{display: inline-block; vertical-align: middle;} +.fly-union a[upyun] img{width: 80px;} +.fly-union span{position: relative; top: 3px;} +.fly-union span a{padding: 0; display: inline; color: #999;} +.fly-union span a:hover{text-decoration: underline;} + +/* 面板 */ +.fly-panel{margin-bottom: 15px; border-radius: 2px; background-color: #fff; box-shadow: 0 1px 2px 0 rgba(0,0,0,.05);} +.fly-panel[pad20]{padding: 20px;} +.fly-panel-title{position: relative; height: 50px; line-height: 50px; padding: 0 15px; border-bottom: 1px dotted #E9E9E9; color: #333; border-radius: 2px 2px 0 0; font-size: 14px;} +.fly-panel-main{padding: 10px 15px;} +.fly-panel-border{border: 1px solid #e6e6e6; box-shadow: none;} +.fly-panel-border .fly-panel-title{border-bottom: 1px solid #e6e6e6;} + +/* 专栏 */ +.fly-column{height: 50px; line-height: 50px;} +.fly-column ul li{position: relative; display: inline-block; height: 50px;} +.fly-column ul li a{padding: 0 20px;} +.fly-column ul li.layui-this:after{ position: absolute; bottom: 13px; left: 8px; z-index: 0; width: 50px; height: 22px; border: 1px solid #5FB878; border-radius: 2px;} +.fly-column ul li.layui-this a{color: #5FB878;} +.fly-column ul li .fly-mid{margin: 0 20px;} +.fly-column-right{position: absolute; right: 0; top: 0;} +.fly-column-right .layui-btn{vertical-align: initial;} +.fly-column .layui-badge-dot{position: absolute; top: 50%; left: 50%; margin: -4px 0 0 20px;} + +/* 搜索 */ +.fly-search{display: inline-block; vertical-align: top; width: 50px; height: 50px; margin-right: 10px; text-align: center; cursor: pointer; font-size: 20px;} +.fly-search .layui-icon{font-size: 20px;} +.fly-search:hover{color: #5FB878;} +.fly-layer-search input{height: 75px; line-height: 75px; width: 500px; padding: 0 15px; font-size: 20px; border: none 0; background: none;} + +/* 幻灯 */ +.fly-topline{height: 195px;} +.fly-topline img{max-width: 100%;} +.fly-topline .layui-carousel-ind{top: -25px;} +.fly-topline .layui-carousel-ind ul{background: none;} +.fly-topline .layui-carousel-ind ul li{width: 30px; height: 3px; border-radius: 0;} + +@media screen and (min-width: 768px) { + .fly-topline{height: 166px;} +} +@media screen and (min-width: 992px) { + .fly-topline{height: 141px;} +} +@media screen and (min-width: 1200px) { + .fly-topline{height: 172px;} +} + +/* 筛选 */ +.fly-filter a{padding: 0 8px; color: #666;} +.fly-filter a.layui-this{color: #5FB878;} +.fly-filter .fly-mid{margin: 0 8px;} +.fly-filter-right{position: absolute; right: 10px; top: 0;} + +/* Tab */ +.fly-tab{position: relative; padding-top: 3px;} +.fly-tab .layui-tab{margin: 0;} +.fly-tab .layui-tab-title{border-bottom: 1px dotted #e2e2e2;} + +.fly-tab-border{position:relative; margin-bottom: 15px;} +.fly-tab-border span, +.fly-tab-border span a{display:inline-block; *display:inline; *zoom:1; vertical-align:top;} +.fly-tab-border span{border: 1px solid #ddd; border-right: none; font-size:0;} +.fly-tab-border span a{position: relative; height: 36px; line-height: 36px; padding: 0 20px; border-right: 1px solid #ddd; font-size: 14px; background-color: #fff;} +.fly-tab-border .tab-this{color: #000;} +.fly-tab-border .tab-this:after{content: ''; position: absolute; bottom: -1px; left: -1px; width: 100%; height: 1px; padding: 0 1px; background-color: #009688;} + +/* 分页 */ +.laypage-main, +.laypage-main *{display:inline-block; *display:inline; *zoom:1; vertical-align:top;} +.laypage-main{margin: 20px 0; border: 1px solid #009E94; border-right: none; border-bottom: none; font-size: 0;} +.laypage-main *{padding: 0 20px; line-height: 36px; border-right: 1px solid #009E94; border-bottom: 1px solid #009E94; font-size: 14px;} +.laypage-main .laypage-curr{background-color:#009E94; color:#fff;} + +/* 简易编辑器 */ +.fly-edit{position:relative; display: block; height: 38px; top: 1px; left:0; border: 1px solid #e6e6e6; border-radius: 2px 2px 0 0; background-color: #FBFBFB; font-size: 0;} +.fly-edit span{position: relative; display: inline-block; vertical-align: top; width: 50px; height: 38px; line-height: 38px; border-right: 1px solid #e6e6e6; text-align: center; color: #009E94; cursor: pointer; font-size: 18px;} +.fly-edit span i{position: relative; font-size: 18px;} +.fly-edit span.layui-this, +.fly-edit span:hover{background-color: #f2f2f2; color: #5DB276;} +.layui-textarea:hover, +.layui-textarea:focus{border-color: #e6e6e6 !important;} + +/* 列表 */ +.fly-list li{position: relative; height: 45px; line-height: 22px; padding: 15px 15px 15px 75px; border-bottom: 1px dotted #e2e2e2;} +.fly-list li:last-child{border-bottom: none;} +.fly-list li h2, +.fly-list li h2 a, +.fly-list-info{white-space: nowrap; overflow: hidden; text-overflow: ellipsis;} +.fly-list li h2{height: 26px; font-size: 0;} +.fly-list li h2 a{display: inline-block; max-width: 80%; padding-right: 10px; font-size: 16px;} +.fly-list li h2 .layui-badge{top: -2px; height: 16px; line-height: 16px; padding: 0 5px; margin-right: 10px; font-size: 12px; border: 1px solid #5FB878; background: none; color: #5FB878;} + +.fly-list-info{position: relative; font-size: 13px; color: #999;} +.fly-list-info>*{padding-right: 15px;} +.fly-list-info a[link]{color: #999;} +.fly-list-info a[link]:hover{color: #5FB878;} +.fly-list-info .icon-renzheng{position: relative; top: 1px; margin-right: 3px;} +.fly-list-info .fly-badge-vip{position: relative; margin-left: 2px;} +.fly-list-kiss{color: #FF5722;} +.fly-list-nums{position: absolute; right: 0; top: 0; padding-right: 0!important;} +.fly-list-nums i{position: relative; padding: 0 3px 0 15px;} + +.fly-list-badge{position: absolute; right: 15px; top: 15px; font-size: 0;} +.fly-list-badge .layui-badge{margin-left: 5px; border-radius: 2px; font-size: 12px;} + +/* 单行列表 */ +.fly-list-one .fly-panel-title{margin-bottom: 5px;} +.fly-list-one dd{margin: 0 15px; line-height: 26px; white-space: nowrap; overflow: hidden; list-style: decimal-leading-zero inside; *list-style-type: decimal inside; color: #009E94;} +.fly-list-one dd a, +.fly-list-one dd span{display: inline-block; *display: inline; *zoom: 1; vertical-align: top; font-style: normal} +.fly-list-one dd a{max-width: 85%; margin-right: 5px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; font-size: 14px;} +.fly-list-one dd span{font-size: 12px; color: #ccc;} +.fly-list-one dd:last-child{padding-bottom: 5px;} + +body .layui-edit-face{ border:none; background:none;} +body .layui-edit-face .layui-layer-content{padding:0; background-color:#fff; color:#666; box-shadow:none} +.layui-edit-face .layui-layer-TipsG{display:none;} +.layui-edit-face ul{position:relative; width:372px; padding:10px; border:1px solid #D9D9D9; background-color:#fff; box-shadow: 0 0 20px rgba(0,0,0,.2);} +.layui-edit-face ul li{cursor: pointer; float: left; border: 1px solid #e8e8e8; height: 22px; width: 26px; overflow: hidden; margin: -1px 0 0 -1px; padding: 4px 2px; text-align: center;} +.layui-edit-face ul li:hover{position: relative; z-index: 2; border: 1px solid #eb7350; background: #fff9ec;} + +/* 签到 */ +.fly-signin cite{padding: 0 5px; color: #FF5722; font-style: normal;} +.fly-signin .layui-badge-dot{top: -7px; margin-left: 0px;} +.fly-signin-list{padding: 0; line-height: 30px;} +.fly-signin-list .layui-tab-item{padding: 10px; height: 320px; overflow-x: hidden; overflow-y: auto;} +.fly-signin-list li{margin-top: 5px; padding-bottom: 5px; border-bottom: 1px dotted #e2e2e2; white-space: nowrap;} +.fly-signin-list li:first-child{margin-top: 0;} +.fly-signin-list li:last-child{border: none 0;} +.fly-signin-list img{width: 30px; height: 30px; margin-right: 10px; border-radius: 2px;} +.fly-signin-list span{padding-left: 10px;} +.fly-signin-list span i{color: #FF5722;} +.fly-signin-list .fly-none{padding-top: 20px; min-height: 0;} +.fly-signin-days{position: absolute; right: 15px; padding-left: 10px; color: #999;} +.fly-signin-main{position: relative; height: 38px; padding: 24px 15px; text-align: center;} +.fly-signin-main span{padding-left: 10px;} + +/* 榜单 */ +.fly-rank{padding-bottom: 10px;} +.fly-rank dl{position: relative; overflow: hidden; margin-left: 20px; text-align: center; font-size: 0;} +.fly-rank dd{position: relative; width: 65px; height: 85px; margin: 10px 25px 5px 0; display:inline-block; *display:inline; *zoom:1; vertical-align:top; font-size:12px;} +.fly-rank dd a img{width: 65px; height: 65px; border-radius: 2px;} +.fly-rank dd a cite{ position:absolute; bottom: 20px; left: 0; width: 100%; height:20px; line-height:20px; text-align:center; background-color:rgba(0,0,0,.2); color:#fff; overflow: hidden; text-overflow: ellipsis; white-space: nowrap;} +.fly-rank dd a:hover cite{display: block;} +.fly-rank dd a i{position:absolute; bottom: 0; left: 0; width: 100%; text-align: center; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; font-style: normal;} + +/* 温馨通道 */ +.fly-list-quick{border: 1px solid #f2f2f2; border-bottom: none; border-right: 0;} +.fly-list-quick .layui-col-xs6{height: 40px; line-height: 40px; padding: 0 10px; border: 1px solid #f2f2f2; border-left: none; border-top: none; text-align: center; white-space: nowrap; text-overflow: ellipsis; overflow: hidden;} +.fly-list-quick a{display: block;} +.fly-list-quick a:hover{color: #5FB878;} + +/* 静态列表 */ +.fly-list-static li{line-height: 26px; list-style-position: inside; list-style-type: disc; white-space: nowrap; text-overflow: ellipsis; overflow: hidden;} +.fly-list-static li a{color: #01AAED;} +.fly-list-static li a:hover{opacity: 0.8;} + +/* 单行列表 */ +.jie-row li{position: relative; margin-bottom: 10px; padding-bottom: 10px; border-bottom: 1px dotted #E9E9E9; font-size: 0;} +.jie-row li *{position: relative; display:inline-block; *display:inline; *zoom:1; vertical-align: top; line-height: 20px; font-size:12px;} +.jie-row li span{padding: 0 6px; margin-right: 10px; background-color: #DADADA; color:#fff; font-size:12px;} +.jie-row li .fly-stick{background-color:#393D49;} +.jie-row li .fly-jing{background-color:#CC0000;} +.jie-row li .jie-status{margin:0 10px 0 0;} +.jie-row li .jie-status-ok{background-color:#8FCDA0;} +.jie-row li a{ padding-right:15px; font-size:14px;} +.jie-row li cite{padding-right:15px;} +.jie-row li i, .jie-row li em, .jie-row li cite{font-size:12px; color:#999; font-style: normal;} +.jie-row li .mine-edit{margin-left:15px; padding:0 6px; background-color: #8FCDA0; color:#fff; font-size:12px;} +.jie-row li em{position:absolute; right:0; top:0;} +.jie-row li .jie-user{} +.jie-row li .jie-title{max-width: 70%; overflow: hidden; text-overflow: ellipsis; white-space: nowrap;} +.jie-row li .jie-user img{position:relative; top: 16px; width: 35px; height: 35px;} + +/* Detail页 */ +.detail-box{padding: 20px;} +.detail h1{font-size: 24px; line-height: 36px;} +.fly-detail-info{position: relative; margin: 10px 0 15px;} +.fly-detail-info .layui-btn{height: 20px; line-height: 20px; vertical-align: top; border-radius: 0;} +.fly-detail-info .layui-btn+.layui-btn{margin-left: 0;} +.fly-admin-box{position: relative; display: inline-block; vertical-align: top; margin-left: 20px;} +.fly-detail-info .fly-list-nums{top: -3px; font-size: 16px;} +.fly-detail-info .fly-list-nums i{padding: 0 3px 0 15px; font-size: 22px; color: #999;} + +.detail-about{position: relative; line-height: 20px; padding: 15px 15px 15px 75px; font-size: 13px; background-color: #f8f8f8; color: #999;} +.detail-about .jie-status, .detail-about .jie-status-ok{color:#fff;} +.detail-about .fly-jing{padding:0 6px; background-color:#c00; color:#fff;} +.detail-about .detail-hits{position: relative; top: 5px; line-height: 20px;} +.fly-detail-user{white-space: nowrap; overflow: hidden;} +.fly-detail-user a{padding-right: 10px; font-size: 14px;} +.fly-detail-user .icon-renzheng{top: 1px;} + +.detail-hits span{height: 20px; line-height: 20px;} +.detail-hits .layui-btn{border-radius: 0;} +.detail-hits .layui-btn+.layui-btn{margin-left: 5px;} +.detail-hits .jie-admin{margin-right: 1px;} +.detail-body{margin: 20px 0 0; min-height: 306px; line-height: 26px; font-size: 16px; color: #333; word-wrap: break-word;} +.detail-body p{margin-bottom:15px;} +.detail-body img{max-width: 100%; cursor: pointer;} +/* +.detail-body table{margin: 10px 0 15px;} +.detail-body table thead{background-color:#f2f2f2;} +.detail-body table th, +.detail-body table td{padding: 10px 20px; line-height: 22px; border: 1px solid #DFDFDF; font-size: 14px; font-weight: 400;} +*/ + +.detail-body .layui-btn{margin: 0 10px 10px 0;} +.detail-body .layui-btn a{color: #fff;} +.detail-body ul>li{margin-top: 0;} +.detail-body .layui-elem-quote{margin: 10px 0; font-size: 14px; line-height: 26px;} + +/* 发帖 */ +.layui-form-item.layui-col-space15{margin-bottom: 7.5px;} + + +/* 求解管理 */ +.jie-admin{cursor: pointer;} +.detail-hits .jie-admin{color: #fff; padding: 0 10px; } +.detail-hits .jie-admin a{color: #fff;} +.jieda-admin{position:absolute; right: 0; top: 4px;} + +/* 回答 */ +.jieda{margin-bottom: 30px;} +.jieda li{position: relative; padding: 20px 0 10px; border-bottom: 1px dotted #DFDFDF;} +.jieda li:last-child{border-bottom: none;} +.jieda .fly-none{height: 50px; min-height: 0;} +.jieda .icon-caina{position:absolute; right:10px; top:15px; font-size:60px; color: #58A571;} + +.detail-about-reply{padding: 0 0 0 55px; background: none;} +.detail-about-reply .detail-hits{left: 0; bottom: 0;} +.detail-about-reply .fly-avatar{left: 0; top: 0;} + +.jieda-body{margin: 25px 0 20px; min-height: 0; line-height: 24px; font-size:14px;} +.jieda-body p{margin-bottom: 10px;} +.jieda-body a{color:#4f99cf} +.jieda-reply{position:relative;} +.jieda-reply span{padding-right:20px; color:#999; cursor:pointer;} +.jieda-reply span:hover{color:#666;} +.jieda-reply span i{margin-right:5px; font-size:16px;} +.jieda-reply span em{font-style: normal;} +.jieda-reply span .icon-zan{font-size: 22px;} +.jieda-reply .zanok, +.jieda-reply .jieda-zan:hover{color:#c00} +.jieda-reply span .icon-svgmoban53{position: relative; top: 1px;} + + +/* 用户中心 */ +body .fly-user-main{position: relative; min-height: 600px;} +.fly-user-main>.layui-nav{position: absolute; left: 0; top: 0; z-index: 1000; height: 100%; padding: 10px 0;} +.fly-user-main>.layui-nav .layui-icon{position: relative; top: 2px; font-size: 20px; margin-right: 10px;} +.fly-user-main>.fly-panel{min-height: 575px; margin: 0 0 10px 215px;} +.fly-user-main .fly-none{min-height: 0;} +.fly-panel-user[pad20]{padding-top: 5px;} + +.fly-form-app{margin-top:30px;} +.fly-form-app .iconfont{font-size:26px; padding: 0 5px;} +.fly-form-app .icon-qq{color:#7CA9C9} +.fly-form-app .icon-weibo{color:#E6162D} + +.user-tab{margin:20px 0;} +.user-about{position:relative; padding:0 0 0px 20px; border-left:1px solid #DFDFDF; text-align:center;} +.user-about .user-avatar{width:100px; height:100px; border-radius:100%;} +.user-about p{line-height:30px;} +.user-about p span{padding:0 5px; color:#999;} + +/* 个人主页 */ +.fly-home{position: relative; padding: 30px 0 30px; text-align: center;} +.fly-home img{width:120px; height:120px; border-radius:100%;} +.fly-home h1{font-size:26px; line-height:30px; margin-top:10px;} +.fly-home h1 span{font-size:14px; color:#999;} +.fly-home h1 .icon-nan{color:#4EBBF9} +.fly-home h1 .icon-nv{color:#F581B1} +.fly-home-sign{padding: 0 10px; color: #999; margin-top: 10px;} +.fly-home .icon-renzheng{display: inline-block; width: 20px; height: 20px; line-height: 20px; top: 45px; left: -15px; background-color: #FFB800; color: #fff; border-radius: 50%; font-size: 12px;} + +.fly-home-info i{padding-right: 5px; padding-left: 10px; color: #666;} +.fly-home-info span{color: #999;} +.fly-sns{margin-top: 10px;} + +.fly-home-jie .jie-row, +.fly-home-da .home-jieda{min-height: 500px; padding: 5px 20px;} + +/*.home-jieda li{margin-bottom:20px; padding-bottom:10px; line-height:24px; border-bottom: 1px dotted #DFDFDF;}*/ +.home-jieda li{ margin-bottom:20px; line-height:24px;} +.home-dacontent{margin-top:10px; padding:10px 15px; background-color:#F2F2F5; border-radius:5px; word-wrap: break-word;;} +.home-dacontent pre{ background-color:#F2F2F5;} +.home-dacontent img{max-width:100%;} +.home-jieda li a{padding:0 5px; color:#4F99CF;} +.home-jieda li p{color:#999;} +.home-jieda li p span{padding-right:5px;} + +/* */ +.fly-shortcut{margin: 5px 0;} +.fly-shortcut li{text-align: center;} +.fly-shortcut li .layui-icon{display: inline-block; width: 100%; height: 60px; line-height: 60px; text-align: center; color: #fff; border-radius: 2px; font-size: 30px; transition: all .3s; -webkit-transition: all .3s;} +.fly-shortcut li cite{position: relative; top: 2px; display: block; color: #666; text-overflow: ellipsis; overflow: hidden; white-space: nowrap; font-size: 14px;} +.fly-shortcut li:hover .layui-icon{opacity: 0.9;} +.fly-shortcut li .layui-icon{background-color: #2F9688;} + +/* 我的消息 */ +#LAY-minemsg{min-height:420px;} +.mine-msg li{position:relative; margin-bottom: 15px; padding: 10px 0 5px; line-height:24px; border-bottom:1px dotted #E9E9E9} +.mine-msg li cite{padding: 0 5px; color: #4F99CF;} +.mine-msg li i{color:#4F99CF; padding-right:5px;} +.mine-msg li>p{position: relative; margin-top: 5px; line-height: 26px; text-align: right;} +.mine-msg li>p span{position: absolute; left: 0; top: 0; color:#999;} +.mine-msg li .fly-delete{position: relative; top: -3px;} +.mine-msg li .layui-elem-quote p[download]{padding: 10px 0 5px;} + +/* 设置 */ +.avatar-add{position:relative; width:373px; height:373px; background-color:#F2F2F5;} +.avatar-add .upload-img{position:absolute; left:50%; top:35px; margin:0 0 0 -56px;} +.avatar-add img{position:absolute; left:50%; top:50%; width:168px; height:168px; margin:-50px 0 0 -84px; border-radius:100%;} +.avatar-add .loading{display:none; position:absolute; width:100%; height:100%; left:0; top:0; padding: 0; background-color:#000; opacity:0.5; filter: Alpha(opacity=50);} +.avatar-add p{position:absolute; top:70px; width:100%; margin-top: 10px;; font-size:12px; text-align:center; color:#999;} +.app-bind li{margin-bottom:10px; line-height:30px; color:#999;} +.app-bind li .iconfont{position: relative; top: 3px; margin-right: 5px; font-size:28px; } +.app-bind .app-havebind{color:#333;} +.app-bind .app-havebind .icon-qq{color:#7CA9C9} +.app-bind .app-havebind .icon-weibo{color:#E6162D} + +/* 案例 */ +.fly-case-header{position: relative; height: 260px; text-align: center; background: #393D49;} +.fly-case-year{position: absolute; top: 30px; width: 100%; line-height: 50px; font-size: 50px; text-align: center; color: #fff; font-weight: 300;} +.fly-case-banner{position: absolute; left: 50%; top: 100px; width: 670px; margin-left: -335px;} +.fly-case-btn{position: absolute; bottom: 30px; left: 0; width: 100%; text-align: center;} +.fly-case-btn a{color: #fff;} +.fly-case-btn .layui-btn-primary{background: none; color: #fff;} +.fly-case-btn .layui-btn-primary:hover{border-color: #5FB878;} + +.fly-case-tab{margin-top: 20px; text-align: center;} +.fly-case-tab span, +.fly-case-tab span a{border-color: #009688;} +.fly-case-tab .tab-this{background-color: #009688; color: #fff;} + +.fly-case-list{margin-top: 15px; font-size: 0;} +.fly-case-list li, +.layer-ext-ul li{display: inline-block; vertical-align: middle; *display: inline; *zoom:1; font-size: 14px; background-color: #fff;} +.fly-case-list{width: 110%;} +.fly-case-list li{width: 239px; margin: 0 15px 15px 0; padding: 10px;} +.fly-case-list li:hover{box-shadow: 1px 1px 5px rgba(0,0,0,.1);} +.fly-case-img{position: relative; display: block;} +.fly-case-img img{width: 239px; height: 150px;} +.fly-case-img .layui-btn{display: none; position: absolute; bottom: 20px; left: 50%; margin-left: -29px;} +.fly-case-img:hover .layui-btn{display: inline-block;} +.fly-case-list li h2{padding: 10px 0 5px; line-height: 22px; font-size: 18px; white-space: nowrap; overflow: hidden; text-align: center;} +.fly-case-desc{height: 60px; line-height: 20px; font-size: 12px; color: #666; overflow: hidden;} +.fly-case-info{position: relative; margin: 10px 0 0; padding: 10px 65px 0 45px; border-top: 1px dotted #eee;} +.fly-case-info p{height:24px; line-height: 24px;} +.fly-case-user{position: absolute; left: 0; top: 15px; width: 35px; height: 35px;} +.fly-case-user img{width: 35px; height: 35px; border-radius: 100%;} +.fly-case-info .layui-btn{position: absolute; right: 0; top: 15px; padding: 0 15px;} +.layer-ext-ul{margin: 10px; max-height: 500px;} +.layer-ext-ul img{width: 50px; height: 50px; border-radius: 100%;} +.layer-ext-ul li{margin: 8px;} +.layer-ext-case .layui-layer-title{border: none; background-color: #009688; color: #fff;} + +/* 广告 */ +.fly-ad{position: relative; background-color: #f2f2f2; overflow:hidden;} +.fly-ad:before{content: '广告位'; position: absolute; z-index: 0; top: 50%; left: 50%; left: 50%; margin: -10px 0 0 -25px; color: #aaa; font-size: 18px; font-weight: 300;} +.fly-ad div{position: relative; z-index: 1;} + +/* 友链 */ +.fly-link dd{display: inline-block; vertical-align: top;} +.fly-link a{line-height: 24px; padding-right: 15px;} + +/* 404或提示 */ +.fly-none{min-height: 600px; text-align: center; padding-top:50px; color: #999;} +.fly-none .iconfont{line-height: 300px; font-size: 300px; color: #393D49;} +.fly-none .icon-tishilian{display: inline-block; margin: 30px 0 20px;} +.fly-none p{margin-top: 50px; padding: 0 15px; font-size: 20px; color: #999; font-weight: 300;} +.fly-list-one .fly-none{min-height: 70px;} + + +@media screen and (max-width: 768px) { + .fly-main{width: 100%;} + + /* 顶边距 */ + .fly-marginTop{margin-top: 0;} + + /* 头部 */ + .fly-header .fly-nav-user li .fly-nav-avatar{padding-right: 15px;} + .fly-header .fly-nav-user{margin-right: 5px;} + + /* 专栏 */ + .fly-column{height: auto;} + .fly-column ul{padding: 10px; font-size: 0;} + .fly-column ul li{float: left; width: 33.33%; height: 36px; line-height: 36px; font-size: 14px; vertical-align: middle; text-align: center; box-sizing: border-box;} + .fly-column-right{right: 10px;} + .fly-column ul li.layui-this:after{display: none;} + + /* 页脚 */ + .fly-footer{margin-top: 0; border-top: none;} + + /* 分页 */ + .laypage-main a, .laypage-main span{display: none;} + .laypage-main .laypage-prev, + .laypage-main .laypage-curr, + .laypage-main .laypage-next{display: inline-block;} + + /* 列表 */ + .fly-list li h2 a{max-width: 72%;} + + /* Detail 页 */ + .fly-admin-box{display: block; margin: 0; margin-top: 10px;} + .fly-detail-info .fly-list-nums{top: -2px;} + .fly-edit span{border-right: none;} + + /* 案例 */ + .fly-case-list, + .fly-case-list li{width: 100%; -webkit-box-sizing: border-box !important; -moz-box-sizing: border-box !important; box-sizing: border-box !important;} + .fly-case-img{text-align: center;} + .fly-case-img img{max-width: 100%;} + .fly-case-banner{width: 300px; margin-left: -150px;} + + body .fly-user-main{width: auto;} + .fly-user-main>.layui-nav{left: -300px; transition: all .3s; -webkit-transition: all .3s;} + .fly-user-main>.fly-panel-user{width: auto; margin-left: 0; transition: all .3s; -webkit-transition: all .3s;} + .site-tree-mobile{display: block!important; position: fixed; z-index: 100000; bottom: 20px; left: 10px; width: 50px; height: 50px; line-height: 50px; border-radius: 2px; text-align: center; background-color: rgba(0,0,0,.7); color: #fff;} + .site-mobile .site-tree-mobile{display: none !important;} + .site-mobile .fly-user-main>.layui-nav{left: 0;} + .site-mobile .site-mobile-shade{content: ''; position: fixed; top: 0; bottom: 0; left: 0; right: 0; background-color: rgba(0,0,0,.9); z-index: 999;} +} + +/*前台公用样式*/ + +/*分页*/ +.pagination { + display: inline-block; + padding: 0 auto; + margin: 20px 0; + border-radius: 4px; +} +.pagination li { + display: inline; +} +.pagination li a, +.pagination li span { + position: relative; + float: left; + padding: 6px 12px; + line-height: 1.42857143; + color: #393D49; + background: #fff; + margin: 0 0 0 8px; + border: 1px solid #eee; +} + +.pagination li a:hover { + color: #fff; + background: #009688; +} +.pagination .active span{ +background: #009688; +color: #fff; +} +.pagination .disabled{ +display: none; + +@media screen and (max-width: 992px) { + body .header .layui-nav .layui-nav-item{margin: 0 5px;} +} diff --git a/public/static/res/css/iconfont.eot b/public/static/res/css/iconfont.eot new file mode 100644 index 0000000000000000000000000000000000000000..9f37790b04175e0b50a2ba396d6d47f62fb9b534 GIT binary patch literal 23304 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 literal 0 HcmV?d00001 diff --git a/public/static/res/css/iconfont.svg b/public/static/res/css/iconfont.svg new file mode 100644 index 0000000..1c7ffe9 --- /dev/null +++ b/public/static/res/css/iconfont.svg @@ -0,0 +1,473 @@ + + + + + +Created by iconfont + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/public/static/res/css/iconfont.ttf b/public/static/res/css/iconfont.ttf new file mode 100644 index 0000000000000000000000000000000000000000..0c8b0a50f686021dd59dbd6c61d212406a8ad3ef GIT binary patch literal 40668 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 ALI3~& literal 0 HcmV?d00001 diff --git a/public/static/res/css/iconfont.woff b/public/static/res/css/iconfont.woff new file mode 100644 index 0000000000000000000000000000000000000000..786bb2a8c4d1aaa7d3d80b3692b27d013815eae1 GIT binary patch literal 26744 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 literal 0 HcmV?d00001 diff --git a/public/static/res/home/css/global.css b/public/static/res/home/css/global.css new file mode 100644 index 0000000..779a6c3 --- /dev/null +++ b/public/static/res/home/css/global.css @@ -0,0 +1,466 @@ +/** + + layui官网 + By 贤心 + +*/ + +h1,h2,h3{font-size: 14px;} +::-webkit-input-placeholder{color: #999} + +/* 布局 */ +.site-inline{font-size: 0;} +.site-tree, .site-content{display: inline-block; *display:inline; *zoom:1; vertical-align: top; font-size: 14px;} +.site-tree{width: 220px; min-height: 900px; padding: 5px 0 20px;} +.site-content{width: 899px; min-height: 900px; padding: 20px 0 10px 20px;} + +/* 头部 */ +.header{height: 59px; border-bottom: 1px solid #404553; background-color: #393D49;} +.logo{position: absolute; left: 0; top: 16px;} +.logo img{width: 82px; height: 31px;} + +.header .layui-nav{position: absolute; right: 0; top: 0; padding: 0; background: none;} +.header .layui-nav .layui-nav-item{margin: 0 20px; } +.header .layui-nav .layui-nav-item[mobile]{display: none;} + +.header .layui-container .logo{left: 15px;} +.header .layui-container .layui-nav{right: 15px;} + +.menu{position: absolute; right: 0; top: 0; line-height: 65px;} +.menu a{display:inline-block; *display:inline; *zoom:1; vertical-align:top;} +.menu a{position: relative; padding: 0 20px; margin: 0 20px; color: #c2c2c2; font-size: 14px;} +.menu a:hover{color: #fff; transition: all .5s; -webkit-transition: all .5s} +.menu a.this{color: #fff} +.menu a.this::after{content: ''; position: absolute; left: 0; bottom: -1px; width: 100%; height: 5px; background-color: #5FB878;} + +.header-index{background-color: #05031A; border: none;} +.header-index .site-banner-bg{} +.header-index[spring]{background-color: #0D1206} +.header-index[summer]{background-color: #0A0E11} +.header-index[autumn]{background-color: #100903} +.header-index[winter]{background-color: #110F25/*#06041C*/} + +.header-demo{height: 60px; border-bottom: none;} +.header-demo .logo{left: 40px;} +.header-demo .layui-nav{top: 0;} +.header-demo .layui-nav .layui-nav-item{margin: 0 10px;} + +.header-demo .layui-nav .layui-this a{padding: 0 30px;} + +.component{position: absolute; width: 160px; left: 120px; top: 16px; } +.component .layui-input{height: 30px; padding-left: 12px; background-color: #424652; background-color: rgba(255,255,255,.05); border: none 0; color: #fff; color: rgba(255,255,255,.5); font-size: 12px;} +.component .layui-form-select .layui-edge{display: none; border-top-color: #999;} +.component .layui-form-select dl{top: 36px; background-color: rgba(255,255,255,.9)} +.header-demo .component{left: 185px;} + + +/* 子侧边 */ +.layui-side-child{width: 160px!important; left: 200px; bottom: 60px!important; border-right: 1px solid #eee; background-color: #fff;} +.layui-side-child .layui-side-scroll{width: 170px;} +.layui-side-child .layui-nav{padding: 10px 0; width: 160px; border-radius: 0; background: none} +.layui-side-child .layui-nav-child{border-radius: 0;} +.layui-side-child .layui-nav .layui-nav-title a, +.layui-side-child .layui-nav .layui-nav-title a:hover, +.layui-side-child .layui-nav-itemed>a{color: #666 !important;} +.layui-side-child .layui-nav-itemed .layui-nav-child{margin-bottom: 10px; background: none !important;} +.layui-side-child .layui-nav .layui-nav-item a{height: 30px; line-height: 30px; color: #666;} +.layui-side-child .layui-nav .layui-nav-item a:hover{background: none !important;} +.layui-side-child .layui-nav .layui-nav-child a{color: #999 !important;} +.layui-side-child .layui-nav .layui-nav-more{display: none;} +.layui-side-child .layui-nav-tree .layui-this, +.layui-side-child .layui-nav-tree .layui-this>a, +.layui-side-child .layui-nav-tree .layui-nav-child dd.layui-this, +.layui-side-child .layui-nav-tree .layui-nav-child dd.layui-this a{background: none; color: #5FB878 !important;} +.layui-side-child .layui-nav .layui-nav-child a:hover{color: #009688 !important} +.layui-side-child .layui-nav-bar{background-color: #5FB878;} + + +/* 底部 */ +.footer{padding: 30px 0; line-height: 30px; text-align: center; color: #666; font-weight: 300;} +body .layui-layout-admin .footer-demo{height: 50px; padding: 5px 0;} +.footer a{padding: 0 5px;} +.site-union{margin-top: 10px; color: #999;} +.site-union>*{display: inline-block; vertical-align: middle;} +.site-union a[upyun] img{width: 80px;} +.site-union span{position: relative; top: 3px;} +.site-union span a{padding: 0; display: inline; color: #999;} +.site-union span a:hover{text-decoration: underline;} + +.footer-demo p{display: inline-block; vertical-align: middle; height: 50px; padding-right: 10px;} +.footer-demo .site-union{position: relative; top: -9px;} + +/* 首页banner部分 */ +.site-banner{position: relative; height: 600px; text-align: center; overflow: hidden; background-color: #393D49;} +.site-banner-bg +,.site-banner-main{position: absolute; left: 0; top: 0; width: 100%; height: 100%;} +.site-banner-bg{background-position: center 0;} + + +.site-zfj{padding-top: 25px; height: 220px;} +.site-zfj i{position: absolute; left: 50%; top: 50px; width: 200px; height: 200px; margin-left: -100px; font-size: 180px; color: #c2c2c2;} + +@-webkit-keyframes site-zfj { + 0% {opacity: 1; -webkit-transform: translate3d(0, 0, 0) rotate(0deg) scale(1);} + 10% {opacity: 0.8; -webkit-transform: translate3d(-100px, 0px, 0) rotate(10deg) scale(0.7);} + 35% {opacity: 0.6; -webkit-transform: translate3d(100px, 0px, 0) rotate(30deg) scale(0.4);} + 50% {opacity: 0.4; -webkit-transform: translate3d(0, 0, 0) rotate(360deg) scale(0);} + 80% {opacity: 0.2; -webkit-transform: translate3d(0, 0, 0) rotate(720deg) scale(1);} + 90% {opacity: 0.1; -webkit-transform: translate3d(0, 0, 0) rotate(3600deg) scale(6);} + 100% {opacity: 1; -webkit-transform: translate3d(0, 0, 0) rotate(3600deg) scale(1);} +} +@keyframes site-zfj { + 0% {opacity: 1; transform: translate3d(0, 0, 0) rotate(0deg) scale(1);} + 10% {opacity: 0.8; transform: translate3d(-100px, 0px, 0) rotate(10deg) scale(0.7);} + 35% {opacity: 0.6; transform: translate3d(100px, 0px, 0) rotate(30deg) scale(0.4);} + 50% {opacity: 0.4; transform: translate3d(0, 0, 0) rotate(360deg) scale(0);} + 80% {opacity: 0.2; transform: translate3d(0, 0, 0) rotate(720deg) scale(1);} + 90% {opacity: 0.1; transform: translate3d(0, 0, 0) rotate(3600deg) scale(6);} + 100% {opacity: 1; transform: translate3d(0, 0, 0) rotate(3600deg) scale(1);} +} + +@-webkit-keyframes site-desc { + 0% { -webkit-transform: scale(1.1);} + 100% {opacity: 1; -webkit-transform: scale(1);} +} +@keyframes site-desc { + 0% { transform: scale(1.1);} + 100% {transform: scale(1);} +} + +.site-zfj-anim i{-webkit-animation-name: site-zfj; animation-name: site-zfj; -webkit-animation-duration: 5s; animation-duration: 5s; -webkit-animation-timing-function: linear; animation-timing-function: linear;} + + +/* 描述字体 */ +@font-face {font-family: 'webfont-desc'; + src: url('//at.alicdn.com/t/webfont_eovt4pxxy5.eot'); /* IE9*/ + src: url('//at.alicdn.com/t/webfont_eovt4pxxy5.eot?#iefix') format('embedded-opentype'), /* IE6-IE8 */ + url('//at.alicdn.com/t/webfont_eovt4pxxy5.woff') format('woff'), /* chrome、firefox */ + url('//at.alicdn.com/t/webfont_eovt4pxxy5.ttf') format('truetype'), /* chrome、firefox、opera、Safari, Android, iOS 4.2+*/ + url('//at.alicdn.com/t/webfont_eovt4pxxy5.svg#思源黑体-极细') format('svg'); /* iOS 4.1- */ +} +.web-font-desc{ + font-family:"webfont-desc" !important; + font-size:16px;font-style:normal; + -webkit-font-smoothing: antialiased; + -moz-osx-font-smoothing: grayscale; +} + + +.site-desc{position: relative; height: 70px; margin-top: 20px;} +.site-desc .web-font-desc{color: #fff; color: rgba(255,255,255,.8); font-size: 61px;} + +.site-desc-anim{-webkit-animation-name: site-desc; animation-name: site-desc;} +.site-desc cite{position: absolute; bottom: -40px; left: 0; width: 100%; color: #c2c2c2; font-style: normal;} + +.site-download{margin-top: 80px; font-size: 0;} +.site-download a{position: relative; padding: 0 45px 0 90px; height: 60px; line-height: 60px; border: 1px solid #c2c2c2; border-color: rgba(255,255,255,.2); font-size: 24px; color: #ccc; transition: all .5s; -webkit-transition: all .5s;} +.site-download a:hover{border-color: rgba(255,255,255,.3); color: #fff; background-color: rgba(255,255,255,.05); border-radius: 30px;} +.site-download a cite{position: absolute; left: 45px; font-size: 30px;} +.site-version{position: relative; margin-top: 15px; color: #ccc; font-size: 12px;} +.site-version span{padding: 0 3px;} +.site-version *{font-style: normal;} +.site-version a{color: #e2e2e2; text-decoration: underline;} + +.site-banner-other{position: absolute; left: 0; bottom: 35px; width: 100%; text-align: center; font-size: 0;} +.site-banner-other iframe{border: none;} +.site-banner-other a{display: inline-block; vertical-align: middle; height: 28px; line-height: 28px; margin: 0 5px; padding: 0 8px; border-radius: 2px; color: #c2c2c2; color: rgba(255,255,255,.8); border: 1px solid #c2c2c2; border-color: rgba(255,255,255,.2); font-size: 14px; transition: all .5s; -webkit-transition: all .5s;} +.site-banner-other a:hover{color: #fff; background-color: rgba(255,255,255,.1);} + + +.site-idea{margin: 50px 0; font-size: 0; text-align: center; font-weight: 300;} +.site-idea li{display: inline-block; vertical-align: top; *display: inline; *zoom:1; font-size: 14px; } +.site-idea li{width: 298px; height: 150px; padding: 30px; line-height: 24px; margin-left: 30px; border: 1px solid #d2d2d2; text-align: left;} +.site-idea li:first-child{margin-left: 0} +.site-idea .layui-field-title{border-color: #d2d2d2} +.site-idea .layui-field-title legend{margin: 0 20px 20px 0; padding: 0 20px; text-align: center;} + +/* 赞助商 */ +.site-sponsor-home{margin-top: 40px; text-align: center;} +.site-sponsor-home .layui-btn{position: relative; width: 233px; height: 65px; line-height: 65px; background: none; border-color: #212121; font-size: 26px; border-radius: 6px; /*padding-left: 55px;*/} +.site-sponsor-home .layui-btn:hover{background: #4A4855; color: #BAB8C3;} +.site-sponsor-home .layui-btn:before{/*position: absolute; left: 15px; top: 15px; content: ''; width: 30px; height: 30px; background: url(http://cdn.layui.com/upload/2018_1/168_1514869467160_26113.png) center; background-repeat: no-repeat; background-size: contain;*/} +.site-sponsor-home p{position: relative; padding-top: 15px; font-size: 22px; color: #212121;} +.site-sponsor-home p:before{content: ''; position: relative; top: -2px; display: inline-block; vertical-align: middle; width: 30px; height: 30px; margin-right: 10px; background: url(http://cdn.layui.com/upload/2018_1/168_1514869467160_26113.png) center; background-repeat: no-repeat; background-size: contain;} +@media screen and (max-width: 750px) { + .site-sponsor-home .layui-btn{width: 180px; height: 45px; line-height: 45px; font-size: 20px;} + .site-sponsor-home p{font-size: 16px;} + .site-sponsor-home p:before{width: 20px; height: 20px;} +} + + + +/* 辅助 */ +.site-tips{margin-bottom: 10px; padding: 15px; line-height: 22px; border-left: 5px solid #0078AD; background-color: #f2f2f2;} +body .site-tips p{margin: 0;} +body .layui-layer-notice .layui-layer-content{padding: 20px; line-height: 26px; background-color: #393D49; color: #fff; font-weight: 300;} +.layui-layer-notice .layui-text{color: #f8f8f8;} +.layui-layer-notice .layui-text a{color: #009688;} + +/* 目录 */ +.site-dir{display: none;} +.site-dir li{line-height: 26px; margin-left: 20px; overflow: visible; list-style-type: disc;} +.site-dir li a{display: block;} +.site-dir li a:active{color: #01AAED;} +.site-dir li a.layui-this{color: #01AAED;} +body .layui-layer-dir{box-shadow: none; border: 1px solid #d2d2d2;} +body .layui-layer-dir .layui-layer-content{padding: 10px;} +.site-dir a em{padding-left: 5px; font-size: 12px; color: #c2c2c2; font-style: normal;} + +/* 文档 */ +.site-tree{border-right: 1px solid #eee; } +.site-tree .layui-tree{line-height: 32px;} +.site-tree .layui-tree li i{position: relative; font-size: 22px; color: #000} +.site-tree .layui-tree li a cite{padding: 0 8px;} +.site-tree .layui-tree .site-tree-noicon a cite{padding-left: 15px;} +.site-tree .layui-tree li a em{font-size: 12px; color: #bbb; padding-right: 5px; font-style: normal;} +.site-tree .layui-tree li h2{line-height: 36px; border-left: 5px solid #009E94; margin: 15px 0 5px; padding: 0 10px; background-color: #f2f2f2;} +.site-tree .layui-tree li ul{margin-left: 27px; line-height: 28px;} +.site-tree .layui-tree li ul a, +.site-tree .layui-tree li ul a i{color: #777;} +.site-tree .layui-tree li ul a:hover{color: #333;} +.site-tree .layui-tree li ul li{margin-left: 25px; overflow: visible; list-style-type: disc; /*list-style-position: inside;*/} +.site-tree .layui-tree li ul li cite, +.site-tree .layui-tree .site-tree-noicon ul li cite{padding-left: 0;} + +.site-tree .layui-tree .layui-this a{color: #01AAED;} +.site-tree .layui-tree .layui-this .layui-icon{color: #01AAED;} + +.site-fix .site-tree{position: fixed; top: 0; bottom: 0; z-index: 666; min-height: 0; overflow: auto; background-color: #fff;} +.site-fix .site-content{margin-left: 220px;} +.site-fix-footer .site-tree{/*margin-bottom: 120px;*/} + + +.site-title{ margin: 30px 0 20px;} +.site-title fieldset{border: none; padding: 0; border-top: 1px solid #eee;} +.site-title fieldset legend{margin-left: 20px; padding: 0 10px; font-size: 22px; font-weight: 300;} + +.site-text a{color: #01AAED;} +.site-h1{margin-bottom: 20px; line-height: 60px; padding-bottom: 10px; color: #393D49; border-bottom: 1px solid #eee; font-size: 28px; font-weight: 300;} +.site-h1 .layui-icon{position: relative; top: 5px; font-size: 35px; margin-right: 10px;} +.site-text{position:relative;} +.site-text p{margin-bottom: 10px; line-height:22px;} +.site-text em{padding: 0 3px; font-weight: 500; font-style: italic; color: #666;} +.site-text code{margin:0 5px; padding: 3px 10px; border: 1px solid #e2e2e2; background-color: #fbfbfb; color: #666; border-radius: 2px;} + +.site-table{width: 100%; margin: 10px 0;} +.site-table thead{background-color:#f2f2f2; } +.site-table th, +.site-table td{padding: 6px 15px; min-height: 20px; line-height: 20px; border:1px solid #ddd; font-size: 14px; font-weight: 400;} +.site-table tr:nth-child(even){background: #fbfbfb;} + +.site-block{padding: 20px; border: 1px solid #eee;} +.site-block .layui-form{margin-right: 200px;} + +/* 更新日志 */ +.site-changelog .layui-timeline-title h2{display: inline-block;} +.site-changelog .layui-timeline-title .layui-badge-rim{top: -2px; left: 10px;} + +/* 颜色 */ +.site-doc-color{font-size: 0;} +.site-doc-color li{display: inline-block; vertical-align: middle; width: 180px; margin-left: 20px; margin-bottom: 20px; padding: 20px 10px; color: #fff; text-align: center; border-radius: 2px; line-height: 22px; font-size: 14px;} +.site-doc-color li p[tips]{opacity: 0.8; font-size: 12px;} + +.site-doc-necolor li{width: 108px; margin-top: 15px; margin-left: 0; border-radius: 0;} + +.site-doc-bgcolor li{padding: 10px;} + +/* 宫格 */ +.site-doc-icon{margin-bottom: 50px; font-size: 0;} +.site-doc-icon li{display: inline-block; vertical-align: middle; width: 127px; height: 105px; line-height: 25px; padding: 20px 0; margin-right: -1px; margin-bottom: -1px; border: 1px solid #e2e2e2; font-size: 14px; text-align: center; color: #666; transition: all .3s; -webkit-transition: all .3s;} +.site-doc-anim li{height: auto;} +.site-doc-icon li .layui-icon{display: inline-block; font-size: 36px;} + +.site-doc-icon li .doc-icon-name, +.site-doc-icon li .doc-icon-code{color: #c2c2c2;} +.site-doc-icon li .doc-icon-fontclass{height: 40px; line-height: 20px; padding: 0 5px; font-size: 13px; color: #333; } +.site-doc-icon li:hover{background-color: #f2f2f2; color: #000;} + +/* 栅格示例 */ +.grid-demo{padding: 10px; line-height: 50px; text-align: center; background-color: #79C48C; color: #fff;} +.grid-demo-bg1{background-color: #63BA79;} +.grid-demo-bg2{background-color: #49A761;} +.grid-demo-bg3{background-color: #38814A;} + + +/* 演示 */ +body .layui-layout-admin .site-demo{bottom: 60px; padding: 0;} +body .site-demo-nav .layui-nav-item{line-height: 40px} +.layui-nav-item .layui-icon{position: relative; font-size: 20px;} +.layui-nav-item a cite{padding: 0 10px;} +.site-demo .layui-main{margin: 15px; line-height: 22px;} +.site-demo-editor{position: absolute; top: 0; bottom: 0; left: 0; width: 50%; } +.site-demo-area{position: absolute; top: 0; bottom: 0; width: 100%;} +.site-demo-editor textarea{position: absolute; width: 100%; height: 100%; padding: 10px; border: none; resize: none; background-color: #F7FBFF; background-color: #13151A; color: #999; font-family: Courier New; font-size: 12px; -webkit-box-sizing: border-box !important; -moz-box-sizing: border-box !important; box-sizing: border-box !important;} +.site-demo-btn{position: absolute; bottom: 15px; right: 20px;} +.site-demo-zanzhu{position: absolute; bottom: 0; left: 0; width: 100%; height: 90px; text-align: center; background-color: #e2e2e2; overflow: hidden;} +.site-demo-zanzhu>*{position: relative; z-index: 1;} +.site-demo-zanzhu:before{content: ""; position: absolute; z-index: 0; top: 50%; left: 50%; width: 120px; margin: -10px 0px 0px -60px; text-align: center; color: rgb(170, 170, 170); font-size: 18px; font-weight: 300; } + +.site-demo-result{position: absolute; right: 0; top: 0; bottom: 0; width: 50%;} +.site-demo-result iframe{position: absolute; width: 100%; height: 100%;} + +.site-demo-button{margin-bottom: 30px;} +.site-demo-button div{margin: 20px 30px 10px;} +.site-demo-button .layui-btn+.layui-btn{margin-left: 0;} +.site-demo-button .layui-btn{margin: 0 7px 10px 0; } + +.site-demo-text a{color: #01AAED;} + +.site-demo-laytpl{text-align: center;} +.site-demo-laytpl textarea, +.site-demo-laytpl div span{width: 40%; padding: 15px; margin: 0 15px;} +.site-demo-laytpl textarea{height: 300px; border: none; background-color: #3F3F3F; color: #E3CEAB; font-family: Courier New; resize: none;} +.site-demo-laytpl div span{display: inline-block; text-align: center; background: #101010; color: #fff;} +.site-demo-tplres{margin: 10px 0; text-align: center} +.site-demo-tplres .site-demo-tplh2, +.site-demo-tplres .site-demo-tplview{display: inline-block; width: 50%;} +.site-demo-tplres h2{padding: 15px; background: #e2e2e2;} +.site-demo-tplres h3{font-weight: 700;} +.site-demo-tplres div{padding: 14px; border: 1px solid #e2e2e2; text-align: left;} + +.site-demo-upload, +.site-demo-upload img{width: 200px; height: 200px; border-radius: 100%;} +.site-demo-upload{position: relative; background: #e2e2e2;} +.site-demo-upload .site-demo-upbar{position: absolute; top: 50%; left: 50%; margin: -18px 0 0 -56px;} +.site-demo-upload .layui-upload-button{background-color: rgba(0,0,0,.2); color: rgba(255,255,255,1);} + +.site-demo-util{position: relative; width: 300px;} +.site-demo-util img{width: 300px; border-radius: 100%;} +.site-demo-util span{position: absolute; left: 0; top: 0; width: 100%; height: 100%; background: #333; cursor: pointer;} +@-webkit-keyframes demo-fengjie { + 0% {-webkit-filter: blur(0); opacity: 1; background: #fff; height: 300px; border-radius: 100%;} + 80% {-webkit-filter: blur(50px); opacity: 0.95;} + 100% {-webkit-filter: blur(20px); opacity: 0; background: #fff;} +} +@keyframes demo-fengjie { + 0% {filter: blur(0); opacity: 1; background: #fff; height: 300px; border-radius: 100%;} + 80% {filter: blur(50px); opacity: 0.95;} + 100% {filter: blur(20px); opacity: 0; background: #fff;} +} +.site-demo-fengjie{-webkit-animation-name: demo-fengjie; animation-name: demo-fengjie; -webkit-animation-duration: 5s; animation-duration: 5s;} + +.layui-layout-admin .site-demo-body{top: 106px;} +.site-demo-title{position: fixed; left: 200px; right: 0; top: 65px;} +.site-demo-code{position: absolute; left: 0; top: 0; width: 100%; height: 100%; border: none; padding: 10px; resize: none; font-size: 12px; background-color: #F7FBFF; color: #881280; font-family: Courier New;} + +.site-demo-overflow{overflow: hidden;} + +/* 其它 */ +#trans-tooltip, +#tip-arrow-bottom, +#tip-arrow-top{display: none !important;} + + +/* 独立组件 与 主页 */ +.alone{text-align: center; background-color: #009688; color: #fff; font-weight: 300; transition: all .3s; -webkit-transition: all .3s;} +.alone:hover{background-color: #5FB878;} +.alone a{display: block; padding: 50px 20px; color: #fff; font-size: 30px;} +.alone a cite{display: block; padding-top: 10px; font-size: 14px;} + + +.alone-banner{height: 190px; text-align: center; font-weight: 300; background-color: #009688; color:#fff;} +.alone-banner h1{padding-top: 60px; line-height: 32px; font-size: 30px; font-weight: 300;} +.alone-banner p{padding-top: 20px; color: #e2e2e2; color: rgba(255,255,255,.8);} + +.alone-nav .layui-tab-title li{margin-right: 30px; padding: 0; color: #666;} +.alone-nav .layui-tab-title li a{ padding: 0 20px;} + +.alone-download{margin: 30px 0;} +.alone-download .layui-btn{margin-right: 10px;} +.alone-download span{display: inline-block; line-height: 44px; padding-right: 20px;} +.alone-download span em{color: #999;} + +.alone-title{margin-top: 20px;} + +.alone-download-btn{text-align: center; margin-top: 50px; font-size: 0;} +.alone-download-btn .layui-btn{position: relative; width: 206px; height: 60px; line-height: 60px; font-size: 26px; font-weight: 300;} +.alone-download-btn .layui-btn+.layui-btn{margin: 0;} +.alone-download-btn .alone-download-right{margin-left: 20px !important; border-color: #009688; background: none; color: #009688;} +.alone-download-btn .layui-btn img{position: relative; top: -3px; width: 118px;} + + + +/* 适配多设备 */ +@media screen and (max-width: 750px) { + .layui-main{width: auto; margin: 0 10px;} + .logo, + .header-demo .logo{left: 10px;} + .component{display: none} + + .header .layui-nav-child{left: auto; right: 0;} + .site-demo-overflow{overflow: auto;} + + .site-nav-layim{display: none !important;} + .header .layui-nav .layui-nav-item{margin: 0;} + .header .layui-nav .layui-nav-item a{padding: 0 20px;} + .header .layui-nav .layui-nav-item[pc]{display: none;} + .header .layui-nav .layui-nav-item[mobile]{display: inline-block;} + .site-banner{height: 300px;} + .site-banner-bg{background-size: cover;} + .site-zfj{height: 100px; padding-top: 5px;} + .site-zfj i{top: 10px; width: 100px; height: 100px; margin-left: -50px; font-size: 100px;} + .site-desc{background-size: 70%; margin: 0;} + .site-desc .web-font-desc{padding-top: 20px; font-size: 30px;} + .site-desc cite{display: none;} + .site-download{margin-top: 0; } + .site-download a{height: 40px; line-height: 40px; padding: 0 25px 0 60px; border-radius: 30px; color: #fff; font-size: 16px;} + .site-download a cite{left: 20px;} + .site-banner-other{bottom: 10px;} + + .site-idea{margin: 20px 0;} + .site-idea li{margin: 0 0 20px 0; width: 100%; height: auto; -webkit-box-sizing: border-box !important; -moz-box-sizing: border-box !important; box-sizing: border-box !important;} + .site-hengfu img{max-width: 100%} + + .site-block .layui-form{margin-right: 0;} + + .layui-layer-dir{display: none;} + .site-tree{position: fixed; top: 0; bottom: 0; min-height: 0; overflow: auto; z-index: 1000; left: -260px; background-color: #fff; transition: all .3s; -webkit-transition: all .3s;} + .site-content{width: 100%; padding: 0; overflow: auto;} + .site-content img{max-width: 100%;} + .site-tree-mobile{display: block!important; position: fixed; z-index: 100000; bottom: 15px; left: 15px; width: 50px; height: 50px; line-height: 50px; border-radius: 2px; text-align: center; background-color: rgba(0,0,0,.7); color: #fff;} + .site-home .site-tree-mobile{display: none!important;} + .site-mobile .site-tree-mobile{display: none !important;} + .site-mobile .site-tree{left: 0;} + .site-mobile .site-mobile-shade{content: ''; position: fixed; top: 0; bottom: 0; left: 0; right: 0; background-color: rgba(0,0,0,.8); z-index: 999;} + .site-tree-mobile i{font-size: 20px;} + .layui-code-view{-webkit-box-sizing: border-box; -moz-box-sizing: border-box; box-sizing: border-box;} + + .layui-layout-admin .layui-side{position: fixed; top: 0; left: -260px; transition: all .3s; -webkit-transition: all .3s; z-index: 10000;} + .layui-body{position: static; bottom: 0; left: 0;} + .site-mobile .layui-side{left: 0;} + .site-mobile .layui-side-child{top: 50%; left: 200px; height: 300px; margin-top: -100px;} + + body .layui-layout-admin .footer-demo{position: static; height: auto; line-height: 30px;} + .footer-demo p{height: auto;} + + .site-demo-area, + .site-demo-editor, + .site-demo-result, + .site-demo-editor textarea, + .site-demo-result iframe{position: static; width: 100%;} + .site-demo-editor textarea{height: 350px;} + .site-demo-zanzhu{display: none;} + .site-demo-btn{bottom: auto; top: 370px;} + .site-demo-result iframe{height: 500px;} + + .site-demo-laytpl textarea, .site-demo-laytpl div span{margin: 0;} + .site-demo-tplres .site-demo-tplh2, .site-demo-tplres .site-demo-tplview{width: 100%; -webkit-box-sizing: border-box; -moz-box-sizing: border-box; box-sizing: border-box;} + + .site-demo-title{position: static; left: 0;} + body .layui-layout-admin .site-demo{position: static;} + .site-demo-code{position: static; height: 350px;} +} + + + +@-webkit-keyframes site-anim-closeup{ /* 特写 */ + from {-webkit-transform: translate3d(0, 0, 0) scale(1); opacity: 1;} + to { -webkit-transform: translate3d(0, 400px, 0) scale(2); opacity: 0.5;} +} +@keyframes site-anim-closeup{ + from {transform: translate3d(0, 0, 0) scale(1); opacity: 1;} + to {transform: translate3d(0, 400px, 0) scale(2); opacity: 0.5;} +} +.site-out-up{-webkit-animation-duration: 3s; animation-duration: 3s; -webkit-animation-fill-mode: both; animation-fill-mode: both; -webkit-animation-name: site-anim-closeup; animation-name: site-anim-closeup; overflow: hidden;} + + diff --git a/public/static/res/home/images/Thumbs.db b/public/static/res/home/images/Thumbs.db new file mode 100644 index 0000000000000000000000000000000000000000..7934e58d5c9daad1ce567f1bc4cddc986bf7bf3e GIT binary patch literal 3584 zcmca`Uhu)fjZzO8(10BSGsD0CoD6J8;*3Bx2!nwD0|OI~0pkDr|NlQkkbwcn90fxt z1pWfu3W`4vW&uVbD>OcbkQYXsN;Sr0E8 zaOg~6{O0?K?vVh$kY1Y#~A z<_2OOAm#;PJ|N}?Vqg^jF8h(~A7u}%5Rd@IAt>%Yg9spa;>TP1wNL&3{~P}wFbH_L zdAcz$GD0)<|Jw}C3@psdEX*wIEG+Dt?5ymZ+?+tb&Bp@*e1c$#2TDOW=p@JxMiw?U z9u6Kc9v(3fK0ZDX5Wyz`(I!ZgAqN-)IT&IX{xCBtF)#@-G7B>PKf)jnY>u!3T?=RY=j$kxe)-kzJ`!#HexN zLJno8jR!@8E`CrkPAY2R|V^&07y2J$~}^+4C1KUw!=a`ODXD-+%o41@ado12e>1 zaG#<1OAzQUCKgbj7{Xt-7 zL_t(|ob8=GcH_7bg)ip3&|ZLh0dj74KAPNmxx4^5f1bS6`M7gy0q%UH1*mgdd20dI z0<64VfT9IL&>snkAbG!Ybox-XA*#vCDio>;03n1BLI@#*5JCtcBq>bYCqM`ZBO>3gt3FCC?);0Z|-W6TQ*2IqD`m!6OgLBSK!At-o4Is^qz zNQa={3F#0NJRu!|f+wUyQ1FCw2nwE%4#7;j2#ClnY0MuM#+bJ=ogN{d zQ1AuNdgTFtTi873WBKeCAR+)T12Byxei0b~`0Bj%YK)o07&{i)*x`%w)<0S-a?IcM z0Q~K|H8sW*E+i>~hzwxwfsCWS#|fVi{rghzN8*TlfD-k{9(MrlL}Y3we?!$w zmpVp2FxCx#7ZLeh<_T_$nW~k)a^4;Scq%$(WbVD=TC8)Iq2PC*Lifd!u?8>)@CIOh zLb>7`z(hp8z*@R{@+j?OXW^SSw%mTz=pk&+2{%brCMhZF7xn zu`ggdh29%urm=2R75)S4gT!U57O^P4xP4c;4u;+_-T4}z;61eIz%M<_S^|%%T1L}{ z#{+D@E#m^fV~H`R{&+e?sRi|#+=u9r%aZj#!G{?G_^uYc@*7h{Kla|f)46_8d@En) zJ^{Xm!MS@)Q1AhaF(2n%-_-|;-?*?}Vm#lFe~mws0CY4vtbFC` z@*1pj^T1a{lZi+?DERbMOHE0{ycD@*6~8@430_P|xZ%3q1dAd)cs zU>)b~i9x|1fm-ts_7}4(V4Dm!p#`;X<%fu4<^5pYEW(&1A{6`{)S^FPx6o(M-gYTi z?_&vA`JRZ}mU&PGnp`k%K0zq>9q3x}Benx*D_9Fzs;^xF_*VV_<&tsyL>s#E2|~dK z5Rpf0yQgaaPi+Z8sg++~6L7pKYUQ0Sycw$oOlvv`GwnQdXOz%fG*)0MCH&QZq75?G ze!3x0@DA$6`#0|oW6ZeW?t73xTdkr+HSU9A4X(W>3k9z@0Xmn7cCl?UzLh^|9v^6O z(e&6xtD)dG43Q7eEmGTvu?lur`BRE&{Aobz|IeBX1;3%oQD)!D`!S3lfsV9`GcUzm zAO02MLct?f=#sJSQg@bsmA^mI%GceIwvzJRHbcQ%{5DcutnPBHd{$I*2-hoG)v$_D zNs&>Tq2R-GE<;SMyt{G5-r!vzSXa5&18e)|YQ`C&k<$qZp18OHw?jMCZ0!bH!TE%6 zA4*yM{aMjmjXw|lUW!ogVXAKMxR2T_M__xZpp_2<>t<&R*7?(|uV?yP0H0znyCYC- zQ1BLi-M9{`aj7Z2|2y|*dmLls>kQV-z2mcpPp{ATT%T7J6g&WJ!Q?i0ywEx7SJDtUG7k{MFO|;Q0K0jXIXGlgvzxxzz+Kwelt~&c&0x>7kK#G@OKcvoQ!HBYO$-o9EWg z4TgdzhwxKt*`Tt)Q1E0Yfz2V8sV*auU2-hR?oZ&Lu5{f^Q%F6Mi@8&bcH$bm?1$y7XCl t?9eW_@31cZ8!b8^gb+dqA%rxF{{y>ocGj^yP^16=002ovPDHLkV1i?>`tSe% literal 0 HcmV?d00001 diff --git a/public/static/res/home/images/logo-1.png b/public/static/res/home/images/logo-1.png new file mode 100644 index 0000000000000000000000000000000000000000..3791d2fbc801390c39c72ba7b363072525dfe819 GIT binary patch literal 2635 zcmV-R3bgf!P) zL_t(|ob8=GcH_7bg)ip3&|ZLh0dj74KAPNmxx4^5f1bS6`M7gy0q%UH1*mgdd20dI z0<64VfT9IL&>snkAbG!Ybox-XA*#vCDio>;03n1BLI@#*5JCtcBq>bYCqM`ZBO>3gt3FCC?);0Z|-W6TQ*2IqD`m!6OgLBSK!At-o4Is^qz zNQa={3F#0NJRu!|f+wUyQ1FCw2nwE%4#7;j2#ClnY0MuM#+bJ=ogN{d zQ1AuNdgTFtTi873WBKeCAR+)T12Byxei0b~`0Bj%YK)o07&{i)*x`%w)<0S-a?IcM z0Q~K|H8sW*E+i>~hzwxwfsCWS#|fVi{rghzN8*TlfD-k{9(MrlL}Y3we?!$w zmpVp2FxCx#7ZLeh<_T_$nW~k)a^4;Scq%$(WbVD=TC8)Iq2PC*Lifd!u?8>)@CIOh zLb>7`z(hp8z*@R{@+j?OXW^SSw%mTz=pk&+2{%brCMhZF7xn zu`ggdh29%urm=2R75)S4gT!U57O^P4xP4c;4u;+_-T4}z;61eIz%M<_S^|%%T1L}{ z#{+D@E#m^fV~H`R{&+e?sRi|#+=u9r%aZj#!G{?G_^uYc@*7h{Kla|f)46_8d@En) zJ^{Xm!MS@)Q1AhaF(2n%-_-|;-?*?}Vm#lFe~mws0CY4vtbFC` z@*1pj^T1a{lZi+?DERbMOHE0{ycD@*6~8@430_P|xZ%3q1dAd)cs zU>)b~i9x|1fm-ts_7}4(V4Dm!p#`;X<%fu4<^5pYEW(&1A{6`{)S^FPx6o(M-gYTi z?_&vA`JRZ}mU&PGnp`k%K0zq>9q3x}Benx*D_9Fzs;^xF_*VV_<&tsyL>s#E2|~dK z5Rpf0yQgaaPi+Z8sg++~6L7pKYUQ0Sycw$oOlvv`GwnQdXOz%fG*)0MCH&QZq75?G ze!3x0@DA$6`#0|oW6ZeW?t73xTdkr+HSU9A4X(W>3k9z@0Xmn7cCl?UzLh^|9v^6O z(e&6xtD)dG43Q7eEmGTvu?lur`BRE&{Aobz|IeBX1;3%oQD)!D`!S3lfsV9`GcUzm zAO02MLct?f=#sJSQg@bsmA^mI%GceIwvzJRHbcQ%{5DcutnPBHd{$I*2-hoG)v$_D zNs&>Tq2R-GE<;SMyt{G5-r!vzSXa5&18e)|YQ`C&k<$qZp18OHw?jMCZ0!bH!TE%6 zA4*yM{aMjmjXw|lUW!ogVXAKMxR2T_M__xZpp_2<>t<&R*7?(|uV?yP0H0znyCYC- zQ1BLi-M9{`aj7Z2|2y|*dmLls>kQV-z2mcpPp{ATT%T7J6g&WJ!Q?i0ywEx7SJDtUG7k{MFO|;Q0K0jXIXGlgvzxxzz+Kwelt~&c&0x>7kK#G@OKcvoQ!HBYO$-o9EWg z4TgdzhwxKt*`Tt)Q1E0Yfz2V8sV*auU2-hR?oZ&Lu5{f^Q%F6Mi@8&bcH$bm?1$y7XCl t?9eW_@31cZ8!b8^gb+dqA%rxF{{y>ocGj^yP^16=002ovPDHLkV1i?>`tSe% literal 0 HcmV?d00001 diff --git a/public/static/res/home/images/logo.png b/public/static/res/home/images/logo.png new file mode 100644 index 0000000000000000000000000000000000000000..bb2d0c41950cea444b93b1e34396dada9f8c1b3a GIT binary patch literal 4204 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�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 O8>V@^YD0001`#1^@s6i>yJ`00004b3#c}2nYxW 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 Sa!wQg0000' + ,'layui 已更新到:v'+ layui.v + '
          请注意升级!' + ,''].join('') + ,skin: 'layui-layer-notice' + ,yes: function(index){ + layer.close(index); + setTimeout(function(){ + location.href = '/doc/base/changelog.html'; + }, 500); + } + ,end: function(){ + layui.data('layui', { + key: 'version' + ,value: layui.v + }); + } + }); + } + layui.data('layui', { + key: 'version' + ,value: layui.v + }); + + + //公告 + ;!function(){ + return layui.data('layui', { + key: 'notice_20180530' + ,remove: true + }); + + if(local.notice_20180530 && new Date().getTime() - local.notice_20180530 < 1000*60*60*24*5){ + return; + }; + + layer.open({ + type: 1 + ,title: 'layui 官方通用后台管理模板' + ,closeBtn: false + ,area: ['300px', '280px'] + ,shade: false + //,offset: 'c' + ,id: 'LAY_Notice' //设定一个id,防止重复弹出 + ,btn: ['前往围观', '朕不想看'] + ,btnAlign: 'b' + ,moveType: 1 //拖拽模式,0或者1 + ,resize: false + ,content: ['
          ' + ,'layuiAdmin' + ,'
          '].join('') + ,success: function(layero, index){ + var btn = layero.find('.layui-layer-btn'); + btn.find('.layui-layer-btn0').attr({ + href: '/admin/std/dist/views/' + ,target: '_blank' + }); + + layero.find('a').on('click', function(){ + layer.close(index); + }); + } + ,end: function(){ + layui.data('layui', { + key: 'notice_20180530' + ,value: new Date().getTime() + }); + } + }); + }(); + + }); + + ;!function(){ + var elemComponentSelect = $([''].join('')); + + $('.component').append(elemComponentSelect); + form.render('select', 'LAY-site-header-component'); + + //搜索组件 + form.on('select(component)', function(data){ + var value = data.value; + location.href = '/doc/'+ value; + }); + }(); + + + //点击事件 + var events = { + //联系方式 + contactInfo: function(){ + layer.alert('
          如有合作意向,可联系:
          邮箱:xxx@xxx.com
          ', { + title:'联系' + ,btn: false + ,shadeClose: true + }); + } + } + + $body.on('click', '*[site-event]', function(){ + var othis = $(this) + ,attrEvent = othis.attr('site-event'); + events[attrEvent] && events[attrEvent].call(this, othis); + }); + + //切换版本 + form.on('select(tabVersion)', function(data){ + var value = data.value; + location.href = value === 'new' ? '/' : ('/' + value + '/doc/'); + }); + + + //首页banner + setTimeout(function(){ + $('.site-zfj').addClass('site-zfj-anim'); + setTimeout(function(){ + $('.site-desc').addClass('site-desc-anim') + }, 5000) + }, 100); + + + //数字前置补零 + var digit = function(num, length, end){ + var str = ''; + num = String(num); + length = length || 2; + for(var i = num.length; i < length; i++){ + str += '0'; + } + return num < Math.pow(10, length) ? str + (num|0) : num; + }; + + + //下载倒计时 + var setCountdown = $('#setCountdown'); + if($('#setCountdown')[0]){ + $.get('/api/getTime', function(res){ + util.countdown(new Date(2017,7,21,8,30,0), new Date(res.time), function(date, serverTime, timer){ + var str = digit(date[1]) + ':' + digit(date[2]) + ':' + digit(date[3]); + setCountdown.children('span').html(str); + }); + },'jsonp'); + } + + + + for(var i = 0; i < $('.adsbygoogle').length; i++){ + (adsbygoogle = window.adsbygoogle || []).push({}); + } + + + //展示当前版本 + $('.site-showv').html(layui.v1); + + //获取下载数 + $.get('//xxx.com/api/handle?id=10&type=find', function(res){ + $('.site-showdowns').html(res.number); + }, 'jsonp'); + + //记录下载 + $('.site-down').on('click',function(){ + $.get('//xxx.com/api/handle?id=10', function(){}, 'jsonp'); + }); + + //获取Github数据 + var getStars = $('#getStars'); + if(getStars[0]){ + $.get('api.github.com/repos/sentsin/layui', function(res){ + getStars.html(res.stargazers_count); + }, 'json'); + } + + //固定Bar + if(global.pageType !== 'demo'){ + util.fixbar({ + bar1: true + ,click: function(type){ + if(type === 'bar1'){ + location.href = '//fly.layui.com/'; + } + } + }); + } + + //窗口scroll + ;!function(){ + var main = $('.site-tree').parent(), scroll = function(){ + var stop = $(window).scrollTop(); + + if($(window).width() <= 750) return; + var bottom = $('.footer').offset().top - $(window).height(); + if(stop > 211 && stop < bottom){ + if(!main.hasClass('site-fix')){ + main.addClass('site-fix'); + } + if(main.hasClass('site-fix-footer')){ + main.removeClass('site-fix-footer'); + } + } else if(stop >= bottom) { + if(!main.hasClass('site-fix-footer')){ + main.addClass('site-fix site-fix-footer'); + } + } else { + if(main.hasClass('site-fix')){ + main.removeClass('site-fix').removeClass('site-fix-footer'); + } + } + stop = null; + }; + scroll(); + $(window).on('scroll', scroll); + }(); + + //示例页面滚动 + $('.site-demo-body').on('scroll', function(){ + var elemDate = $('.layui-laydate,.layui-colorpicker-main') + ,elemTips = $('.layui-table-tips'); + if(elemDate[0]){ + elemDate.each(function(){ + var othis = $(this); + if(!othis.hasClass('layui-laydate-static')){ + othis.remove(); + } + }); + $('input').blur(); + } + if(elemTips[0]) elemTips.remove(); + + if($('.layui-layer')[0]){ + layer.closeAll('tips'); + } + }); + + //代码修饰 + layui.code({ + elem: 'pre' + }); + + //目录 + var siteDir = $('.site-dir'); + if(siteDir[0] && $(window).width() > 750){ + layer.ready(function(){ + layer.open({ + type: 1 + ,content: siteDir + ,skin: 'layui-layer-dir' + ,area: 'auto' + ,maxHeight: $(window).height() - 300 + ,title: '目录' + //,closeBtn: false + ,offset: 'r' + ,shade: false + ,success: function(layero, index){ + layer.style(index, { + marginLeft: -15 + }); + } + }); + }); + siteDir.find('li').on('click', function(){ + var othis = $(this); + othis.find('a').addClass('layui-this'); + othis.siblings().find('a').removeClass('layui-this'); + }); + } + + //在textarea焦点处插入字符 + var focusInsert = function(str){ + var start = this.selectionStart + ,end = this.selectionEnd + ,offset = start + str.length + + this.value = this.value.substring(0, start) + str + this.value.substring(end); + this.setSelectionRange(offset, offset); + }; + + //演示页面 + $('body').on('keydown', '#LAY_editor, .site-demo-text', function(e){ + var key = e.keyCode; + if(key === 9 && window.getSelection){ + e.preventDefault(); + focusInsert.call(this, ' '); + } + }); + + var editor = $('#LAY_editor') + ,iframeElem = $('#LAY_demo') + ,demoForm = $('#LAY_demoForm')[0] + ,demoCodes = $('#LAY_demoCodes')[0] + ,runCodes = function(){ + if(!iframeElem[0]) return; + var html = editor.val(); + + html = html.replace(/=/gi,"layequalsign"); + html = html.replace(/script/gi,"layscrlayipttag"); + demoCodes.value = html.length > 100*1000 ? '

          卧槽,你的代码过长

          ' : html; + + demoForm.action = '/api/runHtml/'; + demoForm.submit(); + + }; + $('#LAY_demo_run').on('click', runCodes), runCodes(); + + //让导航在最佳位置 + var setScrollTop = function(thisItem, elemScroll){ + if(thisItem[0]){ + var itemTop = thisItem.offset().top + ,winHeight = $(window).height(); + if(itemTop > winHeight - 120){ + elemScroll.animate({'scrollTop': itemTop/2}, 200) + } + } + } + setScrollTop($('.site-demo-nav').find('dd.layui-this'), $('.layui-side-scroll').eq(0)); + setScrollTop($('.site-demo-table-nav').find('li.layui-this'), $('.layui-side-scroll').eq(1)); + + + + //查看代码 + $(function(){ + var DemoCode = $('#LAY_democode'); + DemoCode.val([ + DemoCode.val() + ,'' + ,global.preview + ,'\n' + ,'\n' + ,$('#LAY_democodejs').html() + ,'\n\n' + ].join('')); + }); + + //点击查看代码选项 + element.on('tab(demoTitle)', function(obj){ + if(obj.index === 1){ + if(device.ie && device.ie < 9){ + layer.alert('强烈不推荐你通过ie8/9 查看代码!因为,所有的标签都会被格式成大写,且没有换行符,影响阅读'); + } + } + }) + + + //手机设备的简单适配 + var treeMobile = $('.site-tree-mobile') + ,shadeMobile = $('.site-mobile-shade') + + treeMobile.on('click', function(){ + $('body').addClass('site-mobile'); + }); + + shadeMobile.on('click', function(){ + $('body').removeClass('site-mobile'); + }); + + + + //愚人节 + ;!function(){ + if(home.data('date') === '4-1'){ + + if(local['20180401']) return; + + home.addClass('site-out-up'); + setTimeout(function(){ + layer.photos({ + photos: { + "data": [{ + "src": "//cdn.layui.com/upload/2018_4/168_1522515820513_397.png", + }] + } + ,anim: 2 + ,shade: 1 + ,move: false + ,end: function(){ + layer.msg('愚公,快醒醒!', { + shade: 1 + }, function(){ + layui.data('layui', { + key: '20180401' + ,value: true + }); + }); + } + ,success: function(layero, index){ + home.removeClass('site-out-up'); + + layero.find('#layui-layer-photos').on('click', function(){ + layer.close(layero.attr('times')); + }).find('.layui-layer-imgsee').remove(); + } + }); + }, 1000*3); + } + }(); + + + + exports('global', {}); +}); \ No newline at end of file diff --git a/public/static/res/images/avatar/0.jpg b/public/static/res/images/avatar/0.jpg new file mode 100644 index 0000000000000000000000000000000000000000..ceba9507ca2b19368675cce21ea6df9209c238fd GIT binary patch literal 4989 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 IWZ8rN0!$i$=l}o! literal 0 HcmV?d00001 diff --git a/public/static/res/images/avatar/1.jpg b/public/static/res/images/avatar/1.jpg new file mode 100644 index 0000000000000000000000000000000000000000..e0287e0b3e5e20f69adfcb9a8b141acf0dd33b63 GIT binary patch literal 5504 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 literal 0 HcmV?d00001 diff --git a/public/static/res/images/avatar/10.jpg b/public/static/res/images/avatar/10.jpg new file mode 100644 index 0000000000000000000000000000000000000000..0a35912d2872b24721e9805e8764ee0ce05da1c7 GIT binary patch literal 6377 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 ZdQ7Sml$XZ|L^AT@a3!f)KkVnl{{h}EE{FgC literal 0 HcmV?d00001 diff --git a/public/static/res/images/avatar/11.jpg b/public/static/res/images/avatar/11.jpg new file mode 100644 index 0000000000000000000000000000000000000000..ed194f576f22c7f3a7896fdd3df73c6f16dcf1eb GIT binary patch literal 5754 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 literal 0 HcmV?d00001 diff --git a/public/static/res/images/avatar/2.jpg b/public/static/res/images/avatar/2.jpg new file mode 100644 index 0000000000000000000000000000000000000000..f3da94f39764da12dfcb340397614f813cef9df9 GIT binary patch literal 4430 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 literal 0 HcmV?d00001 diff --git a/public/static/res/images/avatar/4.jpg b/public/static/res/images/avatar/4.jpg new file mode 100644 index 0000000000000000000000000000000000000000..e0bed6fdf2b80aa0b1f1a49f259eb39fd506c045 GIT binary patch literal 6404 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 ALjV8( literal 0 HcmV?d00001 diff --git a/public/static/res/images/avatar/5.jpg b/public/static/res/images/avatar/5.jpg new file mode 100644 index 0000000000000000000000000000000000000000..bff49e50d57b733317033c76d51a9dac7e6c557d GIT binary patch literal 5562 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 literal 0 HcmV?d00001 diff --git a/public/static/res/images/avatar/6.jpg b/public/static/res/images/avatar/6.jpg new file mode 100644 index 0000000000000000000000000000000000000000..524b911b278d7dbcfe4b26cf7a0c1e9562b7f898 GIT binary patch literal 7270 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 G&;I~^xV72< literal 0 HcmV?d00001 diff --git a/public/static/res/images/avatar/7.jpg b/public/static/res/images/avatar/7.jpg new file mode 100644 index 0000000000000000000000000000000000000000..fd3287c0edf110f5624af1934220b464e239e5e0 GIT binary patch literal 8313 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 literal 0 HcmV?d00001 diff --git a/public/static/res/images/fly.jpg b/public/static/res/images/fly.jpg new file mode 100644 index 0000000000000000000000000000000000000000..65747c0cd115341ebc069dee32775c42b6b23489 GIT binary patch literal 9577 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 literal 0 HcmV?d00001 diff --git a/public/static/res/images/logo-.png b/public/static/res/images/logo-.png new file mode 100644 index 0000000000000000000000000000000000000000..08c25997193d358ae8f154ead2ac48ff9b1ecd49 GIT binary patch literal 2781 zcmV<33L^E1P)000W>0fLJSS^xk59CSrkbW?9;ba!ELWdK2BZ(?O2Mrm?o zcW-iQb09-gHt4*vi~s-t7IZ~ebVG7wVRUJ4ZXi@?ZDjy3HZL(VFEKScsgcS6017op zL_t(|ob8-@j1^ZM$3MGb7t}_ew=AJo^-<|o+?|F7>&YwTecz~sxWxy)nHqUSmjya6QBQWu)Ii zpiO_h(=*)P>GLTFISvEQmLrS4@l*BJMWORBI`y$PlS&8UCIW{LKWI}XmF_J^jsjQ& z>@a;B;LVv-`egW`{tdfDw*9mW18chsJeg zQt2Brsq|^nx9gD`xCm${MUI5n89ILsm>9Xf1y}&I>Q6~9eY+R=J%!MRkY_>kLeb=~ zlmlQQ=HUZKj$$LQ#WUPvG5uc;+y_hp9z{$~7&Goo9H&v1`Ku1^4FA=>9JMN6-t z?PQDT+s(k_5{NMj+9znx^XK(JOy6z=I+OS+5kCOax4SDLZ?Q0adnw`rb^)uyzD9t& zlL5W~-Z_en?pwL$5gzNh3^(d*~Xo5lvZ-+_M{_ z9b(C0DQ6O}4Dl=KkvDrYu-P-*Lbg00RYot`;Ti6x99=I3t_1#o5M~XKa>KI6^&0Dc2pt-tpIpZ5&+PsIvgDd*k5-AMTKEzfX& zU0}#W;5`VDo-TI1JQzr5GKxV9@*oc}s0A7ryvfl`OL1stC<(%Ol}5-Cu?fjfbVQxo za-az^3wR;iZu&O4NLP!f|KM$y2K>NM&i5?kTyH7oHAxn>lyf<-9dR&!27Euku&KaX zffI;YtrW`k_M^}@Zy{Q>>*n41xFJtO0A$U{N<=I7={YCrIhSNo>E4j$>5m*M2CWrW zg_`ORZ4!%GBn3Vn*>H0LNpP(J9t8eqDaW;xGtW}a8{#I=4(Mj!UC1u3uOuwH&qT~v z4{$s||0F0ktC$noci0bX(GNS&8m;-pX?4B>(G)|{@|je6-)I)#v}tRLG*32tdwX2} zTF-D_@eKEI&v5TRe1IE}F!TuWz-{37z$2D&R$Iz>M`Vt5z!KyE-|89eiwR|IM96VC zUm~qYl$+xSZeT7n>EjN4T$Rrc(8LJT_|{P0fjnzu3x}p}Hw2%&LJ!BH9PQhYdo+NU z{~*w44r#=7;l2dy0(M!-xfHk#(Ig9y&~_eT3f2Nx%DE2shF)ZaXSh!m@dM`Q zV?~@%{U9oV2E_LohDcrHOeU3XFEG~&$i2BXq9L*-LzA%yd7#Y$P6P09U@@|l54{hg4Y&xfJ;Qw{ zkFaqF3T{soIW8AQ%%nsRB)yV2p^f>Xn8*W5iaI0;ON_`mp9>-~?Er6JFt;+~#Yj|J z@eH>Y=(Ut{Z>StU9eAG>^qyjbwUjd%ab8bSIdY6RLcT`9&=m^TWEgH<_9Mx%PKpe{ zb0I>Eg;9-@Nu^tLvMt!IP#ie|MD}R}Vc65azb)l_5=o-{7Wg@E%ro3vUi{mTJs{6e zxvhbLsxG&xdNj|qAWxA*Yve*bgAq%MuFiIk#0DenM>He%j{uK) zhT9EXp~vPcN)?SvD&17LSI)6J8Co69Lf1V4yWCpp8X;7oxRwNa3wMb{J-dZ3K;M+G{^5bUp9m9K9?%q2&tTtT!V zwU|Poc3zZ2j(`+7v!Oa6_9F0SOF3fYfrz zLQSdvyv0(^T*NFq41Crz-0I)BUSO!Lz}VLUi3)U8yt+^hIZh#aF$Spq!<7pX<@g-W jA_XWF{UfF-E)4u1diIWz$R9rz00000NkvXXu0mjfBc1{> literal 0 HcmV?d00001 diff --git a/public/static/res/images/logo-1.png b/public/static/res/images/logo-1.png new file mode 100644 index 0000000000000000000000000000000000000000..1ecc17c40e146fd2768936281fb17c47c2ee5c20 GIT binary patch literal 3168 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 TURtS79Sk2jYRCZ%qvihxeA+B+ literal 0 HcmV?d00001 diff --git a/public/static/res/images/other/1437100018023.jpg b/public/static/res/images/other/1437100018023.jpg new file mode 100644 index 0000000000000000000000000000000000000000..e12c9a8716753a48d1d7a72cca450aa48480d960 GIT binary patch literal 13174 zcmeHtbx@qow%}kP2@)hYlR&Vb!GddW83^tWJTSPsgy1mvV8PvkI|O%v4({&mwj{s% z-p#%5-dAs{wzl?-8x9!(4if;635S3Q_s|X?1i%3heo_1Pfq;kv5BKD8P80(GhX9X&fc*5yGsH(E zz#}d^0wN|77AZE9;7go0%yJ6Wx)G64t;5TQWb)pnBco4PSU>3L+oZLS3)z0LD_csZ zcwC3zas6N8?^`@>36F^MIK}@+3LG2~BJvYNBm|`27;x~I2&7Dcx>(q9-fx)Yts^3r zKIo;DwhSYFNk3!}vMD>#w{3l?;FB>D^)L-UMR=qM69E&z512|%fA71`rx_hsjT=sSAwz6fQXMjOnCn_CDIS^=H=*ygUY zJFW~}j=HDLZgYmtU7qr>E`0v~$p5?CVC1W~M?D{zA=Qru;%3<_L^au1hWB*rIY%yG~{DF0Ky_i^1N^<2i4_veqGU&%ucd>rku&seqIR zvgrDgxo3DRUf}K4OQ`EIw@Er>Ik)9GEB`bhB5q-*>h0oq|8v$7dLe5{TS=dASo|6@ zI@y$dH1vh(PA$*accw(Kah_`TveF_3+Y8{r8gIU9v25&Im@!xpT6x;Ao?O8kpg18b zGxY2ytL62p($8D`{cd^D_EL%2>Q)4eM28ddPCL{Tn01^hP6;Mw=T&K}bb1Pm$kPEzFs zQKy)dHi=etUZb!k7OKpa7%k=>^5zz2WZh+_zcph4W=sz}tGpIAv4dB?eyeLPT!|@$ z2<@RwhLui?skKkelGP5+UZPqxe8UjwOx>rI=2bP38=ta%yUFZPhBr{rvKe7&Ey%Nfu(W(bI6qXHGMTsGEEJlr(vRQOlug;< z7F!wj#&=rB`L)ds()_m3yK5yLkdj}7;*Z`q@|-AT$&s!XWWGT?G}$$Yc%mr?uMzx; zC8{b5ZFNNO$U+)3jY;mvi<%A>VLQw9MPMFaaUa+h=K+w{jF2E7-irfPuM=yfT{iBJ zP{Uy(qU{i761Yw(?j$8ItrJU1Jhy}hfi*SRuFo0B96G?aPsM68^HaP_W*z{}eT_OU z^nCvM;^3`X5#hpobFJ(UX0gpTv2@Z9W`!g;Zf{@HQzi|K;S6vr4CbDxwicI33EFz=DRMC~AfN1$f3z%42ltGkl)5tBnBJ;db zC#%9;vh4!`VUV#drHguQHXVxuE4I+fDE~4Q0y+nfGdKZMd4tIpqHLwXd)nd;v*~rb z;F2pTjSp1lrFK?Q;^ZmE`XVE4wqZ5{Wvgsms|_&kZjQhcnPR}Ih{`&(V0Lu$^rjup z&^cehiLuni$;(69VT#Z|l@~!&-1j|zvVSnJ{WkGFt<0~kzZ3?W=%601yx5E!S1wr* zxbvMVaR2${E0fGF8EW=qFJ)$44t7Q7kr`x*1B-6`0f14X5mJ~HL;V0KDv66di6vmG zEXtC|;ECk<0L_P*Y~(>zSj(uyd!{HOd`OT&zi*y)SASWKDf_5pkl<`r0LvRUF{zFf zIhM+|_tQPY&{Oowi(ioSXQPq@SDPeeBHWneZmyZ#$Pka8QN<)IHP|hUr^!55Gs!hE zx^^+GGokrPV6wo?%%x|;N6F5J{u%epJZ(Z{+4!*oW3Vh29c`5K-f*wU9B?NROmE+j zA||jkCx(!(k0GNvmkHXggpDDMa;s@ z`E8z#ZdO?F(4j`U8x#9LjH!D(kFQLK_klb>8ciaatj&vq9vvKF?Kbz2atf}+&< zaXok2E;q~Q(tJXu=mle)s1yaRBP{T3XLui?RTrLc>A>J589Ff+1N+dG60I6%!FHbe z1W&H)l$@hZ%thh0ygnL>m5hSSh1o{Fa~SD6pv~*Z3ATmQX1#Sh4wFm8`V>JIpcD$o z6LYyv6o%g=6)>Sv#oi{%5g3BS*trFKWj2D#gN(LR2SHI928YZ>F6PE|WB`w~ci%4H zso$a*`hA512w)&S5k-cjv?NbAHVM0hoKaq zTJYil@D;iFpXdGoxkOD2_$ffbx-=$=of`OgpyR+DoAu`XWp+~rWxb9Il+Vd^=tc6Y zQ-lrwM!?n5fxy3gf#kfolANBLHSr>gfesK%yw`0JKQU*0WO9elnvmz@8QJwGf&W0n zFN&ENwSR^A@x5bG-4rq- zY}o>x-r&h_oix%xLOwS44`m;tt^3Ex4_WajzapdWbS-Z^{_UXu1gM30Mf^Uzm9B09s>a>t)h{Cx^!n^9gv|Q8(qSA?&ID&;OGX>&ateWJ zQU*QI$6XDjgJx5f#*A>rQn&BI4`NG|%++W&S1S7xGcRGj-(Eo_O@qaE2VGlckH!r$ zv@(d!V%cC3Nz@vUG(5twYaA^9{()ql$BJU*&>R!Xs zU1u{J0){K{taYfFuc{8NQ&}+(f2-O*1GtzkXE}$)RV9`YD5zJDhHs;!$WLl(!?Qg! z3Nui*%QUPj2<8R_&8bI!V=GUS;o%S8qj1eEg)8P%pF!QVZ^5e9h6EQ#nO926pO6}t z?Z}@K3vH`W8uM}22*0`=MDJ_x&Ovq_lOz&wELOSFb1E^cV(By-mu)EQ;t~1j+9Lw*9@%v`rj02&>{=X<)z*TX zk-Z-Y-<^PYzv8w8m}#45AH+aw;Qhb&04D^$BfI$1TzlaSF2OPDHVtWZzyNo!V0WAsIZ! zZRHX5bj{-HQ(*%og0towe5YrxO#^8bAx1wgro}3MB4`(I4N_UXqVAeg()TM4@FP}- zI0LbXkI2+@B96pc*F*P1czrnT6SG0**2}ee9AKZm_EN+n#nzrB2d7m$a6^hIyzoD3 z`7bB?_|EEX2`<*#{_pyZf4TQ!>j^zee2^Orn4&>WNUt-4K&Zl;O>I3YM7QE zw;tG1WJ`9}V>ujJI6pZ{KRnXmLbs=jpE+6+QaEET>Ia9A>LFIobgiO^j9%65Sp$n2 zSEx+*mR|#G<)#TKy%xN#dv`nSc^5r#M7qGg8!_AL&$o8h-B-{~;V!LI(Q(w#7cZ48 z8S73ZYe=Rc4j0C7CxJe)WgNnxPAwHWW*Kvfc$h-OT9L7o_vxoX(j)^6RG(jw$Ta<2 z=yYwW`n=1|_vZE1grydw$aRPC1gqY1LCP3ZpW;iT8DL7A9fsJEY)U+pUI1m|=0rDN zwGgeCUrD!nT31D^nVwuxvE_!)IV!I508qca1xXSZIxq!vZq#&kDy-^qv9oBoqT`8t zZJq<4w)ZdH&v`1m{Q0Sai8{;5qUU=xO9fg0V~=Yxp0)Uyc2$u_+~_)ZN5nN~|BAni z^jh_(S6lg9mOMh5WC{Uypb?Lw)^`L?`-f3Kas*ij%=KAyx|0H(@b}6j+mghfyv+Z!?7!Rium8|rH;^zNGW-#4 zv;=Add-e~N@Nsg-ij&VAI(ApCNS`P&Cg(OgDJRTAIQ z$lX$SZ3%0zz4ekgUC`=fPxjR(pT=U$BF=SL1|t6f>I8LFgZS3Lh~bJFNUM0AuJ6?4 zi!>I!z!JMqec`YwNAH5N{n{0S2LRbE1|k31Y-w0u0&nzDgw-K~s^g}H?M#}?NQdM# zc)N6!!#b?b|3G1q@miAcUIdYK(Bp(yx0=l1Q-5{k$hDl!B1-{pTINeDvlC-y2DdWx zsri%m!RjC@si*nx7W%C%aaI2^gZ~l=kYCJW5IEtfdp>bBJ-@>E{xhODRg>hcivG(A zg%;_XCR6`X@6fxU3j=h=$W4@z?W^cLEs`yV*DT5u#ywE0zHi0m7fI|TWQicVESD0s zZAYoHLn_~?c=zj+MweYfRVoM-R(p|F09W#7YTXbiC51$TiF%_xQHJ9UzlNj5(R(E( zb2{kg{*V5G{GbEJyJxz&_Hn)6yJ=pDo9Rg}!6s70O}IRt%IxC+Z$G=zo0Gp0qC4s& zEsd^Ss%5da)!g#HlWpWYd~JG6tF%&Mh@ZneCKj1HO|@a9q5AED0SKh`L_Dvu&GK}= zLM^!IOo4YkA|(9OCa3W7jh6njIBerSG08F8mGiLQP_t&$UQSC)>INiiwUxN_3TEP} zlPUJ{?*10};9}W^={cTsH<1Enf?xuN&rH(5o5jlNT3i|0a!AsOHV5va#@@sE z&goZ3a3>KSfj|4y)a10PYz@tRUejfDeB}UFu+2?+T|XOC4cx7s&$7H_?^`#sW~PX% zOT|1>>5pQF$ndYJdn4XAa^r<}qcVKU%f>J&b*|(=Zm7OcGPvBtf<`>tNlO~PNYus4 zt-VF+G^_Ew!Rtz(+7e}kXEY;2edWf;FiJ^DR*0jlI$=(M$qmxBF*Dr5Vk2`&hQKyl z1$;Adz75BvNpF#e9W$9XT29-fXhflvD_X=_1)fp4-REJgcjK-33Q3?z2)r_|X~Rq! zjvVP`X(wD3fc)5M4w#R&veF(?m>w{fDo)~|O)Z9vo@-&<$1P59Uqwn#m_^&+*ekAb z5jJKP`LQn;o2X8)k+F1~z>8*DOH(2He^45X1V0Zm8rFCFe3&mUtc20aMAJhRS{nS>Y)IOw0BS%85_`cF3hVubXEuEBEpE#8>mL=xTM@Q(#Hp&?( zra7fK)JnXN?I<1WF2fs4cAKzfEH*d*Yq)=-GkB5XP!XBa^7`Z7Quu$8`@goRr|<~S zE+QGD3V6qG+_za@#1&7&kp_J#KfhVCtFIbfxb|;^>o6yxUB=`StHSdr4e2w{I3t#l zD80wxQDD8)0olApQ>O5uPo4ET`xkolA2j@zFh{tJ^eX@}s$GlqmL|B+NO8q?>_zGn zt9Lc0ts>Q5-Ysf%f-?N2C!z{whHc;rBP&FVS{^g&0Fw;?jg~;xgPOimf5F8u#PQ1F zObeq?kisX;J%~)e>to*7Lp)kqX$vV_Q>6n(@(;I02&FGedsMFj+WQSS1u=m?tz(8O z5LzEg)H!pYrYpx*THtI77+v*};L?HlO?GZ>9yW)B_9a!wbL!_NrvQx$^4f z0&+>e{2B4u_}JEE=-UDuc!_WG!rS4UGkSW6#8V)M=V9cgCGD=+#F_4rCrO<~ovZoi zQs6iPCz^1@?j#5WOsE5*^G+*MMTTx3FPfiuHCAXyO%Jk6R8y(tKjCY=+{?}RTBWQ*8$5rbsk(WASqlfF z2T=%HuUfb#o^X0iM(DBfnDJ|R9LQ}n^w7fD09}OBa|Rb zi_tbfS8+p-X-IAtgW0$rS{?lHoJaJeeN(+YY710IPYBJ+h%OGpuXU0ucYRZR?!QR`a6O1@r*8dH@uU?VM6FK$3DoV?nSHgeJiHC<_I z8+nPDb@gL@47V)l8HPbbC*zs{o;ENn{|?khwC_U6xqQ94_lQbf+F_nC-QWJcHne!9 z2IYwQ4EghK)%XJ-_#Zq)Z9w^>zMS~T@H<$DDBZ9&4;|FP5x=uFvcntf4Bl8?SadYG z;`>M*GbMh=zvSGE8RC40o^D)bHX=QIztVkDLJ1qoZLD>hQrDUd<(Nwfb%X(~CPsn_ z6_%q&j+hA$IkL&rr`Mk?W!jSYCEdO4m?US$1)@N}@Qzl?bzv%Cc4~%IpANbz?1KWQ zORO=;ZBCQ#{hT3zC;qiri*e}?ZliL-^@T#fXA<}B{28sdJ^siKs|B5km&(lu+yq6r z4zB};lveGA#9n?;^#*JA0CNNfolTH(E`s#GUusNsT%}L+>ncr`eT(%GvzZ9tYR1c_ zA5`xZtxVY7Sl1U5<~ZPiQ~hqDPwO7D7BI-As?t&>ZrvM~L|vetl>INaP>`YZ=gAo%>i+en{H_G6kt_J{- z=jxO$c)w@vYHR67!}P9Xp`xPPE&&qv0+D_U#CDAdi`ceu4;3*OJ-FU2IAP@Z@O;8_ z`fia^qGX@0=DyN+{!%}LPP?ipJDG;`rJSN%RSD04ZJ$(~@FT88vQ6xse#I;51O2LV&~Y zO4bkX-RZ}$CGrI590i_|h{j+R>u4xVLI$hqYzWvRw>sYSP3~h$OFBo+w@e+PggP>! zh#4tC+Bf=n_SKZ?d7>3tbBra>TK$Na^~bRpMPwDxPZm=W@-9VUwrWS6!jV4i?X~Jp zgp~FwS~6$3y^x#HbqLUVv`1DBbwrAGdzUKL+G4n+@gv>P5b`I>3z=8DV^`Tp_XvwTFW$Xd%5mAyh%|Gw(v3`t{A**30v`zvmk{63Jru23Oe#R;8IOz)e@UQ(OCq5eu< zF0?dEH>Ao9+H3b_n3>UX+CsU06r_K%iZj4^_~SSXofQh7@2vN!kC+)3`rT^05Im=w zBhdjoD>_p&Q}FFE5PF4-Xe9!wiWwU1?Mc<`8JbG0^zwt(Sg~D`>Fa3Y?<+q>zbo;$ zSgCNOL?KFH>&jORCf(&&%Qx z$)ZV_>LK}tKQ|Jk4;Mw()wMjXs_r?Twv6#uS9sx2aXVJh?OVg5m-F)UOyS4S7O|9r zLA~kn1w46ZoAXHPy;5{7)t4Y&jx6hO7a6r$bKEVHw2T}`!jrWiTtBAzUF7KE#DctD zMM~Arf8?kCE>U>;f_M=Y%PsJp0s!{$vIVuwetgA|==HM5Xhl-~df8MMK5dS7A|za- zo~K%FVL-W__jMYq_lT}UtwqvJ8}i&=f!p*d4k39mHNh-xqR$qa_kaL*>?81Ox z?XggPAmHLf!r@lhss3tljn9S&9d++dcz;)2($cjbAQO4 z>mlXz`mmun@chx8E*r6>8b>!wWwqB_ag>m2&!vZ1*c}H$b(k%TbjP-?3UdOdO}Z*_+G0stC7+KIW)qo4?)H71PpRZLCC?vbZ3_&ouB{ zrcECzTBcIY-RCb}`<3efU>Q^xD>E|}Ek9B(ynM~(vNr+k>A=wfNvoOzMTA3xRK~i< zTh_{?dge8VjRcM11!_rVXF6=^K`SiXmK9;AvWv~0a=Wsil#p~W9W5mZ2HLWimhV*&MYa%Y zY;7rnaO7D{Gz&M$4iAPPoq#FJ=T!KYsKAMlmL3LrPF&4F!GMoq5 zs#=vqV%+pe<|2MgD7Fc$;Wqcsq?R+qQdbFjh4#TLdtoOdU_e6r!pG}u(c9yO(#HxU zosMaNdg!3?wm?5LVQ;FazXv0Q%H2O3YlX46AUm%*Zq+UuR<2kntIeL+{YMmjRF8k}9>2oVIg;=S$VCWI*hM)Grgu_ke;G#(u@_nP_U+dx#E(P#5MiFw!}!TQ z;wo$cG+VI(6SYh`(At;U72$ucC_ZJJgVj4gcrjW#h|n#?keH`4-Y9n(vpILlyOX3M zs(J}5bK_%2W_~mAK9MZ~p#_yFj&5LHq`r2+_wqF60f5c^{i3)n?Okc#oNp6?^tIKt zjV(TiJD5QRyw+oWT{tJXUo>eK(|M5QsebFi+`Q-{^Kx5P+@vLoD3x`8>Y!PHqB^5I zsuPlY%%mZxThUD3)Mb{Ns%vdvn6>!6UEs)Sj_`$$m6#!w`flC)wd7ILmn^p8T008I zACTCD&nJYEy0R%nWjVI*%qRNrHR_>w3fHl-k0*R&0r&J$I$KBSH6_M6%ct8SD^70& z3h$=8`j|;Ae+fr7ziYg+lCCt`dt^EeMccY;E~{SuvvqTBpE>snE5qInLkgQIrHk+d z!IjF@*vZntmk)scGkK4fbA7VRM4PVj67K#S3J(C5afwR>M|z&_zcwXalD++@M78wD z>J!o?|Hj9k+WPXJ@G7SGvfGUI`(3}fh}6;je|9l_m|_QaKuBVRDe(lm$NqO3vZMOj^B@=eEnSuB0aSZQV$WibYpj2(REz~3aG1(EWC<@ zZ+KlU_?Yo{EasVATQ-R$^j%utM_X6&i!)e^2(Zi9WLY}0$ICC*wx|;}7HNsFY1p_W z(VkU#CBa5uBJOt3pDp~k&S1h@^=r(Qz}Cxcif>iPTqa2<$rph6P(M9Tk!zuB27zv+ zjt_X#{GEx8q??k&oSNh$r&M-`LLw%URgZpsmMguZzID*;JNUBj_Nn%xU2U@-mXKoZ zLZItQM}5crW)drFLcrv_scs)%c>U)Yp8ZX5$z=Q}d-(FPYUG$q?`MN#5COJS(&Bs7 zIXoao(~~Tf524!h^b}-NkrC@+?A((h%w4%a_Iif8eLza1Wkp7z-n>#&)~u%!K~yXf zCDcx`A(%xe&Qv#W_nLDb*5^I~7sncG4cPH~V+^9H%;s-8im`7_MvDH;%fAC;)(1dk z-vfZy(=Cv%&~@#U?Pm%9R@j)&U)^bo7La_6C%~pfe zF8Or{NTJ2X^JwUqkPexrF9e)&=dHm|;Y2IWwN(MpcQK8vkx)<} zeqo)>WyWCCiVCr^_&6uAg^&ep(9gR zaGCRuOpGn)x%b#kE3#tz_%pkH?BXPNPOm)xApA|jDayRZ*F?q>DW_fAf`45t)Kz!) zp8(uX&*>}&qa+f9ZQ&WG9BQ2{t zyZ$|511o!$``y4MyX~G>-?n`ZP5tJb+HLzE_+sSw2N`F^C)gIi*!5GQ+VhOHGvdgC zrm*ppeo&2rPU4Wo#&lThn2ludHNUba6Wh|1hoxYBiYcFtLYv6PML{St`d72CbvhfL z+Kz<-7qqz?i^r(|#wn9!GbYIvBBTTqVl!@rEeVZ=Fe7bCp0;vm(3p8HkGZ*gUDm3HFpBXNS0^JxiX6tTN`gB|JJ03UJ*ZDPya{z;CBz< zV<&ZLURIABkzoi2)&vTKP1~}g*SfrrNHOMgQMrSPh7al8a6i{`Di~j48tR~7db3FJ zXVQ)g-+k=E^61?iDvhfX=5Y$z(2gxi`Rw*7CGM3V0#s?&jQ702WC#01*w3_)EAurG zm+6-GO8Mv;vcRXc`^5d+1io}(n9OAZQ+U|X9`_?1)5wO^(CPH1cypRA&3nN)&2yJ& z>%%uur$I@Hj>pdZtYvYg#%LDe-6TfrPSzIHn?4rQMCUd$c1kPiAGz~Otu+)isTE3t z#%$X*Icd+)0wc{!ULSC_ab9bzjczaW7|3i@JG5Q%cz8edOiY`lc`Pr1VnJdW608G3 zPI)1+ZuVp(gTo%t4%Q?`1V1zfH`#Vxg<5n*=auec=3Xm~G(1i1)YUi1(+$ebSEG)X zd;PJof4JIp{=Ayqq6wweKF3jRLHb?sD`ckaj`IS^700W0L$D4V$=+NG0;>HQwE>bf zTTO03+_w{4nWJhs-VMqo6<4^pk7?!a(&I1iZyJJ#e+3b^u&{DWTm4n;axJKwRgp4l^&E8dl_sB`ggMEikIa6x8QuFbMZ_PMt ziA7Vi5$8o zPOPxr){^NVDH^?mEn^XACcfk5&gXusCOQ)};}ZDDgm+U0DxiZ7(9U$|5X6uU4(NJ<2Vo^7y@d=8e?- zbBYWx#r}`VBIS1S0+STz*5Jg5K`UDUuun;%HCYF@$Bk?Y4@5;7g+qzY?&f7`3r#$| zP~2qhasmPVwiCH)I#kRHF`J#K2m-qsvUHcVeC#7y?TJRH=B~t#yI98>DMbxx2IG6+ z@X~{Le%hkwrWw)}f=(*Fh}RI(u&b%_&8AP#+zn!-f7zv0IZ@bEZQ0C9%~(B##_mzL z&(w{GZ#_BW;I!TCaL~oSqyh3(ESQ2~|Ea+Ix3%%poLop!?J5_x?%Lbuw;RBc^2oWy z*X>^Ah)09{M~R_bzCj3cg{~lo!=8Dfu?JLZqUwffbek{d^J6GjitM5^Pn^E>r#((w zvsyH-N#*{d9{+8~e*t2CCjrAnEt6Y3EwI`*73k~0zCdzwwWEnsHw=-rlPYoGlFncP)r?8*0qys5i=*{{calqU0Vxe4l zi%>y-DKf8lAp?_PTXjpF8=Vuj7ze44oX4`ES`R;o&hE_K6!B6h85Ax@+q`DWx4o zbhn8T{n9V;P3v98H(Snmt!d}*S0KO9pYo=L^}%WOEE&8)M1%U);0J(x^p5Mz``gN# zewF+iw93I0y{F&BC-txtW#y1K(Z3|iw|3&5p-p!-PB|G{@6Fd0ojLZ#-4Y$VtczoK zEwfU!L=SQ7LlPbmqdkut{a$UfkzBgP*jQV$W~EwO|FT44Z7bDrb2?*fQ@~R!@4&oa z8F!E-{)y45S=x=fOMC#8xAn1xaOe!@E@g%`dVUJV!Sn+_p-?+B9TGmM&%l$ez;a?` z>qV%F#wzkfllI8`PSpG;r{&}Ke{fm<$;5wI9mDmJ>mNifP?sKKctP?#WS>P&1$;+v zI59wyQBv1Pq!qZ2x>y&G6;a*}*>e@Jr5|U1a&clI;Hsh7%hoCNnl6e*?4{fc%d8+9 zL7zG+;`Rq)nTsCO#HF(uITbOrs_qHK7E<4(^BusmDtT80n$?|a4IRNG4)R+iski@0 z+217lr>kAMX+?PV=T|MiY9FMhEp|To88c+(C3my6bHltj<>d!(A@{9I;JJR>IgfAw zV{UPqwfy_UQ=SU})gKk^0)4T0S^J)@F7P}aP|lshZ|j0C{_JUV5nE;9TjjQ9ZuOVs z{DF@dpU(4Vo-a6m06c=NEf5B|06xm~DQ8iQcwBG}dph@YN=saf{nVuZgV) z(wXy4PW5=G=9eI7JavoVNw3_uhB!aX(WRo*3rl@URA+$ao`$E)V>s%Wh_obd{qw5} z5A0p%zG%>&hx{|L{PH3H>deSqaJ6vlLtQ*ZoT5g+CAg1Ej1jS5Hrav-HUZVF^e+*a zA7+f^9ix^d;l(;$LiCe6YlpuLM>43JgR9Fwq%6KXdQMG|1x<*E5bHg89*7QoL7;g! zG@1n4BkM4v6~1n&%;BTVk%`%Y0j{JT5+x6b&#(~aLd|6C`-{<|kf4qOc_j&G}IcMh1+;isK=X_>jp6jU7({j?1kdV-8YCL&CLPEMh ztZQAPB0dAz9fXJlg}17v!8PKAxMusBDARaqn0S+rTxYzxN&BZl&WTEHABeG!zK6Y! zKkTI)iHfaiZYu@#cz$gt#u=8*XZW`E^#(>aawo@*kNkjjiZ2 zz=pWMSj7TL^Fwp6TPJ*j? z^}nNZ-O_9}l!NYOpaPJSvDSyG*KW77;lR0{oHo|WX47%?f%^!_jUhElvRVe!YhDl+ zJ@9aKzWdGv@+gpyF#NV#pLd;6_1bP;BDOAqLG?8YgQk|!JH&1jZYF^6RLh(=Z*AQ# z{dv82ABY3I2E6^!9(mP`pVW-lWK7D4{#V=~A@k#IE3)F)P0Xn?X^}1SDl_YaO$gG7 zM>^U4Ej9W5Yem5o7_IDfK!(pwPg%eD;*%ex_jp{}fQiC^CW}mg>)et#R9SnX=5O8Q z;c#3(*}8ZHLsuXPDOYy4UIW)@#+{N3v>Awx?k`?2+#i!LajMbat>b&MhK&}A(bc!9 zaz2wM`O>HUn_c~%@j+F*qzNi^U~3fZUGzgpcr|-^o_)BAf3RR8RmlMpxRK(Pyt|26 zsTI!92fZox&Wr`IT6hr6G5?a_JH^r+pvL%oqd+)3CwOp60Wb2(E?+0S;ht-r_e#$t zNbwdnu!8q)YM~Vy$#|71U`!ixJC(ikheZy<`F0lC%w4jO)8}q%k+R@>x@YhM_K6Uh z1E;N!ClBW(r9<;2H?bK@+xj5!P6c}murXdl`%F-4pJ(Yl^pRr_ZN`3#FMt>j-`tyr zD~y4<07^m3P{(F4Kk`HSitJZ^q80w=qr(^I;W$QM>gb=J0WHqLPPo}dio3z#_*nnN zHqs}(umbS=-tAlt!J6Y{SOZ)^BW}d9LbW(hb^Dt}BPSLuyK?fXAz31a_Y{xOsPa0C zi>R_Pk(OZH3UfCU);?bvQ7+|rtk>E$KDY;|Q)A7P==rlvUfF*<16hG)qyYIFKJyUD(D8!B$CPYub z&cj-8vNvmuk)5YMfxmsvuSbipXrF8+aRo(TEy;|Li9pPlQBHm<2!fU$_wyBvkp?g(qj3E zJe`lQ)V$d6*SL(Vy9*%#e9UUPt5ReQVh2{iT(q!Q~n4i@(2kyybQnqv! zSDmjGh-f!#Gbm^E6ho;)nbCwuE3|RZJ0!V8U20WBn#t7 z2?E6ANG-_zQ5ZT`NYk^1&)HqO-Dpsp&Um!CN&&6glU{vZXDWA}S)LzxNQ_Z!w-@&{ zdtq#hHslk7erHO5ErPbB4c@NYIUL<{pk%R;R#_Kj{*X!KYc-k~$o{3lHvkL!O37_Y zE93SeVVylSlXkt^e{nyDbti~{n@b+QyB*MC@A+zAqIr6&G9A2QHcGD;6z}Uhro}Om zRlkYonWIUcF!8j(4(H>Cfo%v1wL_en_Q){^x#@KS@s~a60#~%Kegm?gxoKaF{`LoMo}- zjQKs%hq>4@!Py0<_sxIf60K~FS^i9aIr;MZqpZW+oQ;Ux1eK$HaZ7$s+(0V#F|cJP zF*Z`Udt6;3+N@t!k9o8l6;yawiM>3~@BbZMSHCpU;b(5X#1S=IYZ~2}7+7sJ(aY~> zBKwi)kaaSj=;g|z_zLp0TXdT*z}nWSBEP-iYu9hLyCza>%)qhrgt>s7K=G5XrVD(N z2~^NoQb3Ih3C$S7cGJm{ZYA6X@T{u>5-V!;XeCQ{Wx29^b|cSC zHwBaf#LCDuwe>|Mgs%qC3NbeW@t8$GUMyQ;>!hYA+Iy ze%kGMd6nO;beSXIF-K0-)|U;(O91Xj2C_S}qg-WIsd9W4Cqp>K zfp@#h2z6tTKAZ*@)BSRg&IsKK=+ml@LF{zT%e5mVBlWG$Q&9ECu_F_qer9IOW*Ip& zil3>i62kLn4Li~W;Qj5X$BB3O_Q^e8%Wl`N8 z&y$->h^s5j9>P|Zl`jDcd^tBPKA@=!*OW^PQMNf@oyWnhfX(#bU9*UJ7ecfoaM23;>cs(v>y-;sLo%wc3)|>wlj;1MD)pLpLNKmJ`)cVu3HTpP1C7;#(UQ3+kB#gb6!R5@nU9urJv2fZ^t1 zqwSNGF>!1vfI0PW??Vje&>;nEY-dm3wgt^74L z1G>>|N~9Zxo0hhuW>W!>xe3dYRV<&N#&x1{gjuusD*1KgqE2of#99z% zAtI8a>1cV`oKXONnck9ghYRJ5#MKIkyIp~v=pC9-WL$8!(G23J2g>=}bJFJ7)a+T) zdFsMZ|2!-4{n9&i(D|ld&hz@^?FO5W4fC_yyHT+bGKSzeR8ScZi6%;uD$LKgW-(oH^`A4mTSYUidYMB*zaTYTp5uOr@t z5{XLn8_ECrg%lX+WQ2}8wqPUDW#c0e?H>_2^wEyvqbJ6?Ie>?~@=?_rfuJjXTh^5q zOIEPsFlFs3wURJe(SV#T@L|;SpHDI!u1)=rh+$Aga8!v6_vnA<%U;xpqzi?&Zt2m% zg{1aajC{SQaI5lB__VkO4`@nE6N{J-&fZmnffpHTdN(Gt6U(vy$C=7(1(y#FxbK~{ zE&UMUR?MlWqkj75Xc-h2%9D^&i&~Al@noRRr!Is0`h{dPmpReV<0^g^A2C=?2!gq0(vek&h z(nLr>taKKS#%b!SVbYUI*~o6Oaj4{j$ka>i??Fdrz5=B1g(0rS3um8EVw8j%eVmT- zE(!$ftl87xcS=TH4ttNT_6`EA;>;TYg+7!_Pf@zGiMC`J>2wR1zmIvFhuo@UHcM4j zKXC$XF737`l3jj0oZ8;$ss${Kbkn9coI#QMhY7_$exJ^C>^}4-^i>#7JeQEWhk*AZ zPG$UOZafG*vLmF6#per+(UI8~Kf9mGE|Z-U$sN>9nB90U6z%rlc4kJlm60%=GNy1< zVMA5;BQNiEYvDrme5SM1pml-`J1ssa;F9QNDTf^PM^n8dbQR=8iKF3pLwJ`v=4tdd zIfut{-xQs=Zg9QDR0rR2h7qpd(R&9ty4G?3lCe81l-Vh-8-{*gEH#h@;uah`s7UHk z!`GCneP|v7`F;onDhS3`>P~Zn@VfGWqVsA#A=E3oL^OTa-Jf1abq?cTPmzqzRBo%i z1a>)nS3#&2H@qW#pxY2jbrdnBGCt!XGrfEmBVfhXM8N*SwdY!%jLZ-KZy+Z;J(DeJ zamAiqqm=GB*yGWUv)_uvuJFo{uy^fYtQ~b>YF`hR&R9gLB(->y!UBDtUyD z*n@az3p}j2{jY2L*Cn%&>#6@B!|`0nfqnCyy1!DmQh*HcjU{m!27f_1N z+r4e5fSPHjN)SLPA>9%7_6z+KQhNB?kx28OiBm8`)68P$H!i4Z|5px&o(}W+ZFUFU{^^+<%fDd z`9<2UTlHC)#Dx_#e-0e$5mBOnxPmgXeP!n|xITk41AKibCj8=a5nj$~(_M?Q`R0<7 z@xQiVWrbWyr}!Ce0`Fh0=L=Gkl~zKrxuU^A*GE<)^Sr7D$8d?^BWTf24VwF!IihYo z_x^xWHTx#TZ`}Cmc6ST^`9NP*-;Bh&W26g$7PWm4?0jOqBJeR6W7}M(wH_oTy;e4m zZ5|6N#D+5k6kH}R2gPS0Ur5z3nIHS&KITTaNy)Dcc0tyHZv5Cu<2i~zG|u74hFZQS zz7EFk`8&o{kz_jGQtyQowtct6MCPTl&~m>!^56*+a&?UQ4eU=;>xG$_WV{UDlOS%^ zatsgpQz_5kp@KCXYaXYEC@45~110yjwSIiJdh)b)(97$i1G_16rp5N@@h)74$=#QX zM`J>;zd9TI*x&PPuYyKoch>Tmir1MKB6ZlQ#qY+{u7si-kuL4s3z*H;-O@@Ze7H6q zrcBoO^Y4XTVB7D8TpSUe$Ra^Jx&AB2zNBvhIG;HWl=mn??PbHJ|CHqmBbc|XL-_EQ zRhh`$Mvw4Smo`>N!3eeQ?+By8qDURJOikd@NnAM19T$tX^HcA`@938+c$k*!#r!A5 z&}2J{m>i0PM7nmh0qeMGrHqR)k%|dX7jADQ-+=4$B4_-BVuaLI9J->@pXw)?s8 z`OI_QY&-|`J*62%n=^nX;?E4Y3}=cRQC$c3Du9jzow?oXo&2!a1bf$JXd*%>+RaF< zYq`cLzo|{4{a&wwm8zB!Lqf~X-RyChhaIjKYw%z(>DVHH+EF;L^7q39sfLE&ATt_+ z`h|r)Vc5h#@<2hLyxpL9jFOcQ?}b*xE@#0hDe)xY{%l=v?J;`LOX?+~nHH@#ZjWWH z9&V2**4<9K;Q#Dm0Wd`3@1oBQ6U%ATRmMve=IeyKfd@};X-i1{d=CO-4R?BmOIhDa zK9f+HE-ZDr+ZlYZN!`Dx1tLo?vJ0J?V8Z~MfqU;QF3jk z?<^)Oe;Sw}7ZL?o?;XQg2a`{E@X*DE^rW60P))nbxm-BZ`kjE@aPlE$L*KC|XZzChw?8C(VIewSz7CYxy6#=?5ti)pvI^hU|=a@gKy z*J|cm9<+~E-T!1C-#s0j7%ZiXiQLTW9dLle4|;Nc${xrLDhrwd-0Nrc8(iHXC7uE> zEeI1>skgOOVur2j!+#yHqLFa>thqBY5u^xu+V$UO`Z*3#f5*IpGFEw0d#-kc$Gq?{p zQI(lOAdy=iW+Vji55kWAAl~pRZAKVN?eQk0E~P6?xiv~UMv@<{eeY%({I#HHli>30 z&8{3rNzYSzrDEu%Feu`}yVRvoeyMKDl`t^xn7Ngyd|6dXQ-+3)ZZ^q7$ZGzDO5R_+ wF0@yKoKE3NEUYOtny*0CF!cXVY$lNNZ-ED%bN;Y&}!C(ZfdHLTxK*=nogaWGym87%tS7q&-d%|`~Mz~pU<|R*lOmS^M1cyuh;WN zU!yv_b#CueR`yS$i|Hwr$Ninwz(4Z`sk((xRh< zMW@c)x^(K?wX=mqmmXcZTHAE*-rdrwXRjVMy}H?Sw?RL|#1y`#tyu>%vko?$EIQeI z^)LNxtZRFdHYROMP5NPNx|*1FHPL5d9C)8*ChRZF_zS+Gtyw$s_8mG}z!#)+!P=OZ znzm_cirzJRbqM@-tZi4bZr_fa)XsX&3iE#cHlubN{G)yUe_hG!KKGHz!FlE8ogF&% z=-JD*_ke+pg9Z;7J!Y(n>$vfgr%avZF@45N&w29~cr9GC*n8FLH9l+Ctq<6;bz5Li z@b<7@cI^(|6S4PD^lve-alaova`M#aGiMY2Ja;}R`D)6w)ay5H-pR_oo0EI*{)2xC z9zS_nSX5k6StWm7{i5dOtJmtf`gaYQMyjb9U6%=FYPc-;x8cG*xvs8oU2WR7HEnB- zuFIrNAbgm1ZEN=J$adW(%`so$Z{2Uyj`lYHI{3$x%ntpX=c>A|-2A9x4~Nl}1Jvl! z*emdM|<*oW&X!7NQp;Nh8e#c)jLd2;U{>}2%lHK9HBe*fqQws^4fw5ixI zo5QC@V^`;{i4E;I=wxWe!OrZT^}YIIn@3Y^usKr)t~FVE`d-6H_^z3wzC*uxXnVrU z_;UuGXtNhSeytn4&T1y64b|Pk1^5BdjPT|333ACiK90#zmB(v1NyWsfg}myf*dBGH zbf{$wxBu~la#wrI={8>ZQg*dgXCu{~SVw60&(dRN9(pWVLB;E_O;X*M60f)7yWG8^ zUevIP*}RdQ96bUUQN}WL!AsNM z{*Uk7ay>?G7iEh3h{lMXx{p`Kg}HUoC0E{>rNCF;VhS&Z{Z*$JRz)0I^dzURi~XPZ zqg=mvM4K__8#*#i-Obc-k=jnW{gt;|l(O~c8^n3_Lx=a{9U5GmzkG`Q;GE4tZT~j^ zo1>b^D~YNKR1Oji(qngW)h=2Gei2zr{G`VwrliyfYg3xY*ZpP}*PWt^bIM0Xi~sIe zCqBSWam=zRzPeVdx{^LykF~GW6pA%g?<^7}6Yke(Wer{3p9NphDSQHLGjpqblr!kz z!XI>3-6sUa%N;XGOL!%3l`NZF%{+LTA@lXth?7h1`ntUJJF|CH>6r9$^(XS5MV@OL zDti1+->JlSJ!V7vM8Zl;w>U@T<%rCCyX<}^b5eSdB^qnvqWK|zbKN(UKR8E+c95jt z6}t(pcK9=OlmZ_0a~-x>oSLAlQ5RN7l-_blJIXm1FDkby5M^nWa25MHXvtA`%DtMZ zcO0#L9*}46V;X8E3Kf-;HbS0?ulYeOjZC*Yr^md5qQ9rDin$`G4Z}Z72&}b-62E;g zT^{3_@9|A<{$4ya;kINaGybvGPR_OOW0!qI5Ti+i7ifYPaENgaIwg;ZTTc?3N(4 z9%X-ePmp(HMP2(7Rwo8YYL-+*DSE=~Pu;Nxk`84&wc=)zO#45hjcyDYh!w2{4+e_~1wsVl_YjJ5|Ra69H!Q3w&2YY-g zt`KxvCtg7hs4cF79m`e17M~BR#(r~x?Y-xw{9oZJ`6Zh+xexS5M;#ZAy2J)Arel;I z8|bKZVJgMVTdqoCU;}t?RB0Vv;#Y7D6Y4(ye>_EttiEpf4%TBmuETJF6+hG z{S!Gc{Ev_3Q=gx=w5Q5NbDHv|XXvqwQQ>_D>akz;(LL|cM6=lwNpwx{aj#}7dYkZ^ z`&<9iqpN(>eD>NLiw)Q2d-a5s>@_NF=wtFfvA@1MVRf5J4Z*cypKKYun|O8UA96lk z@h4P@m11lBt*stQm@rcdPk!eqSOXd%99P$Um?KK32G37!8~h~uM@I(1E7YPN_`BHf z1ONFaV;+3BE%9&ze5)fPD||wz<`GRJ@d&aJ_H4nKGeS5V+K$p=M~b1&@pR+~tNFS= z$%;h2>LJlbI9nxWx(8|e9*c<6I&fCkr@vX4pvUHGyh@{71m)vOk2~*xTGX9_ zjrB>*oJ(XqBG<{92aB5~{-ej5dWX8Bt9fD1*%_qA{**CAUQhU{S;vVLyxl}2)SrT5 zWg;hGfbN_->>#2D&S))MG}=Mz8I3j&dqxjbG|kZ|wm0*t^Q(Yx0?U@qVMLP?xh{iF+s`4|2{k;$l*lj)G?6c`8x9Z)umrpOZ zZi7sfydqysZ_X7$JFr-tsvU@{4(Y;~75EAoFJ_?In0-c;rtDi(Dsv0wqiZ%>4A<<7 zt~s2eN+c`$Gk4*Vzt>}x-_YD+HH+`!&61>yXTfPAb^bH;QB$U4GCc=M>k;@0FXGO1 zDBu0zvP;AQRK9Q4r;C$7?AWD?)nluryYXw`x5bv)Rn+}TG4;L3 zAt+ACFS%K$+4Ur;irxC3cYKhOuhLdtnncZ_Yks@|sl56EuzFMTpr|f9#A9 zmSNjbZ`8?nLt8yo+N>K)olzxcae50ooP*l~l_7U`1J_BpfWJ1@$~iA)0PpxfuU;K73uLcajd$+frC_(qC*bO}Db^xP1kdg7%K z>OU%X`-lBH{e%_va_z&m&kt=sGRU-%{^V3(4^w{q68vokJ(k+gz}I%?z)q7R`G4@2Pe{bWyjJ-BMp4Ew+Jp}}4n99tn`YXTix zXVYdjCot_{36Du;D#SFwcOo+9Kz*X!;naKvn`rj7-%M!TRGS}7(8u)cbN}i4o5>eW z5UsK!B`eDZffHR(K2Hzt_JZm~14+Mb9%=6S^X=_bi zOQ`K!MXny3Izo?CguyxaeEnygcVhKqxKig_?Ng~X1*fmYG4^m#^ON=1Fdm~k(OIHt z(4{kG!gadn^sN=Lc0m#6k z=I|Sq;B_!eye(-?(Dc&nCMx$y_mfrEpt|HT-S}6CzZ?~~4~>`LuhP>RgBi5rFwug~ z?q|$vGD)Vmp`M`OQp!qkq}bLC9ae!^M5mBM+G{Z#aE z(2t*{Z{(Ew9~9puKCXTlupf5XikpTVhT?##70f2EZ{0~_wOV}!6Tz3TD=C{XuB0Dg zW2lQNXU!5y%vNS`cwbn7EtNUsqOmeJd48zOwR((#_AwaOdPix$#Z{Nc%F%l4a2)ML zdn$-kdW;9{qhKJ%nJ9*CZC|SB?Kb7$Ty0l^N$jZ|DyDbnF(1MQRt+!yMF^?epW&tU zYnu4o63r6bpG+_2t{!V6bXE!EjuB*KXX;?3B!yW2k}PiYlC7bqK2H6SX?{9*MabXJ zra<$1)Gsrujrj}7T}}~KF3A+Mc`X{H7VpSGs5BZKf1xo za71&iif>D-g|1Kym%-ww(G(UFRd6L8%uCY617AaD^duz4#pgk3<8Bw9qd$cT6IBz~ zJ3AeE9_aCJsH9p4yeNZLT2G(>v)m_+$(UCr9>PmIy0OOAwpuh;I82Ra3i`YjbyCM3 z*6pvFjV>cjjK+>`GsSM--`jlX+sXsZVfXrxGojZL!cSGe1NjDe4+-0P{3cfYgIW(Y zhv^Zn?JqWzLV>ow9$Q~0j9+*{k1f%het&I;OqwpLJv0{78`YBAH^q_ZJ{A6_f&{bc zGM@abldQnwUd%k`c;7}*!|m7EMn29JJ3@Oh?S1Otb(PXyOtzHa70UEj3g@|E|OEt`e=-y~}DZ%cuAH$h(z8nVWjdYe>a{dSrrpJEc!rfX4cQOV#CtOjhfO)(_ zeYzCB`AX^oW|(Y{d5H|2<~#Ui+O6m`U+y{{1`e417VwLE*2DBS1D)nAH)Ln~OP{uN zlDmSED7jcWIxd%QEu6+=!@>@veHEm7D9uMt?CBukU*XW6hyv zxWnEUA-SxJhnuw)>O@^_Sq<$i5UQ(*l%CpdaZGPdxg;V39yJ0qehGkUm8plpXM}P& zFWT3J^G5U-o`N5J%I-@3DA;nJR=iNW;x{s-XBMYe!t{vJ4kfIKI}>y%y114RpXSFi zCml-!iX|bk8OrRxb1Iq=&IlGi=&vmE8ui$2Oagj$I$r_Yw+g5;ZQ$%!&mk9 zdO)h=+~$koru9VQMvh93w|tJFDvKr(scF?BsV;O351^rYR%pE1?LHbH6vKF>jOz57 zV8^TK76fHJ^d!$VpK`rd5yoFnWJT(+*Vl+@c>S`g@H_JTZ%mpKTT1Ozn_nurZSROJ zcDn68h$$Dh$$*{XsS-q{Z`uO$TZUK31u}_SQ>VRmXkJs*j$f-CCTH3En78f9-%DQh zy34T?_S9Vvc9L^#*AqpIU4eUWKZ?hv382sqHF@%uxP>`xyU2gmbf6NwmV!*61A z=|V7g1u zr7?Hw+-1y;tt}@n`U%F97i(Bw?LJsIRF#_}ZnNHS_+A0b4IREE17N{a&+x2?h{@?Y z+HFMsh#&{A80{S0Eq60vPxaG;3Yl$C#mjPs0->a3;6LbauKunmKt$oYUGqD)@0UU7 z&f)8EL-%bhw4+?$n%M4JK^8COYC;U%clXD#jGKE=_gzQk%O`9amEFdq8c*eEeSMfN z63T~5r4p(mA!+o_xOz10Q|vC)2q>mL{g&AGx*qdN-KNLlCwOsSD6q*G93+Hk3H8(9_q0Yp5U>)#t7mLG$s}0KlYQ}2aK>`-@6qo|v z!yT^Q?8USu)Drb9IDpO41J4GvtO1#eA~j=*CmiLxj}bN9Al)uKCSOIW;)$$jdh9Mb zx}6kw5tQBtei2isiMp!Ca-*VO2o4+!ll%ADEtUnIJ} zTC;~;|H1s4n3#6mT-+|_j~MrjmlVd!nLPH&i{Z*AYNw$qKlRa-|Ml^eV6RG+;45086lEOcS+z$+5*q*~bRo(L^*in4_IHC4CIaMIE2hDRq|t40aaKGoe4^$hZ^AOY4Dx1(IX zXL42Lhk>G46moJ=3#z*&Anu@asQ=NZ3SQDn1#1vMg_$)U1}rx z_J(D2X`fEK6``=pW^J{qy|^;AXIZCgUfsAHh5d+cLsmk0o61`S&Ohkn*ptq0F$R9@4dQZ5X z-`RZ!b&B3D>_~Ct7kQZ(qtuy?(q|x6C5gF50*u%Xj;;5{v3-}R*v~rj_A_DnSdT}@ zk{40X$aa)x%Tx!TMJ3ilKi-CYq5IW@Bm!P1`mKDzjr?}*3k>i68KHNtR0Gk{n4%?(K|DYViT$n$YE3NE+$}(QLnL zS2i5EZLVkKgzvV^v1+?lXYzHoMl_Mg9FD_`ZA(0Z31)WS7L&$CZFe7*A{qlr@)A4~ ze^i8tYh(&4B)(f~g7H<*3KwS6{x9w~`X75%W6HrkU1=Gp=h=Btlt)6JI8t?8I}VKj zlczF|0sCYptdMA!J@`WaqjD_EA6p+8$xH%}ZAlfevwVUPWNV=m+y@&Og~Khq#jjH_ zf_HV!RLll_gr6Dq?W>8LP`+xOAMQsQA)D1_g1rX&m>0z}8(RgAFXSBn4 zXvbZve{eo{uN`V&DszbU^Z7@^dXp#9cOU(OH%FC}Gv1s2@6h+rCe$JzQaTyX!b)*C z2S@|7jzbcef&5i0R+tBU;;S_G1+w&!X>M}!+P8ScK0Vg3kgQw
        1. ap0JjxBHsOrGeE$JcnI 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 literal 0 HcmV?d00001 diff --git a/public/static/res/layui/images/face/4.gif b/public/static/res/layui/images/face/4.gif new file mode 100644 index 0000000000000000000000000000000000000000..d52200c51ee924f0b91132e5cd3737fadcf40ef8 GIT binary patch literal 5689 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 E2fD;K%>V!Z literal 0 HcmV?d00001 diff --git a/public/static/res/layui/images/face/42.gif b/public/static/res/layui/images/face/42.gif new file mode 100644 index 0000000000000000000000000000000000000000..0eb1434b4e81d4437098efe06cb4e1ab44a86211 GIT binary patch literal 5305 zcmeH~Ygkj~0mo0^kOXo&KnQ_Au3TbK#w}bT)dT{>Ajri^K(Gmy8kCK&isJR;LP$U^ zkqSk0YrG-a+6lUjwbVgCMJo$M$H`}j>#dkk(v3$GV{6*}BFogLpYc0=u zKR>~-Jn6LD+if0BwA`ZyF>EB(yK615x?nd;V zkF(F}WncgC7d>^znVFf&rS|QWQ8Qz^F6|@k@jx{eP(~{%ERT7eL*BjtR{s)r*-F7F|Ic4F_%#>Q{@-nzWU<6+;@FF#!;2?VbE)@$TkUDu(F{Rab{ zj>xqV_J=Cp+vnDtP{#JY{`!;Ax~JbheE7xI8*MRH58y{m2Yl5|ynp}x-^TY0o{Y7O z@9L}%KkQ4|>W6s#dHUGze0%DNmS_z<3TiIsq`S*!pdSL;?WRoB~#w?QxscUMI-QzHu z9RfFt7+c({YgNI?1e!k?L%@)Wi~Y9-|K_~_X=(u>Fwl!okSfiLI;q|k#b6fXMPxfP zWJlzIZvIi*)S+(cq(Ugdb9;klgiuHX@S!SSF~^MzqM#h=W@^q~z*dhkUw9+OgYF|l zIPaA}t+)ArkBpaJ*8a`aY9@;pDSq6|cL+%OV6|KxQ;CLH8}y+j3Ao&wqLWFx(l7^b zTw*OGHLcQnvRA5jgK3vVNL2ozGS^-|G%>1RdgzeyZW_SSbJUk z$B+c*`WQ{YtbMo?Ej#6G+>fiF zQ;MG5NExrIbjNwF3^L}Pt0P@?SS)QTh?#Qt1NZSDuzM0)jI5Y8*!MmCc6h1zE&wRY zpP`}YlvRH^dzkmX!17J|9@ctZ@Na^XK`FG;Mr$WTT>pYrZsN`eltY7)r(I(1OIjfU zVPwSih6qnc5VAn)mvSg4+)67v$MnnM1zbT0s)XDM#-gzVJ3X*x^kVb!(5h-+)Ra`S z81<{5NWYfz6cjyvh`qk68x3=fLE?+`2rqAJf-dN>zYs_CFE}%D(WeJZELII2s6Ve& z24K&ylRkb@g`gF-pg*}OI$WuxsqC7e8)W&N5YuCC z#<-Ez`fb`JjnO-Te5gsr*Ptkjj>1h_y+0{sITre1O-z%v1Oa|)C{r5VG2lbiRhwK# z`Q_ns#nA9rXDSLn`{)uBT?xEHc^HXSJn4nYkQoasGLXv((^cs~US0(6jGXYmhVYyWZ>ks7XK-x`2II^ZVXSyC zBEIvzqw%ne#>6ujDOaiyZ`*&?^a~*7iR?Lq^G4Nv`}{6;Byclf2ubG?#IYF7t*qrF300 zAW&(@H;!-P^HG9<09?GWo4=+uIVztMe&uTU^++%IKY=p8|fRqn49 zmG`|BdlYkxv)FQ^aVnvz{PLEL>eRmzdGk6 zNVYb~_q{JtiwFpzjP9{&V`vpjOZfla(xZ(XpOgf7bio~uqS|J)(Qa;O5=Ojt#Ftu^}7U&!WricKDW0ccoQSQQT;IoEgc;-VL~uu zB2OCf!=|uBQ-s<8_D!HOeLZqi8XYV~lqbw^iYkT+q}J~HE%3VjdZO(C7wKd zj&>nYT(nOxv(Dc=P#~x9l~o=uIj5)#OK(Y1 zb{|}=4ZwzM$d?~gqwrMW%IBvG22~Eus-hvXk8#C{f5?AkBHxgXQ9zuy9TSgHRkc*% zBl>`W&$>>h=%4=62(nAKUhOGAbt8mv- %FKWjtVdL1P%I)BVn;-eLqw9kid`E}a zG&J=CJ8N1{1|7tq>7^gBv#xYLH`r#C!^;h9XI;RqKbBhS%qb@8 z$Zi~3wVHyD6H(PvaxtC)i>vATG9@{IDuMyO67s3$QX0}El5ki=ds6~|oOfZORFLN> zQ58$F@}yECQe}18J~2r^ge1jo_%7?}Oxyrlo%Z13{mCK%2G8M$FrPjugsoaX;7#yi zmAd^)DF-$g6ar*b1b;@!Lj=X5kmR|b0Yw{&h;p7&$ap0nxP+a4Vn_uF1OU!&mQfko zL&Jp!kM%kpL;!sEmLro=lT+Kf%+S8eTVl*_oVD!@Bh{+MTXuW{@A zsvR7wt0KxX-vBH1o4f5<@PhDpWv7Bq_h2aiW4da3V3a`gex3OhKc%HkL0X=LMz=G5 z{c>N?TbxO_@Eu*JfLIR_?6-GeUk&+fUb^Ms4^A7jMhIj*?XMItELOq(8eN!H#(6t0J=kSLYrc|yeuGMtqskP>auZg_FBc(-C0 zLJ5)*?dKDt&>v4DV=x@f0fLD9gHSRrwJu)?nS01a5!&!i=a(Y`gsI~i>xts4|6zFHhh@K(kb|USfv{}aWF-60> zGn<>9_vC%%R33>j%O;Pl*zfG9BBi;EmDf766p>il@>noz;h%3=|2awp$7yuM8nMoe zPJyi|X$a&ht4TTzm%^dVyF`8Il4|~G6lC)WCNma#4>9!EyF^y>CV zdzMGWY{)ktE?lUHbvhSSKbGG^%C{V8I&M6AHaObSG%T&CNfH#y%oa`_)+pZ7cot17 iq=XIK;I7M>I$fdHX5Lxv!V2q_p^Ado;3L=7TAMZpr1AP6Z!sJad$AczoPEvsuo zM8&qQ^;)kWAczG;#fH-MDi&50QRI@a6Rbb3cb<8k`Mxvfyyu+neZLbH&hzsZ+5k4d zGYHW2Z_{?hrlqdb4W86JTUA~duk8{xY_uEw`=IXq`FA%0w7037BMe7wxN18DOV zKZ|{Q(D2$;SAby~^Z3jP^RAZNK~byHStNEq`{(R(sd~ zua;BV{oILiP}f}kB=7V2CB4o=%X#Rqt^(B zCAi~>#=}>vbbV`n5m=9nJkbr;Y9EC4*E{uJbd<5NoyV2Z z%}=FR_FoPBP;d6`UTlrZbEIWr#w^RB)}Z1XM%ymaS9PQhU8@H>q{FQ~qfbR6O%885 z_l$jLI=7v2^*3Hib$IuM6%S9i4c_9NtqjVJAk`Ikyn9si?&iX`y(j+=+YR*;jXc+= zVyS<(&TZZ9H25@q_(Am1&HmkIY@2Inqc=!nV`I)^#u40TK`1+t>qVxb5C8zcrWk%C z$Pp@q@Ha3xOCb~`OO#-|WOEl*ZhWCANv1bU z9gpDi8R4=trBEi4gmaiA7=xUYBxX?k{Cs&n94gnFN2AfWH1>2loz3NNy=c>^bl(ua zudy7tC|xR%DZj>wzsJ&k8mkwBQ~_t^NK%tBBw}8wTndgi%}DxbEuq|>;(dt~|Fo7+ z-cMsGa4{4;wLeh()dcHDzx*a#c=JvA5*e)bR9M)EF`ahwzayW9KYkc`KltwLz?;AO zU%z_!qVM^$|NPb4)7{ni^hw9#M-Ly|Z@+iz{L;dBt+Drew zc;WoHvuFNw`qar2$B+Ga^p7Kl4;?&Evwz>->OEDvD|hYOv3=X`TetkSdDF%XzgCo& zX-Z4h7q2TSTw9Q@R^{bFYkpb1DknQDGb3FIPfdkfCQV6Rk(9VRK_V8#3zscjvN$ew z(ZZMo^XEkiqUJ`~;d4Pmo_gP4H<41YggA8-0}FB+9X_Vk$MKGki? zWY4A3YfJRY1sp|N5B0zBYJ0grGS z0GKeA3#rsoW;r_+InPQ#LZzi@71=Qg44;7y4<^PSGs`L7jMD%E=o zF+2b@37>!hmLZkM)#Xs65fR~PA8d)=g1v~`F~6RKW;VBA@%Tv>(AENLp|vV@8b3B{ zAv!(m`3pDqF6$I)1{AR}*=*XhKzm|W4f{@6A;!Z&nW%WTe^H53Y=@m2JD0T+Y703arBj@i15m5XBWX(ijRx|q8yHR+gO-g%A z`Gydaou*Z$N9I~Jt1QCJ?w+ZmuZ?i^zU)5Lq5fs5LpU*RAgvpN2bbgqH1|hl)Rh`b ziKE%a*z1X><2sE_um4EdV5>?Po=VDBV=X5<>RJ3M%y7MNjsZ8=L`Frd|F{ z?w3(!cE?u@l>dJ2EyLU{IZ&O3H}Cj^bLFgl|C z#>XZs5M>}Rm~WtlDXDMNQ*ve*Qh*d9RgC$8ruAqdh_&2D%!XOgbHX2|$u(+tL{n)f zKwP_E6rsxkL&VMHQ!q25g?$59D-$wZaU1L@n;4rAf}z&lyq>=yhPnd3N7z6##^fq1 zZ}oP}Kw*$*MMWsjl;-Dg;qWomqcOqhGbzCnXH#oY)zoqWUvlM8{a*!@_G^j_ zg{-Z0r47YnM#7csqm_o#n8=6hoTkn@A&FK9X% zhQKiBT(q)xL6u_Q){8-$sYg{(Sw&NOq1TTYy#n*;vH3>vTk%;4*? zQGZ?X^U1;JOCtgaOaunv5rJTUhz|4%^7Hche4lF1CH+#nl!$2jBaiPTU9K}8^70|C4>eh0C)fg7s?$k)D?qZ z61?(Dph8n`f~YhfVal|kxo=eGKwgXE7H_ZKyKkSZuQ6-CI{<9kyC6Vya_^b|94;Va z??ekC(PCfT_z`%07Uu-`2=vG)xnG)!QssxaL7FnB@tz>pdB1MlT&9s&qEJ|@25Y(B zvU&$(gJBV@m>LA;6hfbyz(OCoROWr2W$ap8OQ1FQdN*BafNX7jZ{BOaui@e*PsTma Sh@V0@dM8BG^xew?0{#K$QUnA5 literal 0 HcmV?d00001 diff --git a/public/static/res/layui/images/face/44.gif b/public/static/res/layui/images/face/44.gif new file mode 100644 index 0000000000000000000000000000000000000000..ad44497691d150ea5d02a900231e48ff519d9616 GIT binary patch literal 4126 zcmeHIcT|&C9}W;?Dq)Bqjt~$~Ru&;dkdXl>Xcz)2RYDR*fg~nDK~W)!0!0*1K`G0L zMJrf9Tcr^8UQwjrV2BJshFDhKQN=Xm-@|NZ)&_ni0M`~KGR+~?k(qcaI>MbQLl zf@Z}a@qEX0^LFuEo%qvJ;JJeZdcL5tCm>n&Nw{( zxbYZY@6l=HbgK49saoINEx-%g=E4ZkNQ$sQTRdGb*oU-bU`(9a5@$-?&y z`{u^0MPtdY3pGCVa5{O`19@nm*B=-NnHjwMvG3M=v(2aH?!ap*|C%fC%IDV$+wvnf zj*gD@+<*Zu2t}vB3o`;?v#x0Pq_E9&wjL!KPX`8130sZ&3lT|sR}0&WN9%Zi05d;w z|3i0{_#JP6?_O~QBkcATO=Q<3o0eWc053g-A0B+HLFS*p)WmA>GYGY{T%XH{X8ys%;2aL47k z+W|f0F;g8>;H8Inrev;0T{ILWY}^QpCB3gFS6|i{cx?LHgYBa6Own9<@;=qyD^+IN zY~}=xv)%hEQ}t@nx3*+%u1wKryJ^yyXIPaiH~eG`FcLpoty-R_{QADae1EiPDsT7+ z53cUrfqP~!s4)>v!W7B=t9>*KbzoG&|CnkRTt|NQR z#G9K>FPMy$qZ2)pMrz%L+AsAMU>8R&@w0;_o|so;dCxT%4VE97D%(E)I$)yh1n|mN z*lPBw*lw!ALG&i5F59lJ*lD31f9J6Bht}gw7Yt`R1LuZr&o!AXcKeBk&ds!aGb^9~ zy+LmtTL3Q)&OF=usm@qD*F4tEQD%BgW2wYT1Vg_!dPK+E(ID97Run@B5Yt38q=SSlZ=;^&0)~b zCfpDknElcZ=u%ERlTC+On4wIma0CL1!I&Y?78ne|1d4&b5I_D*XZ>jOFV3M_>lW>@y%UDl^PHg2FOKn8D4% z!j^D-w&rl%>3^2-RcnrCB#UnDPUkSg*;Km3TyMo$!reb7S~8SWgWJOnmTU?ol)$8h zhtU~aXMzn(^2dx8OvAxZSP6@kXt*U3j=>@jSb~EC-ho82fa8glSWCi6jIa5kQ3$j> z8c!lx5J?CG5n+!)qwR?VA`*duqb(huPJNt12t_H?K7I1b&yOFK6c_#Uu(064kN5B8|8O_&&h1+_ zZ(PsK$J#@{rh~pz4m%~xVw?}>~?k8wbR+jkwhfm9qjFF zci32O$5~-5F&1bP5&<_iGc_^Zw$;ecV2i#UOc%O&)5Z-t>$SDkX|B~!S5t+ktXZwB zq^KY-w@MZ)BQ3dNbmzgciXbt_L~`3m+OQ@FBroa23LE5OE<(KS?NrbOQ*!X<$c()G zu?nj|E(-eLzqC*0+Ub(dg57lGom8NQ(hu_soZ}pI@0*zP!RnGh$EEwB_=i=Vpfnk6 z*)9q%K0!_vRNkh`KV$$ifP?+elNIUPQpfUwP&sv32+mD%j$gkl&r^Djr-FU;*=w6g zDSPt-w7n3uMi*|K{XkWj9)bN7TXI%m-PUF`U!-(=eacpIHVZf13ei$ATYpuH|F%{| zd7Beln{qu_N!m>r(0Nvy9r9uqsp#amN{f=oCMV?uxx6H>&hD0(^l4K;I)Q)ur9loz z8TvXn+K1KGU#)~a++VdAfK!n|=|HT@@4V$Tt&-iu_N%A9B5pFVvNr0ntC78XDyAY- z0Z)=TCT#_Fik3TA*G|;ZzNlJfyE>;=&KBE7ZnY5&>YdYKJkH&->Og3WgN(HOPec&l zG+7&e)hW7FN7dz`y*~6zU%lNGIHYC=C@5D}8Qz7eT4O?}sMJ%0Llf}lav=43Cu!xC zspM%^!z$&R{&wA#=t+5)?~(X8g8(cm#!-6h^+XvsFXy)0CQmg*BO1=L&d`EJ30%D{ zQEezIN>Kyy=cY=56hSH=8Of#^gVvf}KTG1BKV<+GEv5xG*}^?=TrK}x{0+1|q$d6} zJ-0U2%)zWlfPnthUm64fsY(1xmqg(-nO!XJq_|CZ2hS^W5oju!JPd5wuvNpzDb&5M zTgs6K4NpxU-zViLaN4mUgoN0{=GX>ZeB50<@@#_KDK83sOc3|m6?%Wov0># zBP>HVl&@HJ@|@IS0o^YF`G_`tteEFrsI|F#t#U0t+Eg3quibl**_R=|-NdI$H5SB= z{yQQSkdg$E*B3-@)&=+~ZqtCsX{T&al$DOoU4lk{tub1LMsV@U-JKfK2-_K~S$L~4 zO?IC4(5)>Vty5z#?1HM|*=4G~%q)Z_7<8a;$%{$NGTh%#{J}k96 z1Q}ERiLUa|E&blgzRoGnrnkV-jjh4t9KrL71eL~gPI0;$tkPDxCqVu{0S`SwDc^BM zwJryL^}xd;r3^2>;5v&=9%?slQ8vP%Nkf+k@a-r^&SVx-uo|4=xY&Sa!)a)OSv~c72B~Lp($C zRMYP{WE#k%0Uzfky4J_IUo!;{@QHfrdSFp`4iB7qQ@k*jf!mw&><3Y=(4)vmHQNOP zX1l&6?C(0I-f>&oKUb!^=tGN-mZM!_$!f(8|HJ$j#4Lr$Vc)wLv2 zRu{$H!b;_*#T`Phwm7>trp5XFIGH{_<< literal 0 HcmV?d00001 diff --git a/public/static/res/layui/images/face/45.gif b/public/static/res/layui/images/face/45.gif new file mode 100644 index 0000000000000000000000000000000000000000..6837fcaf214a394d8efb68f5d48c9ec6f9ea1fa3 GIT binary patch literal 3417 zcmd5-X;_n27XGr5#DF0zhD8WrF)SfFBoQz`0--7*QcJC!=F5U)1QL?~L4k(d1!NI- ztte>4YDHjhDIG&VaH&cuwSY^bxM0;5aRW-i1gmzYPp3cT*W5qfUCz1Zocq4#{bJ){ zI9$*fa0Xso0H!XJrh0>>u8=<=1IEoZmM6Q~OVF0F7R!UYsf&b%?f8~_r1|>$ch0hZDFP06I8Mo;rk<aPSq?M zI+J>7=d8Im~d?9+4f?j8O; zJE|RT^kVF_Q+p=vRouLI_(5+)1_@~yYdxCfe7a`Yk#%&7 zd1Bh~>$hhr`}X_f@*w8>xs%TyO`9jTlQ2hkE&b?yKm{3S(?CA)2MWFIx*O7;UrlVAhq>C2c}xkB`T{x%APF& zbxe&?bKzrmzSDAm)8(NJ^Re0U;fGg4@&Zum06^jo$p`@Y{C(@aF{Mmkt2ZW(3iJeG z%9uc_pGQwHrX}CwuIc7BA#6rK{yyqC~z*kr7V%<*TzKqCyr<`hdNd zwpbM{PgRK4s^!bp#wSVFu9k9Tqy-VgFda{qu1c3{L82}_Eknc8g_A&;QX=PB=QG<> z67jW(c6B%@a^`?I6Ej+=mJ`{*Y>JddXAwiW!E`pA#i0ig88kYRN@G&#ObVUBqj7n3 zHu23MS)-|CDZE5M%$r!&RX8bCt5xx+)a>l+;B02FQoV{w=W@AJ8iUGUP^=adO-_au z)KM}t-fwRZ$Td>6LZwwGGl(-cf)Zt>Hk@S5^tTeyRf`wDyEsD={JNlEsWP3a165Rd zFpZj?K2z6gYmGKh{(BmKYOP7iQOT)^a*Z-mEtOl%z27=p-|nvi%@|s<;Vn@ste}8t z0;M!FU7n$h6NHnjC&4m>jF-X)p|e8iYzl)d=TcHaS#*jdgdIYWNtq0WOv+)iq$zLj z`7?heGb%bHI)p7`(b#mlkj3S&*^#VJA(I`=W^qH9Z++u3G+Ho2Dt{YWVU7L9m-Uyv zylAx?)GF0UN@dzx79^x9wMtE@Qbml8CXzo;WXP1+8vhxDek)iYS1YpQvKX~8o%s5R zd5S*?FK0?YIYSz1EuBuMNTn<$g~I_E6c$G!1Zrz^<||c z#YKe$`cL!oa@VcR(Pd|4YBlOLDrH7`+Umb6QdgzOWl{+!{^V~Tul#7mhshr-e?Mti z;?jgA@rxHNd@oKE8zU4%M@8}%M1+UU=W#iqA#4_tL8noJDM5h&{^WUnzCPY0FQTW% zTz5BD7s4E8Cr1aoJ#Mz0Ep`?Ljj}-^;4r9FYrH1l2rO^`2%6E!nLjdsng+I@-N{is zNCYZ$1V?WIJ6$j_E6*1gg?3JqR@c>TxuO%sGNhAJ{QeOc>0qUke?%Bzg#R9%L*%!M4!}$B3#iS;I7vqV z-_=t@jP7oTE5#B6j_R%#Us&PdnCeqMYA_CwV954?{gR$)gW%dr6Qmzv1I>cWCKN`( z@PX^A)4dXmY2~OO*`CApcS{Ov>^%l__6^-=&mdBlD28vOyL(`D;-Yffxh>MzI)rBwpL0L2FbfX_P~%sk zaOBvHxwa0)rFm0;j}NQ}+6@pr1J0C_F!Y@!$t4$PmyN-ehN^`EwggS5ubh9U)UBl} zu^YdIAT0;NvBkx>Zq}%PDxWfnC?}Kfi-=2Ds&ZTitJPqOYPj7=ti5ZzG_L}C2j(^} zp>A*VEL0I6Ueh$T(Qm()6a!ZS5`HWctcse0bxiEoSz>xxfQZo#;*bfrX2YHhICaTx z-F^QA{tTe#*MLF+C}0mbSONV4X!LOtHPuB1*lk`(9wB{LQb*>&#&&|f65@ZvWmB$MSF`! zbFk1#1c(hQP^GQXOJnX2Y|xA(>vvh>tsg6k-%ExXyBCSSN!~VJX^<&)8|qFVZShI; zr5%E;aP;{k-;sO4rcQkiU%a&Cm=uN6yAo5y>JI(y`Tv2C*8Dq)P!4|4ZD4nSvnysL zN3|b-!d(xg@t4z(6|?X-M~=xTEP*-uwwmngiM#BU`lKc-y$#>!;FoxDM1QERHX@KW zV3JBu8@+7C#UsFh%928#DkrxZNY`d3r{#}4KI20ajH zn*X{il%uWB(NBM>?X*3fJk1Fbg!{8jGmjLCzF6qe$v73=Th=8DW042@bHT!hRvf#;OX* zeFdAWsxVeZlaYM4+b#S}6>7YRJOk}pxNr+h!qanVx}d!>RzwxQ6nkkS)`g#>+YKU| z+Zg0tQOxZEM4J$aP3Vgh+V~c3XnN976veP{N6{jkbp{;Pm6jY=o;Irh&zB0sUc-V4 zA{869e$>#tiO7y07u$QqFrfI&|AE-a8N`14OjQo4+UrgbZNJjtheP&|aH142N)Pl9 ziw~e~%L;Sm4STu&8UfBnLjbsb_El*l0k)+7c$ueOz#w1$UjFG7KfU})8jb90sYYD5|OoeX%_B$uF_b|eU)ud%z% zZPm~59!vG9l=2OQkh$pMNX*A7vM(H$D=x5K98wH%LEJ?N_ra-%G@%;3=?Ck_eb%2Ju4La|EBd8cU4?x)WAr$6`oyr0keJkR^PJ>T#5_Y354 zz32iPzy^4d1|$N&Di`1;5*gzL>#4vfJP;|tuIm9nKYG7|4HFaK_fDe6?$C<_X8FPy zn*pG!GEmB}>}^T;O;>RN4%5GFtx0#(>vG!mf{%k?g)58)Z+X}4HF;WTb4olldx`zF z6&_>V%KME!u9=S;f0FX{YZoUipBYKWO0sk?5VicVb}elyVO`9R81LP! zZ;KdzeMQ%jd!sPsdA(1`?zJaU=XPA(INq15tIv4V5_UX`Io1(essMYd@ei9yh6np~ zT@OZDxP8qDw=c+Ec4WVOlwPEoc6@_p83{i0;&xB_k!SbLr155)NDtm4@fo|z8P{oE zJj8Qh_m|HDW0f|MKz=cu*Y6#79#3B)*(2iWdi^DnyG@Ln4H!2|{`--gg1$ zqh_cja*0SK0M(L2sgj{);svp?7!dQ=}?^+Fh!2oQ%K`DTNBLTqTxCK|@4Aj4VmT#6y*S zxPnCfF|1Tccz+#&P$nU&1#%*pKr&ou(vZ*p-=-4DM{A`jT=aXrpA4*wNRf+(;Uc9h zNg)(L=8lF`at2!=5~yT~2$?K#62-81nM$UNm&rl)VjAee7YM~t!-4C24?ds4lPXmL zsZhk@F!4|ff><2Opwd|+Pa2mSK&7zBg4rFDy3qbTqczyCae|5uZa`I3S$J(t5>aD z@y+sOQISiRL@W+p6c!r7U-)$}FDQ^3z+wBd{CpQMeY_cTFHaiPV?KpUA`;x^&2@8i znd3a$$q_#boar#be)=>!+plb_t)^O9m`^b?#bGffXk#N35&?(C!>l(*6AX|B%!4Kc zG{S8Fz*wJ=mZkL}BWG+yl6|y0c9^dH1~J~=JR=N8;F(6Dvn-5iZR05*+?sAt$MNbi^|!N2v&oC@6!~RX z;PEaUinuBOLBMSs@jq(6#T*xZ09`f6ndanF=o0;=8mBe4e6i_L!3DudCl4|0EMIptK=b=dbY)zfU-dN%R{d62f8FNig7X?ha~E%J zRUguJ#VXZvWgviJY6frcN4s8Zn)cN+-7;*sEV4|-v_DuKv(2bZJlX}r<)1Qcu-zEl zUsCq6pg6I07&i4%=4PXmw%R9iqZ4{+Hm>YFQMoT6vARIqGf--qG0+W|*{l2g-V7M0 zGI)mwF6Li~hIN0WAwc7dLP0b*6Z~o?Xn;t7p&%O8YZx7V6D$}x8#x9#T7w|Z2xdeu zpI`w2d$yy46<}5cc*AiSVcgA!P_u2-u=dz0VD>k+qwHDE*R~Kn>eivFGiq}nVh#jp zvpH5Mm~XzoJWD&1W;Lw4Utc;W)OQ2Lsgr%)<Osh>}cfK)C_NJjg@K2vF~egX_7@# zG~|)0&dk#t-keh*j}hE;2vgI+u+|kzfkoFm@_%RmK7>66 zY5)-C&3iGSe>vV_C(hP9v%!P{Ge+71N4Dd9vB9K%N>!CD0+E+UU)+SMow7PUuiHEe zwqq(R{NM-VT_=z?quC-^_*t8f3|iLaROxWV zr3<}nI6If9C;=>VCNrhEt3r5j*D{|tIcj?WpuLGL*1SL;K3o*)P!_kku`;aNAHj?t zeb#zuZ?W;U`B4j-8rx5=^3jaO4Vl|%r{Em=pH*t9&pQ@G`*=1sf>V~?O+iJsZufe* zmU(U=M+2@nyU=R3R@yb9LJD>wY-en#PX*`O>APpp-zQ7dv6A6FG|NqP1`#+Hi Be_#Lr literal 0 HcmV?d00001 diff --git a/public/static/res/layui/images/face/47.gif b/public/static/res/layui/images/face/47.gif new file mode 100644 index 0000000000000000000000000000000000000000..58a083611d7c1afd95d136e3a7fa798c86d0c2ef GIT binary patch literal 2333 zcmeH|YfMuI7>2)d+R_WymLAH@(krc}g@UaIXysZc6v|DCFw{lML_tx9cp184*`ZL1 z8relh&=?dGG3o?08na|UL^p_06A@IL<1U+y4ZKZ27)xB1?B{;%hyT9c&-c9VYf4Gd z>GQq88%FK$%pZF7=(9wa`2rr;b`38_u1Ni#YoJ?-PQ<{Q1Mt)dw;~qzlI6dI!E6&; zR4S&=!}MYJULot>=bAnPrxl7WG3{Y~-ZMS?R7Fmx;JV!ZrqlUU4ZS8>Z=`Gh;F>w* zWhsn$!lPWuh!*)(43jHi(gHKv;NC*y$D;Kw)BTS}1Ph!lJ4eqYW z{g%g>PJ`Dq@YVr0ZM$bS!gWJbUl8S%5Sg+-e-LyD{YIE@A&eMd!^;HdTx;!1^10x_ zc$`oDtrVHP22a+a6LRQY#Ggupb_~Y&@Tv?ZN#um07ao2`LhsAe+>VK!o12r&xo0FU z&rUEbOVoxerXTCRc;d(gnBusp#@^!YJb!2 zEjv?U4%vf|HLNuvF}0Gq+TAmiuS;9EgNm>?9F_(VG~2`EI{r7h$iiJ^X3FI&h0z%4 zL6hltEXxP6ib9p1!Xj|?EmBaZ#MNqCo0Ah8sZwch=Bm7K5>qgR3O1d7XW6dOArs4w zeTi$Z#&Hh_i;mYzcq1Kd6%cVmEO9zGLXsFOmM(H|d63aejf+oa1m%s#@d~JB5|f|p zkhEvl9ORZ>`lH{%a6?t;-40NlJkhCOSOwY!SO8(U=fBerAgKw)j~WY_$x-8%lobMT zW7F7yst~s7Xu+w;z)Ft$W}2Y_4NP#ueD06(iH`OLp_|x4(cOjy1niZi9*xp*|H8+7 zhYy*DhrPq+6`BzeOuFpBOEN^>#J7Aurs3C{ZP@)Gp7QeZ;u1*0eVkjWV_tTGL5lLsZ%QmVr#~iiiTQ&bn%& zAUN6hdnd%DpD^<88eN#Qi{-iWM!ilP=s2j$lAgWD8yu=<+sn3hwix!OON`05TM$!!`a0qYQ+D0Gm zjNQ!D;g+hwM9lVZCZ`~Ozsn=@Xkban)%L+;Zpe$0I!N|e`gP{GrlKDW&>WlF*Kz-^fm&{KNpQTa;MH3VbMTSO)Iy`7$cc!}$F;)1yn)K77`oAz1q&dbPwMcqZS4-Gw#0WxD0%0Pa38b|9mayJf#kALK}E#J$BBuS_BN>|>~!Pl rL2H#EiEFFJCp(ZsP5Wj&2CVH=rzDGc@3T0Qspp*aTJ3^`42b*_XAT7W literal 0 HcmV?d00001 diff --git a/public/static/res/layui/images/face/48.gif b/public/static/res/layui/images/face/48.gif new file mode 100644 index 0000000000000000000000000000000000000000..7ffd1613b5fa36c3ffa7daca94e7e8cd6f8d82ef GIT binary patch literal 2689 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 literal 0 HcmV?d00001 diff --git a/public/static/res/layui/images/face/5.gif b/public/static/res/layui/images/face/5.gif new file mode 100644 index 0000000000000000000000000000000000000000..4e8b09f15101f3e3fad0777ad068fb559ed483a9 GIT binary patch literal 4567 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 literal 0 HcmV?d00001 diff --git a/public/static/res/layui/images/face/51.gif b/public/static/res/layui/images/face/51.gif new file mode 100644 index 0000000000000000000000000000000000000000..ad3f4d3a8158106dbfa48e521084e6c56fc6406f GIT binary patch literal 2785 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 Y?y9hKVE|Dl+bifDKf^#>4e-@}0Qq7Ywg3PC literal 0 HcmV?d00001 diff --git a/public/static/res/layui/images/face/52.gif b/public/static/res/layui/images/face/52.gif new file mode 100644 index 0000000000000000000000000000000000000000..39f8a22846945358446ed010e2b9bd50dfcc7a25 GIT binary patch literal 777 zcmV+k1NQt!Nk%w1VHN-u0Oo%H_RysE&7t_xrK?&j)|+hq+_3!Ft?IFT)0AV!c0$aC zRqD8h_|TsJ>&E)ltKOw@>9vIN%AU!BNyvIc?7@=%;kM9?T>taZ_{^H%oM+RGRsZhF z`r5JEo^R2GQ{9+i_}Q%gdgjaz^&bp0Z&w@W+~| zS1ZnjO~rUYx^+wGxrybje(A1!?Z1)y)1|L4Q~-nP||Tg`+@%Y8|vQYP4yVcL>g zvt~NObU**!w6tnI+^U8B*sH*IM&_z|#eGZp)T8>;r>$c?$Bk&qfJV7zHKbH2=(mZ+ zgI36gSAsHn*{k%yj=+0P^2nRuqi?otLDrynz;{Fc`{2HH zLjBdIzja5VP9(HtHTc)8{no1Ese0nAeZ78I+ml?_ms$MWwEzGAA^8LW004ggEC2ui z02Tli000O7fPaF6gnvseg^7xP76J~4i-a$bjEyHm@r9@V1n%lQKHaE#3h9gAw5QHw^!C@58A-z#?=7-ZCbD#S>_nhy%@3*|?JLj$r zU5vC!qK3OKOyIjL&=f_HLf;KT*4p zQZHIL*>mDv-L`YvVqf%rGdps+K56x(eBtbHo$;}uzd}0JS}|NHxm~Bf|9!#3hMa)| zDaI$A1BX-3rLP^W*F9<~ynSN(aJBl!)R389s$bvw?#gaq-51dF?#kK0W4(oOk6Vjd zl)UkdlJ?B7ryW&o`i)(Mab3EYQ(Gg(4dpMdA02BcGLHN()!#I5aO>55Th64cdC-(| zwOC--@u~4nqj9|JV(vQQqt;8=(I;hVCN5SESIegd&yKZyJy4;Xxn48%Yi)PVrrDum zwVPMYj&|Ov(T&s>bmqnO6vK~ON+vEGtV;-P&x!A?*#7eJ{->>_51Vs-Z`$|ZOwr`k zQzuiRjZ=f?cYHSW^ZuKa>Y;{;!RoB3YgL!?HW>SkyuMb`y;nRv)bQ$7qwz+=!{*|X zim<)|Dg70x&o7rxc9a*g78|FA2CFj9?@E{%ta~+Ff2TU_Zf%CqXmm4LNAO~zIqXOt znLsk12LJ$KS|1(>as_Gu^7RkYC- zP{Pp}5i!DyWFb?83tR>IYgihoLJF$|phhZ@saTo-oIoUxhgrzjWG3RkHxPAl0FG^1 z08KGDawQB>34Xpp5(I%X8UdnEX*9?OB$FUAk%YW7Ux>n@(pY3V`0l|W(UhVstSB!3 zT`Xi4fJ;=X6)Yk#EiH|Z=0}h#6NnI#$u#*OlYJ3{uPR-p7HE8BD*T)WF02wN#R|1p zE(1*-1@ZC}bpQ^@^lb@JMR@po$1)Y+O+f^qTuRgk6hw$XB1)yEy568w>L~a>X?zf^ zib+?%#3)!LPf-eC1dg90Bij9WAQKSDhP75HMm9wt;mU<6Qdp)A-l=L?+7Ba#f;S0dk^gpjWs+ zD3+NF-lh$DTQ3(@ic?_`Un!S@Zxm*UKac^%j|uTeTr!FOzbb#r75zV|5s_qwruO)+ zc9}CFJ!l%fZ+>L*{`kN$I5A-hEE2{GHgEc3W88+%KU=@WKC$uYCez431$Zct_tv9$zn3-G%Cf943UTgU!N7ry}dk_dAQ?oZlLSO zE`RyRd8yM9$Hfkd?Coq9E|_m)ZH2{HqEQy+X2=!eHf@1*0JMM)a@!!k0Y?C^G-hda zIt)gi?Vp>kx0Ypw>SM!KI2GiF%B@^;w6Q!MswCgqRYTBm(HyWU*Wbpa`euwQ`( z?ld}ph9XzSBFsm1-tb@LJnV#;e?cw?yRuZ+b(fAQtFN7aB`_E zNo`e`D+i->_KEXu((}=12xIHxlF_CMVxWVt_~h+fx(#$2+s{26mvxzO&0IWFah{&+ zHZ~Ycu#012!K9HY_Ixv&V3Zp+BG}70G0sXSEHbzCdVyK*#_hCN*q4 S8f7`(nZXDyt@tenSosGvnoLjt literal 0 HcmV?d00001 diff --git a/public/static/res/layui/images/face/54.gif b/public/static/res/layui/images/face/54.gif new file mode 100644 index 0000000000000000000000000000000000000000..e289d929b9552beb7be70329b7cbefb1d0618008 GIT binary patch literal 2196 zcmbW2X;@QN8i2zdHUU9)$4j6T6|#|pkg|m=0&O4yDyY*Ek}CwrViIH#8X#;!fP&G% z;({n0L5fgC!J;fx7EuSJ6skCc5iO!DMeEQ(dwT=o^oP?QbD#S>_nhy1>wCU)?zUhi z*_&gHutq$QBVOLB89$TJt%#ne&wlbv@m#0sX>;C<%y8&wJ2chSpS2xY=pHNs@2L{U zzf2e|2=B-Ug`Qu7rmsG0DeB4I(UlVN=EvrdNtcv+MjPfjj@?zpydF6ZJ!*j_uRN|hID75rRAc^~Lwn{g zW4=?uQ?iy3^hE$T7wu+`$(t{dFyU>5G{}eRaK6)a#zgz&_Klf^|wk3%H z&0HOBIJ`7;daF>sZ5x-zo0fVGFF$U1Gu=AVrh0z$2sD4~a)OV#K1W@jyZBwz z-Lm+*M}&*lmC*QwpW4d1vUbi~DTmaT=Gx1kpKnamruP=@8z_ib8me0!se>ji&30Fg zoe*`)7_)6(K(ig==j2ljiifoahK@-F%E0cd2nd3lAmdO*WCV@MX5i6S9W4X`0gIwo zY=F*@ap13yf2x?nO$22?EEvZZ`l9B)?LYy1o-b+_k%eW6X<$4*C|v?Zq=!aw(-XPg zJe0p5;FC&86^I3(j02T32z@IoX&h33!eF+;$<>1 z1%pXRNkON0qD7K849?rzTjK+d_kcA#q-jDKC)GnJbzbv82c=vIUo7K`gn-5)Csvd! z^F_g#u9hGWvsmvO3#I6lg3w%%0F%lQV{m9JMj+7CwW2MRg@gZ1lKn6Y#&mc2AaX1Dp(3{9)lDz3eZvu{qr4iO_ zgN0HVN5}=&;_~6RZ*6gZYD=L>K#oi#i4=*F);fS4FOrF*@ggxmiy#4REDo11)Ce|f zHfXh8Iw;{E0C`M_NC2!5rtsgB0fFF+V_@lcEc1U=zG}<+f2d*LWH6fc_(Qv_iQpd8 z4Bs_BJb8C~Kp}i)B=F(Tf_{7Rdig)UF8%w}FE3v#{=6_hH~akA%+u+go;;p<^shdJ$t6+boHr|CyrNrd93npM~|ouSCoHIR$8JgE;>|Lke`>U$jQ!< zf1a6fFg-0bE+QwwiX@S%Le?MQJk0{<`FA|a9iN|3vXb<S)7PjMJ~WhE@nU!X3VC;NO5X0$~7U$#WEPGlS39 z&90mn}`MmRFg6x+I1XVw*+WNk9Lpx7AVlVoRR zbl_uKZEe*S8+U9{^bUPHJ6~TLa|I(L+0-GKhP1$7kZ3BEKoAbewLt`SI}(WroEI3Q zo$Y_w5SintW9>snreds-dlwkSI?lK0XZs3zx=T0GT$-wEwTkTQcV=W&It3Z6w~dP` zoT66TEY*Esb*=%Rv5mBy8mBAyUEL)P^dDMdnw)wqwD`LHh-|LX&=L{rR$^hGpJiz2 z_j-XH$}HWa|I!vacypk@EJbX-fUODC!zvP{rqxr(LWCAUKi7hm6Og6P3vF+v1_?^7 zw}z|6I;+EU%uPes|4rGyebcC2z;H-TQS)rxf zYik)q%Pq8U)-^#`x@Ig*P99e}`hRa8Q1ex>%_cvw8c=iSc}6k%BZGrohK^QRp4uiz z=X~94glXULAg*F?x2eZYmpXBPmLA}i71`NzR&?5atL_KU%{2`5t*G7P>yO>c5g+{y DWiE05 literal 0 HcmV?d00001 diff --git a/public/static/res/layui/images/face/55.gif b/public/static/res/layui/images/face/55.gif new file mode 100644 index 0000000000000000000000000000000000000000..4351083ac8e0e65a64ff362cbd480f2c86eab4fb GIT binary patch literal 1971 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 O9M literal 0 HcmV?d00001 diff --git a/public/static/res/layui/images/face/57.gif b/public/static/res/layui/images/face/57.gif new file mode 100644 index 0000000000000000000000000000000000000000..0bf130f0d930a1fb72ca83265bb504304cb08090 GIT binary patch literal 2705 zcmd_rYc$(=8o=?tHVAr&EryxV4b`qo$MkfjMYWnBM5zY7pcssCsY_gop*9h>q^2$n z;+mvEw{eNVL1;+QkRTYPTe3ZES{2fRy0p}&{$}>gp54`bwS715es7*PpYwd5pR
          ' + ,'' + ,'' + ,'{{item.user.username}}' + ,'{{item["count(*)"]}}次回答' + ,'' + ,'
          ' + ,'{{# }); }}'].join('') + ,elemReply = $('#LAY_replyRank'); + + if(elemReply[0]){ + + fly.json('/index/index/reply', { + limit: 20 + }, function(res){ + var html = laytpl(tplReply).render(res); + elemReply.find('dl').html(html); + }); + + }; + + //相册 + if($(window).width() > 750){ + layer.photos({ + photos: '.photos' + ,zIndex: 9999999999 + ,anim: -1 + }); + } else { + $('body').on('click', '.photos img', function(){ + window.open(this.src); + }); + } + + + //搜索 + $('.fly-search').on('click', function(){ + layer.open({ + type: 1 + ,title: false + ,closeBtn: false + //,shade: [0.1, '#fff'] + ,shadeClose: true + ,maxWidth: 10000 + ,skin: 'fly-layer-search' + ,content: ['
          ' + ,'' + ,'
          '].join('') + ,success: function(layero){ + var input = layero.find('input'); + input.focus(); + + layero.find('form').submit(function(){ + var val = input.val(); + if(val.replace(/\s/g, '') === ''){ + return false; + } + input.val(); + }); + } + }) + }); + + //新消息通知 + fly.newmsg(); + + //发送激活邮件 + fly.activate = function(email){ + fly.json('/api/activate/', {}, function(res){ + if(res.status === 0){ + layer.alert('已成功将激活链接发送到了您的邮箱,接受可能会稍有延迟,请注意查收。', { + icon: 1 + }); + }; + }); + }; + $('#LAY-activate').on('click', function(){ + fly.activate($(this).attr('email')); + }); + + //点击@ + $('body').on('click', '.fly-aite', function(){ + var othis = $(this), text = othis.text(); + if(othis.attr('href') !== 'javascript:;'){ + return; + } + text = text.replace(/^@|([\s\S]+?)/g, ''); + othis.attr({ + href: '/index/jump?username='+ text + ,target: '_blank' + }); + }); + + //表单提交 + form.on('submit(*)', function(data){ + var action = $(data.form).attr('action'), button = $(data.elem); + fly.json(action, data.field, function(res){ + var end = function(){ + if(res.action){ + location.href = res.action; + } else { + fly.form[action||button.attr('key')](data.field, data.form); + } + }; + if(res.status == 0){ + button.attr('alert') ? layer.alert(res.msg, { + icon: 1, + time: 10*1000, + end: end + }) : end(); + }; + }); + //return false; + }); + + //加载特定模块 + if(layui.cache.page && layui.cache.page !== 'index'){ + var extend = {}; + extend[layui.cache.page] = layui.cache.page; + layui.extend(extend); + layui.use(layui.cache.page); + } + + //加载IM + if(!device.android && !device.ios){ + //layui.use('im'); + } + + //加载编辑器 + fly.layEditor({ + elem: '.fly-editor' + }); + + //手机设备的简单适配 + var treeMobile = $('.site-tree-mobile') + ,shadeMobile = $('.site-mobile-shade') + + treeMobile.on('click', function(){ + $('body').addClass('site-mobile'); + }); + + shadeMobile.on('click', function(){ + $('body').removeClass('site-mobile'); + }); + + //获取统计数据 + $('.fly-handles').each(function(){ + var othis = $(this); + $.get('/api/handle?alias='+ othis.data('alias'), function(res){ + othis.html('(下载量:'+ res.number +')'); + }) + }); + + //添加文章 + $('#add_post').click(function() { + if (layui.cache.user.uid !== -1) { + loading = layer.load(2, { + shade: [0.2, '#000'] + }); + location.href = '/add'; + } else { + layer.msg('请先登陆',{ + icon:5, + time:2000 + },function () { + location.href = '/login/index'; + }); + } + return false; + }); + + //退出登录 + $('.logi_logout').click(function() { + loading = layer.load(2, { + shade: [0.2, '#000'] + }); + var url = $(this).data('url'); + var locationurl = $(this).attr('location-url'); + $.getJSON(url, function(data) { + if (data.code == 200) { + layer.close(loading); + layer.msg(data.msg, { icon: 1, time: 1000 }, function() { + location.href = locationurl; + }); + } else { + layer.close(loading); + layer.msg(data.msg, { icon: 2, anim: 6, time: 1000 }); + } + }); + }); + + //固定Bar + util.fixbar({ + bar1: '' + ,bgcolor: '#009688' + ,click: function(type){ + if(type === 'bar1'){ + //slayer.msg('打开 index.js,开启发表新帖的路径'); + location.href = '/add'; + } + } + }); + + exports('fly', fly); + +}); + diff --git a/public/static/res/mods/jie.js b/public/static/res/mods/jie.js new file mode 100644 index 0000000..9c8b44e --- /dev/null +++ b/public/static/res/mods/jie.js @@ -0,0 +1,260 @@ +/** + + @Name: 求解板块 + + */ + +layui.define('fly', function(exports){ + + var $ = layui.jquery; + var layer = layui.layer; + var util = layui.util; + var laytpl = layui.laytpl; + var form = layui.form; + var fly = layui.fly; + + var gather = {}, dom = { + jieda: $('#jieda') + ,content: $('#L_content') + ,jiedaCount: $('#jiedaCount') + }; + + //监听专栏选择 + form.on('select(column)', function(obj){ + var value = obj.value + ,elemQuiz = $('#LAY_quiz') + ,tips = { + tips: 1 + ,maxWidth: 250 + ,time: 10000 + }; + elemQuiz.addClass('layui-hide'); + if(value === '0'){ + layer.tips('下面的信息将便于您获得更好的答案', obj.othis, tips); + elemQuiz.removeClass('layui-hide'); + } else if(value === '99'){ + layer.tips('系统会对【分享】类型的帖子予以飞吻奖励,但我们需要审核,通过后方可展示', obj.othis, tips); + } + }); + + //提交回答 + fly.form['/jie/reply/'] = function(data, required){ + var tpl = '
          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 literal 0 HcmV?d00001 diff --git a/public/static/res/layui/images/face/6.gif b/public/static/res/layui/images/face/6.gif new file mode 100644 index 0000000000000000000000000000000000000000..f7715bf52817bc577c0d33cd0cbd17da898848a1 GIT binary patch literal 2213 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 literal 0 HcmV?d00001 diff --git a/public/static/res/layui/images/face/61.gif b/public/static/res/layui/images/face/61.gif new file mode 100644 index 0000000000000000000000000000000000000000..f092d7e351cb195eaf707dbec74d32ced42f432f GIT binary patch literal 2495 zcmZvddpwls0>@{J%gYR7j4+up;~ps-g^~<|amh}yl}_7Y+vT7Wvfa*3b5mn-Xw(QEPFk@m^%H;^Pm=R@3$tBn3-FJp|Pv^7m^UwSD_xb+5kGGGPlXIvZOb_;w z4hu>WRu9bO^{zf1oIGFNTQT^7Th-I``h94IsJwfkq%pUy5n8e4q73P$oDwNA;h+TRVnUA`_FJACO6c)M++_wCByGB~^fmi{J_E`ZV%ux@x^UqeupTcd6~3D0Ton_H_0dMVc-Ceds;7_7Op3fM?JF4-(bWew!@<4uipnOUf!5Fgk22^bcK<9t@@i zGUzOJ!o^FRL@r%h`{;L9cxhLT+S;;hHGHjda`bQ9$hGqE`;ukr>qwwg1iB)Ba1E>= zIQo{*H$+bQXPwkpP7f2#7?1(FWFz!_ND+*?I0CmU!Y%?{_}D zgB9YeWcn`vZu)Kp4uqR3Ift;0s3_^+y^owVpxk|gF^N>x?KB?ea#FcF4ONmD~V zOSFv{O=Ol(xcPUxJUjIaHyf_N$Ui51Du&lY#~(285j^#0 z+p)y$5wMc&90YA8OG+(0$;KU54((qFY0GR#-E>RB_@<5BWT5+m-*`@lH`jD>3>hhz zO~73TLx7mVd9In)PVrDkF?$jV7g=gyLt50aTFVsNwqKcC>~5umE*o)@KCH9I?^-I1 zneX=3MJU0PVLC93;v#%wA)ts0iChFHIM&yQOGI(gh+HEG+aj=;={M8#GNt0Ik;)Iwz)ZYnw*K#u=Ajy&HMWM(0U$r z8WcwtvX<6=aIbLZ?X}1*j+C92WHcJL^@OhOiBq^avgOX`vt{m75!@Q6lt`x;`D%um z?Jn0NMjJ)kEy>0Fh*CkaD%CyCN!$K7PU~y;^Q(&xo3w3TlqNDEHdnE60n`H)%qPm< zipFzoO~l+H3u8)cb!gM39T?sXK*x=f9A)oD8L(0jeU7z{R|c?*%fVLe>6YAlQ!cOi zD<#NKxt}PxpPyiX%)1Dg$8`<72${F8-8KH2c1C;@iq9t!`EpKj;qLyZ5UzYpw)%!O z*%YSPZ0>k$J(D9)C5odx@fG2tVqgz{w$-kxU{cj& zQ`HSX+q^LqYmT2w6K16$uolXvd78?9fsqdv4jq^pfTBc1g@vvj=GIqKdz z>}2-8ad;CGJZ?`4i9pK^M8;a*G;+zN5lBHrIj+bG*TAx%sI?v6t5pDvGO9(PYHNwa z+K)gxyA(j%)_@KTe*$#s%{tI@xp^zAa-P0oCN(TEbFaCMl|SI##?#UGbFB8zSkvTV zjm{^`NJxel)l|G4qskPctFUi2#n9TR60Z&Clq&4QMUFn{ETAVB8$^~0ZmLoXA^Ubj zLiQEzqAf%A-9GlPRI$uTx_Mb%Q!(?Is=w-kvOI#N_TQnIhg!$-^3&(&W4wIWDJ*=n zD>5SH_I#u^`C373Y>nE|@)|V_fY&IcAkhG}#wm=P!cdCyN*22z zDC{HyrbKL8n1Bb&E>X^f6c)Fp6N*t=3SeBV&1Ae2C8p%%Rb_kbbSG1!s$q=Y{1YZr zBE}%dY#mbQiz^%}>TvCk?!9erOiccHgSq00G{hJ8OKsB&D?W|QM@i-wbUNU@UEhku z(%0Ya4RFKvAzk(Msa{jvr{{{?7f$y@X3%k4b#LjO!qIY(zCJ~CV>M)K&2~J2p6kP9 zd8t(**0*4*=}hVpw~ zk>4iKC;9E}`7^(Cw7Eno`6R#7|DRt=YQ#S*Joc_vr63V;(D;a;NlNliR7Kb&hNt4? zZ&a6}DrHbrO4^{Rl(}$cpsH*=IpmK)Kvi+D0P^xn16W1s6NxyeDm*OpGcqqGyy?>J tNMrII%;*&@oa8uz=YCKFxNClV+=*Obvw`TNkx8belN0|*V!~j%{{ZDj7zF?T literal 0 HcmV?d00001 diff --git a/public/static/res/layui/images/face/62.gif b/public/static/res/layui/images/face/62.gif new file mode 100644 index 0000000000000000000000000000000000000000..7fe49840bf69219fa40585741f901fa0b187c044 GIT binary patch literal 2017 zcmb7E2~<-@6b%XriWPA~E&7S5U?CeMKrqS@kf@<3s92X0ldnl3i^)eK*p}kPCV~ix zfJKFXfD#rh3MxeF%Bm~@$`%k=RFE|W0{x-ja#}p6bLO0xdGqdl@7;N4Hc}idt!Rr7 zix6#oh~B}G&K^Ze*N58H!N&G6xk4GARi+#rdr?2s-mN$Zt8|D2&!)bX9 z@fj60tpjNVjWOA^RZV?0ErU@hrAfEy&WTE&RlgllC~rT09U&^daj!XAEKSO4Z0OE?(wdM}k@xJCRMvO;(u1r*Sz~*@ zq`Y0$DZiRi^Q5v@Qr1~s|L**?@+fgtLCM?PXKk_BwY9CiaoN&K;!4HHXkmFrbBA21 z9KBQYI=!&*?6v1`Er`#C!PsnP2RB!HTNei$3Nu{|zJg8eR2P6ugJ|%&ZiA3VqkDo7 zupd0g;*gNtdH0b3i$Ox}#8WX;o;}E9Ir;KIS6^p0y00hQih}inbI*>EI=Tju;zFI0c!%_ zFjyQK15bh})|`kZ5OEg3#6ZH)_>2R@ZDhxZSn!F2WI_;+h(`PP_@I2uP+a~&G}g+> zO2vW0nZh2Xf+HM=CN$*;R!%aIK>?l5;z2Af2T(E6_H(@<5)#hzpAy)-kF*>CYP=j2 zoy$fGX*@I*g;A9>=}4u1-IdM$=q-S@fuHjIPhx@F5gv%%1`4>|d^!lbuT+KN5$*XP z4dU|MxLmJE6^PHtOFLFmUsf*4rhUJu(PwYFgL?aV#!>(Hyh+YlUT+lEN)7ysu|ckI5HXJ zvkrp{M?RMgj2BI0O_>YMaZ0`kEMw|iFjHdDa58As(|-2UlP0)-RNIe@3m-nVKFERl zoewv*+SsUaWLWV*J~TMc-`D%Tr~BR8H(i|_?XTNjwYJEbn;IMH|EjC4kyck#R=j*s zURGLCT=e|e($a^f-#b&cY~Dn1+UV#&wzspj*|46p z&YEatX+gl7o8hn+G|JTEyS2tfYgVr^T!}OQRxH>5cG=P;dW#n=TrgjEp3dBF=4j8J zrKLG@hKBm|Y4G=8@IhT`0m2VqqWVNspEzRXh`(RJvEwIBo(c>K4hiuvHMQOtdR#}q zFwx(=H_}f>UlZqsTW+Eky2fa^dRm$zKn^rB_L`5MHH*J~PM-F`%<2aO_;S@38RMvJ~yY(nXQh9H$#C+X_N6J7*$<3$?X(0mkzJForwl@3YZR zD(7ypEO`2UwUg#jKaV}(l2@CjA#_$wOK5tyC3Nl~OJ>c>w!&a-TDZC%g`ap*7qR1L z3eZjo)z+#wr(=^XLRhaYF-#~^4@uA#A)`uxOotZCF_r@COs07jYnjoR41IHx^3z(23>`O(`)4x0N+N9Ug7`A4=;!*$FD3vz)I&(EtPkek$P3WH+wR>*i|S;@u67A}zhS~gjRlsT&q z>2ep_vPiupx+%s62_mZ6VYfJn&1J1cwzHwYdCiDZL26Es7v)%gW`st7wp5Hko~cZ8 fzaAzQ7Zd=~XY>c^Z;pPWn-TRQb#LAp9fbAYHD_Zj literal 0 HcmV?d00001 diff --git a/public/static/res/layui/images/face/63.gif b/public/static/res/layui/images/face/63.gif new file mode 100644 index 0000000000000000000000000000000000000000..cf8e23e5b2e83bf4f383cd994510a7a04a74f57c GIT binary patch literal 5871 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 literal 0 HcmV?d00001 diff --git a/public/static/res/layui/images/face/64.gif b/public/static/res/layui/images/face/64.gif new file mode 100644 index 0000000000000000000000000000000000000000..a7797198af0f3bb98361b1b8737784d0a8c2cba0 GIT binary patch literal 6448 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 E1xN?}xc~qF literal 0 HcmV?d00001 diff --git a/public/static/res/layui/images/face/66.gif b/public/static/res/layui/images/face/66.gif new file mode 100644 index 0000000000000000000000000000000000000000..bb6d077504e3b39871f72150c1f5fa43d4e18bfe GIT binary patch literal 3029 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 n_4QGfNp-c(#;#v)!?fJ=R?7`D2^Hm literal 0 HcmV?d00001 diff --git a/public/static/res/layui/images/face/67.gif b/public/static/res/layui/images/face/67.gif new file mode 100644 index 0000000000000000000000000000000000000000..6e33f7c4f762b5c4eda2a630793d681345423734 GIT binary patch literal 2701 zcmeHHX;@Qd7QP`wAR!P4LKMNv4ag!{fe<2l0wNMfff>RmQ$ung5we&B2sE}NQQ0hl z0##@QM5-uS7zc}jV`Pm>RVw1%Vylj=ZLzi0Qai)kFhb|YIKSsdzvp|N`+eu0_dVx) zXIZ;0ksTp&2i$>2dSD!leuTm7o^ZHfYuo>&Z`mPt!x{U-cRY5C*l#mC41LSmbHT;( zUGkI2nA2#Rrb`|(j*iO1cHQ?pn>;WFZ!LY-f^QrJJ1>S+WVvi^!dIWSuQ{>0b;9GY z9lH1^R@7iOPITRW)o1$v;bH{m?OsCtkax=nP1QzdzT*05X7UsP*FHsTpY$DAMmjku zHJ&8a40_cKyS{&MMd$Uv!e*DAJDlB@v7OgebU^t17Vx9nkfdcv>K1JA{$-LT+^>20 z*PhFU9}1p=KA*p=ujus4GGL#0dDncr?3a|ZhSRZ=1VYCp|7s4ldSK}bF7J8PhFLnj z>w4I+JCvP6u7>XATl;W>Unkd$;tqWpd@ms2%JYp!ZuyKpf*;VCr@mm{{^?CcEAB@( zx33b`9=e<|HY094!#O-AZXH=K-Q{|9M)S;X)z$<44FiFZSoG=!L84kW$5MoU&$>XH+5?|RuZc&g_t5tDm zw33n%YDoxHsm`Y{A|fKJ984w!(V%Eb6l7NT zNFj#T@uDDvgDR6rIAIZS^zd+cNJ1Es%U~oh;#mwPJ3cOs7akWE9~Kw7faNL0MRHi7 zUBF6y!-l>VYb^%33bD+C)v{t(lBib7!TF#$ve)~s zFNl!(u^tx-7r88!KCD3MU5ykrYVM!^`1R#4vp>Ih{?m`oe)#_B%y-{@^W^KV9{>H( z!v|k}aew;r&+gs5bNklK8&lUOuYEdk^~&W>E?vBE-ZDNmIx;+T&V2T7X9fpOpX&ek zWZz#;{H3?&qvOZAj~?kdeCWf@gB=Ij+gkU3@P144zP;}?H8$+oU0=7W_T8N|)m4=h zJGO5#84cy{yuDTbR#~a8q_{|{QEyQx74pJ@%`$0z9xM^(iZ;FZ=bVij{**1u`r{um zGt%D>q^0sx)+et^TAP@_xD9-fyB-6$pG36_y?M{(1_q6hr8^^LS-#_kcH}58IGV?6=MdMD+5tUHk&0(>?g&0>`2iA*g?VMdC zmdaRm(jLeZy-5U`hE1NFpy2)?1KNnSCyiL>(s4(Os~bURs4yDQHnyRo9cFXYNIGc+ z2pWb^k*-f4kC~d!HQq2r>t@r}blF69IS`U4(--l}tGJdA<(@ATpV^Rn%cCu8r)H*y zXJ*^F24{JO`Q$h_FC=Fvu=G`Oaw*$$jg{LdK^2uoN{&7$7w~EV$Z4s1O07Phh&(;P zi7c;3?jY#3wHQ5$fI{nY1UVqkhjNOl%+DnD^*I6KUdCi}PyuZ8SChsXNkzrQMJbbP z&$HsoB}DcV&l6UA7AQy$)S2Q?E>}s-%cII9FJ&8%K{F=ojVJH2ccCY(D4jSsf~(-W zdI!dCx2=jSjZe8Bl8{_!$~YioOMS3AJ)9Y-*=>w5H{8ngl|A$y4q_@wuWq_~{zQIS zs9x9Ieyv05ygZZ{kkf2Pb@4V<6V}B)v}v(%;|n6T7^|ynU?vzJvZJP|MYuUd2HD`6 zOi+Hm&_WL2x-moYw(a$Kc+P|g7G~-Mh7)u*?!>io2`ZH#lbLZlN1QCU3@6uz?6Qi{de e&Ns&5+yCAe|96dnSxgQJK<1box?FDn*8B_Be&pBy literal 0 HcmV?d00001 diff --git a/public/static/res/layui/images/face/68.gif b/public/static/res/layui/images/face/68.gif new file mode 100644 index 0000000000000000000000000000000000000000..1a6c400d2aee3c2bf384ea98105ea143a7be97a9 GIT binary patch literal 1424 zcmZ9Jc~DbV7{y=A3t1ElhNMIdWI;qKAVvj8Ed*oi?z?C-fY zf(5alX8^k1*gQHqYBXkM{*Y7G(EMlrP>eS7$J{f+!^7j_;}unPZLRHH4}MR}$j4H% zTYhfsGj?TOHx~i%!_4f8&sc(!p zs2+U&ytt$?-IP=LQ*B&A%E`iWb@kU8n_729#@1hL8XO$V%`1pL6rXv#%U_^otZK_oyB#G8ak z^C18&$KQBKEC?b`<74Pth0ZiU@NzG)cMYnYrNyx0{3VS0piFK z$mjW@c07jcz~^C01gbSE!4l?jKN*8(2i!I=7z?>i%Ot#X8Wmb- z-mk8XNZrg|w7j$@`l};Pt|OIG+|iBX+>+gJ?YG=L5ZNZ!)BDX0xH-$we_;ik>rc<& zf5AWK^s2jcj&)$=URy5zrh&i90*jur_qLH3WW{wSbkDIO(;}hh1uYrcHTEorE!^fn zvgJy?gKUIgghGf8dCDpXK0eH4t@q?bXqSq1I#6t15+F;+KAduNq_;ufveqHc`;1pI z>o3T{DUkcAIx0lMFBz|nhgS#WN;U`=GnuljGNm%W8Bi7eJ|Ie@0}=|F_=%$7jKv4a z9;Xl#6)eG+OchKAN--yv!H(k#v0OkPlbP{Ko`oV^R}|sVLBkC`3Er40V4ncGrp%n@8uS_oUaYz1HGOSAS4j5 zc~%li7@`klAyO|ro8y7$#as0M!#?iM)dCLCORR!13n>LiI9^D)ND}O{D#%XC2A2An zUS!zo!F=h=6kv$@Z)%IRV3mY{$y|aA29O2_CIUdhC|POirAYdWgCXW zln*20NaIL%0cp*eH5nNh>(;Ha*=);}ExU8)4uT+7t2HGhc)*5005axmX(#YXU`s;PS?`Xa`foYf`WpRCr>6NC6$$x zSqlo%mCEAc;?=8HXJ=3vwm6eq}Jv~>iUcGkh+Q7iT*|TS#K7D%S z%9Xo!@4kEY?#YuU$B!R>@ZdprclU)07g}3e`}_MlIy&TXc|}Dt zwOVa&Z|~*Hmv`;j_5S_))YR1N+qd7md9$&xvA(|k)~#DOj;~+8zPh@)wzhWDrcEZ3 z>D;+S?c29sy?WKq&~WHhMvGd&p1iaJW+IlgiU9< zI1%&2)FN2|Bt{Gf@eYqPX%R&RW`N{ano1+2J~`Y#g;c1Jx{xPh%CsU(shVllVe`y! zNeXj@0!FEk5m2~EU{Y(P(GZU=mUh6qjQHVr-vgP$37zkRhZ-+ZP~vOcAcb zARe7ZQ!rUvC={l%cq}fT6%4VNEDnRoVX!zf7F)oC1uP!);h_@IbZDv|Q7rusi}(^! zl?H=Wz+f1SM!Jzh$8~8877W7-CY!-#(+C7jpQAA#CYnYcG^8NL^a`CyYf#}D$gYUU z@hpRoN@V(L32LoO_EA`)r#lLwD{wW#glHKoI+LMR+v{?m^@c?3w=_mX>yvV{7$XtW z<5@ZdM!^(B9XNIPTMzjwkie{9IQT2wf~2I?c4j$ zJ^%Q=a`&#k@7z)G-M8Dzw{6{0wz+iEHyi)9Vg0(bYgVsXxuRtG*TuG?LaU`9|F3@m zdAa5slQBEXpx1q+#Wm{8jC7SUEfqr*awKKhmtQ0=U9x!5!Ugk_<|WQeh>w%anLR6Z z<_xJsEQ*Paii{A3hY4VQXb6wXVY8SFIxYCmf0{mR>K{L!5=0GzJ`0%aKWXBG@qZXM z_R~-N#`yYpkM{EPpp0^NBfGjd6ZcGDzbhFf0aCF2Dzg6#NbZCAz+&-(eB6D;7yCed z)-_i5V1HjfU;aj4|6upE)+ysWJd8ns+`u4X#keWuz&Y2PYcx^vMw^WLbDj5@U7TFq z$Yb+9CA+ygxtRBn4p-M4s;?sLbI$S1@%A$1P4M!*mUE=M;rNMDO)Y0z%iF3tYU>VP zF2CA&S<2XeI3?}vRmUqawEBt z$b>ax^MULO0Gu)4CkYb(^Wq|(cu??vkfN^uF!+Gk5ndi(#-bvs_J5INhvtNQki!!J z;F6L6NP;kl#IiWf=CagnINFuSz|Dc4oDV#6gj@ieT%k0OYhDtb6m7`~izr^64G(A7 z@e~Imkl0Qu5Ly!atx-!sm{+)U=3D`Yoot<~v&=7q14d>|%?I9Ipolx8C>1UOzEeOV zIgkP2W8!F249JTiP4I%tjLsk`2+e>eftmR7Ii42p)nJ*W zaJZV6!)tdUrD^$I-arMM3CVdbW&ry}`|H8PNJ?ZTdHL*>CL<8$lEBWL&cjj}?bs$a ig6vPE;(vp8vN=19VTuwMWT7@8^o literal 0 HcmV?d00001 diff --git a/public/static/res/layui/images/face/7.gif b/public/static/res/layui/images/face/7.gif new file mode 100644 index 0000000000000000000000000000000000000000..e6d4db80572a8321fa233d7efd82636fd896bf49 GIT binary patch literal 3398 zcmd^>X;@Qd7RPTELI_!bkd;Wn76gSL8VCjmtHxL~xKN`N+n}hegVj>h8D8>cxj_Xi zSjVMQtw_~*7^&k@lqw)n5L%Qf;?}a%$_S(4Sc^ztZUR`_vClK#=R=++pYA>9{D0^C zZu0D;h{zS5h$r$BKyDljeeg~Gzpv>>pPpV9$sVltd~rxR`uyh5zR4p4e|vFC+O#|H zv~`i~-j?S%p|-YZRTls5(~6<90^7Bykw*t_{yoLk9^2PA*Vd`G-JE0VS^KObdni9- zrJysV)|MRV zaBJYG?OEYU%}|A8=;|Avr3>mxX52f;8N5DkxF+IZrSRUFsV^@0bbS{2%grTUf2o$GyCOZ|TCDz;sYyO{G90Ih5#fO`;Ud>i6G9Sc>o%d*M-cshOA3A78FdM{l3e3 z=iv1o5zA&zFEoa5a1lOUE(8}Z0nH~Xq%>s4f(3602*DW{)Gyc(>Ix$sVT<^*41ecb ze}Y$%isPfk8w2pXi+Yb!A2;jyVLW~SpYku+tU=qPli8pW=;!x4wjSv$pR&(F+B z_YEXRt-{9|pf4I)HIeQ!AzOyucb@(bM=` z(PEI~p50sx_;3Nc9 z5xKbS5K0$YDtkL?YQ-f1a9u?2idnO)BD(NSXl0^lvMR{K`%0sstSMecA>VpCmWdB^ z@(>jtRYRiLFa{*W4kQjCV$D&p_HwZHqNP}SnKaZqq4a2a~w^|4;5dy4mPab+0 z@VU$0XQ*Ye@MVyO=Y)qZjsZ(tUFW#U_<&P=UIrJ=CC(>K`nsukk{Tw!D5MIx2HKYc zBoPM^@!4k+E#||T@_s1pJ1iuZQyxDx{C3t%$E@qIVmLUg7y%7+kPk8Nv2wxU0{nWd0|dEHQp6|+bed(ZJD^M+%YPXeg< z6m|}mqJlK4fJ}`HEkT=%@he;Igy!|N?h2UV^j_`sm712_GyXK<@;ive8awt1M6WUg zUttK?8A2_YhYx{qhAP?cw+z`4I>+BPh7d+j(>cJu#l0HCdkIiacX&I7&!dHl0sG-& zcVOoSC*Xn9XHL@Yp4v%)%FVsZx5?Y+bfE|TY}bM0V=;8$(mRb;uk6Bmr5gIVty( z*3rs1?|2L_`#PWd<0PV`j&%l^G`RF|{_l-Q8s7*$=lf0> zkGpU#m=7kwKH|ekY95k6Bt{`{aA0Vi1JVHSj2pOC0oIHR4z%rp`lwn0V+d)tfSZtNXQOIQR zHj`(XLTM6{ghJBRI5GJ!nW9xHNg7j1%Arc&2DBuK6Ds+~ISQ&PHt8;SYBft&kjUgWbx@~;SRvvy;0@rWbt?pvmb>Pe*9vuRaX&t0 zpsy_?GY`Z8li6Yl&o-@Aps9d^x|`BSg`mhHHY??HI$5!LwOF}-zmP;(A^coUP7^CC z=zxBl0!sHE*NI6dPYcOaCZ$lR)#3Xyby_@m+qPkM0*+oFwZGrfJm%=S6h3H2pyl(Iu2|m8IIiYIUBrX7AZE zQl{fthK+q4Onm%wVLeU=8N4)dA=~m>BSSoI--MB&!^qnlLWT|@e>5)S^S=`^_|?dr z_VW*ZRdP3`WZ-bJC78J}iSdy%zMZRZM<^b?EMkV;0463JGl1C78#6$y%Gq5-Z~1Y> zlg?IxSn*`{`mBpJyApMu4sSXUhl2uoM90$bmD{~p^3kWU-ihR^iLgxn=0E@wiTV!_ Ch@v0> literal 0 HcmV?d00001 diff --git a/public/static/res/layui/images/face/70.gif b/public/static/res/layui/images/face/70.gif new file mode 100644 index 0000000000000000000000000000000000000000..416c5c14a19fbdaf8fb8d6baf5cf7e31e54f751a GIT binary patch literal 4590 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 literal 0 HcmV?d00001 diff --git a/public/static/res/layui/images/face/71.gif b/public/static/res/layui/images/face/71.gif new file mode 100644 index 0000000000000000000000000000000000000000..c17d60cbd15e80d83629b2220b562a224eec5554 GIT binary patch literal 5304 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 literal 0 HcmV?d00001 diff --git a/public/static/res/layui/images/face/8.gif b/public/static/res/layui/images/face/8.gif new file mode 100644 index 0000000000000000000000000000000000000000..66f967b48da173b68cbfc92986e4426ea35ade74 GIT binary patch literal 4050 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 JEmCgizW{zshWG#g literal 0 HcmV?d00001 diff --git a/public/static/res/layui/images/face/9.gif b/public/static/res/layui/images/face/9.gif new file mode 100644 index 0000000000000000000000000000000000000000..60447400d31b035f56554b29af1aefc76bda1698 GIT binary patch literal 4221 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 literal 0 HcmV?d00001 diff --git a/public/static/res/layui/lay/modules/carousel.js b/public/static/res/layui/lay/modules/carousel.js new file mode 100644 index 0000000..684fff8 --- /dev/null +++ b/public/static/res/layui/lay/modules/carousel.js @@ -0,0 +1,2 @@ +/** layui-v2.5.5 MIT License By https://www.layui.com */ + ;layui.define("jquery",function(e){"use strict";var i=layui.$,n=(layui.hint(),layui.device(),{config:{},set:function(e){var n=this;return n.config=i.extend({},n.config,e),n},on:function(e,i){return layui.onevent.call(this,t,e,i)}}),t="carousel",a="layui-this",l=">*[carousel-item]>*",o="layui-carousel-left",r="layui-carousel-right",d="layui-carousel-prev",s="layui-carousel-next",u="layui-carousel-arrow",c="layui-carousel-ind",m=function(e){var t=this;t.config=i.extend({},t.config,n.config,e),t.render()};m.prototype.config={width:"600px",height:"280px",full:!1,arrow:"hover",indicator:"inside",autoplay:!0,interval:3e3,anim:"",trigger:"click",index:0},m.prototype.render=function(){var e=this,n=e.config;n.elem=i(n.elem),n.elem[0]&&(e.elemItem=n.elem.find(l),n.index<0&&(n.index=0),n.index>=e.elemItem.length&&(n.index=e.elemItem.length-1),n.interval<800&&(n.interval=800),n.full?n.elem.css({position:"fixed",width:"100%",height:"100%",zIndex:9999}):n.elem.css({width:n.width,height:n.height}),n.elem.attr("lay-anim",n.anim),e.elemItem.eq(n.index).addClass(a),e.elemItem.length<=1||(e.indicator(),e.arrow(),e.autoplay(),e.events()))},m.prototype.reload=function(e){var n=this;clearInterval(n.timer),n.config=i.extend({},n.config,e),n.render()},m.prototype.prevIndex=function(){var e=this,i=e.config,n=i.index-1;return n<0&&(n=e.elemItem.length-1),n},m.prototype.nextIndex=function(){var e=this,i=e.config,n=i.index+1;return n>=e.elemItem.length&&(n=0),n},m.prototype.addIndex=function(e){var i=this,n=i.config;e=e||1,n.index=n.index+e,n.index>=i.elemItem.length&&(n.index=0)},m.prototype.subIndex=function(e){var i=this,n=i.config;e=e||1,n.index=n.index-e,n.index<0&&(n.index=i.elemItem.length-1)},m.prototype.autoplay=function(){var e=this,i=e.config;i.autoplay&&(clearInterval(e.timer),e.timer=setInterval(function(){e.slide()},i.interval))},m.prototype.arrow=function(){var e=this,n=e.config,t=i(['",'"].join(""));n.elem.attr("lay-arrow",n.arrow),n.elem.find("."+u)[0]&&n.elem.find("."+u).remove(),n.elem.append(t),t.on("click",function(){var n=i(this),t=n.attr("lay-type");e.slide(t)})},m.prototype.indicator=function(){var e=this,n=e.config,t=e.elemInd=i(['
            ',function(){var i=[];return layui.each(e.elemItem,function(e){i.push("")}),i.join("")}(),"
          "].join(""));n.elem.attr("lay-indicator",n.indicator),n.elem.find("."+c)[0]&&n.elem.find("."+c).remove(),n.elem.append(t),"updown"===n.anim&&t.css("margin-top",-(t.height()/2)),t.find("li").on("hover"===n.trigger?"mouseover":n.trigger,function(){var t=i(this),a=t.index();a>n.index?e.slide("add",a-n.index):a/g,">").replace(/'/g,"'").replace(/"/g,""")),c.html('
          1. '+o.replace(/[\r\t\n]+/g,"
          2. ")+"
          "),c.find(">.layui-code-h3")[0]||c.prepend('

          '+(c.attr("lay-title")||e.title||"code")+(e.about?'layui.code':"")+"

          ");var d=c.find(">.layui-code-ol");c.addClass("layui-box layui-code-view"),(c.attr("lay-skin")||e.skin)&&c.addClass("layui-code-"+(c.attr("lay-skin")||e.skin)),(d.find("li").length/100|0)>0&&d.css("margin-left",(d.find("li").length/100|0)+"px"),(c.attr("lay-height")||e.height)&&d.css("max-height",c.attr("lay-height")||e.height)})})}).addcss("modules/code.css","skincodecss"); \ No newline at end of file diff --git a/public/static/res/layui/lay/modules/colorpicker.js b/public/static/res/layui/lay/modules/colorpicker.js new file mode 100644 index 0000000..9c9cccc --- /dev/null +++ b/public/static/res/layui/lay/modules/colorpicker.js @@ -0,0 +1,2 @@ +/** layui-v2.5.5 MIT License By https://www.layui.com */ + ;layui.define("jquery",function(e){"use strict";var i=layui.jquery,o={config:{},index:layui.colorpicker?layui.colorpicker.index+1e4:0,set:function(e){var o=this;return o.config=i.extend({},o.config,e),o},on:function(e,i){return layui.onevent.call(this,"colorpicker",e,i)}},r=function(){var e=this,i=e.config;return{config:i}},t="colorpicker",n="layui-show",l="layui-colorpicker",c=".layui-colorpicker-main",a="layui-icon-down",s="layui-icon-close",f="layui-colorpicker-trigger-span",d="layui-colorpicker-trigger-i",u="layui-colorpicker-side",p="layui-colorpicker-side-slider",g="layui-colorpicker-basis",v="layui-colorpicker-alpha-bgcolor",h="layui-colorpicker-alpha-slider",m="layui-colorpicker-basis-cursor",b="layui-colorpicker-main-input",k=function(e){var i={h:0,s:0,b:0},o=Math.min(e.r,e.g,e.b),r=Math.max(e.r,e.g,e.b),t=r-o;return i.b=r,i.s=0!=r?255*t/r:0,0!=i.s?e.r==r?i.h=(e.g-e.b)/t:e.g==r?i.h=2+(e.b-e.r)/t:i.h=4+(e.r-e.g)/t:i.h=-1,r==o&&(i.h=0),i.h*=60,i.h<0&&(i.h+=360),i.s*=100/255,i.b*=100/255,i},y=function(e){var e=e.indexOf("#")>-1?e.substring(1):e;if(3==e.length){var i=e.split("");e=i[0]+i[0]+i[1]+i[1]+i[2]+i[2]}e=parseInt(e,16);var o={r:e>>16,g:(65280&e)>>8,b:255&e};return k(o)},x=function(e){var i={},o=e.h,r=255*e.s/100,t=255*e.b/100;if(0==r)i.r=i.g=i.b=t;else{var n=t,l=(255-r)*t/255,c=(n-l)*(o%60)/60;360==o&&(o=0),o<60?(i.r=n,i.b=l,i.g=l+c):o<120?(i.g=n,i.b=l,i.r=n-c):o<180?(i.g=n,i.r=l,i.b=l+c):o<240?(i.b=n,i.r=l,i.g=n-c):o<300?(i.b=n,i.g=l,i.r=l+c):o<360?(i.r=n,i.g=l,i.b=n-c):(i.r=0,i.g=0,i.b=0)}return{r:Math.round(i.r),g:Math.round(i.g),b:Math.round(i.b)}},C=function(e){var o=x(e),r=[o.r.toString(16),o.g.toString(16),o.b.toString(16)];return i.each(r,function(e,i){1==i.length&&(r[e]="0"+i)}),r.join("")},P=function(e){var i=/[0-9]{1,3}/g,o=e.match(i)||[];return{r:o[0],g:o[1],b:o[2]}},B=i(window),w=i(document),D=function(e){var r=this;r.index=++o.index,r.config=i.extend({},r.config,o.config,e),r.render()};D.prototype.config={color:"",size:null,alpha:!1,format:"hex",predefine:!1,colors:["#009688","#5FB878","#1E9FFF","#FF5722","#FFB800","#01AAED","#999","#c00","#ff8c00","#ffd700","#90ee90","#00ced1","#1e90ff","#c71585","rgb(0, 186, 189)","rgb(255, 120, 0)","rgb(250, 212, 0)","#393D49","rgba(0,0,0,.5)","rgba(255, 69, 0, 0.68)","rgba(144, 240, 144, 0.5)","rgba(31, 147, 255, 0.73)"]},D.prototype.render=function(){var e=this,o=e.config,r=i(['
          ',"",'3&&(o.alpha&&"rgb"==o.format||(e="#"+C(k(P(o.color))))),"background: "+e):e}()+'">','',"","","
          "].join("")),t=i(o.elem);o.size&&r.addClass("layui-colorpicker-"+o.size),t.addClass("layui-inline").html(e.elemColorBox=r),e.color=e.elemColorBox.find("."+f)[0].style.background,e.events()},D.prototype.renderPicker=function(){var e=this,o=e.config,r=e.elemColorBox[0],t=e.elemPicker=i(['
          ','
          ','
          ','
          ','
          ','
          ',"
          ",'
          ','
          ',"
          ","
          ",'
          ','
          ','
          ',"
          ","
          ",function(){if(o.predefine){var e=['
          '];return layui.each(o.colors,function(i,o){e.push(['
          ','
          ',"
          "].join(""))}),e.push("
          "),e.join("")}return""}(),'
          ','
          ','',"
          ",'
          ','','',"","
          "].join(""));e.elemColorBox.find("."+f)[0];i(c)[0]&&i(c).data("index")==e.index?e.removePicker(D.thisElemInd):(e.removePicker(D.thisElemInd),i("body").append(t)),D.thisElemInd=e.index,D.thisColor=r.style.background,e.position(),e.pickerEvents()},D.prototype.removePicker=function(e){var o=this;o.config;return i("#layui-colorpicker"+(e||o.index)).remove(),o},D.prototype.position=function(){var e=this,i=e.config,o=e.bindElem||e.elemColorBox[0],r=e.elemPicker[0],t=o.getBoundingClientRect(),n=r.offsetWidth,l=r.offsetHeight,c=function(e){return e=e?"scrollLeft":"scrollTop",document.body[e]|document.documentElement[e]},a=function(e){return document.documentElement[e?"clientWidth":"clientHeight"]},s=5,f=t.left,d=t.bottom;f-=(n-o.offsetWidth)/2,d+=s,f+n+s>a("width")?f=a("width")-n-s:fa()&&(d=t.top>l?t.top-l:a()-l,d-=2*s),i.position&&(r.style.position=i.position),r.style.left=f+("fixed"===i.position?0:c(1))+"px",r.style.top=d+("fixed"===i.position?0:c())+"px"},D.prototype.val=function(){var e=this,i=(e.config,e.elemColorBox.find("."+f)),o=e.elemPicker.find("."+b),r=i[0],t=r.style.backgroundColor;if(t){var n=k(P(t)),l=i.attr("lay-type");if(e.select(n.h,n.s,n.b),"torgb"===l&&o.find("input").val(t),"rgba"===l){var c=P(t);if(3==(t.match(/[0-9]{1,3}/g)||[]).length)o.find("input").val("rgba("+c.r+", "+c.g+", "+c.b+", 1)"),e.elemPicker.find("."+h).css("left",280);else{o.find("input").val(t);var a=280*t.slice(t.lastIndexOf(",")+1,t.length-1);e.elemPicker.find("."+h).css("left",a)}e.elemPicker.find("."+v)[0].style.background="linear-gradient(to right, rgba("+c.r+", "+c.g+", "+c.b+", 0), rgb("+c.r+", "+c.g+", "+c.b+"))"}}else e.select(0,100,100),o.find("input").val(""),e.elemPicker.find("."+v)[0].style.background="",e.elemPicker.find("."+h).css("left",280)},D.prototype.side=function(){var e=this,o=e.config,r=e.elemColorBox.find("."+f),t=r.attr("lay-type"),n=e.elemPicker.find("."+u),l=e.elemPicker.find("."+p),c=e.elemPicker.find("."+g),y=e.elemPicker.find("."+m),C=e.elemPicker.find("."+v),w=e.elemPicker.find("."+h),D=l[0].offsetTop/180*360,E=100-(y[0].offsetTop+3)/180*100,H=(y[0].offsetLeft+3)/260*100,W=Math.round(w[0].offsetLeft/280*100)/100,j=e.elemColorBox.find("."+d),F=e.elemPicker.find(".layui-colorpicker-pre").children("div"),L=function(i,n,l,c){e.select(i,n,l);var f=x({h:i,s:n,b:l});if(j.addClass(a).removeClass(s),r[0].style.background="rgb("+f.r+", "+f.g+", "+f.b+")","torgb"===t&&e.elemPicker.find("."+b).find("input").val("rgb("+f.r+", "+f.g+", "+f.b+")"),"rgba"===t){var d=0;d=280*c,w.css("left",d),e.elemPicker.find("."+b).find("input").val("rgba("+f.r+", "+f.g+", "+f.b+", "+c+")"),r[0].style.background="rgba("+f.r+", "+f.g+", "+f.b+", "+c+")",C[0].style.background="linear-gradient(to right, rgba("+f.r+", "+f.g+", "+f.b+", 0), rgb("+f.r+", "+f.g+", "+f.b+"))"}o.change&&o.change(e.elemPicker.find("."+b).find("input").val())},M=i(['
          t&&(r=t);var l=r/180*360;D=l,L(l,H,E,W),e.preventDefault()};Y(r),e.preventDefault()}),n.on("click",function(e){var o=e.clientY-i(this).offset().top;o<0&&(o=0),o>this.offsetHeight&&(o=this.offsetHeight);var r=o/180*360;D=r,L(r,H,E,W),e.preventDefault()}),y.on("mousedown",function(e){var i=this.offsetTop,o=this.offsetLeft,r=e.clientY,t=e.clientX,n=function(e){var n=i+(e.clientY-r),l=o+(e.clientX-t),a=c[0].offsetHeight-3,s=c[0].offsetWidth-3;n<-3&&(n=-3),n>a&&(n=a),l<-3&&(l=-3),l>s&&(l=s);var f=(l+3)/260*100,d=100-(n+3)/180*100;E=d,H=f,L(D,f,d,W),e.preventDefault()};layui.stope(e),Y(n),e.preventDefault()}),c.on("mousedown",function(e){var o=e.clientY-i(this).offset().top-3+B.scrollTop(),r=e.clientX-i(this).offset().left-3+B.scrollLeft();o<-3&&(o=-3),o>this.offsetHeight-3&&(o=this.offsetHeight-3),r<-3&&(r=-3),r>this.offsetWidth-3&&(r=this.offsetWidth-3);var t=(r+3)/260*100,n=100-(o+3)/180*100;E=n,H=t,L(D,t,n,W),e.preventDefault(),y.trigger(e,"mousedown")}),w.on("mousedown",function(e){var i=this.offsetLeft,o=e.clientX,r=function(e){var r=i+(e.clientX-o),t=C[0].offsetWidth;r<0&&(r=0),r>t&&(r=t);var n=Math.round(r/280*100)/100;W=n,L(D,H,E,n),e.preventDefault()};Y(r),e.preventDefault()}),C.on("click",function(e){var o=e.clientX-i(this).offset().left;o<0&&(o=0),o>this.offsetWidth&&(o=this.offsetWidth);var r=Math.round(o/280*100)/100;W=r,L(D,H,E,r),e.preventDefault()}),F.each(function(){i(this).on("click",function(){i(this).parent(".layui-colorpicker-pre").addClass("selected").siblings().removeClass("selected");var e,o=this.style.backgroundColor,r=k(P(o)),t=o.slice(o.lastIndexOf(",")+1,o.length-1);D=r.h,H=r.s,E=r.b,3==(o.match(/[0-9]{1,3}/g)||[]).length&&(t=1),W=t,e=280*t,L(r.h,r.s,r.b,t)})})},D.prototype.select=function(e,i,o,r){var t=this,n=(t.config,C({h:e,s:100,b:100})),l=C({h:e,s:i,b:o}),c=e/360*180,a=180-o/100*180-3,s=i/100*260-3;t.elemPicker.find("."+p).css("top",c),t.elemPicker.find("."+g)[0].style.background="#"+n,t.elemPicker.find("."+m).css({top:a,left:s}),"change"!==r&&t.elemPicker.find("."+b).find("input").val("#"+l)},D.prototype.pickerEvents=function(){var e=this,o=e.config,r=e.elemColorBox.find("."+f),t=e.elemPicker.find("."+b+" input"),n={clear:function(i){r[0].style.background="",e.elemColorBox.find("."+d).removeClass(a).addClass(s),e.color="",o.done&&o.done(""),e.removePicker()},confirm:function(i,n){var l=t.val(),c=l,f={};if(l.indexOf(",")>-1){if(f=k(P(l)),e.select(f.h,f.s,f.b),r[0].style.background=c="#"+C(f),(l.match(/[0-9]{1,3}/g)||[]).length>3&&"rgba"===r.attr("lay-type")){var u=280*l.slice(l.lastIndexOf(",")+1,l.length-1);e.elemPicker.find("."+h).css("left",u),r[0].style.background=l,c=l}}else f=y(l),r[0].style.background=c="#"+C(f),e.elemColorBox.find("."+d).removeClass(s).addClass(a);return"change"===n?(e.select(f.h,f.s,f.b,n),void(o.change&&o.change(c))):(e.color=l,o.done&&o.done(l),void e.removePicker())}};e.elemPicker.on("click","*[colorpicker-events]",function(){var e=i(this),o=e.attr("colorpicker-events");n[o]&&n[o].call(this,e)}),t.on("keyup",function(e){var o=i(this);n.confirm.call(this,o,13===e.keyCode?null:"change")})},D.prototype.events=function(){var e=this,o=e.config,r=e.elemColorBox.find("."+f);e.elemColorBox.on("click",function(){e.renderPicker(),i(c)[0]&&(e.val(),e.side())}),o.elem[0]&&!e.elemColorBox[0].eventHandler&&(w.on("click",function(o){if(!i(o.target).hasClass(l)&&!i(o.target).parents("."+l)[0]&&!i(o.target).hasClass(c.replace(/\./g,""))&&!i(o.target).parents(c)[0]&&e.elemPicker){if(e.color){var t=k(P(e.color));e.select(t.h,t.s,t.b)}else e.elemColorBox.find("."+d).removeClass(a).addClass(s);r[0].style.background=e.color||"",e.removePicker()}}),B.on("resize",function(){return!(!e.elemPicker||!i(c)[0])&&void e.position()}),e.elemColorBox[0].eventHandler=!0)},o.render=function(e){var i=new D(e);return r.call(i)},e(t,o)}); \ No newline at end of file diff --git a/public/static/res/layui/lay/modules/element.js b/public/static/res/layui/lay/modules/element.js new file mode 100644 index 0000000..93610f8 --- /dev/null +++ b/public/static/res/layui/lay/modules/element.js @@ -0,0 +1,2 @@ +/** layui-v2.5.5 MIT License By https://www.layui.com */ + ;layui.define("jquery",function(t){"use strict";var a=layui.$,i=(layui.hint(),layui.device()),e="element",l="layui-this",n="layui-show",s=function(){this.config={}};s.prototype.set=function(t){var i=this;return a.extend(!0,i.config,t),i},s.prototype.on=function(t,a){return layui.onevent.call(this,e,t,a)},s.prototype.tabAdd=function(t,i){var e=".layui-tab-title",l=a(".layui-tab[lay-filter="+t+"]"),n=l.children(e),s=n.children(".layui-tab-bar"),o=l.children(".layui-tab-content"),r='
        2. "+(i.title||"unnaming")+"
        3. ";return s[0]?s.before(r):n.append(r),o.append('
          '+(i.content||"")+"
          "),f.hideTabMore(!0),f.tabAuto(),this},s.prototype.tabDelete=function(t,i){var e=".layui-tab-title",l=a(".layui-tab[lay-filter="+t+"]"),n=l.children(e),s=n.find('>li[lay-id="'+i+'"]');return f.tabDelete(null,s),this},s.prototype.tabChange=function(t,i){var e=".layui-tab-title",l=a(".layui-tab[lay-filter="+t+"]"),n=l.children(e),s=n.find('>li[lay-id="'+i+'"]');return f.tabClick.call(s[0],null,null,s),this},s.prototype.tab=function(t){t=t||{},b.on("click",t.headerElem,function(i){var e=a(this).index();f.tabClick.call(this,i,e,null,t)})},s.prototype.progress=function(t,i){var e="layui-progress",l=a("."+e+"[lay-filter="+t+"]"),n=l.find("."+e+"-bar"),s=n.find("."+e+"-text");return n.css("width",i),s.text(i),this};var o=".layui-nav",r="layui-nav-item",c="layui-nav-bar",u="layui-nav-tree",d="layui-nav-child",y="layui-nav-more",h="layui-anim layui-anim-upbit",f={tabClick:function(t,i,s,o){o=o||{};var r=s||a(this),i=i||r.parent().children("li").index(r),c=o.headerElem?r.parent():r.parents(".layui-tab").eq(0),u=o.bodyElem?a(o.bodyElem):c.children(".layui-tab-content").children(".layui-tab-item"),d=r.find("a"),y=c.attr("lay-filter");"javascript:;"!==d.attr("href")&&"_blank"===d.attr("target")||(r.addClass(l).siblings().removeClass(l),u.eq(i).addClass(n).siblings().removeClass(n)),layui.event.call(this,e,"tab("+y+")",{elem:c,index:i})},tabDelete:function(t,i){var n=i||a(this).parent(),s=n.index(),o=n.parents(".layui-tab").eq(0),r=o.children(".layui-tab-content").children(".layui-tab-item"),c=o.attr("lay-filter");n.hasClass(l)&&(n.next()[0]?f.tabClick.call(n.next()[0],null,s+1):n.prev()[0]&&f.tabClick.call(n.prev()[0],null,s-1)),n.remove(),r.eq(s).remove(),setTimeout(function(){f.tabAuto()},50),layui.event.call(this,e,"tabDelete("+c+")",{elem:o,index:s})},tabAuto:function(){var t="layui-tab-more",e="layui-tab-bar",l="layui-tab-close",n=this;a(".layui-tab").each(function(){var s=a(this),o=s.children(".layui-tab-title"),r=(s.children(".layui-tab-content").children(".layui-tab-item"),'lay-stope="tabmore"'),c=a('');if(n===window&&8!=i.ie&&f.hideTabMore(!0),s.attr("lay-allowClose")&&o.find("li").each(function(){var t=a(this);if(!t.find("."+l)[0]){var i=a('');i.on("click",f.tabDelete),t.append(i)}}),"string"!=typeof s.attr("lay-unauto"))if(o.prop("scrollWidth")>o.outerWidth()+1){if(o.find("."+e)[0])return;o.append(c),s.attr("overflow",""),c.on("click",function(a){o[this.title?"removeClass":"addClass"](t),this.title=this.title?"":"收缩"})}else o.find("."+e).remove(),s.removeAttr("overflow")})},hideTabMore:function(t){var i=a(".layui-tab-title");t!==!0&&"tabmore"===a(t.target).attr("lay-stope")||(i.removeClass("layui-tab-more"),i.find(".layui-tab-bar").attr("title",""))},clickThis:function(){var t=a(this),i=t.parents(o),n=i.attr("lay-filter"),s=t.parent(),c=t.siblings("."+d),y="string"==typeof s.attr("lay-unselect");"javascript:;"!==t.attr("href")&&"_blank"===t.attr("target")||y||c[0]||(i.find("."+l).removeClass(l),s.addClass(l)),i.hasClass(u)&&(c.removeClass(h),c[0]&&(s["none"===c.css("display")?"addClass":"removeClass"](r+"ed"),"all"===i.attr("lay-shrink")&&s.siblings().removeClass(r+"ed"))),layui.event.call(this,e,"nav("+n+")",t)},collapse:function(){var t=a(this),i=t.find(".layui-colla-icon"),l=t.siblings(".layui-colla-content"),s=t.parents(".layui-collapse").eq(0),o=s.attr("lay-filter"),r="none"===l.css("display");if("string"==typeof s.attr("lay-accordion")){var c=s.children(".layui-colla-item").children("."+n);c.siblings(".layui-colla-title").children(".layui-colla-icon").html(""),c.removeClass(n)}l[r?"addClass":"removeClass"](n),i.html(r?"":""),layui.event.call(this,e,"collapse("+o+")",{title:t,content:l,show:r})}};s.prototype.init=function(t,e){var l=function(){return e?'[lay-filter="'+e+'"]':""}(),s={tab:function(){f.tabAuto.call({})},nav:function(){var t=200,e={},s={},p={},b=function(l,o,r){var c=a(this),f=c.find("."+d);o.hasClass(u)?l.css({top:c.position().top,height:c.children("a").outerHeight(),opacity:1}):(f.addClass(h),l.css({left:c.position().left+parseFloat(c.css("marginLeft")),top:c.position().top+c.height()-l.height()}),e[r]=setTimeout(function(){l.css({width:c.width(),opacity:1})},i.ie&&i.ie<10?0:t),clearTimeout(p[r]),"block"===f.css("display")&&clearTimeout(s[r]),s[r]=setTimeout(function(){f.addClass(n),c.find("."+y).addClass(y+"d")},300))};a(o+l).each(function(i){var l=a(this),o=a(''),h=l.find("."+r);l.find("."+c)[0]||(l.append(o),h.on("mouseenter",function(){b.call(this,o,l,i)}).on("mouseleave",function(){l.hasClass(u)||(clearTimeout(s[i]),s[i]=setTimeout(function(){l.find("."+d).removeClass(n),l.find("."+y).removeClass(y+"d")},300))}),l.on("mouseleave",function(){clearTimeout(e[i]),p[i]=setTimeout(function(){l.hasClass(u)?o.css({height:0,top:o.position().top+o.height()/2,opacity:0}):o.css({width:0,left:o.position().left+o.width()/2,opacity:0})},t)})),h.find("a").each(function(){var t=a(this),i=(t.parent(),t.siblings("."+d));i[0]&&!t.children("."+y)[0]&&t.append(''),t.off("click",f.clickThis).on("click",f.clickThis)})})},breadcrumb:function(){var t=".layui-breadcrumb";a(t+l).each(function(){var t=a(this),i="lay-separator",e=t.attr(i)||"/",l=t.find("a");l.next("span["+i+"]")[0]||(l.each(function(t){t!==l.length-1&&a(this).after(""+e+"")}),t.css("visibility","visible"))})},progress:function(){var t="layui-progress";a("."+t+l).each(function(){var i=a(this),e=i.find(".layui-progress-bar"),l=e.attr("lay-percent");e.css("width",function(){return/^.+\/.+$/.test(l)?100*new Function("return "+l)()+"%":l}()),i.attr("lay-showPercent")&&setTimeout(function(){e.html(''+l+"")},350)})},collapse:function(){var t="layui-collapse";a("."+t+l).each(function(){var t=a(this).find(".layui-colla-item");t.each(function(){var t=a(this),i=t.find(".layui-colla-title"),e=t.find(".layui-colla-content"),l="none"===e.css("display");i.find(".layui-colla-icon").remove(),i.append(''+(l?"":"")+""),i.off("click",f.collapse).on("click",f.collapse)})})}};return s[t]?s[t]():layui.each(s,function(t,a){a()})},s.prototype.render=s.prototype.init;var p=new s,b=a(document);p.render();var v=".layui-tab-title li";b.on("click",v,f.tabClick),b.on("click",f.hideTabMore),a(window).on("resize",f.tabAuto),t(e,p)}); \ No newline at end of file diff --git a/public/static/res/layui/lay/modules/flow.js b/public/static/res/layui/lay/modules/flow.js new file mode 100644 index 0000000..9343bcc --- /dev/null +++ b/public/static/res/layui/lay/modules/flow.js @@ -0,0 +1,2 @@ +/** layui-v2.5.5 MIT License By https://www.layui.com */ + ;layui.define("jquery",function(e){"use strict";var l=layui.$,o=function(e){},t='';o.prototype.load=function(e){var o,i,n,r,a=this,c=0;e=e||{};var f=l(e.elem);if(f[0]){var m=l(e.scrollElem||document),u=e.mb||50,s=!("isAuto"in e)||e.isAuto,v=e.end||"没有更多了",y=e.scrollElem&&e.scrollElem!==document,d="加载更多",h=l('");f.find(".layui-flow-more")[0]||f.append(h);var p=function(e,t){e=l(e),h.before(e),t=0==t||null,t?h.html(v):h.find("a").html(d),i=t,o=null,n&&n()},g=function(){o=!0,h.find("a").html(t),"function"==typeof e.done&&e.done(++c,p)};if(g(),h.find("a").on("click",function(){l(this);i||o||g()}),e.isLazyimg)var n=a.lazyimg({elem:e.elem+" img",scrollElem:e.scrollElem});return s?(m.on("scroll",function(){var e=l(this),t=e.scrollTop();r&&clearTimeout(r),i||(r=setTimeout(function(){var i=y?e.height():l(window).height(),n=y?e.prop("scrollHeight"):document.documentElement.scrollHeight;n-t-i<=u&&(o||g())},100))}),a):a}},o.prototype.lazyimg=function(e){var o,t=this,i=0;e=e||{};var n=l(e.scrollElem||document),r=e.elem||"img",a=e.scrollElem&&e.scrollElem!==document,c=function(e,l){var o=n.scrollTop(),r=o+l,c=a?function(){return e.offset().top-n.offset().top+o}():e.offset().top;if(c>=o&&c<=r&&!e.attr("src")){var m=e.attr("lay-src");layui.img(m,function(){var l=t.lazyimg.elem.eq(i);e.attr("src",m).removeAttr("lay-src"),l[0]&&f(l),i++})}},f=function(e,o){var f=a?(o||n).height():l(window).height(),m=n.scrollTop(),u=m+f;if(t.lazyimg.elem=l(r),e)c(e,f);else for(var s=0;su)break}};if(f(),!o){var m;n.on("scroll",function(){var e=l(this);m&&clearTimeout(m),m=setTimeout(function(){f(null,e)},50)}),o=!0}return f},e("flow",new o)}); \ No newline at end of file diff --git a/public/static/res/layui/lay/modules/form.js b/public/static/res/layui/lay/modules/form.js new file mode 100644 index 0000000..1297eb0 --- /dev/null +++ b/public/static/res/layui/lay/modules/form.js @@ -0,0 +1,2 @@ +/** layui-v2.5.5 MIT License By https://www.layui.com */ + ;layui.define("layer",function(e){"use strict";var t=layui.$,i=layui.layer,a=layui.hint(),n=layui.device(),l="form",r=".layui-form",s="layui-this",o="layui-hide",c="layui-disabled",u=function(){this.config={verify:{required:[/[\S]+/,"必填项不能为空"],phone:[/^1\d{10}$/,"请输入正确的手机号"],email:[/^([a-zA-Z0-9_\.\-])+\@(([a-zA-Z0-9\-])+\.)+([a-zA-Z0-9]{2,4})+$/,"邮箱格式不正确"],url:[/(^#)|(^http(s*):\/\/[^\s]+\.[^\s]+)/,"链接格式不正确"],number:function(e){if(!e||isNaN(e))return"只能填写数字"},date:[/^(\d{4})[-\/](\d{1}|0\d{1}|1[0-2])([-\/](\d{1}|0\d{1}|[1-2][0-9]|3[0-1]))*$/,"日期格式不正确"],identity:[/(^\d{15}$)|(^\d{17}(x|X|\d)$)/,"请输入正确的身份证号"]}}};u.prototype.set=function(e){var i=this;return t.extend(!0,i.config,e),i},u.prototype.verify=function(e){var i=this;return t.extend(!0,i.config.verify,e),i},u.prototype.on=function(e,t){return layui.onevent.call(this,l,e,t)},u.prototype.val=function(e,i){var a=this,n=t(r+'[lay-filter="'+e+'"]');return n.each(function(e,a){var n=t(this);layui.each(i,function(e,t){var i,a=n.find('[name="'+e+'"]');a[0]&&(i=a[0].type,"checkbox"===i?a[0].checked=t:"radio"===i?a.each(function(){this.value==t&&(this.checked=!0)}):a.val(t))})}),f.render(null,e),a.getValue(e)},u.prototype.getValue=function(e,i){i=i||t(r+'[lay-filter="'+e+'"]').eq(0);var a={},n={},l=i.find("input,select,textarea");return layui.each(l,function(e,t){if(t.name=(t.name||"").replace(/^\s*|\s*&/,""),t.name){if(/^.*\[\]$/.test(t.name)){var i=t.name.match(/^(.*)\[\]$/g)[0];a[i]=0|a[i],t.name=t.name.replace(/^(.*)\[\]$/,"$1["+a[i]++ +"]")}/^checkbox|radio$/.test(t.type)&&!t.checked||(n[t.name]=t.value)}}),n},u.prototype.render=function(e,i){var n=this,u=t(r+function(){return i?'[lay-filter="'+i+'"]':""}()),d={select:function(){var e,i="请选择",a="layui-form-select",n="layui-select-title",r="layui-select-none",d="",f=u.find("select"),v=function(i,l){t(i.target).parent().hasClass(n)&&!l||(t("."+a).removeClass(a+"ed "+a+"up"),e&&d&&e.val(d)),e=null},y=function(i,u,f){var y,p=t(this),m=i.find("."+n),k=m.find("input"),g=i.find("dl"),x=g.children("dd"),b=this.selectedIndex;if(!u){var C=function(){var e=i.offset().top+i.outerHeight()+5-h.scrollTop(),t=g.outerHeight();b=p[0].selectedIndex,i.addClass(a+"ed"),x.removeClass(o),y=null,x.eq(b).addClass(s).siblings().removeClass(s),e+t>h.height()&&e>=t&&i.addClass(a+"up"),T()},w=function(e){i.removeClass(a+"ed "+a+"up"),k.blur(),y=null,e||$(k.val(),function(e){var i=p[0].selectedIndex;e&&(d=t(p[0].options[i]).html(),0===i&&d===k.attr("placeholder")&&(d=""),k.val(d||""))})},T=function(){var e=g.children("dd."+s);if(e[0]){var t=e.position().top,i=g.height(),a=e.height();t>i&&g.scrollTop(t+g.scrollTop()-i+a-5),t<0&&g.scrollTop(t+g.scrollTop()-5)}};m.on("click",function(e){i.hasClass(a+"ed")?w():(v(e,!0),C()),g.find("."+r).remove()}),m.find(".layui-edge").on("click",function(){k.focus()}),k.on("keyup",function(e){var t=e.keyCode;9===t&&C()}).on("keydown",function(e){var t=e.keyCode;9===t&&w();var i=function(t,a){var n,l;e.preventDefault();var r=function(){var e=g.children("dd."+s);if(g.children("dd."+o)[0]&&"next"===t){var i=g.children("dd:not(."+o+",."+c+")"),n=i.eq(0).index();if(n>=0&&n无匹配项

          '):g.find("."+r).remove()},"keyup"),""===t&&g.find("."+r).remove(),void T())};f&&k.on("keyup",q).on("blur",function(i){var a=p[0].selectedIndex;e=k,d=t(p[0].options[a]).html(),0===a&&d===k.attr("placeholder")&&(d=""),setTimeout(function(){$(k.val(),function(e){d||k.val("")},"blur")},200)}),x.on("click",function(){var e=t(this),a=e.attr("lay-value"),n=p.attr("lay-filter");return!e.hasClass(c)&&(e.hasClass("layui-select-tips")?k.val(""):(k.val(e.text()),e.addClass(s)),e.siblings().removeClass(s),p.val(a).removeClass("layui-form-danger"),layui.event.call(this,l,"select("+n+")",{elem:p[0],value:a,othis:i}),w(!0),!1)}),i.find("dl>dt").on("click",function(e){return!1}),t(document).off("click",v).on("click",v)}};f.each(function(e,l){var r=t(this),o=r.next("."+a),u=this.disabled,d=l.value,f=t(l.options[l.selectedIndex]),v=l.options[0];if("string"==typeof r.attr("lay-ignore"))return r.show();var h="string"==typeof r.attr("lay-search"),p=v?v.value?i:v.innerHTML||i:i,m=t(['
          ','
          ','','
          ','
          ',function(e){var t=[];return layui.each(e,function(e,a){0!==e||a.value?"optgroup"===a.tagName.toLowerCase()?t.push("
          "+a.label+"
          "):t.push('
          '+a.innerHTML+"
          "):t.push('
          '+(a.innerHTML||i)+"
          ")}),0===t.length&&t.push('
          没有选项
          '),t.join("")}(r.find("*"))+"
          ","
          "].join(""));o[0]&&o.remove(),r.after(m),y.call(this,m,u,h)})},checkbox:function(){var e={checkbox:["layui-form-checkbox","layui-form-checked","checkbox"],_switch:["layui-form-switch","layui-form-onswitch","switch"]},i=u.find("input[type=checkbox]"),a=function(e,i){var a=t(this);e.on("click",function(){var t=a.attr("lay-filter"),n=(a.attr("lay-text")||"").split("|");a[0].disabled||(a[0].checked?(a[0].checked=!1,e.removeClass(i[1]).find("em").text(n[1])):(a[0].checked=!0,e.addClass(i[1]).find("em").text(n[0])),layui.event.call(a[0],l,i[2]+"("+t+")",{elem:a[0],value:a[0].value,othis:e}))})};i.each(function(i,n){var l=t(this),r=l.attr("lay-skin"),s=(l.attr("lay-text")||"").split("|"),o=this.disabled;"switch"===r&&(r="_"+r);var u=e[r]||e.checkbox;if("string"==typeof l.attr("lay-ignore"))return l.show();var d=l.next("."+u[0]),f=t(['
          ",function(){var e=n.title.replace(/\s/g,""),t={checkbox:[e?""+n.title+"":"",''].join(""),_switch:""+((n.checked?s[0]:s[1])||"")+""};return t[r]||t.checkbox}(),"
          "].join(""));d[0]&&d.remove(),l.after(f),a.call(this,f,u)})},radio:function(){var e="layui-form-radio",i=["",""],a=u.find("input[type=radio]"),n=function(a){var n=t(this),s="layui-anim-scaleSpring";a.on("click",function(){var o=n[0].name,c=n.parents(r),u=n.attr("lay-filter"),d=c.find("input[name="+o.replace(/(\.|#|\[|\])/g,"\\$1")+"]");n[0].disabled||(layui.each(d,function(){var a=t(this).next("."+e);this.checked=!1,a.removeClass(e+"ed"),a.find(".layui-icon").removeClass(s).html(i[1])}),n[0].checked=!0,a.addClass(e+"ed"),a.find(".layui-icon").addClass(s).html(i[0]),layui.event.call(n[0],l,"radio("+u+")",{elem:n[0],value:n[0].value,othis:a}))})};a.each(function(a,l){var r=t(this),s=r.next("."+e),o=this.disabled;if("string"==typeof r.attr("lay-ignore"))return r.show();s[0]&&s.remove();var u=t(['
          ',''+i[l.checked?0:1]+"","
          "+function(){var e=l.title||"";return"string"==typeof r.next().attr("lay-radio")&&(e=r.next().html(),r.next().remove()),e}()+"
          ","
          "].join(""));r.after(u),n.call(this,u)})}};return e?d[e]?d[e]():a.error("不支持的"+e+"表单渲染"):layui.each(d,function(e,t){t()}),n};var d=function(){var e=null,a=f.config.verify,s="layui-form-danger",o={},c=t(this),u=c.parents(r),d=u.find("*[lay-verify]"),v=c.parents("form")[0],h=c.attr("lay-filter");return layui.each(d,function(l,r){var o=t(this),c=o.attr("lay-verify").split("|"),u=o.attr("lay-verType"),d=o.val();if(o.removeClass(s),layui.each(c,function(t,l){var c,f="",v="function"==typeof a[l];if(a[l]){var c=v?f=a[l](d,r):!a[l][0].test(d);if(f=f||a[l][1],"required"===l&&(f=o.attr("lay-reqText")||f),c)return"tips"===u?i.tips(f,function(){return"string"==typeof o.attr("lay-ignore")||"select"!==r.tagName.toLowerCase()&&!/^checkbox|radio$/.test(r.type)?o:o.next()}(),{tips:1}):"alert"===u?i.alert(f,{title:"提示",shadeClose:!0}):i.msg(f,{icon:5,shift:6}),n.android||n.ios||setTimeout(function(){r.focus()},7),o.addClass(s),e=!0}}),e)return e}),!e&&(o=f.getValue(null,u),layui.event.call(this,l,"submit("+h+")",{elem:this,form:v,field:o}))},f=new u,v=t(document),h=t(window);f.render(),v.on("reset",r,function(){var e=t(this).attr("lay-filter");setTimeout(function(){f.render(null,e)},50)}),v.on("submit",r,d).on("click","*[lay-submit]",d),e(l,f)}); \ No newline at end of file diff --git a/public/static/res/layui/lay/modules/jquery.js b/public/static/res/layui/lay/modules/jquery.js new file mode 100644 index 0000000..5b0d3e8 --- /dev/null +++ b/public/static/res/layui/lay/modules/jquery.js @@ -0,0 +1,5 @@ +/** layui-v2.5.5 MIT License By https://www.layui.com */ + ;!function(e,t){"object"==typeof module&&"object"==typeof module.exports?module.exports=e.document?t(e,!0):function(e){if(!e.document)throw new Error("jQuery requires a window with a document");return t(e)}:t(e)}("undefined"!=typeof window?window:this,function(e,t){function n(e){var t=!!e&&"length"in e&&e.length,n=pe.type(e);return"function"!==n&&!pe.isWindow(e)&&("array"===n||0===t||"number"==typeof t&&t>0&&t-1 in e)}function r(e,t,n){if(pe.isFunction(t))return pe.grep(e,function(e,r){return!!t.call(e,r,e)!==n});if(t.nodeType)return pe.grep(e,function(e){return e===t!==n});if("string"==typeof t){if(Ce.test(t))return pe.filter(t,e,n);t=pe.filter(t,e)}return pe.grep(e,function(e){return pe.inArray(e,t)>-1!==n})}function i(e,t){do e=e[t];while(e&&1!==e.nodeType);return e}function o(e){var t={};return pe.each(e.match(De)||[],function(e,n){t[n]=!0}),t}function a(){re.addEventListener?(re.removeEventListener("DOMContentLoaded",s),e.removeEventListener("load",s)):(re.detachEvent("onreadystatechange",s),e.detachEvent("onload",s))}function s(){(re.addEventListener||"load"===e.event.type||"complete"===re.readyState)&&(a(),pe.ready())}function u(e,t,n){if(void 0===n&&1===e.nodeType){var r="data-"+t.replace(_e,"-$1").toLowerCase();if(n=e.getAttribute(r),"string"==typeof n){try{n="true"===n||"false"!==n&&("null"===n?null:+n+""===n?+n:qe.test(n)?pe.parseJSON(n):n)}catch(i){}pe.data(e,t,n)}else n=void 0}return n}function l(e){var t;for(t in e)if(("data"!==t||!pe.isEmptyObject(e[t]))&&"toJSON"!==t)return!1;return!0}function c(e,t,n,r){if(He(e)){var i,o,a=pe.expando,s=e.nodeType,u=s?pe.cache:e,l=s?e[a]:e[a]&&a;if(l&&u[l]&&(r||u[l].data)||void 0!==n||"string"!=typeof t)return l||(l=s?e[a]=ne.pop()||pe.guid++:a),u[l]||(u[l]=s?{}:{toJSON:pe.noop}),"object"!=typeof t&&"function"!=typeof t||(r?u[l]=pe.extend(u[l],t):u[l].data=pe.extend(u[l].data,t)),o=u[l],r||(o.data||(o.data={}),o=o.data),void 0!==n&&(o[pe.camelCase(t)]=n),"string"==typeof t?(i=o[t],null==i&&(i=o[pe.camelCase(t)])):i=o,i}}function f(e,t,n){if(He(e)){var r,i,o=e.nodeType,a=o?pe.cache:e,s=o?e[pe.expando]:pe.expando;if(a[s]){if(t&&(r=n?a[s]:a[s].data)){pe.isArray(t)?t=t.concat(pe.map(t,pe.camelCase)):t in r?t=[t]:(t=pe.camelCase(t),t=t in r?[t]:t.split(" ")),i=t.length;for(;i--;)delete r[t[i]];if(n?!l(r):!pe.isEmptyObject(r))return}(n||(delete a[s].data,l(a[s])))&&(o?pe.cleanData([e],!0):fe.deleteExpando||a!=a.window?delete a[s]:a[s]=void 0)}}}function d(e,t,n,r){var i,o=1,a=20,s=r?function(){return r.cur()}:function(){return pe.css(e,t,"")},u=s(),l=n&&n[3]||(pe.cssNumber[t]?"":"px"),c=(pe.cssNumber[t]||"px"!==l&&+u)&&Me.exec(pe.css(e,t));if(c&&c[3]!==l){l=l||c[3],n=n||[],c=+u||1;do o=o||".5",c/=o,pe.style(e,t,c+l);while(o!==(o=s()/u)&&1!==o&&--a)}return n&&(c=+c||+u||0,i=n[1]?c+(n[1]+1)*n[2]:+n[2],r&&(r.unit=l,r.start=c,r.end=i)),i}function p(e){var t=ze.split("|"),n=e.createDocumentFragment();if(n.createElement)for(;t.length;)n.createElement(t.pop());return n}function h(e,t){var n,r,i=0,o="undefined"!=typeof e.getElementsByTagName?e.getElementsByTagName(t||"*"):"undefined"!=typeof e.querySelectorAll?e.querySelectorAll(t||"*"):void 0;if(!o)for(o=[],n=e.childNodes||e;null!=(r=n[i]);i++)!t||pe.nodeName(r,t)?o.push(r):pe.merge(o,h(r,t));return void 0===t||t&&pe.nodeName(e,t)?pe.merge([e],o):o}function g(e,t){for(var n,r=0;null!=(n=e[r]);r++)pe._data(n,"globalEval",!t||pe._data(t[r],"globalEval"))}function m(e){Be.test(e.type)&&(e.defaultChecked=e.checked)}function y(e,t,n,r,i){for(var o,a,s,u,l,c,f,d=e.length,y=p(t),v=[],x=0;x"!==f[1]||Ve.test(a)?0:u:u.firstChild,o=a&&a.childNodes.length;o--;)pe.nodeName(c=a.childNodes[o],"tbody")&&!c.childNodes.length&&a.removeChild(c);for(pe.merge(v,u.childNodes),u.textContent="";u.firstChild;)u.removeChild(u.firstChild);u=y.lastChild}else v.push(t.createTextNode(a));for(u&&y.removeChild(u),fe.appendChecked||pe.grep(h(v,"input"),m),x=0;a=v[x++];)if(r&&pe.inArray(a,r)>-1)i&&i.push(a);else if(s=pe.contains(a.ownerDocument,a),u=h(y.appendChild(a),"script"),s&&g(u),n)for(o=0;a=u[o++];)Ie.test(a.type||"")&&n.push(a);return u=null,y}function v(){return!0}function x(){return!1}function b(){try{return re.activeElement}catch(e){}}function w(e,t,n,r,i,o){var a,s;if("object"==typeof t){"string"!=typeof n&&(r=r||n,n=void 0);for(s in t)w(e,s,n,r,t[s],o);return e}if(null==r&&null==i?(i=n,r=n=void 0):null==i&&("string"==typeof n?(i=r,r=void 0):(i=r,r=n,n=void 0)),i===!1)i=x;else if(!i)return e;return 1===o&&(a=i,i=function(e){return pe().off(e),a.apply(this,arguments)},i.guid=a.guid||(a.guid=pe.guid++)),e.each(function(){pe.event.add(this,t,i,r,n)})}function T(e,t){return pe.nodeName(e,"table")&&pe.nodeName(11!==t.nodeType?t:t.firstChild,"tr")?e.getElementsByTagName("tbody")[0]||e.appendChild(e.ownerDocument.createElement("tbody")):e}function C(e){return e.type=(null!==pe.find.attr(e,"type"))+"/"+e.type,e}function E(e){var t=it.exec(e.type);return t?e.type=t[1]:e.removeAttribute("type"),e}function N(e,t){if(1===t.nodeType&&pe.hasData(e)){var n,r,i,o=pe._data(e),a=pe._data(t,o),s=o.events;if(s){delete a.handle,a.events={};for(n in s)for(r=0,i=s[n].length;r1&&"string"==typeof p&&!fe.checkClone&&rt.test(p))return e.each(function(i){var o=e.eq(i);g&&(t[0]=p.call(this,i,o.html())),S(o,t,n,r)});if(f&&(l=y(t,e[0].ownerDocument,!1,e,r),i=l.firstChild,1===l.childNodes.length&&(l=i),i||r)){for(s=pe.map(h(l,"script"),C),a=s.length;c")).appendTo(t.documentElement),t=(ut[0].contentWindow||ut[0].contentDocument).document,t.write(),t.close(),n=D(e,t),ut.detach()),lt[e]=n),n}function L(e,t){return{get:function(){return e()?void delete this.get:(this.get=t).apply(this,arguments)}}}function H(e){if(e in Et)return e;for(var t=e.charAt(0).toUpperCase()+e.slice(1),n=Ct.length;n--;)if(e=Ct[n]+t,e in Et)return e}function q(e,t){for(var n,r,i,o=[],a=0,s=e.length;a=0&&n=0},isEmptyObject:function(e){var t;for(t in e)return!1;return!0},isPlainObject:function(e){var t;if(!e||"object"!==pe.type(e)||e.nodeType||pe.isWindow(e))return!1;try{if(e.constructor&&!ce.call(e,"constructor")&&!ce.call(e.constructor.prototype,"isPrototypeOf"))return!1}catch(n){return!1}if(!fe.ownFirst)for(t in e)return ce.call(e,t);for(t in e);return void 0===t||ce.call(e,t)},type:function(e){return null==e?e+"":"object"==typeof e||"function"==typeof e?ue[le.call(e)]||"object":typeof e},globalEval:function(t){t&&pe.trim(t)&&(e.execScript||function(t){e.eval.call(e,t)})(t)},camelCase:function(e){return e.replace(ge,"ms-").replace(me,ye)},nodeName:function(e,t){return e.nodeName&&e.nodeName.toLowerCase()===t.toLowerCase()},each:function(e,t){var r,i=0;if(n(e))for(r=e.length;iT.cacheLength&&delete e[t.shift()],e[n+" "]=r}var t=[];return e}function r(e){return e[P]=!0,e}function i(e){var t=H.createElement("div");try{return!!e(t)}catch(n){return!1}finally{t.parentNode&&t.parentNode.removeChild(t),t=null}}function o(e,t){for(var n=e.split("|"),r=n.length;r--;)T.attrHandle[n[r]]=t}function a(e,t){var n=t&&e,r=n&&1===e.nodeType&&1===t.nodeType&&(~t.sourceIndex||V)-(~e.sourceIndex||V);if(r)return r;if(n)for(;n=n.nextSibling;)if(n===t)return-1;return e?1:-1}function s(e){return function(t){var n=t.nodeName.toLowerCase();return"input"===n&&t.type===e}}function u(e){return function(t){var n=t.nodeName.toLowerCase();return("input"===n||"button"===n)&&t.type===e}}function l(e){return r(function(t){return t=+t,r(function(n,r){for(var i,o=e([],n.length,t),a=o.length;a--;)n[i=o[a]]&&(n[i]=!(r[i]=n[i]))})})}function c(e){return e&&"undefined"!=typeof e.getElementsByTagName&&e}function f(){}function d(e){for(var t=0,n=e.length,r="";t1?function(t,n,r){for(var i=e.length;i--;)if(!e[i](t,n,r))return!1;return!0}:e[0]}function g(e,n,r){for(var i=0,o=n.length;i-1&&(r[l]=!(a[l]=f))}}else x=m(x===a?x.splice(h,x.length):x),o?o(null,a,x,u):Q.apply(a,x)})}function v(e){for(var t,n,r,i=e.length,o=T.relative[e[0].type],a=o||T.relative[" "],s=o?1:0,u=p(function(e){return e===t},a,!0),l=p(function(e){return ee(t,e)>-1},a,!0),c=[function(e,n,r){var i=!o&&(r||n!==A)||((t=n).nodeType?u(e,n,r):l(e,n,r));return t=null,i}];s1&&h(c),s>1&&d(e.slice(0,s-1).concat({value:" "===e[s-2].type?"*":""})).replace(se,"$1"),n,s0,o=e.length>0,a=function(r,a,s,u,l){var c,f,d,p=0,h="0",g=r&&[],y=[],v=A,x=r||o&&T.find.TAG("*",l),b=W+=null==v?1:Math.random()||.1,w=x.length;for(l&&(A=a===H||a||l);h!==w&&null!=(c=x[h]);h++){if(o&&c){for(f=0,a||c.ownerDocument===H||(L(c),s=!_);d=e[f++];)if(d(c,a||H,s)){u.push(c);break}l&&(W=b)}i&&((c=!d&&c)&&p--,r&&g.push(c))}if(p+=h,i&&h!==p){for(f=0;d=n[f++];)d(g,y,a,s);if(r){if(p>0)for(;h--;)g[h]||y[h]||(y[h]=G.call(u));y=m(y)}Q.apply(u,y),l&&!r&&y.length>0&&p+n.length>1&&t.uniqueSort(u)}return l&&(W=b,A=v),g};return i?r(a):a}var b,w,T,C,E,N,k,S,A,D,j,L,H,q,_,F,M,O,R,P="sizzle"+1*new Date,B=e.document,W=0,I=0,$=n(),z=n(),X=n(),U=function(e,t){return e===t&&(j=!0),0},V=1<<31,Y={}.hasOwnProperty,J=[],G=J.pop,K=J.push,Q=J.push,Z=J.slice,ee=function(e,t){for(var n=0,r=e.length;n+~]|"+ne+")"+ne+"*"),ce=new RegExp("="+ne+"*([^\\]'\"]*?)"+ne+"*\\]","g"),fe=new RegExp(oe),de=new RegExp("^"+re+"$"),pe={ID:new RegExp("^#("+re+")"),CLASS:new RegExp("^\\.("+re+")"),TAG:new RegExp("^("+re+"|[*])"),ATTR:new RegExp("^"+ie),PSEUDO:new RegExp("^"+oe),CHILD:new RegExp("^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\("+ne+"*(even|odd|(([+-]|)(\\d*)n|)"+ne+"*(?:([+-]|)"+ne+"*(\\d+)|))"+ne+"*\\)|)","i"),bool:new RegExp("^(?:"+te+")$","i"),needsContext:new RegExp("^"+ne+"*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\("+ne+"*((?:-\\d)?\\d*)"+ne+"*\\)|)(?=[^-]|$)","i")},he=/^(?:input|select|textarea|button)$/i,ge=/^h\d$/i,me=/^[^{]+\{\s*\[native \w/,ye=/^(?:#([\w-]+)|(\w+)|\.([\w-]+))$/,ve=/[+~]/,xe=/'|\\/g,be=new RegExp("\\\\([\\da-f]{1,6}"+ne+"?|("+ne+")|.)","ig"),we=function(e,t,n){var r="0x"+t-65536;return r!==r||n?t:r<0?String.fromCharCode(r+65536):String.fromCharCode(r>>10|55296,1023&r|56320)},Te=function(){L()};try{Q.apply(J=Z.call(B.childNodes),B.childNodes),J[B.childNodes.length].nodeType}catch(Ce){Q={apply:J.length?function(e,t){K.apply(e,Z.call(t))}:function(e,t){for(var n=e.length,r=0;e[n++]=t[r++];);e.length=n-1}}}w=t.support={},E=t.isXML=function(e){var t=e&&(e.ownerDocument||e).documentElement;return!!t&&"HTML"!==t.nodeName},L=t.setDocument=function(e){var t,n,r=e?e.ownerDocument||e:B;return r!==H&&9===r.nodeType&&r.documentElement?(H=r,q=H.documentElement,_=!E(H),(n=H.defaultView)&&n.top!==n&&(n.addEventListener?n.addEventListener("unload",Te,!1):n.attachEvent&&n.attachEvent("onunload",Te)),w.attributes=i(function(e){return e.className="i",!e.getAttribute("className")}),w.getElementsByTagName=i(function(e){return e.appendChild(H.createComment("")),!e.getElementsByTagName("*").length}),w.getElementsByClassName=me.test(H.getElementsByClassName),w.getById=i(function(e){return q.appendChild(e).id=P,!H.getElementsByName||!H.getElementsByName(P).length}),w.getById?(T.find.ID=function(e,t){if("undefined"!=typeof t.getElementById&&_){var n=t.getElementById(e);return n?[n]:[]}},T.filter.ID=function(e){var t=e.replace(be,we);return function(e){return e.getAttribute("id")===t}}):(delete T.find.ID,T.filter.ID=function(e){var t=e.replace(be,we);return function(e){var n="undefined"!=typeof e.getAttributeNode&&e.getAttributeNode("id");return n&&n.value===t}}),T.find.TAG=w.getElementsByTagName?function(e,t){return"undefined"!=typeof t.getElementsByTagName?t.getElementsByTagName(e):w.qsa?t.querySelectorAll(e):void 0}:function(e,t){var n,r=[],i=0,o=t.getElementsByTagName(e);if("*"===e){for(;n=o[i++];)1===n.nodeType&&r.push(n);return r}return o},T.find.CLASS=w.getElementsByClassName&&function(e,t){if("undefined"!=typeof t.getElementsByClassName&&_)return t.getElementsByClassName(e)},M=[],F=[],(w.qsa=me.test(H.querySelectorAll))&&(i(function(e){q.appendChild(e).innerHTML="",e.querySelectorAll("[msallowcapture^='']").length&&F.push("[*^$]="+ne+"*(?:''|\"\")"),e.querySelectorAll("[selected]").length||F.push("\\["+ne+"*(?:value|"+te+")"),e.querySelectorAll("[id~="+P+"-]").length||F.push("~="),e.querySelectorAll(":checked").length||F.push(":checked"),e.querySelectorAll("a#"+P+"+*").length||F.push(".#.+[+~]")}),i(function(e){var t=H.createElement("input");t.setAttribute("type","hidden"),e.appendChild(t).setAttribute("name","D"),e.querySelectorAll("[name=d]").length&&F.push("name"+ne+"*[*^$|!~]?="),e.querySelectorAll(":enabled").length||F.push(":enabled",":disabled"),e.querySelectorAll("*,:x"),F.push(",.*:")})),(w.matchesSelector=me.test(O=q.matches||q.webkitMatchesSelector||q.mozMatchesSelector||q.oMatchesSelector||q.msMatchesSelector))&&i(function(e){w.disconnectedMatch=O.call(e,"div"),O.call(e,"[s!='']:x"),M.push("!=",oe)}),F=F.length&&new RegExp(F.join("|")),M=M.length&&new RegExp(M.join("|")),t=me.test(q.compareDocumentPosition),R=t||me.test(q.contains)?function(e,t){var n=9===e.nodeType?e.documentElement:e,r=t&&t.parentNode;return e===r||!(!r||1!==r.nodeType||!(n.contains?n.contains(r):e.compareDocumentPosition&&16&e.compareDocumentPosition(r)))}:function(e,t){if(t)for(;t=t.parentNode;)if(t===e)return!0;return!1},U=t?function(e,t){if(e===t)return j=!0,0;var n=!e.compareDocumentPosition-!t.compareDocumentPosition;return n?n:(n=(e.ownerDocument||e)===(t.ownerDocument||t)?e.compareDocumentPosition(t):1,1&n||!w.sortDetached&&t.compareDocumentPosition(e)===n?e===H||e.ownerDocument===B&&R(B,e)?-1:t===H||t.ownerDocument===B&&R(B,t)?1:D?ee(D,e)-ee(D,t):0:4&n?-1:1)}:function(e,t){if(e===t)return j=!0,0;var n,r=0,i=e.parentNode,o=t.parentNode,s=[e],u=[t];if(!i||!o)return e===H?-1:t===H?1:i?-1:o?1:D?ee(D,e)-ee(D,t):0;if(i===o)return a(e,t);for(n=e;n=n.parentNode;)s.unshift(n);for(n=t;n=n.parentNode;)u.unshift(n);for(;s[r]===u[r];)r++;return r?a(s[r],u[r]):s[r]===B?-1:u[r]===B?1:0},H):H},t.matches=function(e,n){return t(e,null,null,n)},t.matchesSelector=function(e,n){if((e.ownerDocument||e)!==H&&L(e),n=n.replace(ce,"='$1']"),w.matchesSelector&&_&&!X[n+" "]&&(!M||!M.test(n))&&(!F||!F.test(n)))try{var r=O.call(e,n);if(r||w.disconnectedMatch||e.document&&11!==e.document.nodeType)return r}catch(i){}return t(n,H,null,[e]).length>0},t.contains=function(e,t){return(e.ownerDocument||e)!==H&&L(e),R(e,t)},t.attr=function(e,t){(e.ownerDocument||e)!==H&&L(e);var n=T.attrHandle[t.toLowerCase()],r=n&&Y.call(T.attrHandle,t.toLowerCase())?n(e,t,!_):void 0;return void 0!==r?r:w.attributes||!_?e.getAttribute(t):(r=e.getAttributeNode(t))&&r.specified?r.value:null},t.error=function(e){throw new Error("Syntax error, unrecognized expression: "+e)},t.uniqueSort=function(e){var t,n=[],r=0,i=0;if(j=!w.detectDuplicates,D=!w.sortStable&&e.slice(0),e.sort(U),j){for(;t=e[i++];)t===e[i]&&(r=n.push(i));for(;r--;)e.splice(n[r],1)}return D=null,e},C=t.getText=function(e){var t,n="",r=0,i=e.nodeType;if(i){if(1===i||9===i||11===i){if("string"==typeof e.textContent)return e.textContent;for(e=e.firstChild;e;e=e.nextSibling)n+=C(e)}else if(3===i||4===i)return e.nodeValue}else for(;t=e[r++];)n+=C(t);return n},T=t.selectors={cacheLength:50,createPseudo:r,match:pe,attrHandle:{},find:{},relative:{">":{dir:"parentNode",first:!0}," ":{dir:"parentNode"},"+":{dir:"previousSibling",first:!0},"~":{dir:"previousSibling"}},preFilter:{ATTR:function(e){return e[1]=e[1].replace(be,we),e[3]=(e[3]||e[4]||e[5]||"").replace(be,we),"~="===e[2]&&(e[3]=" "+e[3]+" "),e.slice(0,4)},CHILD:function(e){return e[1]=e[1].toLowerCase(),"nth"===e[1].slice(0,3)?(e[3]||t.error(e[0]),e[4]=+(e[4]?e[5]+(e[6]||1):2*("even"===e[3]||"odd"===e[3])),e[5]=+(e[7]+e[8]||"odd"===e[3])):e[3]&&t.error(e[0]),e},PSEUDO:function(e){var t,n=!e[6]&&e[2];return pe.CHILD.test(e[0])?null:(e[3]?e[2]=e[4]||e[5]||"":n&&fe.test(n)&&(t=N(n,!0))&&(t=n.indexOf(")",n.length-t)-n.length)&&(e[0]=e[0].slice(0,t),e[2]=n.slice(0,t)),e.slice(0,3))}},filter:{TAG:function(e){var t=e.replace(be,we).toLowerCase();return"*"===e?function(){return!0}:function(e){return e.nodeName&&e.nodeName.toLowerCase()===t}},CLASS:function(e){var t=$[e+" "];return t||(t=new RegExp("(^|"+ne+")"+e+"("+ne+"|$)"))&&$(e,function(e){return t.test("string"==typeof e.className&&e.className||"undefined"!=typeof e.getAttribute&&e.getAttribute("class")||"")})},ATTR:function(e,n,r){return function(i){var o=t.attr(i,e);return null==o?"!="===n:!n||(o+="","="===n?o===r:"!="===n?o!==r:"^="===n?r&&0===o.indexOf(r):"*="===n?r&&o.indexOf(r)>-1:"$="===n?r&&o.slice(-r.length)===r:"~="===n?(" "+o.replace(ae," ")+" ").indexOf(r)>-1:"|="===n&&(o===r||o.slice(0,r.length+1)===r+"-"))}},CHILD:function(e,t,n,r,i){var o="nth"!==e.slice(0,3),a="last"!==e.slice(-4),s="of-type"===t;return 1===r&&0===i?function(e){return!!e.parentNode}:function(t,n,u){var l,c,f,d,p,h,g=o!==a?"nextSibling":"previousSibling",m=t.parentNode,y=s&&t.nodeName.toLowerCase(),v=!u&&!s,x=!1;if(m){if(o){for(;g;){for(d=t;d=d[g];)if(s?d.nodeName.toLowerCase()===y:1===d.nodeType)return!1;h=g="only"===e&&!h&&"nextSibling"}return!0}if(h=[a?m.firstChild:m.lastChild],a&&v){for(d=m,f=d[P]||(d[P]={}),c=f[d.uniqueID]||(f[d.uniqueID]={}), +l=c[e]||[],p=l[0]===W&&l[1],x=p&&l[2],d=p&&m.childNodes[p];d=++p&&d&&d[g]||(x=p=0)||h.pop();)if(1===d.nodeType&&++x&&d===t){c[e]=[W,p,x];break}}else if(v&&(d=t,f=d[P]||(d[P]={}),c=f[d.uniqueID]||(f[d.uniqueID]={}),l=c[e]||[],p=l[0]===W&&l[1],x=p),x===!1)for(;(d=++p&&d&&d[g]||(x=p=0)||h.pop())&&((s?d.nodeName.toLowerCase()!==y:1!==d.nodeType)||!++x||(v&&(f=d[P]||(d[P]={}),c=f[d.uniqueID]||(f[d.uniqueID]={}),c[e]=[W,x]),d!==t)););return x-=i,x===r||x%r===0&&x/r>=0}}},PSEUDO:function(e,n){var i,o=T.pseudos[e]||T.setFilters[e.toLowerCase()]||t.error("unsupported pseudo: "+e);return o[P]?o(n):o.length>1?(i=[e,e,"",n],T.setFilters.hasOwnProperty(e.toLowerCase())?r(function(e,t){for(var r,i=o(e,n),a=i.length;a--;)r=ee(e,i[a]),e[r]=!(t[r]=i[a])}):function(e){return o(e,0,i)}):o}},pseudos:{not:r(function(e){var t=[],n=[],i=k(e.replace(se,"$1"));return i[P]?r(function(e,t,n,r){for(var o,a=i(e,null,r,[]),s=e.length;s--;)(o=a[s])&&(e[s]=!(t[s]=o))}):function(e,r,o){return t[0]=e,i(t,null,o,n),t[0]=null,!n.pop()}}),has:r(function(e){return function(n){return t(e,n).length>0}}),contains:r(function(e){return e=e.replace(be,we),function(t){return(t.textContent||t.innerText||C(t)).indexOf(e)>-1}}),lang:r(function(e){return de.test(e||"")||t.error("unsupported lang: "+e),e=e.replace(be,we).toLowerCase(),function(t){var n;do if(n=_?t.lang:t.getAttribute("xml:lang")||t.getAttribute("lang"))return n=n.toLowerCase(),n===e||0===n.indexOf(e+"-");while((t=t.parentNode)&&1===t.nodeType);return!1}}),target:function(t){var n=e.location&&e.location.hash;return n&&n.slice(1)===t.id},root:function(e){return e===q},focus:function(e){return e===H.activeElement&&(!H.hasFocus||H.hasFocus())&&!!(e.type||e.href||~e.tabIndex)},enabled:function(e){return e.disabled===!1},disabled:function(e){return e.disabled===!0},checked:function(e){var t=e.nodeName.toLowerCase();return"input"===t&&!!e.checked||"option"===t&&!!e.selected},selected:function(e){return e.parentNode&&e.parentNode.selectedIndex,e.selected===!0},empty:function(e){for(e=e.firstChild;e;e=e.nextSibling)if(e.nodeType<6)return!1;return!0},parent:function(e){return!T.pseudos.empty(e)},header:function(e){return ge.test(e.nodeName)},input:function(e){return he.test(e.nodeName)},button:function(e){var t=e.nodeName.toLowerCase();return"input"===t&&"button"===e.type||"button"===t},text:function(e){var t;return"input"===e.nodeName.toLowerCase()&&"text"===e.type&&(null==(t=e.getAttribute("type"))||"text"===t.toLowerCase())},first:l(function(){return[0]}),last:l(function(e,t){return[t-1]}),eq:l(function(e,t,n){return[n<0?n+t:n]}),even:l(function(e,t){for(var n=0;n=0;)e.push(r);return e}),gt:l(function(e,t,n){for(var r=n<0?n+t:n;++r2&&"ID"===(a=o[0]).type&&w.getById&&9===t.nodeType&&_&&T.relative[o[1].type]){if(t=(T.find.ID(a.matches[0].replace(be,we),t)||[])[0],!t)return n;l&&(t=t.parentNode),e=e.slice(o.shift().value.length)}for(i=pe.needsContext.test(e)?0:o.length;i--&&(a=o[i],!T.relative[s=a.type]);)if((u=T.find[s])&&(r=u(a.matches[0].replace(be,we),ve.test(o[0].type)&&c(t.parentNode)||t))){if(o.splice(i,1),e=r.length&&d(o),!e)return Q.apply(n,r),n;break}}return(l||k(e,f))(r,t,!_,n,!t||ve.test(e)&&c(t.parentNode)||t),n},w.sortStable=P.split("").sort(U).join("")===P,w.detectDuplicates=!!j,L(),w.sortDetached=i(function(e){return 1&e.compareDocumentPosition(H.createElement("div"))}),i(function(e){return e.innerHTML="","#"===e.firstChild.getAttribute("href")})||o("type|href|height|width",function(e,t,n){if(!n)return e.getAttribute(t,"type"===t.toLowerCase()?1:2)}),w.attributes&&i(function(e){return e.innerHTML="",e.firstChild.setAttribute("value",""),""===e.firstChild.getAttribute("value")})||o("value",function(e,t,n){if(!n&&"input"===e.nodeName.toLowerCase())return e.defaultValue}),i(function(e){return null==e.getAttribute("disabled")})||o(te,function(e,t,n){var r;if(!n)return e[t]===!0?t.toLowerCase():(r=e.getAttributeNode(t))&&r.specified?r.value:null}),t}(e);pe.find=ve,pe.expr=ve.selectors,pe.expr[":"]=pe.expr.pseudos,pe.uniqueSort=pe.unique=ve.uniqueSort,pe.text=ve.getText,pe.isXMLDoc=ve.isXML,pe.contains=ve.contains;var xe=function(e,t,n){for(var r=[],i=void 0!==n;(e=e[t])&&9!==e.nodeType;)if(1===e.nodeType){if(i&&pe(e).is(n))break;r.push(e)}return r},be=function(e,t){for(var n=[];e;e=e.nextSibling)1===e.nodeType&&e!==t&&n.push(e);return n},we=pe.expr.match.needsContext,Te=/^<([\w-]+)\s*\/?>(?:<\/\1>|)$/,Ce=/^.[^:#\[\.,]*$/;pe.filter=function(e,t,n){var r=t[0];return n&&(e=":not("+e+")"),1===t.length&&1===r.nodeType?pe.find.matchesSelector(r,e)?[r]:[]:pe.find.matches(e,pe.grep(t,function(e){return 1===e.nodeType}))},pe.fn.extend({find:function(e){var t,n=[],r=this,i=r.length;if("string"!=typeof e)return this.pushStack(pe(e).filter(function(){for(t=0;t1?pe.unique(n):n),n.selector=this.selector?this.selector+" "+e:e,n},filter:function(e){return this.pushStack(r(this,e||[],!1))},not:function(e){return this.pushStack(r(this,e||[],!0))},is:function(e){return!!r(this,"string"==typeof e&&we.test(e)?pe(e):e||[],!1).length}});var Ee,Ne=/^(?:\s*(<[\w\W]+>)[^>]*|#([\w-]*))$/,ke=pe.fn.init=function(e,t,n){var r,i;if(!e)return this;if(n=n||Ee,"string"==typeof e){if(r="<"===e.charAt(0)&&">"===e.charAt(e.length-1)&&e.length>=3?[null,e,null]:Ne.exec(e),!r||!r[1]&&t)return!t||t.jquery?(t||n).find(e):this.constructor(t).find(e);if(r[1]){if(t=t instanceof pe?t[0]:t,pe.merge(this,pe.parseHTML(r[1],t&&t.nodeType?t.ownerDocument||t:re,!0)),Te.test(r[1])&&pe.isPlainObject(t))for(r in t)pe.isFunction(this[r])?this[r](t[r]):this.attr(r,t[r]);return this}if(i=re.getElementById(r[2]),i&&i.parentNode){if(i.id!==r[2])return Ee.find(e);this.length=1,this[0]=i}return this.context=re,this.selector=e,this}return e.nodeType?(this.context=this[0]=e,this.length=1,this):pe.isFunction(e)?"undefined"!=typeof n.ready?n.ready(e):e(pe):(void 0!==e.selector&&(this.selector=e.selector,this.context=e.context),pe.makeArray(e,this))};ke.prototype=pe.fn,Ee=pe(re);var Se=/^(?:parents|prev(?:Until|All))/,Ae={children:!0,contents:!0,next:!0,prev:!0};pe.fn.extend({has:function(e){var t,n=pe(e,this),r=n.length;return this.filter(function(){for(t=0;t-1:1===n.nodeType&&pe.find.matchesSelector(n,e))){o.push(n);break}return this.pushStack(o.length>1?pe.uniqueSort(o):o)},index:function(e){return e?"string"==typeof e?pe.inArray(this[0],pe(e)):pe.inArray(e.jquery?e[0]:e,this):this[0]&&this[0].parentNode?this.first().prevAll().length:-1},add:function(e,t){return this.pushStack(pe.uniqueSort(pe.merge(this.get(),pe(e,t))))},addBack:function(e){return this.add(null==e?this.prevObject:this.prevObject.filter(e))}}),pe.each({parent:function(e){var t=e.parentNode;return t&&11!==t.nodeType?t:null},parents:function(e){return xe(e,"parentNode")},parentsUntil:function(e,t,n){return xe(e,"parentNode",n)},next:function(e){return i(e,"nextSibling")},prev:function(e){return i(e,"previousSibling")},nextAll:function(e){return xe(e,"nextSibling")},prevAll:function(e){return xe(e,"previousSibling")},nextUntil:function(e,t,n){return xe(e,"nextSibling",n)},prevUntil:function(e,t,n){return xe(e,"previousSibling",n)},siblings:function(e){return be((e.parentNode||{}).firstChild,e)},children:function(e){return be(e.firstChild)},contents:function(e){return pe.nodeName(e,"iframe")?e.contentDocument||e.contentWindow.document:pe.merge([],e.childNodes)}},function(e,t){pe.fn[e]=function(n,r){var i=pe.map(this,t,n);return"Until"!==e.slice(-5)&&(r=n),r&&"string"==typeof r&&(i=pe.filter(r,i)),this.length>1&&(Ae[e]||(i=pe.uniqueSort(i)),Se.test(e)&&(i=i.reverse())),this.pushStack(i)}});var De=/\S+/g;pe.Callbacks=function(e){e="string"==typeof e?o(e):pe.extend({},e);var t,n,r,i,a=[],s=[],u=-1,l=function(){for(i=e.once,r=t=!0;s.length;u=-1)for(n=s.shift();++u-1;)a.splice(n,1),n<=u&&u--}),this},has:function(e){return e?pe.inArray(e,a)>-1:a.length>0},empty:function(){return a&&(a=[]),this},disable:function(){return i=s=[],a=n="",this},disabled:function(){return!a},lock:function(){return i=!0,n||c.disable(),this},locked:function(){return!!i},fireWith:function(e,n){return i||(n=n||[],n=[e,n.slice?n.slice():n],s.push(n),t||l()),this},fire:function(){return c.fireWith(this,arguments),this},fired:function(){return!!r}};return c},pe.extend({Deferred:function(e){var t=[["resolve","done",pe.Callbacks("once memory"),"resolved"],["reject","fail",pe.Callbacks("once memory"),"rejected"],["notify","progress",pe.Callbacks("memory")]],n="pending",r={state:function(){return n},always:function(){return i.done(arguments).fail(arguments),this},then:function(){var e=arguments;return pe.Deferred(function(n){pe.each(t,function(t,o){var a=pe.isFunction(e[t])&&e[t];i[o[1]](function(){var e=a&&a.apply(this,arguments);e&&pe.isFunction(e.promise)?e.promise().progress(n.notify).done(n.resolve).fail(n.reject):n[o[0]+"With"](this===r?n.promise():this,a?[e]:arguments)})}),e=null}).promise()},promise:function(e){return null!=e?pe.extend(e,r):r}},i={};return r.pipe=r.then,pe.each(t,function(e,o){var a=o[2],s=o[3];r[o[1]]=a.add,s&&a.add(function(){n=s},t[1^e][2].disable,t[2][2].lock),i[o[0]]=function(){return i[o[0]+"With"](this===i?r:this,arguments),this},i[o[0]+"With"]=a.fireWith}),r.promise(i),e&&e.call(i,i),i},when:function(e){var t,n,r,i=0,o=ie.call(arguments),a=o.length,s=1!==a||e&&pe.isFunction(e.promise)?a:0,u=1===s?e:pe.Deferred(),l=function(e,n,r){return function(i){n[e]=this,r[e]=arguments.length>1?ie.call(arguments):i,r===t?u.notifyWith(n,r):--s||u.resolveWith(n,r)}};if(a>1)for(t=new Array(a),n=new Array(a),r=new Array(a);i0||(je.resolveWith(re,[pe]),pe.fn.triggerHandler&&(pe(re).triggerHandler("ready"),pe(re).off("ready"))))}}),pe.ready.promise=function(t){if(!je)if(je=pe.Deferred(),"complete"===re.readyState||"loading"!==re.readyState&&!re.documentElement.doScroll)e.setTimeout(pe.ready);else if(re.addEventListener)re.addEventListener("DOMContentLoaded",s),e.addEventListener("load",s);else{re.attachEvent("onreadystatechange",s),e.attachEvent("onload",s);var n=!1;try{n=null==e.frameElement&&re.documentElement}catch(r){}n&&n.doScroll&&!function i(){if(!pe.isReady){try{n.doScroll("left")}catch(t){return e.setTimeout(i,50)}a(),pe.ready()}}()}return je.promise(t)},pe.ready.promise();var Le;for(Le in pe(fe))break;fe.ownFirst="0"===Le,fe.inlineBlockNeedsLayout=!1,pe(function(){var e,t,n,r;n=re.getElementsByTagName("body")[0],n&&n.style&&(t=re.createElement("div"),r=re.createElement("div"),r.style.cssText="position:absolute;border:0;width:0;height:0;top:0;left:-9999px",n.appendChild(r).appendChild(t),"undefined"!=typeof t.style.zoom&&(t.style.cssText="display:inline;margin:0;border:0;padding:1px;width:1px;zoom:1",fe.inlineBlockNeedsLayout=e=3===t.offsetWidth,e&&(n.style.zoom=1)),n.removeChild(r))}),function(){var e=re.createElement("div");fe.deleteExpando=!0;try{delete e.test}catch(t){fe.deleteExpando=!1}e=null}();var He=function(e){var t=pe.noData[(e.nodeName+" ").toLowerCase()],n=+e.nodeType||1;return(1===n||9===n)&&(!t||t!==!0&&e.getAttribute("classid")===t)},qe=/^(?:\{[\w\W]*\}|\[[\w\W]*\])$/,_e=/([A-Z])/g;pe.extend({cache:{},noData:{"applet ":!0,"embed ":!0,"object ":"clsid:D27CDB6E-AE6D-11cf-96B8-444553540000"},hasData:function(e){return e=e.nodeType?pe.cache[e[pe.expando]]:e[pe.expando],!!e&&!l(e)},data:function(e,t,n){return c(e,t,n)},removeData:function(e,t){return f(e,t)},_data:function(e,t,n){return c(e,t,n,!0)},_removeData:function(e,t){return f(e,t,!0)}}),pe.fn.extend({data:function(e,t){var n,r,i,o=this[0],a=o&&o.attributes;if(void 0===e){if(this.length&&(i=pe.data(o),1===o.nodeType&&!pe._data(o,"parsedAttrs"))){for(n=a.length;n--;)a[n]&&(r=a[n].name,0===r.indexOf("data-")&&(r=pe.camelCase(r.slice(5)),u(o,r,i[r])));pe._data(o,"parsedAttrs",!0)}return i}return"object"==typeof e?this.each(function(){pe.data(this,e)}):arguments.length>1?this.each(function(){pe.data(this,e,t)}):o?u(o,e,pe.data(o,e)):void 0},removeData:function(e){return this.each(function(){pe.removeData(this,e)})}}),pe.extend({queue:function(e,t,n){var r;if(e)return t=(t||"fx")+"queue",r=pe._data(e,t),n&&(!r||pe.isArray(n)?r=pe._data(e,t,pe.makeArray(n)):r.push(n)),r||[]},dequeue:function(e,t){t=t||"fx";var n=pe.queue(e,t),r=n.length,i=n.shift(),o=pe._queueHooks(e,t),a=function(){pe.dequeue(e,t)};"inprogress"===i&&(i=n.shift(),r--),i&&("fx"===t&&n.unshift("inprogress"),delete o.stop,i.call(e,a,o)),!r&&o&&o.empty.fire()},_queueHooks:function(e,t){var n=t+"queueHooks";return pe._data(e,n)||pe._data(e,n,{empty:pe.Callbacks("once memory").add(function(){pe._removeData(e,t+"queue"),pe._removeData(e,n)})})}}),pe.fn.extend({queue:function(e,t){var n=2;return"string"!=typeof e&&(t=e,e="fx",n--),arguments.length
          a",fe.leadingWhitespace=3===e.firstChild.nodeType,fe.tbody=!e.getElementsByTagName("tbody").length,fe.htmlSerialize=!!e.getElementsByTagName("link").length,fe.html5Clone="<:nav>"!==re.createElement("nav").cloneNode(!0).outerHTML,n.type="checkbox",n.checked=!0,t.appendChild(n),fe.appendChecked=n.checked,e.innerHTML="",fe.noCloneChecked=!!e.cloneNode(!0).lastChild.defaultValue,t.appendChild(e),n=re.createElement("input"),n.setAttribute("type","radio"),n.setAttribute("checked","checked"),n.setAttribute("name","t"),e.appendChild(n),fe.checkClone=e.cloneNode(!0).cloneNode(!0).lastChild.checked,fe.noCloneEvent=!!e.addEventListener,e[pe.expando]=1,fe.attributes=!e.getAttribute(pe.expando)}();var Xe={option:[1,""],legend:[1,"
          ","
          "],area:[1,"",""],param:[1,"",""],thead:[1,"","
          "],tr:[2,"","
          "],col:[2,"","
          "],td:[3,"","
          "],_default:fe.htmlSerialize?[0,"",""]:[1,"X
          ","
          "]};Xe.optgroup=Xe.option,Xe.tbody=Xe.tfoot=Xe.colgroup=Xe.caption=Xe.thead,Xe.th=Xe.td;var Ue=/<|&#?\w+;/,Ve=/-1&&(h=p.split("."),p=h.shift(),h.sort()),a=p.indexOf(":")<0&&"on"+p,t=t[pe.expando]?t:new pe.Event(p,"object"==typeof t&&t),t.isTrigger=i?2:3,t.namespace=h.join("."),t.rnamespace=t.namespace?new RegExp("(^|\\.)"+h.join("\\.(?:.*\\.|)")+"(\\.|$)"):null,t.result=void 0,t.target||(t.target=r),n=null==n?[t]:pe.makeArray(n,[t]),l=pe.event.special[p]||{},i||!l.trigger||l.trigger.apply(r,n)!==!1)){if(!i&&!l.noBubble&&!pe.isWindow(r)){for(u=l.delegateType||p,Ke.test(u+p)||(s=s.parentNode);s;s=s.parentNode)d.push(s),c=s;c===(r.ownerDocument||re)&&d.push(c.defaultView||c.parentWindow||e)}for(f=0;(s=d[f++])&&!t.isPropagationStopped();)t.type=f>1?u:l.bindType||p,o=(pe._data(s,"events")||{})[t.type]&&pe._data(s,"handle"),o&&o.apply(s,n),o=a&&s[a],o&&o.apply&&He(s)&&(t.result=o.apply(s,n),t.result===!1&&t.preventDefault());if(t.type=p,!i&&!t.isDefaultPrevented()&&(!l._default||l._default.apply(d.pop(),n)===!1)&&He(r)&&a&&r[p]&&!pe.isWindow(r)){c=r[a],c&&(r[a]=null),pe.event.triggered=p;try{r[p]()}catch(g){}pe.event.triggered=void 0,c&&(r[a]=c)}return t.result}},dispatch:function(e){e=pe.event.fix(e);var t,n,r,i,o,a=[],s=ie.call(arguments),u=(pe._data(this,"events")||{})[e.type]||[],l=pe.event.special[e.type]||{};if(s[0]=e,e.delegateTarget=this,!l.preDispatch||l.preDispatch.call(this,e)!==!1){for(a=pe.event.handlers.call(this,e,u),t=0;(i=a[t++])&&!e.isPropagationStopped();)for(e.currentTarget=i.elem,n=0;(o=i.handlers[n++])&&!e.isImmediatePropagationStopped();)e.rnamespace&&!e.rnamespace.test(o.namespace)||(e.handleObj=o,e.data=o.data,r=((pe.event.special[o.origType]||{}).handle||o.handler).apply(i.elem,s),void 0!==r&&(e.result=r)===!1&&(e.preventDefault(),e.stopPropagation()));return l.postDispatch&&l.postDispatch.call(this,e),e.result}},handlers:function(e,t){var n,r,i,o,a=[],s=t.delegateCount,u=e.target;if(s&&u.nodeType&&("click"!==e.type||isNaN(e.button)||e.button<1))for(;u!=this;u=u.parentNode||this)if(1===u.nodeType&&(u.disabled!==!0||"click"!==e.type)){for(r=[],n=0;n-1:pe.find(i,this,null,[u]).length),r[i]&&r.push(o);r.length&&a.push({elem:u,handlers:r})}return s]","i"),tt=/<(?!area|br|col|embed|hr|img|input|link|meta|param)(([\w:-]+)[^>]*)\/>/gi,nt=/\s*$/g,at=p(re),st=at.appendChild(re.createElement("div"));pe.extend({htmlPrefilter:function(e){return e.replace(tt,"<$1>")},clone:function(e,t,n){var r,i,o,a,s,u=pe.contains(e.ownerDocument,e);if(fe.html5Clone||pe.isXMLDoc(e)||!et.test("<"+e.nodeName+">")?o=e.cloneNode(!0):(st.innerHTML=e.outerHTML,st.removeChild(o=st.firstChild)),!(fe.noCloneEvent&&fe.noCloneChecked||1!==e.nodeType&&11!==e.nodeType||pe.isXMLDoc(e)))for(r=h(o),s=h(e),a=0;null!=(i=s[a]);++a)r[a]&&k(i,r[a]);if(t)if(n)for(s=s||h(e),r=r||h(o),a=0;null!=(i=s[a]);a++)N(i,r[a]);else N(e,o);return r=h(o,"script"),r.length>0&&g(r,!u&&h(e,"script")),r=s=i=null,o},cleanData:function(e,t){for(var n,r,i,o,a=0,s=pe.expando,u=pe.cache,l=fe.attributes,c=pe.event.special;null!=(n=e[a]);a++)if((t||He(n))&&(i=n[s],o=i&&u[i])){if(o.events)for(r in o.events)c[r]?pe.event.remove(n,r):pe.removeEvent(n,r,o.handle);u[i]&&(delete u[i],l||"undefined"==typeof n.removeAttribute?n[s]=void 0:n.removeAttribute(s),ne.push(i))}}}),pe.fn.extend({domManip:S,detach:function(e){return A(this,e,!0)},remove:function(e){return A(this,e)},text:function(e){return Pe(this,function(e){return void 0===e?pe.text(this):this.empty().append((this[0]&&this[0].ownerDocument||re).createTextNode(e))},null,e,arguments.length)},append:function(){return S(this,arguments,function(e){if(1===this.nodeType||11===this.nodeType||9===this.nodeType){var t=T(this,e);t.appendChild(e)}})},prepend:function(){return S(this,arguments,function(e){if(1===this.nodeType||11===this.nodeType||9===this.nodeType){var t=T(this,e);t.insertBefore(e,t.firstChild)}})},before:function(){return S(this,arguments,function(e){this.parentNode&&this.parentNode.insertBefore(e,this)})},after:function(){return S(this,arguments,function(e){this.parentNode&&this.parentNode.insertBefore(e,this.nextSibling)})},empty:function(){for(var e,t=0;null!=(e=this[t]);t++){for(1===e.nodeType&&pe.cleanData(h(e,!1));e.firstChild;)e.removeChild(e.firstChild);e.options&&pe.nodeName(e,"select")&&(e.options.length=0)}return this},clone:function(e,t){return e=null!=e&&e,t=null==t?e:t,this.map(function(){return pe.clone(this,e,t)})},html:function(e){return Pe(this,function(e){var t=this[0]||{},n=0,r=this.length;if(void 0===e)return 1===t.nodeType?t.innerHTML.replace(Ze,""):void 0;if("string"==typeof e&&!nt.test(e)&&(fe.htmlSerialize||!et.test(e))&&(fe.leadingWhitespace||!$e.test(e))&&!Xe[(We.exec(e)||["",""])[1].toLowerCase()]){e=pe.htmlPrefilter(e);try{for(;nt",t=l.getElementsByTagName("td"),t[0].style.cssText="margin:0;border:0;padding:0;display:none",o=0===t[0].offsetHeight,o&&(t[0].style.display="",t[1].style.display="none",o=0===t[0].offsetHeight)),f.removeChild(u)}var n,r,i,o,a,s,u=re.createElement("div"),l=re.createElement("div");l.style&&(l.style.cssText="float:left;opacity:.5",fe.opacity="0.5"===l.style.opacity,fe.cssFloat=!!l.style.cssFloat,l.style.backgroundClip="content-box",l.cloneNode(!0).style.backgroundClip="",fe.clearCloneStyle="content-box"===l.style.backgroundClip,u=re.createElement("div"),u.style.cssText="border:0;width:8px;height:0;top:0;left:-9999px;padding:0;margin-top:1px;position:absolute",l.innerHTML="",u.appendChild(l),fe.boxSizing=""===l.style.boxSizing||""===l.style.MozBoxSizing||""===l.style.WebkitBoxSizing,pe.extend(fe,{reliableHiddenOffsets:function(){return null==n&&t(),o},boxSizingReliable:function(){return null==n&&t(),i},pixelMarginRight:function(){return null==n&&t(),r},pixelPosition:function(){return null==n&&t(),n},reliableMarginRight:function(){return null==n&&t(),a},reliableMarginLeft:function(){return null==n&&t(),s}}))}();var ht,gt,mt=/^(top|right|bottom|left)$/;e.getComputedStyle?(ht=function(t){var n=t.ownerDocument.defaultView;return n&&n.opener||(n=e),n.getComputedStyle(t)},gt=function(e,t,n){var r,i,o,a,s=e.style;return n=n||ht(e),a=n?n.getPropertyValue(t)||n[t]:void 0,""!==a&&void 0!==a||pe.contains(e.ownerDocument,e)||(a=pe.style(e,t)),n&&!fe.pixelMarginRight()&&ft.test(a)&&ct.test(t)&&(r=s.width,i=s.minWidth,o=s.maxWidth,s.minWidth=s.maxWidth=s.width=a,a=n.width,s.width=r,s.minWidth=i,s.maxWidth=o),void 0===a?a:a+""}):pt.currentStyle&&(ht=function(e){return e.currentStyle},gt=function(e,t,n){var r,i,o,a,s=e.style;return n=n||ht(e),a=n?n[t]:void 0,null==a&&s&&s[t]&&(a=s[t]),ft.test(a)&&!mt.test(t)&&(r=s.left,i=e.runtimeStyle,o=i&&i.left,o&&(i.left=e.currentStyle.left),s.left="fontSize"===t?"1em":a,a=s.pixelLeft+"px",s.left=r,o&&(i.left=o)),void 0===a?a:a+""||"auto"});var yt=/alpha\([^)]*\)/i,vt=/opacity\s*=\s*([^)]*)/i,xt=/^(none|table(?!-c[ea]).+)/,bt=new RegExp("^("+Fe+")(.*)$","i"),wt={position:"absolute",visibility:"hidden",display:"block"},Tt={letterSpacing:"0",fontWeight:"400"},Ct=["Webkit","O","Moz","ms"],Et=re.createElement("div").style;pe.extend({cssHooks:{opacity:{get:function(e,t){if(t){var n=gt(e,"opacity");return""===n?"1":n}}}},cssNumber:{animationIterationCount:!0,columnCount:!0,fillOpacity:!0,flexGrow:!0,flexShrink:!0,fontWeight:!0,lineHeight:!0,opacity:!0,order:!0,orphans:!0,widows:!0,zIndex:!0,zoom:!0},cssProps:{"float":fe.cssFloat?"cssFloat":"styleFloat"},style:function(e,t,n,r){if(e&&3!==e.nodeType&&8!==e.nodeType&&e.style){var i,o,a,s=pe.camelCase(t),u=e.style;if(t=pe.cssProps[s]||(pe.cssProps[s]=H(s)||s),a=pe.cssHooks[t]||pe.cssHooks[s],void 0===n)return a&&"get"in a&&void 0!==(i=a.get(e,!1,r))?i:u[t];if(o=typeof n,"string"===o&&(i=Me.exec(n))&&i[1]&&(n=d(e,t,i),o="number"),null!=n&&n===n&&("number"===o&&(n+=i&&i[3]||(pe.cssNumber[s]?"":"px")),fe.clearCloneStyle||""!==n||0!==t.indexOf("background")||(u[t]="inherit"),!(a&&"set"in a&&void 0===(n=a.set(e,n,r)))))try{u[t]=n}catch(l){}}},css:function(e,t,n,r){var i,o,a,s=pe.camelCase(t);return t=pe.cssProps[s]||(pe.cssProps[s]=H(s)||s),a=pe.cssHooks[t]||pe.cssHooks[s],a&&"get"in a&&(o=a.get(e,!0,n)),void 0===o&&(o=gt(e,t,r)),"normal"===o&&t in Tt&&(o=Tt[t]),""===n||n?(i=parseFloat(o),n===!0||isFinite(i)?i||0:o):o}}),pe.each(["height","width"],function(e,t){pe.cssHooks[t]={get:function(e,n,r){if(n)return xt.test(pe.css(e,"display"))&&0===e.offsetWidth?dt(e,wt,function(){return M(e,t,r)}):M(e,t,r)},set:function(e,n,r){var i=r&&ht(e);return _(e,n,r?F(e,t,r,fe.boxSizing&&"border-box"===pe.css(e,"boxSizing",!1,i),i):0)}}}),fe.opacity||(pe.cssHooks.opacity={get:function(e,t){return vt.test((t&&e.currentStyle?e.currentStyle.filter:e.style.filter)||"")?.01*parseFloat(RegExp.$1)+"":t?"1":""},set:function(e,t){var n=e.style,r=e.currentStyle,i=pe.isNumeric(t)?"alpha(opacity="+100*t+")":"",o=r&&r.filter||n.filter||"";n.zoom=1,(t>=1||""===t)&&""===pe.trim(o.replace(yt,""))&&n.removeAttribute&&(n.removeAttribute("filter"),""===t||r&&!r.filter)||(n.filter=yt.test(o)?o.replace(yt,i):o+" "+i)}}),pe.cssHooks.marginRight=L(fe.reliableMarginRight,function(e,t){if(t)return dt(e,{display:"inline-block"},gt,[e,"marginRight"])}),pe.cssHooks.marginLeft=L(fe.reliableMarginLeft,function(e,t){if(t)return(parseFloat(gt(e,"marginLeft"))||(pe.contains(e.ownerDocument,e)?e.getBoundingClientRect().left-dt(e,{marginLeft:0},function(){return e.getBoundingClientRect().left}):0))+"px"}),pe.each({margin:"",padding:"",border:"Width"},function(e,t){pe.cssHooks[e+t]={expand:function(n){for(var r=0,i={},o="string"==typeof n?n.split(" "):[n];r<4;r++)i[e+Oe[r]+t]=o[r]||o[r-2]||o[0];return i}},ct.test(e)||(pe.cssHooks[e+t].set=_)}),pe.fn.extend({css:function(e,t){return Pe(this,function(e,t,n){var r,i,o={},a=0;if(pe.isArray(t)){for(r=ht(e),i=t.length;a1)},show:function(){return q(this,!0)},hide:function(){return q(this)},toggle:function(e){return"boolean"==typeof e?e?this.show():this.hide():this.each(function(){Re(this)?pe(this).show():pe(this).hide()})}}),pe.Tween=O,O.prototype={constructor:O,init:function(e,t,n,r,i,o){this.elem=e,this.prop=n,this.easing=i||pe.easing._default,this.options=t,this.start=this.now=this.cur(),this.end=r,this.unit=o||(pe.cssNumber[n]?"":"px")},cur:function(){var e=O.propHooks[this.prop];return e&&e.get?e.get(this):O.propHooks._default.get(this)},run:function(e){var t,n=O.propHooks[this.prop];return this.options.duration?this.pos=t=pe.easing[this.easing](e,this.options.duration*e,0,1,this.options.duration):this.pos=t=e,this.now=(this.end-this.start)*t+this.start,this.options.step&&this.options.step.call(this.elem,this.now,this),n&&n.set?n.set(this):O.propHooks._default.set(this),this}},O.prototype.init.prototype=O.prototype,O.propHooks={_default:{get:function(e){var t;return 1!==e.elem.nodeType||null!=e.elem[e.prop]&&null==e.elem.style[e.prop]?e.elem[e.prop]:(t=pe.css(e.elem,e.prop,""),t&&"auto"!==t?t:0)},set:function(e){pe.fx.step[e.prop]?pe.fx.step[e.prop](e):1!==e.elem.nodeType||null==e.elem.style[pe.cssProps[e.prop]]&&!pe.cssHooks[e.prop]?e.elem[e.prop]=e.now:pe.style(e.elem,e.prop,e.now+e.unit)}}},O.propHooks.scrollTop=O.propHooks.scrollLeft={set:function(e){e.elem.nodeType&&e.elem.parentNode&&(e.elem[e.prop]=e.now)}},pe.easing={linear:function(e){return e},swing:function(e){return.5-Math.cos(e*Math.PI)/2},_default:"swing"},pe.fx=O.prototype.init,pe.fx.step={};var Nt,kt,St=/^(?:toggle|show|hide)$/,At=/queueHooks$/;pe.Animation=pe.extend($,{tweeners:{"*":[function(e,t){var n=this.createTween(e,t);return d(n.elem,e,Me.exec(t),n),n}]},tweener:function(e,t){pe.isFunction(e)?(t=e,e=["*"]):e=e.match(De);for(var n,r=0,i=e.length;r
          a",e=n.getElementsByTagName("a")[0],t.setAttribute("type","checkbox"),n.appendChild(t),e=n.getElementsByTagName("a")[0],e.style.cssText="top:1px",fe.getSetAttribute="t"!==n.className,fe.style=/top/.test(e.getAttribute("style")),fe.hrefNormalized="/a"===e.getAttribute("href"),fe.checkOn=!!t.value,fe.optSelected=i.selected,fe.enctype=!!re.createElement("form").enctype,r.disabled=!0,fe.optDisabled=!i.disabled,t=re.createElement("input"),t.setAttribute("value",""),fe.input=""===t.getAttribute("value"),t.value="t",t.setAttribute("type","radio"),fe.radioValue="t"===t.value}();var Dt=/\r/g,jt=/[\x20\t\r\n\f]+/g;pe.fn.extend({val:function(e){var t,n,r,i=this[0];{if(arguments.length)return r=pe.isFunction(e),this.each(function(n){var i;1===this.nodeType&&(i=r?e.call(this,n,pe(this).val()):e,null==i?i="":"number"==typeof i?i+="":pe.isArray(i)&&(i=pe.map(i,function(e){return null==e?"":e+""})),t=pe.valHooks[this.type]||pe.valHooks[this.nodeName.toLowerCase()],t&&"set"in t&&void 0!==t.set(this,i,"value")||(this.value=i))});if(i)return t=pe.valHooks[i.type]||pe.valHooks[i.nodeName.toLowerCase()],t&&"get"in t&&void 0!==(n=t.get(i,"value"))?n:(n=i.value,"string"==typeof n?n.replace(Dt,""):null==n?"":n)}}}),pe.extend({valHooks:{option:{get:function(e){var t=pe.find.attr(e,"value");return null!=t?t:pe.trim(pe.text(e)).replace(jt," ")}},select:{get:function(e){for(var t,n,r=e.options,i=e.selectedIndex,o="select-one"===e.type||i<0,a=o?null:[],s=o?i+1:r.length,u=i<0?s:o?i:0;u-1)try{r.selected=n=!0}catch(s){r.scrollHeight}else r.selected=!1;return n||(e.selectedIndex=-1),i}}}}),pe.each(["radio","checkbox"],function(){pe.valHooks[this]={set:function(e,t){if(pe.isArray(t))return e.checked=pe.inArray(pe(e).val(),t)>-1}},fe.checkOn||(pe.valHooks[this].get=function(e){return null===e.getAttribute("value")?"on":e.value})});var Lt,Ht,qt=pe.expr.attrHandle,_t=/^(?:checked|selected)$/i,Ft=fe.getSetAttribute,Mt=fe.input;pe.fn.extend({attr:function(e,t){return Pe(this,pe.attr,e,t,arguments.length>1)},removeAttr:function(e){return this.each(function(){pe.removeAttr(this,e)})}}),pe.extend({attr:function(e,t,n){var r,i,o=e.nodeType;if(3!==o&&8!==o&&2!==o)return"undefined"==typeof e.getAttribute?pe.prop(e,t,n):(1===o&&pe.isXMLDoc(e)||(t=t.toLowerCase(),i=pe.attrHooks[t]||(pe.expr.match.bool.test(t)?Ht:Lt)),void 0!==n?null===n?void pe.removeAttr(e,t):i&&"set"in i&&void 0!==(r=i.set(e,n,t))?r:(e.setAttribute(t,n+""),n):i&&"get"in i&&null!==(r=i.get(e,t))?r:(r=pe.find.attr(e,t),null==r?void 0:r))},attrHooks:{type:{set:function(e,t){if(!fe.radioValue&&"radio"===t&&pe.nodeName(e,"input")){var n=e.value;return e.setAttribute("type",t),n&&(e.value=n),t}}}},removeAttr:function(e,t){var n,r,i=0,o=t&&t.match(De);if(o&&1===e.nodeType)for(;n=o[i++];)r=pe.propFix[n]||n,pe.expr.match.bool.test(n)?Mt&&Ft||!_t.test(n)?e[r]=!1:e[pe.camelCase("default-"+n)]=e[r]=!1:pe.attr(e,n,""),e.removeAttribute(Ft?n:r)}}),Ht={set:function(e,t,n){return t===!1?pe.removeAttr(e,n):Mt&&Ft||!_t.test(n)?e.setAttribute(!Ft&&pe.propFix[n]||n,n):e[pe.camelCase("default-"+n)]=e[n]=!0,n}},pe.each(pe.expr.match.bool.source.match(/\w+/g),function(e,t){var n=qt[t]||pe.find.attr;Mt&&Ft||!_t.test(t)?qt[t]=function(e,t,r){var i,o;return r||(o=qt[t],qt[t]=i,i=null!=n(e,t,r)?t.toLowerCase():null,qt[t]=o),i}:qt[t]=function(e,t,n){if(!n)return e[pe.camelCase("default-"+t)]?t.toLowerCase():null}}),Mt&&Ft||(pe.attrHooks.value={set:function(e,t,n){return pe.nodeName(e,"input")?void(e.defaultValue=t):Lt&&Lt.set(e,t,n)}}),Ft||(Lt={set:function(e,t,n){var r=e.getAttributeNode(n);if(r||e.setAttributeNode(r=e.ownerDocument.createAttribute(n)),r.value=t+="","value"===n||t===e.getAttribute(n))return t}},qt.id=qt.name=qt.coords=function(e,t,n){var r;if(!n)return(r=e.getAttributeNode(t))&&""!==r.value?r.value:null},pe.valHooks.button={get:function(e,t){var n=e.getAttributeNode(t);if(n&&n.specified)return n.value},set:Lt.set},pe.attrHooks.contenteditable={set:function(e,t,n){Lt.set(e,""!==t&&t,n)}},pe.each(["width","height"],function(e,t){pe.attrHooks[t]={set:function(e,n){if(""===n)return e.setAttribute(t,"auto"),n}}})),fe.style||(pe.attrHooks.style={get:function(e){return e.style.cssText||void 0},set:function(e,t){return e.style.cssText=t+""}});var Ot=/^(?:input|select|textarea|button|object)$/i,Rt=/^(?:a|area)$/i;pe.fn.extend({prop:function(e,t){return Pe(this,pe.prop,e,t,arguments.length>1)},removeProp:function(e){return e=pe.propFix[e]||e,this.each(function(){try{this[e]=void 0,delete this[e]}catch(t){}})}}),pe.extend({prop:function(e,t,n){var r,i,o=e.nodeType;if(3!==o&&8!==o&&2!==o)return 1===o&&pe.isXMLDoc(e)||(t=pe.propFix[t]||t,i=pe.propHooks[t]),void 0!==n?i&&"set"in i&&void 0!==(r=i.set(e,n,t))?r:e[t]=n:i&&"get"in i&&null!==(r=i.get(e,t))?r:e[t]},propHooks:{tabIndex:{get:function(e){var t=pe.find.attr(e,"tabindex");return t?parseInt(t,10):Ot.test(e.nodeName)||Rt.test(e.nodeName)&&e.href?0:-1}}},propFix:{"for":"htmlFor","class":"className"}}),fe.hrefNormalized||pe.each(["href","src"],function(e,t){pe.propHooks[t]={get:function(e){return e.getAttribute(t,4)}}}),fe.optSelected||(pe.propHooks.selected={get:function(e){var t=e.parentNode;return t&&(t.selectedIndex,t.parentNode&&t.parentNode.selectedIndex),null},set:function(e){var t=e.parentNode;t&&(t.selectedIndex,t.parentNode&&t.parentNode.selectedIndex)}}),pe.each(["tabIndex","readOnly","maxLength","cellSpacing","cellPadding","rowSpan","colSpan","useMap","frameBorder","contentEditable"],function(){pe.propFix[this.toLowerCase()]=this}),fe.enctype||(pe.propFix.enctype="encoding");var Pt=/[\t\r\n\f]/g;pe.fn.extend({addClass:function(e){var t,n,r,i,o,a,s,u=0;if(pe.isFunction(e))return this.each(function(t){pe(this).addClass(e.call(this,t,z(this)))});if("string"==typeof e&&e)for(t=e.match(De)||[];n=this[u++];)if(i=z(n),r=1===n.nodeType&&(" "+i+" ").replace(Pt," ")){for(a=0;o=t[a++];)r.indexOf(" "+o+" ")<0&&(r+=o+" ");s=pe.trim(r),i!==s&&pe.attr(n,"class",s)}return this},removeClass:function(e){var t,n,r,i,o,a,s,u=0;if(pe.isFunction(e))return this.each(function(t){pe(this).removeClass(e.call(this,t,z(this)))});if(!arguments.length)return this.attr("class","");if("string"==typeof e&&e)for(t=e.match(De)||[];n=this[u++];)if(i=z(n),r=1===n.nodeType&&(" "+i+" ").replace(Pt," ")){for(a=0;o=t[a++];)for(;r.indexOf(" "+o+" ")>-1;)r=r.replace(" "+o+" "," ");s=pe.trim(r),i!==s&&pe.attr(n,"class",s)}return this},toggleClass:function(e,t){var n=typeof e;return"boolean"==typeof t&&"string"===n?t?this.addClass(e):this.removeClass(e):pe.isFunction(e)?this.each(function(n){pe(this).toggleClass(e.call(this,n,z(this),t),t)}):this.each(function(){var t,r,i,o;if("string"===n)for(r=0,i=pe(this),o=e.match(De)||[];t=o[r++];)i.hasClass(t)?i.removeClass(t):i.addClass(t);else void 0!==e&&"boolean"!==n||(t=z(this),t&&pe._data(this,"__className__",t),pe.attr(this,"class",t||e===!1?"":pe._data(this,"__className__")||""))})},hasClass:function(e){var t,n,r=0;for(t=" "+e+" ";n=this[r++];)if(1===n.nodeType&&(" "+z(n)+" ").replace(Pt," ").indexOf(t)>-1)return!0;return!1}}),pe.each("blur focus focusin focusout load resize scroll unload click dblclick mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave change select submit keydown keypress keyup error contextmenu".split(" "),function(e,t){pe.fn[t]=function(e,n){return arguments.length>0?this.on(t,null,e,n):this.trigger(t)}}),pe.fn.extend({hover:function(e,t){return this.mouseenter(e).mouseleave(t||e)}});var Bt=e.location,Wt=pe.now(),It=/\?/,$t=/(,)|(\[|{)|(}|])|"(?:[^"\\\r\n]|\\["\\\/bfnrt]|\\u[\da-fA-F]{4})*"\s*:?|true|false|null|-?(?!0\d)\d+(?:\.\d+|)(?:[eE][+-]?\d+|)/g;pe.parseJSON=function(t){if(e.JSON&&e.JSON.parse)return e.JSON.parse(t+"");var n,r=null,i=pe.trim(t+"");return i&&!pe.trim(i.replace($t,function(e,t,i,o){return n&&t&&(r=0),0===r?e:(n=i||t,r+=!o-!i,"")}))?Function("return "+i)():pe.error("Invalid JSON: "+t)},pe.parseXML=function(t){var n,r;if(!t||"string"!=typeof t)return null;try{e.DOMParser?(r=new e.DOMParser,n=r.parseFromString(t,"text/xml")):(n=new e.ActiveXObject("Microsoft.XMLDOM"),n.async="false",n.loadXML(t))}catch(i){n=void 0}return n&&n.documentElement&&!n.getElementsByTagName("parsererror").length||pe.error("Invalid XML: "+t),n};var zt=/#.*$/,Xt=/([?&])_=[^&]*/,Ut=/^(.*?):[ \t]*([^\r\n]*)\r?$/gm,Vt=/^(?:about|app|app-storage|.+-extension|file|res|widget):$/,Yt=/^(?:GET|HEAD)$/,Jt=/^\/\//,Gt=/^([\w.+-]+:)(?:\/\/(?:[^\/?#]*@|)([^\/?#:]*)(?::(\d+)|)|)/,Kt={},Qt={},Zt="*/".concat("*"),en=Bt.href,tn=Gt.exec(en.toLowerCase())||[];pe.extend({active:0,lastModified:{},etag:{},ajaxSettings:{url:en,type:"GET",isLocal:Vt.test(tn[1]),global:!0,processData:!0,async:!0,contentType:"application/x-www-form-urlencoded; charset=UTF-8",accepts:{"*":Zt,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":pe.parseJSON,"text xml":pe.parseXML},flatOptions:{url:!0,context:!0}},ajaxSetup:function(e,t){return t?V(V(e,pe.ajaxSettings),t):V(pe.ajaxSettings,e)},ajaxPrefilter:X(Kt),ajaxTransport:X(Qt),ajax:function(t,n){function r(t,n,r,i){var o,f,v,x,w,C=n;2!==b&&(b=2,u&&e.clearTimeout(u),c=void 0,s=i||"",T.readyState=t>0?4:0,o=t>=200&&t<300||304===t,r&&(x=Y(d,T,r)),x=J(d,x,T,o),o?(d.ifModified&&(w=T.getResponseHeader("Last-Modified"),w&&(pe.lastModified[a]=w),w=T.getResponseHeader("etag"),w&&(pe.etag[a]=w)),204===t||"HEAD"===d.type?C="nocontent":304===t?C="notmodified":(C=x.state,f=x.data,v=x.error,o=!v)):(v=C,!t&&C||(C="error",t<0&&(t=0))),T.status=t,T.statusText=(n||C)+"",o?g.resolveWith(p,[f,C,T]):g.rejectWith(p,[T,C,v]),T.statusCode(y),y=void 0,l&&h.trigger(o?"ajaxSuccess":"ajaxError",[T,d,o?f:v]),m.fireWith(p,[T,C]),l&&(h.trigger("ajaxComplete",[T,d]),--pe.active||pe.event.trigger("ajaxStop")))}"object"==typeof t&&(n=t,t=void 0),n=n||{};var i,o,a,s,u,l,c,f,d=pe.ajaxSetup({},n),p=d.context||d,h=d.context&&(p.nodeType||p.jquery)?pe(p):pe.event,g=pe.Deferred(),m=pe.Callbacks("once memory"),y=d.statusCode||{},v={},x={},b=0,w="canceled",T={readyState:0,getResponseHeader:function(e){var t;if(2===b){if(!f)for(f={};t=Ut.exec(s);)f[t[1].toLowerCase()]=t[2];t=f[e.toLowerCase()]}return null==t?null:t},getAllResponseHeaders:function(){return 2===b?s:null},setRequestHeader:function(e,t){var n=e.toLowerCase();return b||(e=x[n]=x[n]||e,v[e]=t),this},overrideMimeType:function(e){return b||(d.mimeType=e),this},statusCode:function(e){var t;if(e)if(b<2)for(t in e)y[t]=[y[t],e[t]];else T.always(e[T.status]);return this},abort:function(e){var t=e||w;return c&&c.abort(t),r(0,t),this}};if(g.promise(T).complete=m.add,T.success=T.done,T.error=T.fail,d.url=((t||d.url||en)+"").replace(zt,"").replace(Jt,tn[1]+"//"),d.type=n.method||n.type||d.method||d.type,d.dataTypes=pe.trim(d.dataType||"*").toLowerCase().match(De)||[""],null==d.crossDomain&&(i=Gt.exec(d.url.toLowerCase()),d.crossDomain=!(!i||i[1]===tn[1]&&i[2]===tn[2]&&(i[3]||("http:"===i[1]?"80":"443"))===(tn[3]||("http:"===tn[1]?"80":"443")))),d.data&&d.processData&&"string"!=typeof d.data&&(d.data=pe.param(d.data,d.traditional)),U(Kt,d,n,T),2===b)return T;l=pe.event&&d.global,l&&0===pe.active++&&pe.event.trigger("ajaxStart"),d.type=d.type.toUpperCase(),d.hasContent=!Yt.test(d.type),a=d.url,d.hasContent||(d.data&&(a=d.url+=(It.test(a)?"&":"?")+d.data,delete d.data),d.cache===!1&&(d.url=Xt.test(a)?a.replace(Xt,"$1_="+Wt++):a+(It.test(a)?"&":"?")+"_="+Wt++)),d.ifModified&&(pe.lastModified[a]&&T.setRequestHeader("If-Modified-Since",pe.lastModified[a]),pe.etag[a]&&T.setRequestHeader("If-None-Match",pe.etag[a])),(d.data&&d.hasContent&&d.contentType!==!1||n.contentType)&&T.setRequestHeader("Content-Type",d.contentType),T.setRequestHeader("Accept",d.dataTypes[0]&&d.accepts[d.dataTypes[0]]?d.accepts[d.dataTypes[0]]+("*"!==d.dataTypes[0]?", "+Zt+"; q=0.01":""):d.accepts["*"]);for(o in d.headers)T.setRequestHeader(o,d.headers[o]);if(d.beforeSend&&(d.beforeSend.call(p,T,d)===!1||2===b))return T.abort();w="abort";for(o in{success:1,error:1,complete:1})T[o](d[o]);if(c=U(Qt,d,n,T)){if(T.readyState=1,l&&h.trigger("ajaxSend",[T,d]),2===b)return T;d.async&&d.timeout>0&&(u=e.setTimeout(function(){T.abort("timeout")},d.timeout));try{b=1,c.send(v,r)}catch(C){if(!(b<2))throw C;r(-1,C)}}else r(-1,"No Transport");return T},getJSON:function(e,t,n){return pe.get(e,t,n,"json")},getScript:function(e,t){return pe.get(e,void 0,t,"script")}}),pe.each(["get","post"],function(e,t){pe[t]=function(e,n,r,i){return pe.isFunction(n)&&(i=i||r,r=n,n=void 0),pe.ajax(pe.extend({url:e,type:t,dataType:i,data:n,success:r},pe.isPlainObject(e)&&e))}}),pe._evalUrl=function(e){return pe.ajax({url:e,type:"GET",dataType:"script",cache:!0,async:!1,global:!1,"throws":!0})},pe.fn.extend({wrapAll:function(e){if(pe.isFunction(e))return this.each(function(t){pe(this).wrapAll(e.call(this,t))});if(this[0]){var t=pe(e,this[0].ownerDocument).eq(0).clone(!0);this[0].parentNode&&t.insertBefore(this[0]),t.map(function(){for(var e=this;e.firstChild&&1===e.firstChild.nodeType;)e=e.firstChild;return e}).append(this)}return this},wrapInner:function(e){return pe.isFunction(e)?this.each(function(t){pe(this).wrapInner(e.call(this,t))}):this.each(function(){var t=pe(this),n=t.contents();n.length?n.wrapAll(e):t.append(e)})},wrap:function(e){var t=pe.isFunction(e);return this.each(function(n){pe(this).wrapAll(t?e.call(this,n):e)})},unwrap:function(){return this.parent().each(function(){pe.nodeName(this,"body")||pe(this).replaceWith(this.childNodes)}).end()}}),pe.expr.filters.hidden=function(e){return fe.reliableHiddenOffsets()?e.offsetWidth<=0&&e.offsetHeight<=0&&!e.getClientRects().length:K(e)},pe.expr.filters.visible=function(e){return!pe.expr.filters.hidden(e)};var nn=/%20/g,rn=/\[\]$/,on=/\r?\n/g,an=/^(?:submit|button|image|reset|file)$/i,sn=/^(?:input|select|textarea|keygen)/i;pe.param=function(e,t){var n,r=[],i=function(e,t){t=pe.isFunction(t)?t():null==t?"":t,r[r.length]=encodeURIComponent(e)+"="+encodeURIComponent(t)};if(void 0===t&&(t=pe.ajaxSettings&&pe.ajaxSettings.traditional),pe.isArray(e)||e.jquery&&!pe.isPlainObject(e))pe.each(e,function(){i(this.name,this.value)});else for(n in e)Q(n,e[n],t,i);return r.join("&").replace(nn,"+")},pe.fn.extend({serialize:function(){return pe.param(this.serializeArray())},serializeArray:function(){return this.map(function(){var e=pe.prop(this,"elements");return e?pe.makeArray(e):this}).filter(function(){var e=this.type;return this.name&&!pe(this).is(":disabled")&&sn.test(this.nodeName)&&!an.test(e)&&(this.checked||!Be.test(e))}).map(function(e,t){var n=pe(this).val();return null==n?null:pe.isArray(n)?pe.map(n,function(e){return{name:t.name,value:e.replace(on,"\r\n")}}):{name:t.name,value:n.replace(on,"\r\n")}}).get()}}),pe.ajaxSettings.xhr=void 0!==e.ActiveXObject?function(){return this.isLocal?ee():re.documentMode>8?Z():/^(get|post|head|put|delete|options)$/i.test(this.type)&&Z()||ee()}:Z;var un=0,ln={},cn=pe.ajaxSettings.xhr();e.attachEvent&&e.attachEvent("onunload",function(){for(var e in ln)ln[e](void 0,!0)}),fe.cors=!!cn&&"withCredentials"in cn,cn=fe.ajax=!!cn,cn&&pe.ajaxTransport(function(t){if(!t.crossDomain||fe.cors){var n;return{send:function(r,i){var o,a=t.xhr(),s=++un;if(a.open(t.type,t.url,t.async,t.username,t.password),t.xhrFields)for(o in t.xhrFields)a[o]=t.xhrFields[o];t.mimeType&&a.overrideMimeType&&a.overrideMimeType(t.mimeType),t.crossDomain||r["X-Requested-With"]||(r["X-Requested-With"]="XMLHttpRequest");for(o in r)void 0!==r[o]&&a.setRequestHeader(o,r[o]+"");a.send(t.hasContent&&t.data||null),n=function(e,r){var o,u,l;if(n&&(r||4===a.readyState))if(delete ln[s],n=void 0,a.onreadystatechange=pe.noop,r)4!==a.readyState&&a.abort();else{l={},o=a.status,"string"==typeof a.responseText&&(l.text=a.responseText);try{u=a.statusText}catch(c){u=""}o||!t.isLocal||t.crossDomain?1223===o&&(o=204):o=l.text?200:404}l&&i(o,u,l,a.getAllResponseHeaders())},t.async?4===a.readyState?e.setTimeout(n):a.onreadystatechange=ln[s]=n:n()},abort:function(){n&&n(void 0,!0)}}}}),pe.ajaxSetup({accepts:{script:"text/javascript, application/javascript, application/ecmascript, application/x-ecmascript"},contents:{script:/\b(?:java|ecma)script\b/},converters:{"text script":function(e){return pe.globalEval(e),e}}}),pe.ajaxPrefilter("script",function(e){void 0===e.cache&&(e.cache=!1),e.crossDomain&&(e.type="GET",e.global=!1)}),pe.ajaxTransport("script",function(e){if(e.crossDomain){var t,n=re.head||pe("head")[0]||re.documentElement;return{send:function(r,i){t=re.createElement("script"),t.async=!0,e.scriptCharset&&(t.charset=e.scriptCharset),t.src=e.url,t.onload=t.onreadystatechange=function(e,n){(n||!t.readyState||/loaded|complete/.test(t.readyState))&&(t.onload=t.onreadystatechange=null,t.parentNode&&t.parentNode.removeChild(t),t=null,n||i(200,"success"))},n.insertBefore(t,n.firstChild)},abort:function(){t&&t.onload(void 0,!0)}}}});var fn=[],dn=/(=)\?(?=&|$)|\?\?/;pe.ajaxSetup({jsonp:"callback",jsonpCallback:function(){var e=fn.pop()||pe.expando+"_"+Wt++;return this[e]=!0,e}}),pe.ajaxPrefilter("json jsonp",function(t,n,r){var i,o,a,s=t.jsonp!==!1&&(dn.test(t.url)?"url":"string"==typeof t.data&&0===(t.contentType||"").indexOf("application/x-www-form-urlencoded")&&dn.test(t.data)&&"data");if(s||"jsonp"===t.dataTypes[0])return i=t.jsonpCallback=pe.isFunction(t.jsonpCallback)?t.jsonpCallback():t.jsonpCallback,s?t[s]=t[s].replace(dn,"$1"+i):t.jsonp!==!1&&(t.url+=(It.test(t.url)?"&":"?")+t.jsonp+"="+i),t.converters["script json"]=function(){return a||pe.error(i+" was not called"),a[0]},t.dataTypes[0]="json",o=e[i],e[i]=function(){a=arguments},r.always(function(){void 0===o?pe(e).removeProp(i):e[i]=o,t[i]&&(t.jsonpCallback=n.jsonpCallback,fn.push(i)),a&&pe.isFunction(o)&&o(a[0]),a=o=void 0}),"script"}),pe.parseHTML=function(e,t,n){if(!e||"string"!=typeof e)return null;"boolean"==typeof t&&(n=t,t=!1),t=t||re;var r=Te.exec(e),i=!n&&[];return r?[t.createElement(r[1])]:(r=y([e],t,i),i&&i.length&&pe(i).remove(),pe.merge([],r.childNodes))};var pn=pe.fn.load;return pe.fn.load=function(e,t,n){if("string"!=typeof e&&pn)return pn.apply(this,arguments);var r,i,o,a=this,s=e.indexOf(" ");return s>-1&&(r=pe.trim(e.slice(s,e.length)),e=e.slice(0,s)),pe.isFunction(t)?(n=t,t=void 0):t&&"object"==typeof t&&(i="POST"),a.length>0&&pe.ajax({url:e,type:i||"GET",dataType:"html",data:t}).done(function(e){o=arguments,a.html(r?pe("
          ").append(pe.parseHTML(e)).find(r):e)}).always(n&&function(e,t){a.each(function(){n.apply(this,o||[e.responseText,t,e])})}),this},pe.each(["ajaxStart","ajaxStop","ajaxComplete","ajaxError","ajaxSuccess","ajaxSend"],function(e,t){pe.fn[t]=function(e){return this.on(t,e)}}),pe.expr.filters.animated=function(e){return pe.grep(pe.timers,function(t){return e===t.elem}).length},pe.offset={setOffset:function(e,t,n){var r,i,o,a,s,u,l,c=pe.css(e,"position"),f=pe(e),d={};"static"===c&&(e.style.position="relative"),s=f.offset(),o=pe.css(e,"top"),u=pe.css(e,"left"),l=("absolute"===c||"fixed"===c)&&pe.inArray("auto",[o,u])>-1,l?(r=f.position(),a=r.top,i=r.left):(a=parseFloat(o)||0,i=parseFloat(u)||0),pe.isFunction(t)&&(t=t.call(e,n,pe.extend({},s))),null!=t.top&&(d.top=t.top-s.top+a),null!=t.left&&(d.left=t.left-s.left+i),"using"in t?t.using.call(e,d):f.css(d)}},pe.fn.extend({offset:function(e){if(arguments.length)return void 0===e?this:this.each(function(t){pe.offset.setOffset(this,e,t)});var t,n,r={top:0,left:0},i=this[0],o=i&&i.ownerDocument;if(o)return t=o.documentElement,pe.contains(t,i)?("undefined"!=typeof i.getBoundingClientRect&&(r=i.getBoundingClientRect()),n=te(o),{top:r.top+(n.pageYOffset||t.scrollTop)-(t.clientTop||0),left:r.left+(n.pageXOffset||t.scrollLeft)-(t.clientLeft||0)}):r},position:function(){if(this[0]){var e,t,n={top:0,left:0},r=this[0];return"fixed"===pe.css(r,"position")?t=r.getBoundingClientRect():(e=this.offsetParent(),t=this.offset(),pe.nodeName(e[0],"html")||(n=e.offset()),n.top+=pe.css(e[0],"borderTopWidth",!0),n.left+=pe.css(e[0],"borderLeftWidth",!0)),{top:t.top-n.top-pe.css(r,"marginTop",!0),left:t.left-n.left-pe.css(r,"marginLeft",!0)}}},offsetParent:function(){return this.map(function(){ +for(var e=this.offsetParent;e&&!pe.nodeName(e,"html")&&"static"===pe.css(e,"position");)e=e.offsetParent;return e||pt})}}),pe.each({scrollLeft:"pageXOffset",scrollTop:"pageYOffset"},function(e,t){var n=/Y/.test(t);pe.fn[e]=function(r){return Pe(this,function(e,r,i){var o=te(e);return void 0===i?o?t in o?o[t]:o.document.documentElement[r]:e[r]:void(o?o.scrollTo(n?pe(o).scrollLeft():i,n?i:pe(o).scrollTop()):e[r]=i)},e,r,arguments.length,null)}}),pe.each(["top","left"],function(e,t){pe.cssHooks[t]=L(fe.pixelPosition,function(e,n){if(n)return n=gt(e,t),ft.test(n)?pe(e).position()[t]+"px":n})}),pe.each({Height:"height",Width:"width"},function(e,t){pe.each({padding:"inner"+e,content:t,"":"outer"+e},function(n,r){pe.fn[r]=function(r,i){var o=arguments.length&&(n||"boolean"!=typeof r),a=n||(r===!0||i===!0?"margin":"border");return Pe(this,function(t,n,r){var i;return pe.isWindow(t)?t.document.documentElement["client"+e]:9===t.nodeType?(i=t.documentElement,Math.max(t.body["scroll"+e],i["scroll"+e],t.body["offset"+e],i["offset"+e],i["client"+e])):void 0===r?pe.css(t,n,a):pe.style(t,n,r,a)},t,o?r:void 0,o,null)}})}),pe.fn.extend({bind:function(e,t,n){return this.on(e,null,t,n)},unbind:function(e,t){return this.off(e,null,t)},delegate:function(e,t,n,r){return this.on(t,e,n,r)},undelegate:function(e,t,n){return 1===arguments.length?this.off(e,"**"):this.off(t,e||"**",n)}}),pe.fn.size=function(){return this.length},pe.fn.andSelf=pe.fn.addBack,layui.define(function(e){layui.$=pe,e("jquery",pe)}),pe}); \ No newline at end of file diff --git a/public/static/res/layui/lay/modules/laydate.js b/public/static/res/layui/lay/modules/laydate.js new file mode 100644 index 0000000..4b79bec --- /dev/null +++ b/public/static/res/layui/lay/modules/laydate.js @@ -0,0 +1,2 @@ +/** layui-v2.5.5 MIT License By https://www.layui.com */ + ;!function(){"use strict";var e=window.layui&&layui.define,t={getPath:function(){var e=document.currentScript?document.currentScript.src:function(){for(var e,t=document.scripts,n=t.length-1,a=n;a>0;a--)if("interactive"===t[a].readyState){e=t[a].src;break}return e||t[n].src}();return e.substring(0,e.lastIndexOf("/")+1)}(),getStyle:function(e,t){var n=e.currentStyle?e.currentStyle:window.getComputedStyle(e,null);return n[n.getPropertyValue?"getPropertyValue":"getAttribute"](t)},link:function(e,a,i){if(n.path){var r=document.getElementsByTagName("head")[0],o=document.createElement("link");"string"==typeof a&&(i=a);var s=(i||e).replace(/\.|\//g,""),l="layuicss-"+s,d=0;o.rel="stylesheet",o.href=n.path+e,o.id=l,document.getElementById(l)||r.appendChild(o),"function"==typeof a&&!function c(){return++d>80?window.console&&console.error("laydate.css: Invalid"):void(1989===parseInt(t.getStyle(document.getElementById(l),"width"))?a():setTimeout(c,100))}()}}},n={v:"5.0.9",config:{},index:window.laydate&&window.laydate.v?1e5:0,path:t.getPath,set:function(e){var t=this;return t.config=w.extend({},t.config,e),t},ready:function(a){var i="laydate",r="",o=(e?"modules/laydate/":"theme/")+"default/laydate.css?v="+n.v+r;return e?layui.addcss(o,a,i):t.link(o,a,i),this}},a=function(){var e=this;return{hint:function(t){e.hint.call(e,t)},config:e.config}},i="laydate",r=".layui-laydate",o="layui-this",s="laydate-disabled",l="开始日期超出了结束日期
          建议重新选择",d=[100,2e5],c="layui-laydate-static",m="layui-laydate-list",u="laydate-selected",h="layui-laydate-hint",y="laydate-day-prev",f="laydate-day-next",p="layui-laydate-footer",g=".laydate-btns-confirm",v="laydate-time-text",D=".laydate-btns-time",T=function(e){var t=this;t.index=++n.index,t.config=w.extend({},t.config,n.config,e),n.ready(function(){t.init()})},w=function(e){return new C(e)},C=function(e){for(var t=0,n="object"==typeof e?[e]:(this.selector=e,document.querySelectorAll(e||null));t0)return n[0].getAttribute(e)}():n.each(function(n,a){a.setAttribute(e,t)})},C.prototype.removeAttr=function(e){return this.each(function(t,n){n.removeAttribute(e)})},C.prototype.html=function(e){return this.each(function(t,n){n.innerHTML=e})},C.prototype.val=function(e){return this.each(function(t,n){n.value=e})},C.prototype.append=function(e){return this.each(function(t,n){"object"==typeof e?n.appendChild(e):n.innerHTML=n.innerHTML+e})},C.prototype.remove=function(e){return this.each(function(t,n){e?n.removeChild(e):n.parentNode.removeChild(n)})},C.prototype.on=function(e,t){return this.each(function(n,a){a.attachEvent?a.attachEvent("on"+e,function(e){e.target=e.srcElement,t.call(a,e)}):a.addEventListener(e,t,!1)})},C.prototype.off=function(e,t){return this.each(function(n,a){a.detachEvent?a.detachEvent("on"+e,t):a.removeEventListener(e,t,!1)})},T.isLeapYear=function(e){return e%4===0&&e%100!==0||e%400===0},T.prototype.config={type:"date",range:!1,format:"yyyy-MM-dd",value:null,isInitValue:!0,min:"1900-1-1",max:"2099-12-31",trigger:"focus",show:!1,showBottom:!0,btns:["clear","now","confirm"],lang:"cn",theme:"default",position:null,calendar:!1,mark:{},zIndex:null,done:null,change:null},T.prototype.lang=function(){var e=this,t=e.config,n={cn:{weeks:["日","一","二","三","四","五","六"],time:["时","分","秒"],timeTips:"选择时间",startTime:"开始时间",endTime:"结束时间",dateTips:"返回日期",month:["一","二","三","四","五","六","七","八","九","十","十一","十二"],tools:{confirm:"确定",clear:"清空",now:"现在"}},en:{weeks:["Su","Mo","Tu","We","Th","Fr","Sa"],time:["Hours","Minutes","Seconds"],timeTips:"Select Time",startTime:"Start Time",endTime:"End Time",dateTips:"Select Date",month:["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"],tools:{confirm:"Confirm",clear:"Clear",now:"Now"}}};return n[t.lang]||n.cn},T.prototype.init=function(){var e=this,t=e.config,n="yyyy|y|MM|M|dd|d|HH|H|mm|m|ss|s",a="static"===t.position,i={year:"yyyy",month:"yyyy-MM",date:"yyyy-MM-dd",time:"HH:mm:ss",datetime:"yyyy-MM-dd HH:mm:ss"};t.elem=w(t.elem),t.eventElem=w(t.eventElem),t.elem[0]&&(t.range===!0&&(t.range="-"),t.format===i.date&&(t.format=i[t.type]),e.format=t.format.match(new RegExp(n+"|.","g"))||[],e.EXP_IF="",e.EXP_SPLIT="",w.each(e.format,function(t,a){var i=new RegExp(n).test(a)?"\\d{"+function(){return new RegExp(n).test(e.format[0===t?t+1:t-1]||"")?/^yyyy|y$/.test(a)?4:a.length:/^yyyy$/.test(a)?"1,4":/^y$/.test(a)?"1,308":"1,2"}()+"}":"\\"+a;e.EXP_IF=e.EXP_IF+i,e.EXP_SPLIT=e.EXP_SPLIT+"("+i+")"}),e.EXP_IF=new RegExp("^"+(t.range?e.EXP_IF+"\\s\\"+t.range+"\\s"+e.EXP_IF:e.EXP_IF)+"$"),e.EXP_SPLIT=new RegExp("^"+e.EXP_SPLIT+"$",""),e.isInput(t.elem[0])||"focus"===t.trigger&&(t.trigger="click"),t.elem.attr("lay-key")||(t.elem.attr("lay-key",e.index),t.eventElem.attr("lay-key",e.index)),t.mark=w.extend({},t.calendar&&"cn"===t.lang?{"0-1-1":"元旦","0-2-14":"情人","0-3-8":"妇女","0-3-12":"植树","0-4-1":"愚人","0-5-1":"劳动","0-5-4":"青年","0-6-1":"儿童","0-9-10":"教师","0-9-18":"国耻","0-10-1":"国庆","0-12-25":"圣诞"}:{},t.mark),w.each(["min","max"],function(e,n){var a=[],i=[];if("number"==typeof t[n]){var r=t[n],o=(new Date).getTime(),s=864e5,l=new Date(r?r0)return!0;var a=w.elem("div",{"class":"layui-laydate-header"}),i=[function(){var e=w.elem("i",{"class":"layui-icon laydate-icon laydate-prev-y"});return e.innerHTML="",e}(),function(){var e=w.elem("i",{"class":"layui-icon laydate-icon laydate-prev-m"});return e.innerHTML="",e}(),function(){var e=w.elem("div",{"class":"laydate-set-ym"}),t=w.elem("span"),n=w.elem("span");return e.appendChild(t),e.appendChild(n),e}(),function(){var e=w.elem("i",{"class":"layui-icon laydate-icon laydate-next-m"});return e.innerHTML="",e}(),function(){var e=w.elem("i",{"class":"layui-icon laydate-icon laydate-next-y"});return e.innerHTML="",e}()],d=w.elem("div",{"class":"layui-laydate-content"}),c=w.elem("table"),m=w.elem("thead"),u=w.elem("tr");w.each(i,function(e,t){a.appendChild(t)}),m.appendChild(u),w.each(new Array(6),function(e){var t=c.insertRow(0);w.each(new Array(7),function(a){if(0===e){var i=w.elem("th");i.innerHTML=n.weeks[a],u.appendChild(i)}t.insertCell(a)})}),c.insertBefore(m,c.children[0]),d.appendChild(c),r[e]=w.elem("div",{"class":"layui-laydate-main laydate-main-list-"+e}),r[e].appendChild(a),r[e].appendChild(d),o.push(i),s.push(d),l.push(c)}),w(d).html(function(){var e=[],i=[];return"datetime"===t.type&&e.push(''+n.timeTips+""),w.each(t.btns,function(e,r){var o=n.tools[r]||"btn";t.range&&"now"===r||(a&&"clear"===r&&(o="cn"===t.lang?"重置":"Reset"),i.push(''+o+""))}),e.push('"),e.join("")}()),w.each(r,function(e,t){i.appendChild(t)}),t.showBottom&&i.appendChild(d),/^#/.test(t.theme)){var m=w.elem("style"),u=["#{{id}} .layui-laydate-header{background-color:{{theme}};}","#{{id}} .layui-this{background-color:{{theme}} !important;}"].join("").replace(/{{id}}/g,e.elemID).replace(/{{theme}}/g,t.theme);"styleSheet"in m?(m.setAttribute("type","text/css"),m.styleSheet.cssText=u):m.innerHTML=u,w(i).addClass("laydate-theme-molv"),i.appendChild(m)}e.remove(T.thisElemDate),a?t.elem.append(i):(document.body.appendChild(i),e.position()),e.checkDate().calendar(),e.changeEvent(),T.thisElemDate=e.elemID,"function"==typeof t.ready&&t.ready(w.extend({},t.dateTime,{month:t.dateTime.month+1}))},T.prototype.remove=function(e){var t=this,n=(t.config,w("#"+(e||t.elemID)));return n.hasClass(c)||t.checkDate(function(){n.remove()}),t},T.prototype.position=function(){var e=this,t=e.config,n=e.bindElem||t.elem[0],a=n.getBoundingClientRect(),i=e.elem.offsetWidth,r=e.elem.offsetHeight,o=function(e){return e=e?"scrollLeft":"scrollTop",document.body[e]|document.documentElement[e]},s=function(e){return document.documentElement[e?"clientWidth":"clientHeight"]},l=5,d=a.left,c=a.bottom;d+i+l>s("width")&&(d=s("width")-i-l),c+r+l>s()&&(c=a.top>r?a.top-r:s()-r,c-=2*l),t.position&&(e.elem.style.position=t.position),e.elem.style.left=d+("fixed"===t.position?0:o(1))+"px",e.elem.style.top=c+("fixed"===t.position?0:o())+"px"},T.prototype.hint=function(e){var t=this,n=(t.config,w.elem("div",{"class":h}));t.elem&&(n.innerHTML=e||"",w(t.elem).find("."+h).remove(),t.elem.appendChild(n),clearTimeout(t.hinTimer),t.hinTimer=setTimeout(function(){w(t.elem).find("."+h).remove()},3e3))},T.prototype.getAsYM=function(e,t,n){return n?t--:t++,t<0&&(t=11,e--),t>11&&(t=0,e++),[e,t]},T.prototype.systemDate=function(e){var t=e||new Date;return{year:t.getFullYear(),month:t.getMonth(),date:t.getDate(),hours:e?e.getHours():0,minutes:e?e.getMinutes():0,seconds:e?e.getSeconds():0}},T.prototype.checkDate=function(e){var t,a,i=this,r=(new Date,i.config),o=r.dateTime=r.dateTime||i.systemDate(),s=i.bindElem||r.elem[0],l=(i.isInput(s)?"val":"html",i.isInput(s)?s.value:"static"===r.position?"":s.innerHTML),c=function(e){e.year>d[1]&&(e.year=d[1],a=!0),e.month>11&&(e.month=11,a=!0),e.hours>23&&(e.hours=0,a=!0),e.minutes>59&&(e.minutes=0,e.hours++,a=!0),e.seconds>59&&(e.seconds=0,e.minutes++,a=!0),t=n.getEndDate(e.month+1,e.year),e.date>t&&(e.date=t,a=!0)},m=function(e,t,n){var o=["startTime","endTime"];t=(t.match(i.EXP_SPLIT)||[]).slice(1),n=n||0,r.range&&(i[o[n]]=i[o[n]]||{}),w.each(i.format,function(s,l){var c=parseFloat(t[s]);t[s].length必须遵循下述格式:
          "+(r.range?r.format+" "+r.range+" "+r.format:r.format)+"
          已为你重置"),a=!0):l&&l.constructor===Date?r.dateTime=i.systemDate(l):(r.dateTime=i.systemDate(),delete i.startState,delete i.endState,delete i.startDate,delete i.endDate,delete i.startTime,delete i.endTime),c(o),a&&l&&i.setValue(r.range?i.endDate?i.parse():"":i.parse()),e&&e(),i)},T.prototype.mark=function(e,t){var n,a=this,i=a.config;return w.each(i.mark,function(e,a){var i=e.split("-");i[0]!=t[0]&&0!=i[0]||i[1]!=t[1]&&0!=i[1]||i[2]!=t[2]||(n=a||t[2])}),n&&e.html(''+n+""),a},T.prototype.limit=function(e,t,n,a){var i,r=this,o=r.config,l={},d=o[n>41?"endDate":"dateTime"],c=w.extend({},d,t||{});return w.each({now:c,min:o.min,max:o.max},function(e,t){l[e]=r.newDate(w.extend({year:t.year,month:t.month,date:t.date},function(){var e={};return w.each(a,function(n,a){e[a]=t[a]}),e}())).getTime()}),i=l.nowl.max,e&&e[i?"addClass":"removeClass"](s),i},T.prototype.calendar=function(e){var t,a,i,r=this,s=r.config,l=e||s.dateTime,c=new Date,m=r.lang(),u="date"!==s.type&&"datetime"!==s.type,h=e?1:0,y=w(r.table[h]).find("td"),f=w(r.elemHeader[h][2]).find("span");if(l.yeard[1]&&(l.year=d[1],r.hint("最高只能支持到公元"+d[1]+"年")),r.firstDate||(r.firstDate=w.extend({},l)),c.setFullYear(l.year,l.month,1),t=c.getDay(),a=n.getEndDate(l.month||12,l.year),i=n.getEndDate(l.month+1,l.year),w.each(y,function(e,n){var d=[l.year,l.month],c=0;n=w(n),n.removeAttr("class"),e=t&&e=n.firstDate.year&&(r.month=a.max.month,r.date=a.max.date),n.limit(w(i),r,t),M++}),w(u[f?0:1]).attr("lay-ym",M-8+"-"+T[1]).html(b+p+" - "+(M-1+p))}else if("month"===e)w.each(new Array(12),function(e){var i=w.elem("li",{"lay-ym":e}),s={year:T[0],month:e};e+1==T[1]&&w(i).addClass(o),i.innerHTML=r.month[e]+(f?"月":""),d.appendChild(i),T[0]=n.firstDate.year&&(s.date=a.max.date),n.limit(w(i),s,t)}),w(u[f?0:1]).attr("lay-ym",T[0]+"-"+T[1]).html(T[0]+p);else if("time"===e){var E=function(){w(d).find("ol").each(function(e,a){w(a).find("li").each(function(a,i){n.limit(w(i),[{hours:a},{hours:n[x].hours,minutes:a},{hours:n[x].hours,minutes:n[x].minutes,seconds:a}][e],t,[["hours"],["hours","minutes"],["hours","minutes","seconds"]][e])})}),a.range||n.limit(w(n.footer).find(g),n[x],0,["hours","minutes","seconds"])};a.range?n[x]||(n[x]={hours:0,minutes:0,seconds:0}):n[x]=i,w.each([24,60,60],function(e,t){var a=w.elem("li"),i=["

          "+r.time[e]+"

            "];w.each(new Array(t),function(t){i.push(""+w.digit(t,2)+"")}),a.innerHTML=i.join("")+"
          ",d.appendChild(a)}),E()}if(y&&h.removeChild(y),h.appendChild(d),"year"===e||"month"===e)w(n.elemMain[t]).addClass("laydate-ym-show"),w(d).find("li").on("click",function(){var r=0|w(this).attr("lay-ym");if(!w(this).hasClass(s)){if(0===t)i[e]=r,l&&(n.startDate[e]=r),n.limit(w(n.footer).find(g),null,0);else if(l)n.endDate[e]=r;else{var c="year"===e?n.getAsYM(r,T[1]-1,"sub"):n.getAsYM(T[0],r,"sub");w.extend(i,{year:c[0],month:c[1]})}"year"===a.type||"month"===a.type?(w(d).find("."+o).removeClass(o),w(this).addClass(o),"month"===a.type&&"year"===e&&(n.listYM[t][0]=r,l&&(n[["startDate","endDate"][t]].year=r),n.list("month",t))):(n.checkDate("limit").calendar(),n.closeList()),n.setBtnStatus(),a.range||n.done(null,"change"),w(n.footer).find(D).removeClass(s)}});else{var S=w.elem("span",{"class":v}),k=function(){w(d).find("ol").each(function(e){var t=this,a=w(t).find("li");t.scrollTop=30*(n[x][C[e]]-2),t.scrollTop<=0&&a.each(function(e,n){if(!w(this).hasClass(s))return t.scrollTop=30*(e-2),!0})})},H=w(c[2]).find("."+v);k(),S.innerHTML=a.range?[r.startTime,r.endTime][t]:r.timeTips,w(n.elemMain[t]).addClass("laydate-time-show"),H[0]&&H.remove(),c[2].appendChild(S),w(d).find("ol").each(function(e){var t=this;w(t).find("li").on("click",function(){var r=0|this.innerHTML;w(this).hasClass(s)||(a.range?n[x][C[e]]=r:i[C[e]]=r,w(t).find("."+o).removeClass(o),w(this).addClass(o),E(),k(),(n.endDate||"time"===a.type)&&n.done(null,"change"),n.setBtnStatus())})})}return n},T.prototype.listYM=[],T.prototype.closeList=function(){var e=this;e.config;w.each(e.elemCont,function(t,n){w(this).find("."+m).remove(),w(e.elemMain[t]).removeClass("laydate-ym-show laydate-time-show")}),w(e.elem).find("."+v).remove()},T.prototype.setBtnStatus=function(e,t,n){var a,i=this,r=i.config,o=w(i.footer).find(g),d=r.range&&"date"!==r.type&&"time"!==r.type;d&&(t=t||i.startDate,n=n||i.endDate,a=i.newDate(t).getTime()>i.newDate(n).getTime(),i.limit(null,t)||i.limit(null,n)?o.addClass(s):o[a?"addClass":"removeClass"](s),e&&a&&i.hint("string"==typeof e?l.replace(/日期/g,e):l))},T.prototype.parse=function(e,t){var n=this,a=n.config,i=t||(e?w.extend({},n.endDate,n.endTime):a.range?w.extend({},n.startDate,n.startTime):a.dateTime),r=n.format.concat();return w.each(r,function(e,t){/yyyy|y/.test(t)?r[e]=w.digit(i.year,t.length):/MM|M/.test(t)?r[e]=w.digit(i.month+1,t.length):/dd|d/.test(t)?r[e]=w.digit(i.date,t.length):/HH|H/.test(t)?r[e]=w.digit(i.hours,t.length):/mm|m/.test(t)?r[e]=w.digit(i.minutes,t.length):/ss|s/.test(t)&&(r[e]=w.digit(i.seconds,t.length))}),a.range&&!e?r.join("")+" "+a.range+" "+n.parse(1):r.join("")},T.prototype.newDate=function(e){return e=e||{},new Date(e.year||1,e.month||0,e.date||1,e.hours||0,e.minutes||0,e.seconds||0)},T.prototype.setValue=function(e){var t=this,n=t.config,a=t.bindElem||n.elem[0],i=t.isInput(a)?"val":"html";return"static"===n.position||w(a)[i](e||""),this},T.prototype.stampRange=function(){var e,t,n=this,a=n.config,i=w(n.elem).find("td");if(a.range&&!n.endDate&&w(n.footer).find(g).addClass(s),n.endDate)return e=n.newDate({year:n.startDate.year,month:n.startDate.month,date:n.startDate.date}).getTime(),t=n.newDate({year:n.endDate.year,month:n.endDate.month,date:n.endDate.date}).getTime(),e>t?n.hint(l):void w.each(i,function(a,i){var r=w(i).attr("lay-ymd").split("-"),s=n.newDate({year:r[0],month:r[1]-1,date:r[2]}).getTime();w(i).removeClass(u+" "+o),s!==e&&s!==t||w(i).addClass(w(i).hasClass(y)||w(i).hasClass(f)?u:o),s>e&&s','
          '+f+"
          ",'
          ','',"
          ","
          "].join(""));return l.ie&&l.ie<8?c.removeClass("layui-hide").addClass(o):(d[0]&&d.remove(),s.call(a,m,c[0],y),c.addClass("layui-hide").after(m),a.index)},c.prototype.getContent=function(t){var e=u(t);if(e[0])return d(e[0].document.body.innerHTML)},c.prototype.getText=function(t){var i=u(t);if(i[0])return e(i[0].document.body).text()},c.prototype.setContent=function(t,i,a){var l=u(t);l[0]&&(a?e(l[0].document.body).append(i):e(l[0].document.body).html(i),layedit.sync(t))},c.prototype.sync=function(t){var i=u(t);if(i[0]){var a=e("#"+i[1].attr("textarea"));a.val(d(i[0].document.body.innerHTML))}},c.prototype.getSelection=function(t){var e=u(t);if(e[0]){var i=m(e[0].document);return document.selection?i.text:i.toString()}};var s=function(t,i,a){var l=this,n=t.find("iframe");n.css({height:a.height}).on("load",function(){var o=n.contents(),r=n.prop("contentWindow"),c=o.find("head"),s=e([""].join("")),u=o.find("body");c.append(s),u.attr("contenteditable","true").css({"min-height":a.height}).html(i.value||""),y.apply(l,[r,n,i,a]),g.call(l,r,t,a)})},u=function(t){var i=e("#LAY_layedit_"+t),a=i.prop("contentWindow");return[a,i]},d=function(t){return 8==l.ie&&(t=t.replace(/<.+>/g,function(t){return t.toLowerCase()})),t},y=function(t,a,n,o){var r=t.document,c=e(r.body);c.on("keydown",function(t){var e=t.keyCode;if(13===e){var a=m(r),l=p(a),n=l.parentNode;if("pre"===n.tagName.toLowerCase()){if(t.shiftKey)return;return i.msg("请暂时用shift+enter"),!1}r.execCommand("formatBlock",!1,"

          ")}}),e(n).parents("form").on("submit",function(){var t=c.html();8==l.ie&&(t=t.replace(/<.+>/g,function(t){return t.toLowerCase()})),n.value=t}),c.on("paste",function(e){r.execCommand("formatBlock",!1,"

          "),setTimeout(function(){f.call(t,c),n.value=c.html()},100)})},f=function(t){var i=this;i.document;t.find("*[style]").each(function(){var t=this.style.textAlign;this.removeAttribute("style"),e(this).css({"text-align":t||""})}),t.find("table").addClass("layui-table"),t.find("script,link").remove()},m=function(t){return t.selection?t.selection.createRange():t.getSelection().getRangeAt(0)},p=function(t){return t.endContainer||t.parentElement().childNodes[0]},v=function(t,i,a){var l=this.document,n=document.createElement(t);for(var o in i)n.setAttribute(o,i[o]);if(n.removeAttribute("text"),l.selection){var r=a.text||i.text;if("a"===t&&!r)return;r&&(n.innerHTML=r),a.pasteHTML(e(n).prop("outerHTML")),a.select()}else{var r=a.toString()||i.text;if("a"===t&&!r)return;r&&(n.innerHTML=r),a.deleteContents(),a.insertNode(n)}},h=function(t,i){var a=this.document,l="layedit-tool-active",n=p(m(a)),o=function(e){return t.find(".layedit-tool-"+e)};i&&i[i.hasClass(l)?"removeClass":"addClass"](l),t.find(">i").removeClass(l),o("unlink").addClass(r),e(n).parents().each(function(){var t=this.tagName.toLowerCase(),e=this.style.textAlign;"b"!==t&&"strong"!==t||o("b").addClass(l),"i"!==t&&"em"!==t||o("i").addClass(l),"u"===t&&o("u").addClass(l),"strike"===t&&o("d").addClass(l),"p"===t&&("center"===e?o("center").addClass(l):"right"===e?o("right").addClass(l):o("left").addClass(l)),"a"===t&&(o("link").addClass(l),o("unlink").removeClass(r))})},g=function(t,a,l){var n=t.document,o=e(n.body),c={link:function(i){var a=p(i),l=e(a).parent();b.call(o,{href:l.attr("href"),target:l.attr("target")},function(e){var a=l[0];"A"===a.tagName?a.href=e.url:v.call(t,"a",{target:e.target,href:e.url,text:e.url},i)})},unlink:function(t){n.execCommand("unlink")},face:function(e){x.call(this,function(i){v.call(t,"img",{src:i.src,alt:i.alt},e)})},image:function(a){var n=this;layui.use("upload",function(o){var r=l.uploadImage||{};o.render({url:r.url,method:r.type,elem:e(n).find("input")[0],done:function(e){0==e.code?(e.data=e.data||{},v.call(t,"img",{src:e.data.src,alt:e.data.title},a)):i.msg(e.msg||"上传失败")}})})},code:function(e){k.call(o,function(i){v.call(t,"pre",{text:i.code,"lay-lang":i.lang},e)})},help:function(){i.open({type:2,title:"帮助",area:["600px","380px"],shadeClose:!0,shade:.1,skin:"layui-layer-msg",content:["http://www.layui.com/about/layedit/help.html","no"]})}},s=a.find(".layui-layedit-tool"),u=function(){var i=e(this),a=i.attr("layedit-event"),l=i.attr("lay-command");if(!i.hasClass(r)){o.focus();var u=m(n);u.commonAncestorContainer;l?(n.execCommand(l),/justifyLeft|justifyCenter|justifyRight/.test(l)&&n.execCommand("formatBlock",!1,"

          "),setTimeout(function(){o.focus()},10)):c[a]&&c[a].call(this,u),h.call(t,s,i)}},d=/image/;s.find(">i").on("mousedown",function(){var t=e(this),i=t.attr("layedit-event");d.test(i)||u.call(this)}).on("click",function(){var t=e(this),i=t.attr("layedit-event");d.test(i)&&u.call(this)}),o.on("click",function(){h.call(t,s),i.close(x.index)})},b=function(t,e){var l=this,n=i.open({type:1,id:"LAY_layedit_link",area:"350px",shade:.05,shadeClose:!0,moveType:1,title:"超链接",skin:"layui-layer-msg",content:['

            ','
          • ','','
            ','',"
            ","
          • ",'
          • ','','
            ','",'","
            ","
          • ",'
          • ','','',"
          • ","
          "].join(""),success:function(t,n){var o="submit(layedit-link-yes)";a.render("radio"),t.find(".layui-btn-primary").on("click",function(){i.close(n),l.focus()}),a.on(o,function(t){i.close(b.index),e&&e(t.field)})}});b.index=n},x=function(t){var a=function(){var t=["[微笑]","[嘻嘻]","[哈哈]","[可爱]","[可怜]","[挖鼻]","[吃惊]","[害羞]","[挤眼]","[闭嘴]","[鄙视]","[爱你]","[泪]","[偷笑]","[亲亲]","[生病]","[太开心]","[白眼]","[右哼哼]","[左哼哼]","[嘘]","[衰]","[委屈]","[吐]","[哈欠]","[抱抱]","[怒]","[疑问]","[馋嘴]","[拜拜]","[思考]","[汗]","[困]","[睡]","[钱]","[失望]","[酷]","[色]","[哼]","[鼓掌]","[晕]","[悲伤]","[抓狂]","[黑线]","[阴险]","[怒骂]","[互粉]","[心]","[伤心]","[猪头]","[熊猫]","[兔子]","[ok]","[耶]","[good]","[NO]","[赞]","[来]","[弱]","[草泥马]","[神马]","[囧]","[浮云]","[给力]","[围观]","[威武]","[奥特曼]","[礼物]","[钟]","[话筒]","[蜡烛]","[蛋糕]"],e={};return layui.each(t,function(t,i){e[i]=layui.cache.dir+"images/face/"+t+".gif"}),e}();return x.hide=x.hide||function(t){"face"!==e(t.target).attr("layedit-event")&&i.close(x.index)},x.index=i.tips(function(){var t=[];return layui.each(a,function(e,i){t.push('
        4. '+e+'
        5. ')}),'
            '+t.join("")+"
          "}(),this,{tips:1,time:0,skin:"layui-box layui-util-face",maxWidth:500,success:function(l,n){l.css({marginTop:-4,marginLeft:-10}).find(".layui-clear>li").on("click",function(){t&&t({src:a[this.title],alt:this.title}),i.close(n)}),e(document).off("click",x.hide).on("click",x.hide)}})},k=function(t){var e=this,l=i.open({type:1,id:"LAY_layedit_code",area:"550px",shade:.05,shadeClose:!0,moveType:1,title:"插入代码",skin:"layui-layer-msg",content:['
            ','
          • ','','
            ','","
            ","
          • ",'
          • ','','
            ','',"
            ","
          • ",'
          • ','','',"
          • ","
          "].join(""),success:function(l,n){var o="submit(layedit-code-yes)";a.render("select"),l.find(".layui-btn-primary").on("click",function(){i.close(n),e.focus()}),a.on(o,function(e){i.close(k.index),t&&t(e.field)})}});k.index=l},C={html:'',strong:'',italic:'',underline:'',del:'',"|":'',left:'',center:'',right:'',link:'',unlink:'',face:'',image:'',code:'',help:''},w=new c;t(n,w)}); \ No newline at end of file diff --git a/public/static/res/layui/lay/modules/layer.js b/public/static/res/layui/lay/modules/layer.js new file mode 100644 index 0000000..bc81661 --- /dev/null +++ b/public/static/res/layui/lay/modules/layer.js @@ -0,0 +1,2 @@ +/** layui-v2.5.5 MIT License By https://www.layui.com */ + ;!function(e,t){"use strict";var i,n,a=e.layui&&layui.define,o={getPath:function(){var e=document.currentScript?document.currentScript.src:function(){for(var e,t=document.scripts,i=t.length-1,n=i;n>0;n--)if("interactive"===t[n].readyState){e=t[n].src;break}return e||t[i].src}();return e.substring(0,e.lastIndexOf("/")+1)}(),config:{},end:{},minIndex:0,minLeft:[],btn:["确定","取消"],type:["dialog","page","iframe","loading","tips"],getStyle:function(t,i){var n=t.currentStyle?t.currentStyle:e.getComputedStyle(t,null);return n[n.getPropertyValue?"getPropertyValue":"getAttribute"](i)},link:function(t,i,n){if(r.path){var a=document.getElementsByTagName("head")[0],s=document.createElement("link");"string"==typeof i&&(n=i);var l=(n||t).replace(/\.|\//g,""),f="layuicss-"+l,c=0;s.rel="stylesheet",s.href=r.path+t,s.id=f,document.getElementById(f)||a.appendChild(s),"function"==typeof i&&!function u(){return++c>80?e.console&&console.error("layer.css: Invalid"):void(1989===parseInt(o.getStyle(document.getElementById(f),"width"))?i():setTimeout(u,100))}()}}},r={v:"3.1.1",ie:function(){var t=navigator.userAgent.toLowerCase();return!!(e.ActiveXObject||"ActiveXObject"in e)&&((t.match(/msie\s(\d+)/)||[])[1]||"11")}(),index:e.layer&&e.layer.v?1e5:0,path:o.getPath,config:function(e,t){return e=e||{},r.cache=o.config=i.extend({},o.config,e),r.path=o.config.path||r.path,"string"==typeof e.extend&&(e.extend=[e.extend]),o.config.path&&r.ready(),e.extend?(a?layui.addcss("modules/layer/"+e.extend):o.link("theme/"+e.extend),this):this},ready:function(e){var t="layer",i="",n=(a?"modules/layer/":"theme/")+"default/layer.css?v="+r.v+i;return a?layui.addcss(n,e,t):o.link(n,e,t),this},alert:function(e,t,n){var a="function"==typeof t;return a&&(n=t),r.open(i.extend({content:e,yes:n},a?{}:t))},confirm:function(e,t,n,a){var s="function"==typeof t;return s&&(a=n,n=t),r.open(i.extend({content:e,btn:o.btn,yes:n,btn2:a},s?{}:t))},msg:function(e,n,a){var s="function"==typeof n,f=o.config.skin,c=(f?f+" "+f+"-msg":"")||"layui-layer-msg",u=l.anim.length-1;return s&&(a=n),r.open(i.extend({content:e,time:3e3,shade:!1,skin:c,title:!1,closeBtn:!1,btn:!1,resize:!1,end:a},s&&!o.config.skin?{skin:c+" layui-layer-hui",anim:u}:function(){return n=n||{},(n.icon===-1||n.icon===t&&!o.config.skin)&&(n.skin=c+" "+(n.skin||"layui-layer-hui")),n}()))},load:function(e,t){return r.open(i.extend({type:3,icon:e||0,resize:!1,shade:.01},t))},tips:function(e,t,n){return r.open(i.extend({type:4,content:[e,t],closeBtn:!1,time:3e3,shade:!1,resize:!1,fixed:!1,maxWidth:210},n))}},s=function(e){var t=this;t.index=++r.index,t.config=i.extend({},t.config,o.config,e),document.body?t.creat():setTimeout(function(){t.creat()},30)};s.pt=s.prototype;var l=["layui-layer",".layui-layer-title",".layui-layer-main",".layui-layer-dialog","layui-layer-iframe","layui-layer-content","layui-layer-btn","layui-layer-close"];l.anim=["layer-anim-00","layer-anim-01","layer-anim-02","layer-anim-03","layer-anim-04","layer-anim-05","layer-anim-06"],s.pt.config={type:0,shade:.3,fixed:!0,move:l[1],title:"信息",offset:"auto",area:"auto",closeBtn:1,time:0,zIndex:19891014,maxWidth:360,anim:0,isOutAnim:!0,icon:-1,moveType:1,resize:!0,scrollbar:!0,tips:2},s.pt.vessel=function(e,t){var n=this,a=n.index,r=n.config,s=r.zIndex+a,f="object"==typeof r.title,c=r.maxmin&&(1===r.type||2===r.type),u=r.title?'
          '+(f?r.title[0]:r.title)+"
          ":"";return r.zIndex=s,t([r.shade?'
          ':"",'
          '+(e&&2!=r.type?"":u)+'
          '+(0==r.type&&r.icon!==-1?'':"")+(1==r.type&&e?"":r.content||"")+'
          '+function(){var e=c?'':"";return r.closeBtn&&(e+=''),e}()+""+(r.btn?function(){var e="";"string"==typeof r.btn&&(r.btn=[r.btn]);for(var t=0,i=r.btn.length;t'+r.btn[t]+"";return'
          '+e+"
          "}():"")+(r.resize?'':"")+"
          "],u,i('
          ')),n},s.pt.creat=function(){var e=this,t=e.config,a=e.index,s=t.content,f="object"==typeof s,c=i("body");if(!t.id||!i("#"+t.id)[0]){switch("string"==typeof t.area&&(t.area="auto"===t.area?["",""]:[t.area,""]),t.shift&&(t.anim=t.shift),6==r.ie&&(t.fixed=!1),t.type){case 0:t.btn="btn"in t?t.btn:o.btn[0],r.closeAll("dialog");break;case 2:var s=t.content=f?t.content:[t.content||"","auto"];t.content='';break;case 3:delete t.title,delete t.closeBtn,t.icon===-1&&0===t.icon,r.closeAll("loading");break;case 4:f||(t.content=[t.content,"body"]),t.follow=t.content[1],t.content=t.content[0]+'',delete t.title,t.tips="object"==typeof t.tips?t.tips:[t.tips,!0],t.tipsMore||r.closeAll("tips")}if(e.vessel(f,function(n,r,u){c.append(n[0]),f?function(){2==t.type||4==t.type?function(){i("body").append(n[1])}():function(){s.parents("."+l[0])[0]||(s.data("display",s.css("display")).show().addClass("layui-layer-wrap").wrap(n[1]),i("#"+l[0]+a).find("."+l[5]).before(r))}()}():c.append(n[1]),i(".layui-layer-move")[0]||c.append(o.moveElem=u),e.layero=i("#"+l[0]+a),t.scrollbar||l.html.css("overflow","hidden").attr("layer-full",a)}).auto(a),i("#layui-layer-shade"+e.index).css({"background-color":t.shade[1]||"#000",opacity:t.shade[0]||t.shade}),2==t.type&&6==r.ie&&e.layero.find("iframe").attr("src",s[0]),4==t.type?e.tips():e.offset(),t.fixed&&n.on("resize",function(){e.offset(),(/^\d+%$/.test(t.area[0])||/^\d+%$/.test(t.area[1]))&&e.auto(a),4==t.type&&e.tips()}),t.time<=0||setTimeout(function(){r.close(e.index)},t.time),e.move().callback(),l.anim[t.anim]){var u="layer-anim "+l.anim[t.anim];e.layero.addClass(u).one("webkitAnimationEnd mozAnimationEnd MSAnimationEnd oanimationend animationend",function(){i(this).removeClass(u)})}t.isOutAnim&&e.layero.data("isOutAnim",!0)}},s.pt.auto=function(e){var t=this,a=t.config,o=i("#"+l[0]+e);""===a.area[0]&&a.maxWidth>0&&(r.ie&&r.ie<8&&a.btn&&o.width(o.innerWidth()),o.outerWidth()>a.maxWidth&&o.width(a.maxWidth));var s=[o.innerWidth(),o.innerHeight()],f=o.find(l[1]).outerHeight()||0,c=o.find("."+l[6]).outerHeight()||0,u=function(e){e=o.find(e),e.height(s[1]-f-c-2*(0|parseFloat(e.css("padding-top"))))};switch(a.type){case 2:u("iframe");break;default:""===a.area[1]?a.maxHeight>0&&o.outerHeight()>a.maxHeight?(s[1]=a.maxHeight,u("."+l[5])):a.fixed&&s[1]>=n.height()&&(s[1]=n.height(),u("."+l[5])):u("."+l[5])}return t},s.pt.offset=function(){var e=this,t=e.config,i=e.layero,a=[i.outerWidth(),i.outerHeight()],o="object"==typeof t.offset;e.offsetTop=(n.height()-a[1])/2,e.offsetLeft=(n.width()-a[0])/2,o?(e.offsetTop=t.offset[0],e.offsetLeft=t.offset[1]||e.offsetLeft):"auto"!==t.offset&&("t"===t.offset?e.offsetTop=0:"r"===t.offset?e.offsetLeft=n.width()-a[0]:"b"===t.offset?e.offsetTop=n.height()-a[1]:"l"===t.offset?e.offsetLeft=0:"lt"===t.offset?(e.offsetTop=0,e.offsetLeft=0):"lb"===t.offset?(e.offsetTop=n.height()-a[1],e.offsetLeft=0):"rt"===t.offset?(e.offsetTop=0,e.offsetLeft=n.width()-a[0]):"rb"===t.offset?(e.offsetTop=n.height()-a[1],e.offsetLeft=n.width()-a[0]):e.offsetTop=t.offset),t.fixed||(e.offsetTop=/%$/.test(e.offsetTop)?n.height()*parseFloat(e.offsetTop)/100:parseFloat(e.offsetTop),e.offsetLeft=/%$/.test(e.offsetLeft)?n.width()*parseFloat(e.offsetLeft)/100:parseFloat(e.offsetLeft),e.offsetTop+=n.scrollTop(),e.offsetLeft+=n.scrollLeft()),i.attr("minLeft")&&(e.offsetTop=n.height()-(i.find(l[1]).outerHeight()||0),e.offsetLeft=i.css("left")),i.css({top:e.offsetTop,left:e.offsetLeft})},s.pt.tips=function(){var e=this,t=e.config,a=e.layero,o=[a.outerWidth(),a.outerHeight()],r=i(t.follow);r[0]||(r=i("body"));var s={width:r.outerWidth(),height:r.outerHeight(),top:r.offset().top,left:r.offset().left},f=a.find(".layui-layer-TipsG"),c=t.tips[0];t.tips[1]||f.remove(),s.autoLeft=function(){s.left+o[0]-n.width()>0?(s.tipLeft=s.left+s.width-o[0],f.css({right:12,left:"auto"})):s.tipLeft=s.left},s.where=[function(){s.autoLeft(),s.tipTop=s.top-o[1]-10,f.removeClass("layui-layer-TipsB").addClass("layui-layer-TipsT").css("border-right-color",t.tips[1])},function(){s.tipLeft=s.left+s.width+10,s.tipTop=s.top,f.removeClass("layui-layer-TipsL").addClass("layui-layer-TipsR").css("border-bottom-color",t.tips[1])},function(){s.autoLeft(),s.tipTop=s.top+s.height+10,f.removeClass("layui-layer-TipsT").addClass("layui-layer-TipsB").css("border-right-color",t.tips[1])},function(){s.tipLeft=s.left-o[0]-10,s.tipTop=s.top,f.removeClass("layui-layer-TipsR").addClass("layui-layer-TipsL").css("border-bottom-color",t.tips[1])}],s.where[c-1](),1===c?s.top-(n.scrollTop()+o[1]+16)<0&&s.where[2]():2===c?n.width()-(s.left+s.width+o[0]+16)>0||s.where[3]():3===c?s.top-n.scrollTop()+s.height+o[1]+16-n.height()>0&&s.where[0]():4===c&&o[0]+16-s.left>0&&s.where[1](),a.find("."+l[5]).css({"background-color":t.tips[1],"padding-right":t.closeBtn?"30px":""}),a.css({left:s.tipLeft-(t.fixed?n.scrollLeft():0),top:s.tipTop-(t.fixed?n.scrollTop():0)})},s.pt.move=function(){var e=this,t=e.config,a=i(document),s=e.layero,l=s.find(t.move),f=s.find(".layui-layer-resize"),c={};return t.move&&l.css("cursor","move"),l.on("mousedown",function(e){e.preventDefault(),t.move&&(c.moveStart=!0,c.offset=[e.clientX-parseFloat(s.css("left")),e.clientY-parseFloat(s.css("top"))],o.moveElem.css("cursor","move").show())}),f.on("mousedown",function(e){e.preventDefault(),c.resizeStart=!0,c.offset=[e.clientX,e.clientY],c.area=[s.outerWidth(),s.outerHeight()],o.moveElem.css("cursor","se-resize").show()}),a.on("mousemove",function(i){if(c.moveStart){var a=i.clientX-c.offset[0],o=i.clientY-c.offset[1],l="fixed"===s.css("position");if(i.preventDefault(),c.stX=l?0:n.scrollLeft(),c.stY=l?0:n.scrollTop(),!t.moveOut){var f=n.width()-s.outerWidth()+c.stX,u=n.height()-s.outerHeight()+c.stY;af&&(a=f),ou&&(o=u)}s.css({left:a,top:o})}if(t.resize&&c.resizeStart){var a=i.clientX-c.offset[0],o=i.clientY-c.offset[1];i.preventDefault(),r.style(e.index,{width:c.area[0]+a,height:c.area[1]+o}),c.isResize=!0,t.resizing&&t.resizing(s)}}).on("mouseup",function(e){c.moveStart&&(delete c.moveStart,o.moveElem.hide(),t.moveEnd&&t.moveEnd(s)),c.resizeStart&&(delete c.resizeStart,o.moveElem.hide())}),e},s.pt.callback=function(){function e(){var e=a.cancel&&a.cancel(t.index,n);e===!1||r.close(t.index)}var t=this,n=t.layero,a=t.config;t.openLayer(),a.success&&(2==a.type?n.find("iframe").on("load",function(){a.success(n,t.index)}):a.success(n,t.index)),6==r.ie&&t.IE6(n),n.find("."+l[6]).children("a").on("click",function(){var e=i(this).index();if(0===e)a.yes?a.yes(t.index,n):a.btn1?a.btn1(t.index,n):r.close(t.index);else{var o=a["btn"+(e+1)]&&a["btn"+(e+1)](t.index,n);o===!1||r.close(t.index)}}),n.find("."+l[7]).on("click",e),a.shadeClose&&i("#layui-layer-shade"+t.index).on("click",function(){r.close(t.index)}),n.find(".layui-layer-min").on("click",function(){var e=a.min&&a.min(n);e===!1||r.min(t.index,a)}),n.find(".layui-layer-max").on("click",function(){i(this).hasClass("layui-layer-maxmin")?(r.restore(t.index),a.restore&&a.restore(n)):(r.full(t.index,a),setTimeout(function(){a.full&&a.full(n)},100))}),a.end&&(o.end[t.index]=a.end)},o.reselect=function(){i.each(i("select"),function(e,t){var n=i(this);n.parents("."+l[0])[0]||1==n.attr("layer")&&i("."+l[0]).length<1&&n.removeAttr("layer").show(),n=null})},s.pt.IE6=function(e){i("select").each(function(e,t){var n=i(this);n.parents("."+l[0])[0]||"none"===n.css("display")||n.attr({layer:"1"}).hide(),n=null})},s.pt.openLayer=function(){var e=this;r.zIndex=e.config.zIndex,r.setTop=function(e){var t=function(){r.zIndex++,e.css("z-index",r.zIndex+1)};return r.zIndex=parseInt(e[0].style.zIndex),e.on("mousedown",t),r.zIndex}},o.record=function(e){var t=[e.width(),e.height(),e.position().top,e.position().left+parseFloat(e.css("margin-left"))];e.find(".layui-layer-max").addClass("layui-layer-maxmin"),e.attr({area:t})},o.rescollbar=function(e){l.html.attr("layer-full")==e&&(l.html[0].style.removeProperty?l.html[0].style.removeProperty("overflow"):l.html[0].style.removeAttribute("overflow"),l.html.removeAttr("layer-full"))},e.layer=r,r.getChildFrame=function(e,t){return t=t||i("."+l[4]).attr("times"),i("#"+l[0]+t).find("iframe").contents().find(e)},r.getFrameIndex=function(e){return i("#"+e).parents("."+l[4]).attr("times")},r.iframeAuto=function(e){if(e){var t=r.getChildFrame("html",e).outerHeight(),n=i("#"+l[0]+e),a=n.find(l[1]).outerHeight()||0,o=n.find("."+l[6]).outerHeight()||0;n.css({height:t+a+o}),n.find("iframe").css({height:t})}},r.iframeSrc=function(e,t){i("#"+l[0]+e).find("iframe").attr("src",t)},r.style=function(e,t,n){var a=i("#"+l[0]+e),r=a.find(".layui-layer-content"),s=a.attr("type"),f=a.find(l[1]).outerHeight()||0,c=a.find("."+l[6]).outerHeight()||0;a.attr("minLeft");s!==o.type[3]&&s!==o.type[4]&&(n||(parseFloat(t.width)<=260&&(t.width=260),parseFloat(t.height)-f-c<=64&&(t.height=64+f+c)),a.css(t),c=a.find("."+l[6]).outerHeight(),s===o.type[2]?a.find("iframe").css({height:parseFloat(t.height)-f-c}):r.css({height:parseFloat(t.height)-f-c-parseFloat(r.css("padding-top"))-parseFloat(r.css("padding-bottom"))}))},r.min=function(e,t){var a=i("#"+l[0]+e),s=a.find(l[1]).outerHeight()||0,f=a.attr("minLeft")||181*o.minIndex+"px",c=a.css("position");o.record(a),o.minLeft[0]&&(f=o.minLeft[0],o.minLeft.shift()),a.attr("position",c),r.style(e,{width:180,height:s,left:f,top:n.height()-s,position:"fixed",overflow:"hidden"},!0),a.find(".layui-layer-min").hide(),"page"===a.attr("type")&&a.find(l[4]).hide(),o.rescollbar(e),a.attr("minLeft")||o.minIndex++,a.attr("minLeft",f)},r.restore=function(e){var t=i("#"+l[0]+e),n=t.attr("area").split(",");t.attr("type");r.style(e,{width:parseFloat(n[0]),height:parseFloat(n[1]),top:parseFloat(n[2]),left:parseFloat(n[3]),position:t.attr("position"),overflow:"visible"},!0),t.find(".layui-layer-max").removeClass("layui-layer-maxmin"),t.find(".layui-layer-min").show(),"page"===t.attr("type")&&t.find(l[4]).show(),o.rescollbar(e)},r.full=function(e){var t,a=i("#"+l[0]+e);o.record(a),l.html.attr("layer-full")||l.html.css("overflow","hidden").attr("layer-full",e),clearTimeout(t),t=setTimeout(function(){var t="fixed"===a.css("position");r.style(e,{top:t?0:n.scrollTop(),left:t?0:n.scrollLeft(),width:n.width(),height:n.height()},!0),a.find(".layui-layer-min").hide()},100)},r.title=function(e,t){var n=i("#"+l[0]+(t||r.index)).find(l[1]);n.html(e)},r.close=function(e){var t=i("#"+l[0]+e),n=t.attr("type"),a="layer-anim-close";if(t[0]){var s="layui-layer-wrap",f=function(){if(n===o.type[1]&&"object"===t.attr("conType")){t.children(":not(."+l[5]+")").remove();for(var a=t.find("."+s),r=0;r<2;r++)a.unwrap();a.css("display",a.data("display")).removeClass(s)}else{if(n===o.type[2])try{var f=i("#"+l[4]+e)[0];f.contentWindow.document.write(""),f.contentWindow.close(),t.find("."+l[5])[0].removeChild(f)}catch(c){}t[0].innerHTML="",t.remove()}"function"==typeof o.end[e]&&o.end[e](),delete o.end[e]};t.data("isOutAnim")&&t.addClass("layer-anim "+a),i("#layui-layer-moves, #layui-layer-shade"+e).remove(),6==r.ie&&o.reselect(),o.rescollbar(e),t.attr("minLeft")&&(o.minIndex--,o.minLeft.push(t.attr("minLeft"))),r.ie&&r.ie<10||!t.data("isOutAnim")?f():setTimeout(function(){f()},200)}},r.closeAll=function(e){i.each(i("."+l[0]),function(){var t=i(this),n=e?t.attr("type")===e:1;n&&r.close(t.attr("times")),n=null})};var f=r.cache||{},c=function(e){return f.skin?" "+f.skin+" "+f.skin+"-"+e:""};r.prompt=function(e,t){var a="";if(e=e||{},"function"==typeof e&&(t=e),e.area){var o=e.area;a='style="width: '+o[0]+"; height: "+o[1]+';"',delete e.area}var s,l=2==e.formType?'":function(){return''}(),f=e.success;return delete e.success,r.open(i.extend({type:1,btn:["确定","取消"],content:l,skin:"layui-layer-prompt"+c("prompt"),maxWidth:n.width(),success:function(t){s=t.find(".layui-layer-input"),s.val(e.value||"").focus(),"function"==typeof f&&f(t)},resize:!1,yes:function(i){var n=s.val();""===n?s.focus():n.length>(e.maxlength||500)?r.tips("最多输入"+(e.maxlength||500)+"个字数",s,{tips:1}):t&&t(n,i,s)}},e))},r.tab=function(e){e=e||{};var t=e.tab||{},n="layui-this",a=e.success;return delete e.success,r.open(i.extend({type:1,skin:"layui-layer-tab"+c("tab"),resize:!1,title:function(){var e=t.length,i=1,a="";if(e>0)for(a=''+t[0].title+"";i"+t[i].title+"";return a}(),content:'
            '+function(){var e=t.length,i=1,a="";if(e>0)for(a='
          • '+(t[0].content||"no content")+"
          • ";i'+(t[i].content||"no content")+"";return a}()+"
          ",success:function(t){var o=t.find(".layui-layer-title").children(),r=t.find(".layui-layer-tabmain").children();o.on("mousedown",function(t){t.stopPropagation?t.stopPropagation():t.cancelBubble=!0;var a=i(this),o=a.index();a.addClass(n).siblings().removeClass(n),r.eq(o).show().siblings().hide(),"function"==typeof e.change&&e.change(o)}),"function"==typeof a&&a(t)}},e))},r.photos=function(t,n,a){function o(e,t,i){var n=new Image;return n.src=e,n.complete?t(n):(n.onload=function(){n.onload=null,t(n)},void(n.onerror=function(e){n.onerror=null,i(e)}))}var s={};if(t=t||{},t.photos){var l=t.photos.constructor===Object,f=l?t.photos:{},u=f.data||[],d=f.start||0;s.imgIndex=(0|d)+1,t.img=t.img||"img";var y=t.success;if(delete t.success,l){if(0===u.length)return r.msg("没有图片")}else{var p=i(t.photos),h=function(){u=[],p.find(t.img).each(function(e){var t=i(this);t.attr("layer-index",e),u.push({alt:t.attr("alt"),pid:t.attr("layer-pid"),src:t.attr("layer-src")||t.attr("src"),thumb:t.attr("src")})})};if(h(),0===u.length)return;if(n||p.on("click",t.img,function(){var e=i(this),n=e.attr("layer-index");r.photos(i.extend(t,{photos:{start:n,data:u,tab:t.tab},full:t.full}),!0),h()}),!n)return}s.imgprev=function(e){s.imgIndex--,s.imgIndex<1&&(s.imgIndex=u.length),s.tabimg(e)},s.imgnext=function(e,t){s.imgIndex++,s.imgIndex>u.length&&(s.imgIndex=1,t)||s.tabimg(e)},s.keyup=function(e){if(!s.end){var t=e.keyCode;e.preventDefault(),37===t?s.imgprev(!0):39===t?s.imgnext(!0):27===t&&r.close(s.index)}},s.tabimg=function(e){if(!(u.length<=1))return f.start=s.imgIndex-1,r.close(s.index),r.photos(t,!0,e)},s.event=function(){s.bigimg.hover(function(){s.imgsee.show()},function(){s.imgsee.hide()}),s.bigimg.find(".layui-layer-imgprev").on("click",function(e){e.preventDefault(),s.imgprev()}),s.bigimg.find(".layui-layer-imgnext").on("click",function(e){e.preventDefault(),s.imgnext()}),i(document).on("keyup",s.keyup)},s.loadi=r.load(1,{shade:!("shade"in t)&&.9,scrollbar:!1}),o(u[d].src,function(n){r.close(s.loadi),s.index=r.open(i.extend({type:1,id:"layui-layer-photos",area:function(){var a=[n.width,n.height],o=[i(e).width()-100,i(e).height()-100];if(!t.full&&(a[0]>o[0]||a[1]>o[1])){var r=[a[0]/o[0],a[1]/o[1]];r[0]>r[1]?(a[0]=a[0]/r[0],a[1]=a[1]/r[0]):r[0]'+(u[d].alt||
          '+(u.length>1?'':"")+'
          '+(u[d].alt||"")+""+s.imgIndex+"/"+u.length+"
          ",success:function(e,i){s.bigimg=e.find(".layui-layer-phimg"),s.imgsee=e.find(".layui-layer-imguide,.layui-layer-imgbar"),s.event(e),t.tab&&t.tab(u[d],e),"function"==typeof y&&y(e)},end:function(){s.end=!0,i(document).off("keyup",s.keyup)}},t))},function(){r.close(s.loadi),r.msg("当前图片地址异常
          是否继续查看下一张?",{time:3e4,btn:["下一张","不看了"],yes:function(){u.length>1&&s.imgnext(!0,!0)}})})}},o.run=function(t){i=t,n=i(e),l.html=i("html"),r.open=function(e){var t=new s(e);return t.index}},e.layui&&layui.define?(r.ready(),layui.define("jquery",function(t){r.path=layui.cache.dir,o.run(layui.$),e.layer=r,t("layer",r)})):"function"==typeof define&&define.amd?define(["jquery"],function(){return o.run(e.jQuery),r}):function(){o.run(e.jQuery),r.ready()}()}(window); \ No newline at end of file diff --git a/public/static/res/layui/lay/modules/laypage.js b/public/static/res/layui/lay/modules/laypage.js new file mode 100644 index 0000000..478c11f --- /dev/null +++ b/public/static/res/layui/lay/modules/laypage.js @@ -0,0 +1,2 @@ +/** layui-v2.5.5 MIT License By https://www.layui.com */ + ;layui.define(function(e){"use strict";var a=document,t="getElementById",n="getElementsByTagName",i="laypage",r="layui-disabled",u=function(e){var a=this;a.config=e||{},a.config.index=++s.index,a.render(!0)};u.prototype.type=function(){var e=this.config;if("object"==typeof e.elem)return void 0===e.elem.length?2:3},u.prototype.view=function(){var e=this,a=e.config,t=a.groups="groups"in a?0|a.groups:5;a.layout="object"==typeof a.layout?a.layout:["prev","page","next"],a.count=0|a.count,a.curr=0|a.curr||1,a.limits="object"==typeof a.limits?a.limits:[10,20,30,40,50],a.limit=0|a.limit||10,a.pages=Math.ceil(a.count/a.limit)||1,a.curr>a.pages&&(a.curr=a.pages),t<0?t=1:t>a.pages&&(t=a.pages),a.prev="prev"in a?a.prev:"上一页",a.next="next"in a?a.next:"下一页";var n=a.pages>t?Math.ceil((a.curr+(t>1?1:0))/(t>0?t:1)):1,i={prev:function(){return a.prev?''+a.prev+"":""}(),page:function(){var e=[];if(a.count<1)return"";n>1&&a.first!==!1&&0!==t&&e.push(''+(a.first||1)+"");var i=Math.floor((t-1)/2),r=n>1?a.curr-i:1,u=n>1?function(){var e=a.curr+(t-i-1);return e>a.pages?a.pages:e}():t;for(u-r2&&e.push('');r<=u;r++)r===a.curr?e.push('"+r+""):e.push(''+r+"");return a.pages>t&&a.pages>u&&a.last!==!1&&(u+1…'),0!==t&&e.push(''+(a.last||a.pages)+"")),e.join("")}(),next:function(){return a.next?''+a.next+"":""}(),count:'共 '+a.count+" 条",limit:function(){var e=['"}(),refresh:['','',""].join(""),skip:function(){return['到第','','页',""].join("")}()};return['
          ',function(){var e=[];return layui.each(a.layout,function(a,t){i[t]&&e.push(i[t])}),e.join("")}(),"
          "].join("")},u.prototype.jump=function(e,a){if(e){var t=this,i=t.config,r=e.children,u=e[n]("button")[0],l=e[n]("input")[0],p=e[n]("select")[0],c=function(){var e=0|l.value.replace(/\s|\D/g,"");e&&(i.curr=e,t.render())};if(a)return c();for(var o=0,y=r.length;oi.pages||(i.curr=e,t.render())});p&&s.on(p,"change",function(){var e=this.value;i.curr*e>i.count&&(i.curr=Math.ceil(i.count/e)),i.limit=e,t.render()}),u&&s.on(u,"click",function(){c()})}},u.prototype.skip=function(e){if(e){var a=this,t=e[n]("input")[0];t&&s.on(t,"keyup",function(t){var n=this.value,i=t.keyCode;/^(37|38|39|40)$/.test(i)||(/\D/.test(n)&&(this.value=n.replace(/\D/,"")),13===i&&a.jump(e,!0))})}},u.prototype.render=function(e){var n=this,i=n.config,r=n.type(),u=n.view();2===r?i.elem&&(i.elem.innerHTML=u):3===r?i.elem.html(u):a[t](i.elem)&&(a[t](i.elem).innerHTML=u),i.jump&&i.jump(i,e);var s=a[t]("layui-laypage-"+i.index);n.jump(s),i.hash&&!e&&(location.hash="!"+i.hash+"="+i.curr),n.skip(s)};var s={render:function(e){var a=new u(e);return a.index},index:layui.laypage?layui.laypage.index+1e4:0,on:function(e,a,t){return e.attachEvent?e.attachEvent("on"+a,function(a){a.target=a.srcElement,t.call(e,a)}):e.addEventListener(a,t,!1),this}};e(i,s)}); \ No newline at end of file diff --git a/public/static/res/layui/lay/modules/laytpl.js b/public/static/res/layui/lay/modules/laytpl.js new file mode 100644 index 0000000..dd0d567 --- /dev/null +++ b/public/static/res/layui/lay/modules/laytpl.js @@ -0,0 +1,2 @@ +/** layui-v2.5.5 MIT License By https://www.layui.com */ + ;layui.define(function(e){"use strict";var r={open:"{{",close:"}}"},c={exp:function(e){return new RegExp(e,"g")},query:function(e,c,t){var o=["#([\\s\\S])+?","([^{#}])*?"][e||0];return n((c||"")+r.open+o+r.close+(t||""))},escape:function(e){return String(e||"").replace(/&(?!#?[a-zA-Z0-9]+;)/g,"&").replace(//g,">").replace(/'/g,"'").replace(/"/g,""")},error:function(e,r){var c="Laytpl Error:";return"object"==typeof console&&console.error(c+e+"\n"+(r||"")),c+e}},n=c.exp,t=function(e){this.tpl=e};t.pt=t.prototype,window.errors=0,t.pt.parse=function(e,t){var o=this,p=e,a=n("^"+r.open+"#",""),l=n(r.close+"$","");e=e.replace(/\s+|\r|\t|\n/g," ").replace(n(r.open+"#"),r.open+"# ").replace(n(r.close+"}"),"} "+r.close).replace(/\\/g,"\\\\").replace(n(r.open+"!(.+?)!"+r.close),function(e){return e=e.replace(n("^"+r.open+"!"),"").replace(n("!"+r.close),"").replace(n(r.open+"|"+r.close),function(e){return e.replace(/(.)/g,"\\$1")})}).replace(/(?="|')/g,"\\").replace(c.query(),function(e){return e=e.replace(a,"").replace(l,""),'";'+e.replace(/\\/g,"")+';view+="'}).replace(c.query(1),function(e){var c='"+(';return e.replace(/\s/g,"")===r.open+r.close?"":(e=e.replace(n(r.open+"|"+r.close),""),/^=/.test(e)&&(e=e.replace(/^=/,""),c='"+_escape_('),c+e.replace(/\\/g,"")+')+"')}),e='"use strict";var view = "'+e+'";return view;';try{return o.cache=e=new Function("d, _escape_",e),e(t,c.escape)}catch(u){return delete o.cache,c.error(u,p)}},t.pt.render=function(e,r){var n,t=this;return e?(n=t.cache?t.cache(e,c.escape):t.parse(t.tpl,e),r?void r(n):n):c.error("no data")};var o=function(e){return"string"!=typeof e?c.error("Template not found"):new t(e)};o.config=function(e){e=e||{};for(var c in e)r[c]=e[c]},o.v="1.2.0",e("laytpl",o)}); \ No newline at end of file diff --git a/public/static/res/layui/lay/modules/mobile.js b/public/static/res/layui/lay/modules/mobile.js new file mode 100644 index 0000000..bd2fe1b --- /dev/null +++ b/public/static/res/layui/lay/modules/mobile.js @@ -0,0 +1,2 @@ +/** layui-v2.5.5 MIT License By https://www.layui.com */ + ;layui.define(function(i){i("layui.mobile",layui.v)});layui.define(function(e){"use strict";var r={open:"{{",close:"}}"},c={exp:function(e){return new RegExp(e,"g")},query:function(e,c,t){var o=["#([\\s\\S])+?","([^{#}])*?"][e||0];return n((c||"")+r.open+o+r.close+(t||""))},escape:function(e){return String(e||"").replace(/&(?!#?[a-zA-Z0-9]+;)/g,"&").replace(//g,">").replace(/'/g,"'").replace(/"/g,""")},error:function(e,r){var c="Laytpl Error:";return"object"==typeof console&&console.error(c+e+"\n"+(r||"")),c+e}},n=c.exp,t=function(e){this.tpl=e};t.pt=t.prototype,window.errors=0,t.pt.parse=function(e,t){var o=this,p=e,a=n("^"+r.open+"#",""),l=n(r.close+"$","");e=e.replace(/\s+|\r|\t|\n/g," ").replace(n(r.open+"#"),r.open+"# ").replace(n(r.close+"}"),"} "+r.close).replace(/\\/g,"\\\\").replace(n(r.open+"!(.+?)!"+r.close),function(e){return e=e.replace(n("^"+r.open+"!"),"").replace(n("!"+r.close),"").replace(n(r.open+"|"+r.close),function(e){return e.replace(/(.)/g,"\\$1")})}).replace(/(?="|')/g,"\\").replace(c.query(),function(e){return e=e.replace(a,"").replace(l,""),'";'+e.replace(/\\/g,"")+';view+="'}).replace(c.query(1),function(e){var c='"+(';return e.replace(/\s/g,"")===r.open+r.close?"":(e=e.replace(n(r.open+"|"+r.close),""),/^=/.test(e)&&(e=e.replace(/^=/,""),c='"+_escape_('),c+e.replace(/\\/g,"")+')+"')}),e='"use strict";var view = "'+e+'";return view;';try{return o.cache=e=new Function("d, _escape_",e),e(t,c.escape)}catch(u){return delete o.cache,c.error(u,p)}},t.pt.render=function(e,r){var n,t=this;return e?(n=t.cache?t.cache(e,c.escape):t.parse(t.tpl,e),r?void r(n):n):c.error("no data")};var o=function(e){return"string"!=typeof e?c.error("Template not found"):new t(e)};o.config=function(e){e=e||{};for(var c in e)r[c]=e[c]},o.v="1.2.0",e("laytpl",o)});layui.define(function(e){"use strict";var t=(window,document),i="querySelectorAll",n="getElementsByClassName",a=function(e){return t[i](e)},s={type:0,shade:!0,shadeClose:!0,fixed:!0,anim:"scale"},l={extend:function(e){var t=JSON.parse(JSON.stringify(s));for(var i in e)t[i]=e[i];return t},timer:{},end:{}};l.touch=function(e,t){e.addEventListener("click",function(e){t.call(this,e)},!1)};var o=0,r=["layui-m-layer"],d=function(e){var t=this;t.config=l.extend(e),t.view()};d.prototype.view=function(){var e=this,i=e.config,s=t.createElement("div");e.id=s.id=r[0]+o,s.setAttribute("class",r[0]+" "+r[0]+(i.type||0)),s.setAttribute("index",o);var l=function(){var e="object"==typeof i.title;return i.title?'

          '+(e?i.title[0]:i.title)+"

          ":""}(),d=function(){"string"==typeof i.btn&&(i.btn=[i.btn]);var e,t=(i.btn||[]).length;return 0!==t&&i.btn?(e=''+i.btn[0]+"",2===t&&(e=''+i.btn[1]+""+e),'
          '+e+"
          "):""}();if(i.fixed||(i.top=i.hasOwnProperty("top")?i.top:100,i.style=i.style||"",i.style+=" top:"+(t.body.scrollTop+i.top)+"px"),2===i.type&&(i.content='

          '+(i.content||"")+"

          "),i.skin&&(i.anim="up"),"msg"===i.skin&&(i.shade=!1),s.innerHTML=(i.shade?"
          ':"")+'
          "+l+'
          '+i.content+"
          "+d+"
          ",!i.type||2===i.type){var y=t[n](r[0]+i.type),u=y.length;u>=1&&c.close(y[0].getAttribute("index"))}document.body.appendChild(s);var m=e.elem=a("#"+e.id)[0];i.success&&i.success(m),e.index=o++,e.action(i,m)},d.prototype.action=function(e,t){var i=this;e.time&&(l.timer[i.index]=setTimeout(function(){c.close(i.index)},1e3*e.time));var a=function(){var t=this.getAttribute("type");0==t?(e.no&&e.no(),c.close(i.index)):e.yes?e.yes(i.index):c.close(i.index)};if(e.btn)for(var s=t[n]("layui-m-layerbtn")[0].children,o=s.length,r=0;r0&&e-1 in t)}function s(t){return A.call(t,function(t){return null!=t})}function u(t){return t.length>0?T.fn.concat.apply([],t):t}function c(t){return t.replace(/::/g,"/").replace(/([A-Z]+)([A-Z][a-z])/g,"$1_$2").replace(/([a-z\d])([A-Z])/g,"$1_$2").replace(/_/g,"-").toLowerCase()}function l(t){return t in F?F[t]:F[t]=new RegExp("(^|\\s)"+t+"(\\s|$)")}function f(t,e){return"number"!=typeof e||k[c(t)]?e:e+"px"}function h(t){var e,n;return $[t]||(e=L.createElement(t),L.body.appendChild(e),n=getComputedStyle(e,"").getPropertyValue("display"),e.parentNode.removeChild(e),"none"==n&&(n="block"),$[t]=n),$[t]}function p(t){return"children"in t?D.call(t.children):T.map(t.childNodes,function(t){if(1==t.nodeType)return t})}function d(t,e){var n,r=t?t.length:0;for(n=0;n]*>/,R=/^<(\w+)\s*\/?>(?:<\/\1>|)$/,z=/<(?!area|br|col|embed|hr|img|input|link|meta|param)(([\w:]+)[^>]*)\/>/gi,Z=/^(?:body|html)$/i,q=/([A-Z])/g,H=["val","css","html","text","data","width","height","offset"],I=["after","prepend","before","append"],V=L.createElement("table"),_=L.createElement("tr"),B={tr:L.createElement("tbody"),tbody:V,thead:V,tfoot:V,td:_,th:_,"*":L.createElement("div")},U=/complete|loaded|interactive/,X=/^[\w-]*$/,J={},W=J.toString,Y={},G=L.createElement("div"),K={tabindex:"tabIndex",readonly:"readOnly","for":"htmlFor","class":"className",maxlength:"maxLength",cellspacing:"cellSpacing",cellpadding:"cellPadding",rowspan:"rowSpan",colspan:"colSpan",usemap:"useMap",frameborder:"frameBorder",contenteditable:"contentEditable"},Q=Array.isArray||function(t){return t instanceof Array};return Y.matches=function(t,e){if(!e||!t||1!==t.nodeType)return!1;var n=t.matches||t.webkitMatchesSelector||t.mozMatchesSelector||t.oMatchesSelector||t.matchesSelector;if(n)return n.call(t,e);var r,i=t.parentNode,o=!i;return o&&(i=G).appendChild(t),r=~Y.qsa(i,e).indexOf(t),o&&G.removeChild(t),r},C=function(t){return t.replace(/-+(.)?/g,function(t,e){return e?e.toUpperCase():""})},N=function(t){return A.call(t,function(e,n){return t.indexOf(e)==n})},Y.fragment=function(t,e,n){var r,i,a;return R.test(t)&&(r=T(L.createElement(RegExp.$1))),r||(t.replace&&(t=t.replace(z,"<$1>")),e===E&&(e=M.test(t)&&RegExp.$1),e in B||(e="*"),a=B[e],a.innerHTML=""+t,r=T.each(D.call(a.childNodes),function(){a.removeChild(this)})),o(n)&&(i=T(r),T.each(n,function(t,e){H.indexOf(t)>-1?i[t](e):i.attr(t,e)})),r},Y.Z=function(t,e){return new d(t,e)},Y.isZ=function(t){return t instanceof Y.Z},Y.init=function(t,n){var r;if(!t)return Y.Z();if("string"==typeof t)if(t=t.trim(),"<"==t[0]&&M.test(t))r=Y.fragment(t,RegExp.$1,n),t=null;else{if(n!==E)return T(n).find(t);r=Y.qsa(L,t)}else{if(e(t))return T(L).ready(t);if(Y.isZ(t))return t;if(Q(t))r=s(t);else if(i(t))r=[t],t=null;else if(M.test(t))r=Y.fragment(t.trim(),RegExp.$1,n),t=null;else{if(n!==E)return T(n).find(t);r=Y.qsa(L,t)}}return Y.Z(r,t)},T=function(t,e){return Y.init(t,e)},T.extend=function(t){var e,n=D.call(arguments,1);return"boolean"==typeof t&&(e=t,t=n.shift()),n.forEach(function(n){m(t,n,e)}),t},Y.qsa=function(t,e){var n,r="#"==e[0],i=!r&&"."==e[0],o=r||i?e.slice(1):e,a=X.test(o);return t.getElementById&&a&&r?(n=t.getElementById(o))?[n]:[]:1!==t.nodeType&&9!==t.nodeType&&11!==t.nodeType?[]:D.call(a&&!r&&t.getElementsByClassName?i?t.getElementsByClassName(o):t.getElementsByTagName(e):t.querySelectorAll(e))},T.contains=L.documentElement.contains?function(t,e){return t!==e&&t.contains(e)}:function(t,e){for(;e&&(e=e.parentNode);)if(e===t)return!0;return!1},T.type=t,T.isFunction=e,T.isWindow=n,T.isArray=Q,T.isPlainObject=o,T.isEmptyObject=function(t){var e;for(e in t)return!1;return!0},T.isNumeric=function(t){var e=Number(t),n=typeof t;return null!=t&&"boolean"!=n&&("string"!=n||t.length)&&!isNaN(e)&&isFinite(e)||!1},T.inArray=function(t,e,n){return O.indexOf.call(e,t,n)},T.camelCase=C,T.trim=function(t){return null==t?"":String.prototype.trim.call(t)},T.uuid=0,T.support={},T.expr={},T.noop=function(){},T.map=function(t,e){var n,r,i,o=[];if(a(t))for(r=0;r=0?t:t+this.length]},toArray:function(){return this.get()},size:function(){return this.length},remove:function(){return this.each(function(){null!=this.parentNode&&this.parentNode.removeChild(this)})},each:function(t){return O.every.call(this,function(e,n){return t.call(e,n,e)!==!1}),this},filter:function(t){return e(t)?this.not(this.not(t)):T(A.call(this,function(e){return Y.matches(e,t)}))},add:function(t,e){return T(N(this.concat(T(t,e))))},is:function(t){return this.length>0&&Y.matches(this[0],t)},not:function(t){var n=[];if(e(t)&&t.call!==E)this.each(function(e){t.call(this,e)||n.push(this)});else{var r="string"==typeof t?this.filter(t):a(t)&&e(t.item)?D.call(t):T(t);this.forEach(function(t){r.indexOf(t)<0&&n.push(t)})}return T(n)},has:function(t){return this.filter(function(){return i(t)?T.contains(this,t):T(this).find(t).size()})},eq:function(t){return t===-1?this.slice(t):this.slice(t,+t+1)},first:function(){var t=this[0];return t&&!i(t)?t:T(t)},last:function(){var t=this[this.length-1];return t&&!i(t)?t:T(t)},find:function(t){var e,n=this;return e=t?"object"==typeof t?T(t).filter(function(){var t=this;return O.some.call(n,function(e){return T.contains(e,t)})}):1==this.length?T(Y.qsa(this[0],t)):this.map(function(){return Y.qsa(this,t)}):T()},closest:function(t,e){var n=[],i="object"==typeof t&&T(t);return this.each(function(o,a){for(;a&&!(i?i.indexOf(a)>=0:Y.matches(a,t));)a=a!==e&&!r(a)&&a.parentNode;a&&n.indexOf(a)<0&&n.push(a)}),T(n)},parents:function(t){for(var e=[],n=this;n.length>0;)n=T.map(n,function(t){if((t=t.parentNode)&&!r(t)&&e.indexOf(t)<0)return e.push(t),t});return v(e,t)},parent:function(t){return v(N(this.pluck("parentNode")),t)},children:function(t){return v(this.map(function(){return p(this)}),t)},contents:function(){return this.map(function(){return this.contentDocument||D.call(this.childNodes)})},siblings:function(t){return v(this.map(function(t,e){return A.call(p(e.parentNode),function(t){return t!==e})}),t)},empty:function(){return this.each(function(){this.innerHTML=""})},pluck:function(t){return T.map(this,function(e){return e[t]})},show:function(){return this.each(function(){"none"==this.style.display&&(this.style.display=""),"none"==getComputedStyle(this,"").getPropertyValue("display")&&(this.style.display=h(this.nodeName))})},replaceWith:function(t){return this.before(t).remove()},wrap:function(t){var n=e(t);if(this[0]&&!n)var r=T(t).get(0),i=r.parentNode||this.length>1;return this.each(function(e){T(this).wrapAll(n?t.call(this,e):i?r.cloneNode(!0):r)})},wrapAll:function(t){if(this[0]){T(this[0]).before(t=T(t));for(var e;(e=t.children()).length;)t=e.first();T(t).append(this)}return this},wrapInner:function(t){var n=e(t);return this.each(function(e){var r=T(this),i=r.contents(),o=n?t.call(this,e):t;i.length?i.wrapAll(o):r.append(o)})},unwrap:function(){return this.parent().each(function(){T(this).replaceWith(T(this).children())}),this},clone:function(){return this.map(function(){return this.cloneNode(!0)})},hide:function(){return this.css("display","none")},toggle:function(t){return this.each(function(){var e=T(this);(t===E?"none"==e.css("display"):t)?e.show():e.hide()})},prev:function(t){return T(this.pluck("previousElementSibling")).filter(t||"*")},next:function(t){return T(this.pluck("nextElementSibling")).filter(t||"*")},html:function(t){return 0 in arguments?this.each(function(e){var n=this.innerHTML;T(this).empty().append(g(this,t,e,n))}):0 in this?this[0].innerHTML:null},text:function(t){return 0 in arguments?this.each(function(e){var n=g(this,t,e,this.textContent);this.textContent=null==n?"":""+n}):0 in this?this.pluck("textContent").join(""):null},attr:function(t,e){var n;return"string"!=typeof t||1 in arguments?this.each(function(n){if(1===this.nodeType)if(i(t))for(j in t)y(this,j,t[j]);else y(this,t,g(this,e,n,this.getAttribute(t)))}):0 in this&&1==this[0].nodeType&&null!=(n=this[0].getAttribute(t))?n:E},removeAttr:function(t){return this.each(function(){1===this.nodeType&&t.split(" ").forEach(function(t){y(this,t)},this)})},prop:function(t,e){return t=K[t]||t,1 in arguments?this.each(function(n){this[t]=g(this,e,n,this[t])}):this[0]&&this[0][t]},removeProp:function(t){return t=K[t]||t,this.each(function(){delete this[t]})},data:function(t,e){var n="data-"+t.replace(q,"-$1").toLowerCase(),r=1 in arguments?this.attr(n,e):this.attr(n);return null!==r?b(r):E},val:function(t){return 0 in arguments?(null==t&&(t=""),this.each(function(e){this.value=g(this,t,e,this.value)})):this[0]&&(this[0].multiple?T(this[0]).find("option").filter(function(){return this.selected}).pluck("value"):this[0].value)},offset:function(t){if(t)return this.each(function(e){var n=T(this),r=g(this,t,e,n.offset()),i=n.offsetParent().offset(),o={top:r.top-i.top,left:r.left-i.left};"static"==n.css("position")&&(o.position="relative"),n.css(o)});if(!this.length)return null;if(L.documentElement!==this[0]&&!T.contains(L.documentElement,this[0]))return{top:0,left:0};var e=this[0].getBoundingClientRect();return{left:e.left+window.pageXOffset,top:e.top+window.pageYOffset,width:Math.round(e.width),height:Math.round(e.height)}},css:function(e,n){if(arguments.length<2){var r=this[0];if("string"==typeof e){if(!r)return;return r.style[C(e)]||getComputedStyle(r,"").getPropertyValue(e)}if(Q(e)){if(!r)return;var i={},o=getComputedStyle(r,"");return T.each(e,function(t,e){i[e]=r.style[C(e)]||o.getPropertyValue(e)}),i}}var a="";if("string"==t(e))n||0===n?a=c(e)+":"+f(e,n):this.each(function(){this.style.removeProperty(c(e))});else for(j in e)e[j]||0===e[j]?a+=c(j)+":"+f(j,e[j])+";":this.each(function(){this.style.removeProperty(c(j))});return this.each(function(){this.style.cssText+=";"+a})},index:function(t){return t?this.indexOf(T(t)[0]):this.parent().children().indexOf(this[0])},hasClass:function(t){return!!t&&O.some.call(this,function(t){return this.test(x(t))},l(t))},addClass:function(t){return t?this.each(function(e){if("className"in this){S=[];var n=x(this),r=g(this,t,e,n);r.split(/\s+/g).forEach(function(t){T(this).hasClass(t)||S.push(t)},this),S.length&&x(this,n+(n?" ":"")+S.join(" "))}}):this},removeClass:function(t){return this.each(function(e){if("className"in this){if(t===E)return x(this,"");S=x(this),g(this,t,e,S).split(/\s+/g).forEach(function(t){S=S.replace(l(t)," ")}),x(this,S.trim())}})},toggleClass:function(t,e){return t?this.each(function(n){var r=T(this),i=g(this,t,n,x(this));i.split(/\s+/g).forEach(function(t){(e===E?!r.hasClass(t):e)?r.addClass(t):r.removeClass(t)})}):this},scrollTop:function(t){if(this.length){var e="scrollTop"in this[0];return t===E?e?this[0].scrollTop:this[0].pageYOffset:this.each(e?function(){this.scrollTop=t}:function(){this.scrollTo(this.scrollX,t)})}},scrollLeft:function(t){if(this.length){var e="scrollLeft"in this[0];return t===E?e?this[0].scrollLeft:this[0].pageXOffset:this.each(e?function(){this.scrollLeft=t}:function(){this.scrollTo(t,this.scrollY)})}},position:function(){if(this.length){var t=this[0],e=this.offsetParent(),n=this.offset(),r=Z.test(e[0].nodeName)?{top:0,left:0}:e.offset();return n.top-=parseFloat(T(t).css("margin-top"))||0,n.left-=parseFloat(T(t).css("margin-left"))||0,r.top+=parseFloat(T(e[0]).css("border-top-width"))||0,r.left+=parseFloat(T(e[0]).css("border-left-width"))||0,{top:n.top-r.top,left:n.left-r.left}}},offsetParent:function(){return this.map(function(){for(var t=this.offsetParent||L.body;t&&!Z.test(t.nodeName)&&"static"==T(t).css("position");)t=t.offsetParent;return t})}},T.fn.detach=T.fn.remove,["width","height"].forEach(function(t){var e=t.replace(/./,function(t){return t[0].toUpperCase()});T.fn[t]=function(i){var o,a=this[0];return i===E?n(a)?a["inner"+e]:r(a)?a.documentElement["scroll"+e]:(o=this.offset())&&o[t]:this.each(function(e){a=T(this),a.css(t,g(this,i,e,a[t]()))})}}),I.forEach(function(e,n){var r=n%2;T.fn[e]=function(){var e,i,o=T.map(arguments,function(n){var r=[];return e=t(n),"array"==e?(n.forEach(function(t){return t.nodeType!==E?r.push(t):T.zepto.isZ(t)?r=r.concat(t.get()):void(r=r.concat(Y.fragment(t)))}),r):"object"==e||null==n?n:Y.fragment(n)}),a=this.length>1;return o.length<1?this:this.each(function(t,e){i=r?e:e.parentNode,e=0==n?e.nextSibling:1==n?e.firstChild:2==n?e:null;var s=T.contains(L.documentElement,i);o.forEach(function(t){if(a)t=t.cloneNode(!0);else if(!i)return T(t).remove();i.insertBefore(t,e),s&&w(t,function(t){if(!(null==t.nodeName||"SCRIPT"!==t.nodeName.toUpperCase()||t.type&&"text/javascript"!==t.type||t.src)){var e=t.ownerDocument?t.ownerDocument.defaultView:window;e.eval.call(e,t.innerHTML)}})})})},T.fn[r?e+"To":"insert"+(n?"Before":"After")]=function(t){return T(t)[e](this),this}}),Y.Z.prototype=d.prototype=T.fn,Y.uniq=N,Y.deserializeValue=b,T.zepto=Y,T}();!function(t){function e(t){return t._zid||(t._zid=h++)}function n(t,n,o,a){if(n=r(n),n.ns)var s=i(n.ns);return(v[e(t)]||[]).filter(function(t){return t&&(!n.e||t.e==n.e)&&(!n.ns||s.test(t.ns))&&(!o||e(t.fn)===e(o))&&(!a||t.sel==a)})}function r(t){var e=(""+t).split(".");return{e:e[0],ns:e.slice(1).sort().join(" ")}}function i(t){return new RegExp("(?:^| )"+t.replace(" "," .* ?")+"(?: |$)")}function o(t,e){return t.del&&!y&&t.e in x||!!e}function a(t){return b[t]||y&&x[t]||t}function s(n,i,s,u,l,h,p){var d=e(n),m=v[d]||(v[d]=[]);i.split(/\s/).forEach(function(e){if("ready"==e)return t(document).ready(s);var i=r(e);i.fn=s,i.sel=l,i.e in b&&(s=function(e){var n=e.relatedTarget;if(!n||n!==this&&!t.contains(this,n))return i.fn.apply(this,arguments)}),i.del=h;var d=h||s;i.proxy=function(t){if(t=c(t),!t.isImmediatePropagationStopped()){t.data=u;var e=d.apply(n,t._args==f?[t]:[t].concat(t._args));return e===!1&&(t.preventDefault(),t.stopPropagation()),e}},i.i=m.length,m.push(i),"addEventListener"in n&&n.addEventListener(a(i.e),i.proxy,o(i,p))})}function u(t,r,i,s,u){var c=e(t);(r||"").split(/\s/).forEach(function(e){n(t,e,i,s).forEach(function(e){delete v[c][e.i],"removeEventListener"in t&&t.removeEventListener(a(e.e),e.proxy,o(e,u))})})}function c(e,n){return!n&&e.isDefaultPrevented||(n||(n=e),t.each(T,function(t,r){var i=n[t];e[t]=function(){return this[r]=w,i&&i.apply(n,arguments)},e[r]=E}),e.timeStamp||(e.timeStamp=Date.now()),(n.defaultPrevented!==f?n.defaultPrevented:"returnValue"in n?n.returnValue===!1:n.getPreventDefault&&n.getPreventDefault())&&(e.isDefaultPrevented=w)),e}function l(t){var e,n={originalEvent:t};for(e in t)j.test(e)||t[e]===f||(n[e]=t[e]);return c(n,t)}var f,h=1,p=Array.prototype.slice,d=t.isFunction,m=function(t){return"string"==typeof t},v={},g={},y="onfocusin"in window,x={focus:"focusin",blur:"focusout"},b={mouseenter:"mouseover",mouseleave:"mouseout"};g.click=g.mousedown=g.mouseup=g.mousemove="MouseEvents",t.event={add:s,remove:u},t.proxy=function(n,r){var i=2 in arguments&&p.call(arguments,2);if(d(n)){var o=function(){return n.apply(r,i?i.concat(p.call(arguments)):arguments)};return o._zid=e(n),o}if(m(r))return i?(i.unshift(n[r],n),t.proxy.apply(null,i)):t.proxy(n[r],n);throw new TypeError("expected function")},t.fn.bind=function(t,e,n){return this.on(t,e,n)},t.fn.unbind=function(t,e){return this.off(t,e)},t.fn.one=function(t,e,n,r){return this.on(t,e,n,r,1)};var w=function(){return!0},E=function(){return!1},j=/^([A-Z]|returnValue$|layer[XY]$|webkitMovement[XY]$)/,T={preventDefault:"isDefaultPrevented",stopImmediatePropagation:"isImmediatePropagationStopped",stopPropagation:"isPropagationStopped"};t.fn.delegate=function(t,e,n){return this.on(e,t,n)},t.fn.undelegate=function(t,e,n){return this.off(e,t,n)},t.fn.live=function(e,n){return t(document.body).delegate(this.selector,e,n),this},t.fn.die=function(e,n){return t(document.body).undelegate(this.selector,e,n),this},t.fn.on=function(e,n,r,i,o){var a,c,h=this;return e&&!m(e)?(t.each(e,function(t,e){h.on(t,n,r,e,o)}),h):(m(n)||d(i)||i===!1||(i=r,r=n,n=f),i!==f&&r!==!1||(i=r,r=f),i===!1&&(i=E),h.each(function(f,h){o&&(a=function(t){return u(h,t.type,i),i.apply(this,arguments)}),n&&(c=function(e){var r,o=t(e.target).closest(n,h).get(0);if(o&&o!==h)return r=t.extend(l(e),{currentTarget:o,liveFired:h}),(a||i).apply(o,[r].concat(p.call(arguments,1)))}),s(h,e,i,r,n,c||a)}))},t.fn.off=function(e,n,r){var i=this;return e&&!m(e)?(t.each(e,function(t,e){i.off(t,n,e)}),i):(m(n)||d(r)||r===!1||(r=n,n=f),r===!1&&(r=E),i.each(function(){u(this,e,r,n)}))},t.fn.trigger=function(e,n){return e=m(e)||t.isPlainObject(e)?t.Event(e):c(e),e._args=n,this.each(function(){e.type in x&&"function"==typeof this[e.type]?this[e.type]():"dispatchEvent"in this?this.dispatchEvent(e):t(this).triggerHandler(e,n)})},t.fn.triggerHandler=function(e,r){var i,o;return this.each(function(a,s){i=l(m(e)?t.Event(e):e),i._args=r,i.target=s,t.each(n(s,e.type||e),function(t,e){if(o=e.proxy(i),i.isImmediatePropagationStopped())return!1})}),o},"focusin focusout focus blur load resize scroll unload click dblclick mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave change select keydown keypress keyup error".split(" ").forEach(function(e){t.fn[e]=function(t){return 0 in arguments?this.bind(e,t):this.trigger(e)}}),t.Event=function(t,e){m(t)||(e=t,t=e.type);var n=document.createEvent(g[t]||"Events"),r=!0;if(e)for(var i in e)"bubbles"==i?r=!!e[i]:n[i]=e[i];return n.initEvent(t,r,!0),c(n)}}(e),function(t){function e(e,n,r){var i=t.Event(n);return t(e).trigger(i,r),!i.isDefaultPrevented()}function n(t,n,r,i){if(t.global)return e(n||x,r,i)}function r(e){e.global&&0===t.active++&&n(e,null,"ajaxStart")}function i(e){e.global&&!--t.active&&n(e,null,"ajaxStop")}function o(t,e){var r=e.context;return e.beforeSend.call(r,t,e)!==!1&&n(e,r,"ajaxBeforeSend",[t,e])!==!1&&void n(e,r,"ajaxSend",[t,e])}function a(t,e,r,i){var o=r.context,a="success";r.success.call(o,t,a,e),i&&i.resolveWith(o,[t,a,e]),n(r,o,"ajaxSuccess",[e,r,t]),u(a,e,r)}function s(t,e,r,i,o){var a=i.context;i.error.call(a,r,e,t),o&&o.rejectWith(a,[r,e,t]),n(i,a,"ajaxError",[r,i,t||e]),u(e,r,i)}function u(t,e,r){var o=r.context;r.complete.call(o,e,t),n(r,o,"ajaxComplete",[e,r]),i(r)}function c(t,e,n){if(n.dataFilter==l)return t;var r=n.context;return n.dataFilter.call(r,t,e)}function l(){}function f(t){return t&&(t=t.split(";",2)[0]),t&&(t==T?"html":t==j?"json":w.test(t)?"script":E.test(t)&&"xml")||"text"}function h(t,e){return""==e?t:(t+"&"+e).replace(/[&?]{1,2}/,"?")}function p(e){e.processData&&e.data&&"string"!=t.type(e.data)&&(e.data=t.param(e.data,e.traditional)),!e.data||e.type&&"GET"!=e.type.toUpperCase()&&"jsonp"!=e.dataType||(e.url=h(e.url,e.data),e.data=void 0)}function d(e,n,r,i){return t.isFunction(n)&&(i=r,r=n,n=void 0),t.isFunction(r)||(i=r,r=void 0),{url:e,data:n,success:r,dataType:i}}function m(e,n,r,i){var o,a=t.isArray(n),s=t.isPlainObject(n);t.each(n,function(n,u){o=t.type(u),i&&(n=r?i:i+"["+(s||"object"==o||"array"==o?n:"")+"]"),!i&&a?e.add(u.name,u.value):"array"==o||!r&&"object"==o?m(e,u,r,n):e.add(n,u)})}var v,g,y=+new Date,x=window.document,b=/)<[^<]*)*<\/script>/gi,w=/^(?:text|application)\/javascript/i,E=/^(?:text|application)\/xml/i,j="application/json",T="text/html",S=/^\s*$/,C=x.createElement("a");C.href=window.location.href,t.active=0,t.ajaxJSONP=function(e,n){if(!("type"in e))return t.ajax(e);var r,i,u=e.jsonpCallback,c=(t.isFunction(u)?u():u)||"Zepto"+y++,l=x.createElement("script"),f=window[c],h=function(e){t(l).triggerHandler("error",e||"abort")},p={abort:h};return n&&n.promise(p),t(l).on("load error",function(o,u){clearTimeout(i),t(l).off().remove(),"error"!=o.type&&r?a(r[0],p,e,n):s(null,u||"error",p,e,n),window[c]=f,r&&t.isFunction(f)&&f(r[0]),f=r=void 0}),o(p,e)===!1?(h("abort"),p):(window[c]=function(){r=arguments},l.src=e.url.replace(/\?(.+)=\?/,"?$1="+c),x.head.appendChild(l),e.timeout>0&&(i=setTimeout(function(){h("timeout")},e.timeout)),p)},t.ajaxSettings={type:"GET",beforeSend:l,success:l,error:l,complete:l,context:null,global:!0,xhr:function(){return new window.XMLHttpRequest},accepts:{script:"text/javascript, application/javascript, application/x-javascript",json:j,xml:"application/xml, text/xml",html:T,text:"text/plain"},crossDomain:!1,timeout:0,processData:!0,cache:!0,dataFilter:l},t.ajax=function(e){var n,i,u=t.extend({},e||{}),d=t.Deferred&&t.Deferred();for(v in t.ajaxSettings)void 0===u[v]&&(u[v]=t.ajaxSettings[v]);r(u),u.crossDomain||(n=x.createElement("a"),n.href=u.url,n.href=n.href,u.crossDomain=C.protocol+"//"+C.host!=n.protocol+"//"+n.host),u.url||(u.url=window.location.toString()),(i=u.url.indexOf("#"))>-1&&(u.url=u.url.slice(0,i)),p(u);var m=u.dataType,y=/\?.+=\?/.test(u.url);if(y&&(m="jsonp"),u.cache!==!1&&(e&&e.cache===!0||"script"!=m&&"jsonp"!=m)||(u.url=h(u.url,"_="+Date.now())),"jsonp"==m)return y||(u.url=h(u.url,u.jsonp?u.jsonp+"=?":u.jsonp===!1?"":"callback=?")),t.ajaxJSONP(u,d);var b,w=u.accepts[m],E={},j=function(t,e){E[t.toLowerCase()]=[t,e]},T=/^([\w-]+:)\/\//.test(u.url)?RegExp.$1:window.location.protocol,N=u.xhr(),O=N.setRequestHeader;if(d&&d.promise(N),u.crossDomain||j("X-Requested-With","XMLHttpRequest"),j("Accept",w||"*/*"),(w=u.mimeType||w)&&(w.indexOf(",")>-1&&(w=w.split(",",2)[0]),N.overrideMimeType&&N.overrideMimeType(w)),(u.contentType||u.contentType!==!1&&u.data&&"GET"!=u.type.toUpperCase())&&j("Content-Type",u.contentType||"application/x-www-form-urlencoded"),u.headers)for(g in u.headers)j(g,u.headers[g]);if(N.setRequestHeader=j,N.onreadystatechange=function(){if(4==N.readyState){N.onreadystatechange=l,clearTimeout(b);var e,n=!1;if(N.status>=200&&N.status<300||304==N.status||0==N.status&&"file:"==T){if(m=m||f(u.mimeType||N.getResponseHeader("content-type")),"arraybuffer"==N.responseType||"blob"==N.responseType)e=N.response;else{e=N.responseText;try{e=c(e,m,u),"script"==m?(0,eval)(e):"xml"==m?e=N.responseXML:"json"==m&&(e=S.test(e)?null:t.parseJSON(e))}catch(r){n=r}if(n)return s(n,"parsererror",N,u,d)}a(e,N,u,d)}else s(N.statusText||null,N.status?"error":"abort",N,u,d)}},o(N,u)===!1)return N.abort(),s(null,"abort",N,u,d),N;var P=!("async"in u)||u.async;if(N.open(u.type,u.url,P,u.username,u.password),u.xhrFields)for(g in u.xhrFields)N[g]=u.xhrFields[g];for(g in E)O.apply(N,E[g]);return u.timeout>0&&(b=setTimeout(function(){N.onreadystatechange=l,N.abort(),s(null,"timeout",N,u,d)},u.timeout)),N.send(u.data?u.data:null),N},t.get=function(){return t.ajax(d.apply(null,arguments))},t.post=function(){var e=d.apply(null,arguments);return e.type="POST",t.ajax(e)},t.getJSON=function(){var e=d.apply(null,arguments);return e.dataType="json",t.ajax(e)},t.fn.load=function(e,n,r){if(!this.length)return this;var i,o=this,a=e.split(/\s/),s=d(e,n,r),u=s.success;return a.length>1&&(s.url=a[0],i=a[1]),s.success=function(e){o.html(i?t("
          ").html(e.replace(b,"")).find(i):e),u&&u.apply(o,arguments)},t.ajax(s),this};var N=encodeURIComponent;t.param=function(e,n){var r=[];return r.add=function(e,n){t.isFunction(n)&&(n=n()),null==n&&(n=""),this.push(N(e)+"="+N(n))},m(r,e,n),r.join("&").replace(/%20/g,"+")}}(e),function(t){t.fn.serializeArray=function(){var e,n,r=[],i=function(t){return t.forEach?t.forEach(i):void r.push({name:e,value:t})};return this[0]&&t.each(this[0].elements,function(r,o){n=o.type,e=o.name,e&&"fieldset"!=o.nodeName.toLowerCase()&&!o.disabled&&"submit"!=n&&"reset"!=n&&"button"!=n&&"file"!=n&&("radio"!=n&&"checkbox"!=n||o.checked)&&i(t(o).val())}),r},t.fn.serialize=function(){var t=[];return this.serializeArray().forEach(function(e){t.push(encodeURIComponent(e.name)+"="+encodeURIComponent(e.value))}),t.join("&")},t.fn.submit=function(e){if(0 in arguments)this.bind("submit",e);else if(this.length){var n=t.Event("submit");this.eq(0).trigger(n),n.isDefaultPrevented()||this.get(0).submit()}return this}}(e),function(){try{getComputedStyle(void 0)}catch(t){var e=getComputedStyle;window.getComputedStyle=function(t,n){try{return e(t,n)}catch(r){return null}}}}(),t("zepto",e)});layui.define(function(i){i("layim-mobile",layui.v)});layui["layui.mobile"]||layui.config({base:layui.cache.dir+"lay/modules/mobile/"}).extend({"layer-mobile":"layer-mobile",zepto:"zepto","upload-mobile":"upload-mobile","layim-mobile":"layim-mobile"}),layui.define(["layer-mobile","zepto","layim-mobile"],function(l){l("mobile",{layer:layui["layer-mobile"],layim:layui["layim-mobile"]})}); \ No newline at end of file diff --git a/public/static/res/layui/lay/modules/rate.js b/public/static/res/layui/lay/modules/rate.js new file mode 100644 index 0000000..bcc103f --- /dev/null +++ b/public/static/res/layui/lay/modules/rate.js @@ -0,0 +1,2 @@ +/** layui-v2.5.5 MIT License By https://www.layui.com */ + ;layui.define("jquery",function(e){"use strict";var a=layui.jquery,i={config:{},index:layui.rate?layui.rate.index+1e4:0,set:function(e){var i=this;return i.config=a.extend({},i.config,e),i},on:function(e,a){return layui.onevent.call(this,n,e,a)}},l=function(){var e=this,a=e.config;return{setvalue:function(a){e.setvalue.call(e,a)},config:a}},n="rate",t="layui-rate",o="layui-icon-rate",s="layui-icon-rate-solid",u="layui-icon-rate-half",r="layui-icon-rate-solid layui-icon-rate-half",c="layui-icon-rate-solid layui-icon-rate",f="layui-icon-rate layui-icon-rate-half",v=function(e){var l=this;l.index=++i.index,l.config=a.extend({},l.config,i.config,e),l.render()};v.prototype.config={length:5,text:!1,readonly:!1,half:!1,value:0,theme:""},v.prototype.render=function(){var e=this,i=e.config,l=i.theme?'style="color: '+i.theme+';"':"";i.elem=a(i.elem),parseInt(i.value)!==i.value&&(i.half||(i.value=Math.ceil(i.value)-i.value<.5?Math.ceil(i.value):Math.floor(i.value)));for(var n='
            ",u=1;u<=i.length;u++){var r='
          • ";i.half&&parseInt(i.value)!==i.value&&u==Math.ceil(i.value)?n=n+'
          • ":n+=r}n+="
          "+(i.text?''+i.value+"星":"")+"";var c=i.elem,f=c.next("."+t);f[0]&&f.remove(),e.elemTemp=a(n),i.span=e.elemTemp.next("span"),i.setText&&i.setText(i.value),c.html(e.elemTemp),c.addClass("layui-inline"),i.readonly||e.action()},v.prototype.setvalue=function(e){var a=this,i=a.config;i.value=e,a.render()},v.prototype.action=function(){var e=this,i=e.config,l=e.elemTemp,n=l.find("i").width();l.children("li").each(function(e){var t=e+1,v=a(this);v.on("click",function(e){if(i.value=t,i.half){var o=e.pageX-a(this).offset().left;o<=n/2&&(i.value=i.value-.5)}i.text&&l.next("span").text(i.value+"星"),i.choose&&i.choose(i.value),i.setText&&i.setText(i.value)}),v.on("mousemove",function(e){if(l.find("i").each(function(){a(this).addClass(o).removeClass(r)}),l.find("i:lt("+t+")").each(function(){a(this).addClass(s).removeClass(f)}),i.half){var c=e.pageX-a(this).offset().left;c<=n/2&&v.children("i").addClass(u).removeClass(s)}}),v.on("mouseleave",function(){l.find("i").each(function(){a(this).addClass(o).removeClass(r)}),l.find("i:lt("+Math.floor(i.value)+")").each(function(){a(this).addClass(s).removeClass(f)}),i.half&&parseInt(i.value)!==i.value&&l.children("li:eq("+Math.floor(i.value)+")").children("i").addClass(u).removeClass(c)})})},v.prototype.events=function(){var e=this;e.config},i.render=function(e){var a=new v(e);return l.call(a)},e(n,i)}); \ No newline at end of file diff --git a/public/static/res/layui/lay/modules/slider.js b/public/static/res/layui/lay/modules/slider.js new file mode 100644 index 0000000..c39707d --- /dev/null +++ b/public/static/res/layui/lay/modules/slider.js @@ -0,0 +1,2 @@ +/** layui-v2.5.5 MIT License By https://www.layui.com */ + ;layui.define("jquery",function(e){"use strict";var i=layui.jquery,t={config:{},index:layui.slider?layui.slider.index+1e4:0,set:function(e){var t=this;return t.config=i.extend({},t.config,e),t},on:function(e,i){return layui.onevent.call(this,n,e,i)}},a=function(){var e=this,i=e.config;return{setValue:function(i,t){return e.slide("set",i,t||0)},config:i}},n="slider",l="layui-disabled",s="layui-slider",r="layui-slider-bar",o="layui-slider-wrap",u="layui-slider-wrap-btn",d="layui-slider-tips",v="layui-slider-input",c="layui-slider-input-txt",m="layui-slider-input-btn",p="layui-slider-hover",f=function(e){var a=this;a.index=++t.index,a.config=i.extend({},a.config,t.config,e),a.render()};f.prototype.config={type:"default",min:0,max:100,value:0,step:1,showstep:!1,tips:!0,input:!1,range:!1,height:200,disabled:!1,theme:"#009688"},f.prototype.render=function(){var e=this,t=e.config;if(t.step<1&&(t.step=1),t.maxt.min?a:t.min,t.value[1]=n>t.min?n:t.min,t.value[0]=t.value[0]>t.max?t.max:t.value[0],t.value[1]=t.value[1]>t.max?t.max:t.value[1];var r=Math.floor((t.value[0]-t.min)/(t.max-t.min)*100),v=Math.floor((t.value[1]-t.min)/(t.max-t.min)*100),m=v-r+"%";r+="%",v+="%"}else{"object"==typeof t.value&&(t.value=Math.min.apply(null,t.value)),t.valuet.max&&(t.value=t.max);var m=Math.floor((t.value-t.min)/(t.max-t.min)*100)+"%"}var p=t.disabled?"#c2c2c2":t.theme,f='
          '+(t.tips?'
          ':"")+'
          '+(t.range?'
          ':"")+"
          ",h=i(t.elem),y=h.next("."+s);if(y[0]&&y.remove(),e.elemTemp=i(f),t.range?(e.elemTemp.find("."+o).eq(0).data("value",t.value[0]),e.elemTemp.find("."+o).eq(1).data("value",t.value[1])):e.elemTemp.find("."+o).data("value",t.value),h.html(e.elemTemp),"vertical"===t.type&&e.elemTemp.height(t.height+"px"),t.showstep){for(var g=(t.max-t.min)/t.step,b="",x=1;x
          ')}e.elemTemp.append(b)}if(t.input&&!t.range){var w=i('
          ');h.css("position","relative"),h.append(w),h.find("."+c).children("input").val(t.value),"vertical"===t.type?w.css({left:0,top:-48}):e.elemTemp.css("margin-right",w.outerWidth()+15)}t.disabled?(e.elemTemp.addClass(l),e.elemTemp.find("."+u).addClass(l)):e.slide(),e.elemTemp.find("."+u).on("mouseover",function(){var a="vertical"===t.type?t.height:e.elemTemp[0].offsetWidth,n=e.elemTemp.find("."+o),l="vertical"===t.type?a-i(this).parent()[0].offsetTop-n.height():i(this).parent()[0].offsetLeft,s=l/a*100,r=i(this).parent().data("value"),u=t.setTips?t.setTips(r):r;e.elemTemp.find("."+d).html(u),"vertical"===t.type?e.elemTemp.find("."+d).css({bottom:s+"%","margin-bottom":"20px",display:"inline-block"}):e.elemTemp.find("."+d).css({left:s+"%",display:"inline-block"})}).on("mouseout",function(){e.elemTemp.find("."+d).css("display","none")})},f.prototype.slide=function(e,t,a){var n=this,l=n.config,s=n.elemTemp,f=function(){return"vertical"===l.type?l.height:s[0].offsetWidth},h=s.find("."+o),y=s.next("."+v),g=y.children("."+c).children("input").val(),b=100/((l.max-l.min)/Math.ceil(l.step)),x=function(e,i){e=Math.ceil(e)*b>100?Math.ceil(e)*b:Math.round(e)*b,e=e>100?100:e,h.eq(i).css("vertical"===l.type?"bottom":"left",e+"%");var t=T(h[0].offsetLeft),a=l.range?T(h[1].offsetLeft):0;"vertical"===l.type?(s.find("."+d).css({bottom:e+"%","margin-bottom":"20px"}),t=T(f()-h[0].offsetTop-h.height()),a=l.range?T(f()-h[1].offsetTop-h.height()):0):s.find("."+d).css("left",e+"%"),t=t>100?100:t,a=a>100?100:a;var n=Math.min(t,a),o=Math.abs(t-a);"vertical"===l.type?s.find("."+r).css({height:o+"%",bottom:n+"%"}):s.find("."+r).css({width:o+"%",left:n+"%"});var u=l.min+Math.round((l.max-l.min)*e/100);if(g=u,y.children("."+c).children("input").val(g),h.eq(i).data("value",u),u=l.setTips?l.setTips(u):u,s.find("."+d).html(u),l.range){var v=[h.eq(0).data("value"),h.eq(1).data("value")];v[0]>v[1]&&v.reverse()}l.change&&l.change(l.range?v:u)},T=function(e){var i=e/f()*100/b,t=Math.round(i)*b;return e==f()&&(t=Math.ceil(i)*b),t},w=i(['
          f()&&(r=f());var o=r/f()*100/b;x(o,e),t.addClass(p),s.find("."+d).show(),i.preventDefault()},o=function(){t.removeClass(p),s.find("."+d).hide()};M(r,o)})}),s.on("click",function(e){var t=i("."+u);if(!t.is(event.target)&&0===t.has(event.target).length&&t.length){var a,n="vertical"===l.type?f()-e.clientY+i(this).offset().top:e.clientX-i(this).offset().left;n<0&&(n=0),n>f()&&(n=f());var s=n/f()*100/b;a=l.range?"vertical"===l.type?Math.abs(n-parseInt(i(h[0]).css("bottom")))>Math.abs(n-parseInt(i(h[1]).css("bottom")))?1:0:Math.abs(n-h[0].offsetLeft)>Math.abs(n-h[1].offsetLeft)?1:0:0,x(s,a),e.preventDefault()}}),y.hover(function(){var e=i(this);e.children("."+m).fadeIn("fast")},function(){var e=i(this);e.children("."+m).fadeOut("fast")}),y.children("."+m).children("i").each(function(e){i(this).on("click",function(){g=1==e?g-l.stepl.max?l.max:Number(g)+l.step;var i=(g-l.min)/(l.max-l.min)*100/b;x(i,0)})});var q=function(){var e=this.value;e=isNaN(e)?0:e,e=el.max?l.max:e,this.value=e;var i=(e-l.min)/(l.max-l.min)*100/b;x(i,0)};y.children("."+c).children("input").on("keydown",function(e){13===e.keyCode&&(e.preventDefault(),q.call(this))}).on("change",q)},f.prototype.events=function(){var e=this;e.config},t.render=function(e){var i=new f(e);return a.call(i)},e(n,t)}); \ No newline at end of file diff --git a/public/static/res/layui/lay/modules/table.js b/public/static/res/layui/lay/modules/table.js new file mode 100644 index 0000000..51b697f --- /dev/null +++ b/public/static/res/layui/lay/modules/table.js @@ -0,0 +1,2 @@ +/** layui-v2.5.5 MIT License By https://www.layui.com */ + ;layui.define(["laytpl","laypage","layer","form","util"],function(e){"use strict";var t=layui.$,i=layui.laytpl,a=layui.laypage,l=layui.layer,n=layui.form,o=(layui.util,layui.hint()),r=layui.device(),d={config:{checkName:"LAY_CHECKED",indexName:"LAY_TABLE_INDEX"},cache:{},index:layui.table?layui.table.index+1e4:0,set:function(e){var i=this;return i.config=t.extend({},i.config,e),i},on:function(e,t){return layui.onevent.call(this,y,e,t)}},c=function(){var e=this,t=e.config,i=t.id||t.index;return i&&(c.that[i]=e,c.config[i]=t),{config:t,reload:function(t){e.reload.call(e,t)},setColsWidth:function(){e.setColsWidth.call(e)},resize:function(){e.resize.call(e)}}},s=function(e){var t=c.config[e];return t||o.error("The ID option was not found in the table instance"),t||null},u=function(e,a,l,n){var o=e.templet?function(){return"function"==typeof e.templet?e.templet(l):i(t(e.templet).html()||String(a)).render(l)}():a;return n?t("
          "+o+"
          ").text():o},y="table",h=".layui-table",f="layui-hide",p="layui-none",v="layui-table-view",m=".layui-table-tool",g=".layui-table-box",b=".layui-table-init",x=".layui-table-header",k=".layui-table-body",C=".layui-table-main",w=".layui-table-fixed",T=".layui-table-fixed-l",A=".layui-table-fixed-r",L=".layui-table-total",N=".layui-table-page",S=".layui-table-sort",W="layui-table-edit",_="layui-table-hover",E=function(e){var t='{{#if(item2.colspan){}} colspan="{{item2.colspan}}"{{#} if(item2.rowspan){}} rowspan="{{item2.rowspan}}"{{#}}}';return e=e||{},['',"","{{# layui.each(d.data.cols, function(i1, item1){ }}","","{{# layui.each(item1, function(i2, item2){ }}",'{{# if(item2.fixed && item2.fixed !== "right"){ left = true; } }}','{{# if(item2.fixed === "right"){ right = true; } }}',function(){return e.fixed&&"right"!==e.fixed?'{{# if(item2.fixed && item2.fixed !== "right"){ }}':"right"===e.fixed?'{{# if(item2.fixed === "right"){ }}':""}(),"{{# var isSort = !(item2.colGroup) && item2.sort; }}",'",e.fixed?"{{# }; }}":"","{{# }); }}","","{{# }); }}","","
          ','
          ','{{# if(item2.type === "checkbox"){ }}','',"{{# } else { }}",'{{item2.title||""}}',"{{# if(isSort){ }}",'',"{{# } }}","{{# } }}","
          ","
          "].join("")},z=['',"","
          "].join(""),H=['
          ',"{{# if(d.data.toolbar){ }}",'
          ','
          ','
          ',"
          ","{{# } }}",'
          ',"{{# if(d.data.loading){ }}",'
          ','',"
          ","{{# } }}","{{# var left, right; }}",'
          ',E(),"
          ",'
          ',z,"
          ","{{# if(left){ }}",'
          ','
          ',E({fixed:!0}),"
          ",'
          ',z,"
          ","
          ","{{# }; }}","{{# if(right){ }}",'
          ','
          ',E({fixed:"right"}),'
          ',"
          ",'
          ',z,"
          ","
          ","{{# }; }}","
          ","{{# if(d.data.totalRow){ }}",'
          ','','',"
          ","
          ","{{# } }}","{{# if(d.data.page){ }}",'
          ','
          ',"
          ","{{# } }}","","
          "].join(""),R=t(window),F=t(document),j=function(e){var i=this;i.index=++d.index,i.config=t.extend({},i.config,d.config,e),i.render()};j.prototype.config={limit:10,loading:!0,cellMinWidth:60,defaultToolbar:["filter","exports","print"],autoSort:!0,text:{none:"无数据"}},j.prototype.render=function(){var e=this,a=e.config;if(a.elem=t(a.elem),a.where=a.where||{},a.id=a.id||a.elem.attr("id")||e.index,a.request=t.extend({pageName:"page",limitName:"limit"},a.request),a.response=t.extend({statusName:"code",statusCode:0,msgName:"msg",dataName:"data",countName:"count"},a.response),"object"==typeof a.page&&(a.limit=a.page.limit||a.limit,a.limits=a.page.limits||a.limits,e.page=a.page.curr=a.page.curr||1,delete a.page.elem,delete a.page.jump),!a.elem[0])return e;a.height&&/^full-\d+$/.test(a.height)&&(e.fullHeightGap=a.height.split("-")[1],a.height=R.height()-e.fullHeightGap),e.setInit();var l=a.elem,n=l.next("."+v),o=e.elem=t(i(H).render({VIEW_CLASS:v,data:a,index:e.index}));if(a.index=e.index,e.key=a.id||a.index,n[0]&&n.remove(),l.after(o),e.layTool=o.find(m),e.layBox=o.find(g),e.layHeader=o.find(x),e.layMain=o.find(C),e.layBody=o.find(k),e.layFixed=o.find(w),e.layFixLeft=o.find(T),e.layFixRight=o.find(A),e.layTotal=o.find(L),e.layPage=o.find(N),e.renderToolbar(),e.fullSize(),a.cols.length>1){var r=e.layFixed.find(x).find("th");r.height(e.layHeader.height()-1-parseFloat(r.css("padding-top"))-parseFloat(r.css("padding-bottom")))}e.pullData(e.page),e.events()},j.prototype.initOpts=function(e){var t=this,i=(t.config,{checkbox:48,radio:48,space:15,numbers:40});e.checkbox&&(e.type="checkbox"),e.space&&(e.type="space"),e.type||(e.type="normal"),"normal"!==e.type&&(e.unresize=!0,e.width=e.width||i[e.type])},j.prototype.setInit=function(e){var t=this,i=t.config;return i.clientWidth=i.width||function(){var e=function(t){var a,l;t=t||i.elem.parent(),a=t.width();try{l="none"===t.css("display")}catch(n){}return!t[0]||a&&!l?a:e(t.parent())};return e()}(),"width"===e?i.clientWidth:void layui.each(i.cols,function(e,a){layui.each(a,function(l,n){if(!n)return void a.splice(l,1);if(n.key=e+"-"+l,n.hide=n.hide||!1,n.colGroup||n.colspan>1){var o=0;layui.each(i.cols[e+1],function(t,i){i.HAS_PARENT||o>1&&o==n.colspan||(i.HAS_PARENT=!0,i.parentKey=e+"-"+l,o+=parseInt(i.colspan>1?i.colspan:1))}),n.colGroup=!0}t.initOpts(n)})})},j.prototype.renderToolbar=function(){var e=this,a=e.config,l=['
          ','
          ','
          '].join(""),n=e.layTool.find(".layui-table-tool-temp");if("default"===a.toolbar)n.html(l);else if("string"==typeof a.toolbar){var o=t(a.toolbar).html()||"";o&&n.html(i(o).render(a))}var r={filter:{title:"筛选列",layEvent:"LAYTABLE_COLS",icon:"layui-icon-cols"},exports:{title:"导出",layEvent:"LAYTABLE_EXPORT",icon:"layui-icon-export"},print:{title:"打印",layEvent:"LAYTABLE_PRINT",icon:"layui-icon-print"}},d=[];"object"==typeof a.defaultToolbar&&layui.each(a.defaultToolbar,function(e,t){var i="string"==typeof t?r[t]:t;i&&d.push('
          ')}),e.layTool.find(".layui-table-tool-self").html(d.join(""))},j.prototype.setParentCol=function(e,t){var i=this,a=i.config,l=i.layHeader.find('th[data-key="'+a.index+"-"+t+'"]'),n=parseInt(l.attr("colspan"))||0;if(l[0]){var o=t.split("-"),r=a.cols[o[0]][o[1]];e?n--:n++,l.attr("colspan",n),l[n<1?"addClass":"removeClass"](f),r.colspan=n,r.hide=n<1;var d=l.data("parentkey");d&&i.setParentCol(e,d)}},j.prototype.setColsPatch=function(){var e=this,t=e.config;layui.each(t.cols,function(t,i){layui.each(i,function(t,i){i.hide&&e.setParentCol(i.hide,i.parentKey)})})},j.prototype.setColsWidth=function(){var e=this,t=e.config,i=0,a=0,l=0,n=0,o=e.setInit("width");e.eachCols(function(e,t){t.hide||i++}),o=o-function(){return"line"===t.skin||"nob"===t.skin?2:i+1}()-e.getScrollWidth(e.layMain[0])-1;var r=function(e){layui.each(t.cols,function(i,r){layui.each(r,function(i,d){var c=0,s=d.minWidth||t.cellMinWidth;return d?void(d.colGroup||d.hide||(e?l&&ln&&a&&(l=(o-n)/a)};r(),r(!0),e.autoColNums=a,e.eachCols(function(i,a){var n=a.minWidth||t.cellMinWidth;a.colGroup||a.hide||(0===a.width?e.getCssRule(t.index+"-"+a.key,function(e){e.style.width=Math.floor(l>=n?l:n)+"px"}):/\d+%$/.test(a.width)&&e.getCssRule(t.index+"-"+a.key,function(e){e.style.width=Math.floor(parseFloat(a.width)/100*o)+"px"}))});var d=e.layMain.width()-e.getScrollWidth(e.layMain[0])-e.layMain.children("table").outerWidth();if(e.autoColNums&&d>=-i&&d<=i){var c=function(t){var i;return t=t||e.layHeader.eq(0).find("thead th:last-child"),i=t.data("field"),!i&&t.prev()[0]?c(t.prev()):t},s=c(),u=s.data("key");e.getCssRule(u,function(t){var i=t.style.width||s.outerWidth();t.style.width=parseFloat(i)+d+"px",e.layMain.height()-e.layMain.prop("clientHeight")>0&&(t.style.width=parseFloat(t.style.width)-1+"px")})}e.loading(!0)},j.prototype.resize=function(){var e=this;e.fullSize(),e.setColsWidth(),e.scrollPatch()},j.prototype.reload=function(e){var i=this;e=e||{},delete i.haveInit,e.data&&e.data.constructor===Array&&delete i.config.data,i.config=t.extend(!0,{},i.config,e),i.render()},j.prototype.errorView=function(e){var i=this,a=i.layMain.find("."+p),l=t('
          '+(e||"Error")+"
          ");a[0]&&(i.layNone.remove(),a.remove()),i.layFixed.addClass(f),i.layMain.find("tbody").html(""),i.layMain.append(i.layNone=l),d.cache[i.key]=[]},j.prototype.page=1,j.prototype.pullData=function(e){var i=this,a=i.config,l=a.request,n=a.response,o=function(){"object"==typeof a.initSort&&i.sort(a.initSort.field,a.initSort.type)};if(i.startTime=(new Date).getTime(),a.url){var r={};r[l.pageName]=e,r[l.limitName]=a.limit;var d=t.extend(r,a.where);a.contentType&&0==a.contentType.indexOf("application/json")&&(d=JSON.stringify(d)),i.loading(),t.ajax({type:a.method||"get",url:a.url,contentType:a.contentType,data:d,dataType:"json",headers:a.headers||{},success:function(t){"function"==typeof a.parseData&&(t=a.parseData(t)||t),t[n.statusName]!=n.statusCode?(i.renderForm(),i.errorView(t[n.msgName]||'返回的数据不符合规范,正确的成功状态码应为:"'+n.statusName+'": '+n.statusCode)):(i.renderData(t,e,t[n.countName]),o(),a.time=(new Date).getTime()-i.startTime+" ms"),i.setColsWidth(),"function"==typeof a.done&&a.done(t,e,t[n.countName])},error:function(e,t){i.errorView("数据接口请求异常:"+t),i.renderForm(),i.setColsWidth()}})}else if(a.data&&a.data.constructor===Array){var c={},s=e*a.limit-a.limit;c[n.dataName]=a.data.concat().splice(s,a.limit),c[n.countName]=a.data.length,i.renderData(c,e,c[n.countName]),o(),i.setColsWidth(),"function"==typeof a.done&&a.done(c,e,c[n.countName])}},j.prototype.eachCols=function(e){var t=this;return d.eachCols(null,e,t.config.cols),t},j.prototype.renderData=function(e,n,o,r){var c=this,s=c.config,y=e[s.response.dataName]||[],h=[],v=[],m=[],g=function(){var e;return!r&&c.sortKey?c.sort(c.sortKey.field,c.sortKey.sort,!0):(layui.each(y,function(a,l){var o=[],y=[],p=[],g=a+s.limit*(n-1)+1;0!==l.length&&(r||(l[d.config.indexName]=a),c.eachCols(function(n,r){var c=r.field||n,h=s.index+"-"+r.key,v=l[c];if(void 0!==v&&null!==v||(v=""),!r.colGroup){var m=['','
          '+function(){var n=t.extend(!0,{LAY_INDEX:g},l),o=d.config.checkName;switch(r.type){case"checkbox":return'";case"radio":return n[o]&&(e=a),'';case"numbers":return g}return r.toolbar?i(t(r.toolbar).html()||"").render(n):u(r,v,n)}(),"
          "].join("");o.push(m),r.fixed&&"right"!==r.fixed&&y.push(m),"right"===r.fixed&&p.push(m)}}),h.push(''+o.join("")+""),v.push(''+y.join("")+""),m.push(''+p.join("")+""))}),c.layBody.scrollTop(0),c.layMain.find("."+p).remove(),c.layMain.find("tbody").html(h.join("")),c.layFixLeft.find("tbody").html(v.join("")),c.layFixRight.find("tbody").html(m.join("")),c.renderForm(),"number"==typeof e&&c.setThisRowChecked(e),c.syncCheckAll(),c.haveInit?c.scrollPatch():setTimeout(function(){c.scrollPatch()},50),c.haveInit=!0,l.close(c.tipsIndex),s.HAS_SET_COLS_PATCH||c.setColsPatch(),void(s.HAS_SET_COLS_PATCH=!0))};return d.cache[c.key]=y,c.layPage[0==o||0===y.length&&1==n?"addClass":"removeClass"](f),r?g():0===y.length?(c.renderForm(),c.errorView(s.text.none)):(c.layFixed.removeClass(f),g(),c.renderTotal(y),void(s.page&&(s.page=t.extend({elem:"layui-table-page"+s.index,count:o,limit:s.limit,limits:s.limits||[10,20,30,40,50,60,70,80,90],groups:3,layout:["prev","page","next","skip","count","limit"],prev:'',next:'',jump:function(e,t){t||(c.page=e.curr,s.limit=e.limit,c.pullData(e.curr))}},s.page),s.page.count=o,a.render(s.page))))},j.prototype.renderTotal=function(e){var t=this,i=t.config,a={};if(i.totalRow){layui.each(e,function(e,i){0!==i.length&&t.eachCols(function(e,t){var l=t.field||e,n=i[l];t.totalRow&&(a[l]=(a[l]||0)+(parseFloat(n)||0))})}),t.dataTotal={};var l=[];t.eachCols(function(e,n){var o=n.field||e,r=function(){var e=n.totalRowText||"",t=parseFloat(a[o]).toFixed(2),i={};return i[o]=t,t=u(n,t,i),n.totalRow?t||e:e}(),d=['','
          '+r,"
          "].join("");n.field&&(t.dataTotal[o]=r),l.push(d)}),t.layTotal.find("tbody").html(""+l.join("")+"")}},j.prototype.getColElem=function(e,t){var i=this,a=i.config;return e.eq(0).find(".laytable-cell-"+(a.index+"-"+t)+":eq(0)")},j.prototype.renderForm=function(e){n.render(e,"LAY-table-"+this.index)},j.prototype.setThisRowChecked=function(e){var t=this,i=(t.config,"layui-table-click"),a=t.layBody.find('tr[data-index="'+e+'"]');a.addClass(i).siblings("tr").removeClass(i)},j.prototype.sort=function(e,i,a,l){var n,r,c=this,s={},u=c.config,h=u.elem.attr("lay-filter"),f=d.cache[c.key];"string"==typeof e&&c.layHeader.find("th").each(function(i,a){var l=t(this),o=l.data("field");if(o===e)return e=l,n=o,!1});try{var n=n||e.data("field"),p=e.data("key");if(c.sortKey&&!a&&n===c.sortKey.field&&i===c.sortKey.sort)return;var v=c.layHeader.find("th .laytable-cell-"+p).find(S);c.layHeader.find("th").find(S).removeAttr("lay-sort"),v.attr("lay-sort",i||null),c.layFixed.find("th")}catch(m){return o.error("Table modules: Did not match to field")}c.sortKey={field:n,sort:i},u.autoSort&&("asc"===i?r=layui.sort(f,n):"desc"===i?r=layui.sort(f,n,!0):(r=layui.sort(f,d.config.indexName),delete c.sortKey)),s[u.response.dataName]=r||f,c.renderData(s,c.page,c.count,!0),l&&layui.event.call(e,y,"sort("+h+")",{field:n,type:i})},j.prototype.loading=function(e){var i=this,a=i.config;a.loading&&(e?(i.layInit&&i.layInit.remove(),delete i.layInit,i.layBox.find(b).remove()):(i.layInit=t(['
          ','',"
          "].join("")),i.layBox.append(i.layInit)))},j.prototype.setCheckData=function(e,t){var i=this,a=i.config,l=d.cache[i.key];l[e]&&l[e].constructor!==Array&&(l[e][a.checkName]=t)},j.prototype.syncCheckAll=function(){var e=this,t=e.config,i=e.layHeader.find('input[name="layTableCheckbox"]'),a=function(i){return e.eachCols(function(e,a){"checkbox"===a.type&&(a[t.checkName]=i)}),i};i[0]&&(d.checkStatus(e.key).isAll?(i[0].checked||(i.prop("checked",!0),e.renderForm("checkbox")),a(!0)):(i[0].checked&&(i.prop("checked",!1),e.renderForm("checkbox")),a(!1)))},j.prototype.getCssRule=function(e,t){var i=this,a=i.elem.find("style")[0],l=a.sheet||a.styleSheet||{},n=l.cssRules||l.rules;layui.each(n,function(i,a){if(a.selectorText===".laytable-cell-"+e)return t(a),!0})},j.prototype.fullSize=function(){var e,t=this,i=t.config,a=i.height;t.fullHeightGap&&(a=R.height()-t.fullHeightGap,a<135&&(a=135),t.elem.css("height",a)),a&&(e=parseFloat(a)-(t.layHeader.outerHeight()||38),i.toolbar&&(e-=t.layTool.outerHeight()||50),i.totalRow&&(e-=t.layTotal.outerHeight()||40),i.page&&(e-=t.layPage.outerHeight()||41),t.layMain.css("height",e-2))},j.prototype.getScrollWidth=function(e){var t=0;return e?t=e.offsetWidth-e.clientWidth:(e=document.createElement("div"),e.style.width="100px",e.style.height="100px",e.style.overflowY="scroll",document.body.appendChild(e),t=e.offsetWidth-e.clientWidth,document.body.removeChild(e)),t},j.prototype.scrollPatch=function(){var e=this,i=e.layMain.children("table"),a=e.layMain.width()-e.layMain.prop("clientWidth"),l=e.layMain.height()-e.layMain.prop("clientHeight"),n=(e.getScrollWidth(e.layMain[0]),i.outerWidth()-e.layMain.width()),o=function(e){if(a&&l){if(e=e.eq(0),!e.find(".layui-table-patch")[0]){var i=t('
          ');i.find("div").css({width:a}),e.find("tr").append(i)}}else e.find(".layui-table-patch").remove()};o(e.layHeader),o(e.layTotal);var r=e.layMain.height(),d=r-l;e.layFixed.find(k).css("height",i.height()>=d?d:"auto"),e.layFixRight[n>0?"removeClass":"addClass"](f),e.layFixRight.css("right",a-1)},j.prototype.events=function(){var e,i=this,a=i.config,o=t("body"),c={},s=i.layHeader.find("th"),h=".layui-table-cell",p=a.elem.attr("lay-filter");i.layTool.on("click","*[lay-event]",function(e){var o=t(this),c=o.attr("lay-event"),s=function(e){var l=t(e.list),n=t('
            ');n.html(l),a.height&&n.css("max-height",a.height-(i.layTool.outerHeight()||50)),o.find(".layui-table-tool-panel")[0]||o.append(n),i.renderForm(),n.on("click",function(e){layui.stope(e)}),e.done&&e.done(n,l)};switch(layui.stope(e),F.trigger("table.tool.panel.remove"),l.close(i.tipsIndex),c){case"LAYTABLE_COLS":s({list:function(){var e=[];return i.eachCols(function(t,i){i.field&&"normal"==i.type&&e.push('
          • ')}),e.join("")}(),done:function(){n.on("checkbox(LAY_TABLE_TOOL_COLS)",function(e){var l=t(e.elem),n=this.checked,o=l.data("key"),r=l.data("parentkey");layui.each(a.cols,function(e,t){layui.each(t,function(t,l){if(e+"-"+t===o){var d=l.hide;l.hide=!n,i.elem.find('*[data-key="'+a.index+"-"+o+'"]')[n?"removeClass":"addClass"](f),d!=l.hide&&i.setParentCol(!n,r),i.resize()}})})})}});break;case"LAYTABLE_EXPORT":r.ie?l.tips("导出功能不支持 IE,请用 Chrome 等高级浏览器导出",this,{tips:3}):s({list:function(){return['
          • 导出到 Csv 文件
          • ','
          • 导出到 Excel 文件
          • '].join("")}(),done:function(e,l){l.on("click",function(){var e=t(this).data("type");d.exportFile.call(i,a.id,null,e)})}});break;case"LAYTABLE_PRINT":var u=window.open("打印窗口","_blank"),h=[""].join(""),v=t(i.layHeader.html());v.append(i.layMain.find("table").html()),v.append(i.layTotal.find("table").html()),v.find("th.layui-table-patch").remove(),v.find(".layui-table-col-special").remove(),u.document.write(h+v.prop("outerHTML")),u.document.close(),u.print(),u.close()}layui.event.call(this,y,"toolbar("+p+")",t.extend({event:c,config:a},{}))}),s.on("mousemove",function(e){var i=t(this),a=i.offset().left,l=e.clientX-a;i.data("unresize")||c.resizeStart||(c.allowResize=i.width()-l<=10,o.css("cursor",c.allowResize?"col-resize":""))}).on("mouseleave",function(){t(this);c.resizeStart||o.css("cursor","")}).on("mousedown",function(e){var l=t(this);if(c.allowResize){var n=l.data("key");e.preventDefault(),c.resizeStart=!0,c.offset=[e.clientX,e.clientY],i.getCssRule(n,function(e){var t=e.style.width||l.outerWidth();c.rule=e,c.ruleWidth=parseFloat(t),c.minWidth=l.data("minwidth")||a.cellMinWidth})}}),F.on("mousemove",function(t){if(c.resizeStart){if(t.preventDefault(),c.rule){var a=c.ruleWidth+t.clientX-c.offset[0];a');return n[0].value=i.data("content")||l.text(),i.find("."+W)[0]||i.append(n),n.focus(),void layui.stope(e)}}).on("mouseenter","td",function(){b.call(this)}).on("mouseleave","td",function(){b.call(this,"hide")});var g="layui-table-grid-down",b=function(e){var i=t(this),a=i.children(h);if(!i.data("off"))if(e)i.find(".layui-table-grid-down").remove();else if(a.prop("scrollWidth")>a.outerWidth()){if(a.find("."+g)[0])return;i.append('
            ')}};i.layBody.on("click","."+g,function(e){var n=t(this),o=n.parent(),d=o.children(h);i.tipsIndex=l.tips(['
            ',d.html(),"
            ",''].join(""),d[0],{tips:[3,""],time:-1,anim:-1,maxWidth:r.ios||r.android?300:i.elem.width()/2,isOutAnim:!1,skin:"layui-table-tips",success:function(e,t){e.find(".layui-table-tips-c").on("click",function(){l.close(t)})}}),layui.stope(e)}),i.layBody.on("click","*[lay-event]",function(){var e=t(this),a=e.parents("tr").eq(0).data("index");layui.event.call(this,y,"tool("+p+")",v.call(this,{event:e.attr("lay-event")})),i.setThisRowChecked(a)}),i.layMain.on("scroll",function(){var e=t(this),a=e.scrollLeft(),n=e.scrollTop();i.layHeader.scrollLeft(a),i.layTotal.scrollLeft(a),i.layFixed.find(k).scrollTop(n),l.close(i.tipsIndex)}),R.on("resize",function(){i.resize()})},function(){F.on("click",function(){F.trigger("table.remove.tool.panel")}),F.on("table.remove.tool.panel",function(){t(".layui-table-tool-panel").remove()})}(),d.init=function(e,i){i=i||{};var a=this,l=t(e?'table[lay-filter="'+e+'"]':h+"[lay-data]"),n="Table element property lay-data configuration item has a syntax error: ";return l.each(function(){var a=t(this),l=a.attr("lay-data");try{l=new Function("return "+l)()}catch(r){o.error(n+l)}var c=[],s=t.extend({elem:this,cols:[],data:[],skin:a.attr("lay-skin"),size:a.attr("lay-size"),even:"string"==typeof a.attr("lay-even")},d.config,i,l);e&&a.hide(),a.find("thead>tr").each(function(e){s.cols[e]=[],t(this).children().each(function(i){var a=t(this),l=a.attr("lay-data");try{l=new Function("return "+l)()}catch(r){return o.error(n+l)}var d=t.extend({title:a.text(),colspan:a.attr("colspan")||0,rowspan:a.attr("rowspan")||0},l);d.colspan<2&&c.push(d),s.cols[e].push(d)})}),a.find("tbody>tr").each(function(e){var i=t(this),a={};i.children("td").each(function(e,i){var l=t(this),n=l.data("field");if(n)return a[n]=l.html()}),layui.each(c,function(e,t){var l=i.children("td").eq(e);a[t.field]=l.html()}),s.data[e]=a}),d.render(s)}),a},c.that={},c.config={},d.eachCols=function(e,i,a){var l=c.config[e]||{},n=[],o=0;a=t.extend(!0,[],a||l.cols),layui.each(a,function(e,t){layui.each(t,function(t,i){if(i.colGroup){var l=0;o++,i.CHILD_COLS=[],layui.each(a[e+1],function(e,t){t.PARENT_COL_INDEX||l>1&&l==i.colspan||(t.PARENT_COL_INDEX=o,i.CHILD_COLS.push(t),l+=parseInt(t.colspan>1?t.colspan:1))})}i.PARENT_COL_INDEX||n.push(i)})});var r=function(e){layui.each(e||n,function(e,t){return t.CHILD_COLS?r(t.CHILD_COLS):void("function"==typeof i&&i(e,t))})};r()},d.checkStatus=function(e){var t=0,i=0,a=[],l=d.cache[e]||[];return layui.each(l,function(e,l){return l.constructor===Array?void i++:void(l[d.config.checkName]&&(t++,a.push(d.clearCacheKey(l))))}),{data:a,isAll:!!l.length&&t===l.length-i}},d.exportFile=function(e,t,i){var a=this;t=t||d.clearCacheKey(d.cache[e]),i=i||"csv";var l=c.config[e]||{},n={csv:"text/csv",xls:"application/vnd.ms-excel"}[i],s=document.createElement("a");return r.ie?o.error("IE_NOT_SUPPORT_EXPORTS"):(s.href="data:"+n+";charset=utf-8,\ufeff"+encodeURIComponent(function(){var i=[],l=[],n=[];return layui.each(t,function(t,a){var n=[];"object"==typeof e?(layui.each(e,function(e,a){0==t&&i.push(a||"")}),layui.each(d.clearCacheKey(a),function(e,t){n.push('"'+(t||"")+'"')})):d.eachCols(e,function(e,l){if(l.field&&"normal"==l.type&&!l.hide){var o=a[l.field];void 0!==o&&null!==o||(o=""),0==t&&i.push(l.title||""),n.push('"'+u(l,o,a,"text")+'"')}}),l.push(n.join(","))}),layui.each(a.dataTotal,function(e,t){n.push(t)}),i.join(",")+"\r\n"+l.join("\r\n")+"\r\n"+n.join(",")}()),s.download=(l.title||"table_"+(l.index||""))+"."+i,document.body.appendChild(s),s.click(),void document.body.removeChild(s))},d.resize=function(e){if(e){var t=s(e);if(!t)return;c.that[e].resize()}else layui.each(c.that,function(){this.resize()})},d.reload=function(e,t){var i=s(e);if(i){var a=c.that[e];return a.reload(t),c.call(a)}},d.render=function(e){var t=new j(e);return c.call(t)},d.clearCacheKey=function(e){return e=t.extend({},e),delete e[d.config.checkName],delete e[d.config.indexName],e},d.init(),e(y,d)}); \ No newline at end of file diff --git a/public/static/res/layui/lay/modules/transfer.js b/public/static/res/layui/lay/modules/transfer.js new file mode 100644 index 0000000..6b7b677 --- /dev/null +++ b/public/static/res/layui/lay/modules/transfer.js @@ -0,0 +1,2 @@ +/** layui-v2.5.5 MIT License By https://www.layui.com */ + ;layui.define(["laytpl","form"],function(e){"use strict";var a=layui.$,t=layui.laytpl,n=layui.form,i="transfer",l={config:{},index:layui[i]?layui[i].index+1e4:0,set:function(e){var t=this;return t.config=a.extend({},t.config,e),t},on:function(e,a){return layui.onevent.call(this,i,e,a)}},r=function(){var e=this,a=e.config,t=a.id||e.index;return r.that[t]=e,r.config[t]=a,{config:a,reload:function(a){e.reload.call(e,a)},getData:function(){return e.getData.call(e)}}},c="layui-hide",o="layui-btn-disabled",d="layui-none",s="layui-transfer-box",u="layui-transfer-header",h="layui-transfer-search",f="layui-transfer-active",y="layui-transfer-data",p=function(e){return e=e||{},['
            ','
            ','","
            ","{{# if(d.data.showSearch){ }}",'","{{# } }}",'
              ',"
              "].join("")},v=['
              ',p({index:0,checkAllName:"layTransferLeftCheckAll"}),'
              ','",'","
              ",p({index:1,checkAllName:"layTransferRightCheckAll"}),"
              "].join(""),x=function(e){var t=this;t.index=++l.index,t.config=a.extend({},t.config,l.config,e),t.render()};x.prototype.config={title:["列表一","列表二"],width:200,height:360,data:[],value:[],showSearch:!1,id:"",text:{none:"无数据",searchNone:"无匹配数据"}},x.prototype.reload=function(e){var t=this;layui.each(e,function(e,a){a.constructor===Array&&delete t.config[e]}),t.config=a.extend(!0,{},t.config,e),t.render()},x.prototype.render=function(){var e=this,n=e.config,i=e.elem=a(t(v).render({data:n,index:e.index})),l=n.elem=a(n.elem);l[0]&&(n.data=n.data||[],n.value=n.value||[],e.key=n.id||e.index,l.html(e.elem),e.layBox=e.elem.find("."+s),e.layHeader=e.elem.find("."+u),e.laySearch=e.elem.find("."+h),e.layData=i.find("."+y),e.layBtn=i.find("."+f+" .layui-btn"),e.layBox.css({width:n.width,height:n.height}),e.layData.css({height:function(){return n.height-e.layHeader.outerHeight()-e.laySearch.outerHeight()-2}()}),e.renderData(),e.events())},x.prototype.renderData=function(){var e=this,a=(e.config,[{checkName:"layTransferLeftCheck",views:[]},{checkName:"layTransferRightCheck",views:[]}]);e.parseData(function(e){var t=e.selected?1:0,n=["
            • ",'',"
            • "].join("");a[t].views.push(n),delete e.selected}),e.layData.eq(0).html(a[0].views.join("")),e.layData.eq(1).html(a[1].views.join("")),e.renderCheckBtn()},x.prototype.renderForm=function(e){n.render(e,"LAY-transfer-"+this.index)},x.prototype.renderCheckBtn=function(e){var t=this,n=t.config;e=e||{},t.layBox.each(function(i){var l=a(this),r=l.find("."+y),d=l.find("."+u).find('input[type="checkbox"]'),s=r.find('input[type="checkbox"]'),h=0,f=!1;if(s.each(function(){var e=a(this).data("hide");(this.checked||this.disabled||e)&&h++,this.checked&&!e&&(f=!0)}),d.prop("checked",f&&h===s.length),t.layBtn.eq(i)[f?"removeClass":"addClass"](o),!e.stopNone){var p=r.children("li:not(."+c+")").length;t.noneView(r,p?"":n.text.none)}}),t.renderForm("checkbox")},x.prototype.noneView=function(e,t){var n=a('

              '+(t||"")+"

              ");e.find("."+d)[0]&&e.find("."+d).remove(),t.replace(/\s/g,"")&&e.append(n)},x.prototype.setValue=function(){var e=this,t=e.config,n=[];return e.layBox.eq(1).find("."+y+' input[type="checkbox"]').each(function(){var e=a(this).data("hide");e||n.push(this.value)}),t.value=n,e},x.prototype.parseData=function(e){var t=this,n=t.config,i=[];return layui.each(n.data,function(t,l){l=("function"==typeof n.parseData?n.parseData(l):l)||l,i.push(l=a.extend({},l)),layui.each(n.value,function(e,a){a==l.value&&(l.selected=!0)}),e&&e(l)}),n.data=i,t},x.prototype.getData=function(e){var a=this,t=a.config,n=[];return a.setValue(),layui.each(e||t.value,function(e,a){layui.each(t.data,function(e,t){delete t.selected,a==t.value&&n.push(t)})}),n},x.prototype.events=function(){var e=this,t=e.config;e.elem.on("click",'input[lay-filter="layTransferCheckbox"]+',function(){var t=a(this).prev(),n=t[0].checked,i=t.parents("."+s).eq(0).find("."+y);t[0].disabled||("all"===t.attr("lay-type")&&i.find('input[type="checkbox"]').each(function(){this.disabled||(this.checked=n)}),e.renderCheckBtn({stopNone:!0}))}),e.layBtn.on("click",function(){var n=a(this),i=n.data("index"),l=e.layBox.eq(i),r=[];if(!n.hasClass(o)){e.layBox.eq(i).each(function(t){var n=a(this),i=n.find("."+y);i.children("li").each(function(){var t=a(this),n=t.find('input[type="checkbox"]'),i=n.data("hide");n[0].checked&&!i&&(n[0].checked=!1,l.siblings("."+s).find("."+y).append(t.clone()),t.remove(),r.push(n[0].value)),e.setValue()})}),e.renderCheckBtn();var c=l.siblings("."+s).find("."+h+" input");""===c.val()||c.trigger("keyup"),t.onchange&&t.onchange(e.getData(r),i)}}),e.laySearch.find("input").on("keyup",function(){var n=this.value,i=a(this).parents("."+h).eq(0).siblings("."+y),l=i.children("li");l.each(function(){var e=a(this),t=e.find('input[type="checkbox"]'),i=t[0].title.indexOf(n)!==-1;e[i?"removeClass":"addClass"](c),t.data("hide",!i)}),e.renderCheckBtn();var r=l.length===i.children("li."+c).length;e.noneView(i,r?t.text.searchNone:"")})},r.that={},r.config={},l.reload=function(e,a){var t=r.that[e];return t.reload(a),r.call(t)},l.getData=function(e){var a=r.that[e];return a.getData()},l.render=function(e){var a=new x(e);return r.call(a)},e(i,l)}); \ No newline at end of file diff --git a/public/static/res/layui/lay/modules/tree.js b/public/static/res/layui/lay/modules/tree.js new file mode 100644 index 0000000..15fb294 --- /dev/null +++ b/public/static/res/layui/lay/modules/tree.js @@ -0,0 +1,2 @@ +/** layui-v2.5.5 MIT License By https://www.layui.com */ + ;layui.define("form",function(e){"use strict";var i=layui.$,a=layui.form,n=layui.layer,t="tree",r={config:{},index:layui[t]?layui[t].index+1e4:0,set:function(e){var a=this;return a.config=i.extend({},a.config,e),a},on:function(e,i){return layui.onevent.call(this,t,e,i)}},l=function(){var e=this,i=e.config,a=i.id||e.index;return l.that[a]=e,l.config[a]=i,{config:i,reload:function(i){e.reload.call(e,i)},getChecked:function(){return e.getChecked.call(e)},setChecked:function(i){return e.setChecked.call(e,i)}}},c="layui-hide",d="layui-disabled",s="layui-tree-set",o="layui-tree-iconClick",h="layui-icon-addition",u="layui-icon-subtraction",p="layui-tree-entry",f="layui-tree-main",y="layui-tree-txt",v="layui-tree-pack",C="layui-tree-spread",k="layui-tree-setLineShort",m="layui-tree-showLine",x="layui-tree-lineExtend",b=function(e){var a=this;a.index=++r.index,a.config=i.extend({},a.config,r.config,e),a.render()};b.prototype.config={data:[],showCheckbox:!1,showLine:!0,accordion:!1,onlyIconControl:!1,isJump:!1,edit:!1,text:{defaultNodeName:"未命名",none:"无数据"}},b.prototype.reload=function(e){var a=this;layui.each(e,function(e,i){i.constructor===Array&&delete a.config[e]}),a.config=i.extend(!0,{},a.config,e),a.render()},b.prototype.render=function(){var e=this,a=e.config;e.checkids=[];var n=i('
              ');e.tree(n);var t=a.elem=i(a.elem);if(t[0]){if(e.key=a.id||e.index,e.elem=n,e.elemNone=i('
              '+a.text.none+"
              "),t.html(e.elem),0==e.elem.find(".layui-tree-set").length)return e.elem.append(e.elemNone);a.showCheckbox&&e.renderForm("checkbox"),e.elem.find(".layui-tree-set").each(function(){var e=i(this);e.parent(".layui-tree-pack")[0]||e.addClass("layui-tree-setHide"),!e.next()[0]&&e.parents(".layui-tree-pack").eq(1).hasClass("layui-tree-lineExtend")&&e.addClass(k),e.next()[0]||e.parents(".layui-tree-set").eq(0).next()[0]||e.addClass(k)}),e.events()}},b.prototype.renderForm=function(e){a.render(e,"LAY-tree-"+this.index)},b.prototype.tree=function(e,a){var n=this,t=n.config,r=a||t.data;layui.each(r,function(a,r){var l=r.children&&r.children.length>0,o=i('
              '),h=i(['
              ','
              ','
              ',function(){return t.showLine?l?'':'':''}(),function(){return t.showCheckbox?'':""}(),function(){return t.isJump&&r.href?''+(r.title||r.label||t.text.defaultNodeName)+"":''+(r.title||r.label||t.text.defaultNodeName)+""}(),"
              ",function(){if(!t.edit)return"";var e={add:'',update:'',del:''},i=['
              '];return t.edit===!0&&(t.edit=["update","del"]),"object"==typeof t.edit?(layui.each(t.edit,function(a,n){i.push(e[n]||"")}),i.join("")+"
              "):void 0}(),"
              "].join(""));l&&(h.append(o),n.tree(o,r.children)),e.append(h),h.prev("."+s)[0]&&h.prev().children(".layui-tree-pack").addClass("layui-tree-showLine"),l||h.parent(".layui-tree-pack").addClass("layui-tree-lineExtend"),n.spread(h,r),t.showCheckbox&&(r.checked&&n.checkids.push(r.id),n.checkClick(h,r)),t.edit&&n.operate(h,r)})},b.prototype.spread=function(e,a){var n=this,t=n.config,r=e.children("."+p),l=r.children("."+f),c=r.find("."+o),k=r.find("."+y),m=t.onlyIconControl?c:l,x="";m.on("click",function(i){var a=e.children("."+v),n=m.children(".layui-icon")[0]?m.children(".layui-icon"):m.find(".layui-tree-icon").children(".layui-icon");if(a[0]){if(e.hasClass(C))e.removeClass(C),a.slideUp(200),n.removeClass(u).addClass(h);else if(e.addClass(C),a.slideDown(200),n.addClass(u).removeClass(h),t.accordion){var r=e.siblings("."+s);r.removeClass(C),r.children("."+v).slideUp(200),r.find(".layui-tree-icon").children(".layui-icon").removeClass(u).addClass(h)}}else x="normal"}),k.on("click",function(){var n=i(this);n.hasClass(d)||(x=e.hasClass(C)?t.onlyIconControl?"open":"close":t.onlyIconControl?"close":"open",t.click&&t.click({elem:e,state:x,data:a}))})},b.prototype.setCheckbox=function(e,i,a){var n=this,t=(n.config,a.prop("checked"));if(!a.prop("disabled")){if("object"==typeof i.children||e.find("."+v)[0]){var r=e.find("."+v).find('input[same="layuiTreeCheck"]');r.each(function(){this.disabled||(this.checked=t)})}var l=function(e){if(e.parents("."+s)[0]){var i,a=e.parent("."+v),n=a.parent(),r=a.prev().find('input[same="layuiTreeCheck"]');t?r.prop("checked",t):(a.find('input[same="layuiTreeCheck"]').each(function(){this.checked&&(i=!0)}),i||r.prop("checked",!1)),l(n)}};l(e),n.renderForm("checkbox")}},b.prototype.checkClick=function(e,a){var n=this,t=n.config,r=e.children("."+p),l=r.children("."+f);l.on("click",'input[same="layuiTreeCheck"]+',function(r){layui.stope(r);var l=i(this).prev(),c=l.prop("checked");l.prop("disabled")||(n.setCheckbox(e,a,l),t.oncheck&&t.oncheck({elem:e,checked:c,data:a}))})},b.prototype.operate=function(e,a){var t=this,r=t.config,l=e.children("."+p),d=l.children("."+f);l.children(".layui-tree-btnGroup").on("click",".layui-icon",function(l){layui.stope(l);var f=i(this).data("type"),b=e.children("."+v),g={data:a,type:f,elem:e};if("add"==f){b[0]||(r.showLine?(d.find("."+o).addClass("layui-tree-icon"),d.find("."+o).children(".layui-icon").addClass(h).removeClass("layui-icon-file")):d.find(".layui-tree-iconArrow").removeClass(c),e.append('
              '));var w=r.operate&&r.operate(g),N={};if(N.title=r.text.defaultNodeName,N.id=w,t.tree(e.children("."+v),[N]),r.showLine)if(b[0])b.hasClass(x)||b.addClass(x),e.find("."+v).each(function(){i(this).children("."+s).last().addClass(k)}),b.children("."+s).last().prev().hasClass(k)?b.children("."+s).last().prev().removeClass(k):b.children("."+s).last().removeClass(k),!e.parent("."+v)[0]&&e.next()[0]&&b.children("."+s).last().removeClass(k);else{var T=e.siblings("."+s),L=1,A=e.parent("."+v);layui.each(T,function(e,a){i(a).children("."+v)[0]||(L=0)}),1==L?(T.children("."+v).addClass(m),T.children("."+v).children("."+s).removeClass(k),e.children("."+v).addClass(m),A.removeClass(x),A.children("."+s).last().children("."+v).children("."+s).last().addClass(k)):e.children("."+v).children("."+s).addClass(k)}if(!r.showCheckbox)return;if(d.find('input[same="layuiTreeCheck"]')[0].checked){var I=e.children("."+v).children("."+s).last();I.find('input[same="layuiTreeCheck"]')[0].checked=!0}t.renderForm("checkbox")}else if("update"==f){var F=d.children("."+y).html();d.children("."+y).html(""),d.append(''),d.children(".layui-tree-editInput").val(F).focus();var j=function(e){var i=e.val().trim();i=i?i:r.text.defaultNodeName,e.remove(),d.children("."+y).html(i),g.data.title=i,r.operate&&r.operate(g)};d.children(".layui-tree-editInput").blur(function(){j(i(this))}),d.children(".layui-tree-editInput").on("keydown",function(e){13===e.keyCode&&(e.preventDefault(),j(i(this)))})}else n.confirm('确认删除该节点 "'+(a.title||"")+'" 吗?',function(a){if(r.operate&&r.operate(g),g.status="remove",n.close(a),!e.prev("."+s)[0]&&!e.next("."+s)[0]&&!e.parent("."+v)[0])return e.remove(),void t.elem.append(t.elemNone);if(e.siblings("."+s).children("."+p)[0]){if(r.showCheckbox){var l=function(e){if(e.parents("."+s)[0]){var a=e.siblings("."+s).children("."+p),n=e.parent("."+v).prev(),r=n.find('input[same="layuiTreeCheck"]')[0],c=1,d=0;0==r.checked&&(a.each(function(e,a){var n=i(a).find('input[same="layuiTreeCheck"]')[0];0!=n.checked||n.disabled||(c=0),n.disabled||(d=1)}),1==c&&1==d&&(r.checked=!0,t.renderForm("checkbox"),l(n.parent("."+s))))}};l(e)}if(r.showLine){var d=e.siblings("."+s),h=1,f=e.parent("."+v);layui.each(d,function(e,a){i(a).children("."+v)[0]||(h=0)}),1==h?(b[0]||(f.removeClass(x),d.children("."+v).addClass(m),d.children("."+v).children("."+s).removeClass(k)),e.next()[0]?f.children("."+s).last().children("."+v).children("."+s).last().addClass(k):e.prev().children("."+v).children("."+s).last().addClass(k),e.next()[0]||e.parents("."+s)[1]||e.parents("."+s).eq(0).next()[0]||e.prev("."+s).addClass(k)):!e.next()[0]&&e.hasClass(k)&&e.prev().addClass(k)}}else{var y=e.parent("."+v).prev();if(r.showLine){y.find("."+o).removeClass("layui-tree-icon"),y.find("."+o).children(".layui-icon").removeClass(u).addClass("layui-icon-file");var w=y.parents("."+v).eq(0);w.addClass(x),w.children("."+s).each(function(){i(this).children("."+v).children("."+s).last().addClass(k)})}else y.find(".layui-tree-iconArrow").addClass(c);e.parents("."+s).eq(0).removeClass(C),e.parent("."+v).remove()}e.remove()})})},b.prototype.events=function(){var e=this,a=e.config;e.elem.find(".layui-tree-checkedFirst");e.setChecked(e.checkids),e.elem.find(".layui-tree-search").on("keyup",function(){var n=i(this),t=n.val(),r=n.nextAll(),l=[];r.find("."+y).each(function(){var e=i(this).parents("."+p);if(i(this).html().indexOf(t)!=-1){l.push(i(this).parent());var a=function(e){e.addClass("layui-tree-searchShow"),e.parent("."+v)[0]&&a(e.parent("."+v).parent("."+s))};a(e.parent("."+s))}}),r.find("."+p).each(function(){var e=i(this).parent("."+s);e.hasClass("layui-tree-searchShow")||e.addClass(c)}),0==r.find(".layui-tree-searchShow").length&&e.elem.append(e.elemNone),a.onsearch&&a.onsearch({elem:l})}),e.elem.find(".layui-tree-search").on("keydown",function(){i(this).nextAll().find("."+p).each(function(){var e=i(this).parent("."+s);e.removeClass("layui-tree-searchShow "+c)}),i(".layui-tree-emptyText")[0]&&i(".layui-tree-emptyText").remove()})},b.prototype.getChecked=function(){var e=this,a=e.config,n=[],t=[];e.elem.find(".layui-form-checked").each(function(){n.push(i(this).prev()[0].value)});var r=function(e,a){layui.each(e,function(e,t){layui.each(n,function(e,n){if(t.id==n){var l=i.extend({},t);return delete l.children,a.push(l),t.children&&(l.children=[],r(t.children,l.children)),!0}})})};return r(i.extend({},a.data),t),t},b.prototype.setChecked=function(e){var a=this;a.config;a.elem.find("."+s).each(function(a,n){var t=i(this).data("id"),r=i(n).children("."+p).find('input[same="layuiTreeCheck"]'),l=r.next();if("number"==typeof e){if(t==e)return r[0].checked||l.click(),!1}else"object"==typeof e&&layui.each(e,function(e,i){if(i==t&&!r[0].checked)return l.click(),!0})})},l.that={},l.config={},r.reload=function(e,i){var a=l.that[e];return a.reload(i),l.call(a)},r.getChecked=function(e){var i=l.that[e];return i.getChecked()},r.setChecked=function(e,i){var a=l.that[e];return a.setChecked(i)},r.render=function(e){var i=new b(e);return l.call(i)},e(t,r)}); \ No newline at end of file diff --git a/public/static/res/layui/lay/modules/upload.js b/public/static/res/layui/lay/modules/upload.js new file mode 100644 index 0000000..262b513 --- /dev/null +++ b/public/static/res/layui/lay/modules/upload.js @@ -0,0 +1,2 @@ +/** layui-v2.5.5 MIT License By https://www.layui.com */ + ;layui.define("layer",function(e){"use strict";var t=layui.$,i=layui.layer,n=layui.hint(),o=layui.device(),a={config:{},set:function(e){var i=this;return i.config=t.extend({},i.config,e),i},on:function(e,t){return layui.onevent.call(this,r,e,t)}},l=function(){var e=this;return{upload:function(t){e.upload.call(e,t)},reload:function(t){e.reload.call(e,t)},config:e.config}},r="upload",u="layui-upload-file",c="layui-upload-form",f="layui-upload-iframe",s="layui-upload-choose",p=function(e){var i=this;i.config=t.extend({},i.config,a.config,e),i.render()};p.prototype.config={accept:"images",exts:"",auto:!0,bindAction:"",url:"",field:"file",acceptMime:"",method:"post",data:{},drag:!0,size:0,number:0,multiple:!1},p.prototype.render=function(e){var i=this,e=i.config;e.elem=t(e.elem),e.bindAction=t(e.bindAction),i.file(),i.events()},p.prototype.file=function(){var e=this,i=e.config,n=e.elemFile=t(['"].join("")),a=i.elem.next();(a.hasClass(u)||a.hasClass(c))&&a.remove(),o.ie&&o.ie<10&&i.elem.wrap('
              '),e.isFile()?(e.elemFile=i.elem,i.field=i.elem[0].name):i.elem.after(n),o.ie&&o.ie<10&&e.initIE()},p.prototype.initIE=function(){var e=this,i=e.config,n=t(''),o=t(['
              ',"
              "].join(""));t("#"+f)[0]||t("body").append(n),i.elem.next().hasClass(c)||(e.elemFile.wrap(o),i.elem.next("."+c).append(function(){var e=[];return layui.each(i.data,function(t,i){i="function"==typeof i?i():i,e.push('')}),e.join("")}()))},p.prototype.msg=function(e){return i.msg(e,{icon:2,shift:6})},p.prototype.isFile=function(){var e=this.config.elem[0];if(e)return"input"===e.tagName.toLocaleLowerCase()&&"file"===e.type},p.prototype.preview=function(e){var t=this;window.FileReader&&layui.each(t.chooseFiles,function(t,i){var n=new FileReader;n.readAsDataURL(i),n.onload=function(){e&&e(t,i,this.result)}})},p.prototype.upload=function(e,i){var n,a=this,l=a.config,r=a.elemFile[0],u=function(){var i=0,n=0,o=e||a.files||a.chooseFiles||r.files,u=function(){l.multiple&&i+n===a.fileLength&&"function"==typeof l.allDone&&l.allDone({total:a.fileLength,successful:i,aborted:n})};layui.each(o,function(e,o){var r=new FormData;r.append(l.field,o),layui.each(l.data,function(e,t){t="function"==typeof t?t():t,r.append(e,t)}),t.ajax({url:l.url,type:"post",data:r,contentType:!1,processData:!1,dataType:"json",headers:l.headers||{},success:function(t){i++,d(e,t),u()},error:function(){n++,a.msg("请求上传接口出现异常"),m(e),u()},xhr:function(){var e=new XMLHttpRequest;return e.upload.addEventListener("progress",function(e){if(e.lengthComputable){var t=Math.floor(e.loaded/e.total*100);"function"==typeof l.progress&&l.progress(t,e)}}),e}})})},c=function(){var e=t("#"+f);a.elemFile.parent().submit(),clearInterval(p.timer),p.timer=setInterval(function(){var t,i=e.contents().find("body");try{t=i.text()}catch(n){a.msg("获取上传后的响应信息出现异常"),clearInterval(p.timer),m()}t&&(clearInterval(p.timer),i.html(""),d(0,t))},30)},d=function(e,t){if(a.elemFile.next("."+s).remove(),r.value="","object"!=typeof t)try{t=JSON.parse(t)}catch(i){return t={},a.msg("请对上传接口返回有效JSON")}"function"==typeof l.done&&l.done(t,e||0,function(e){a.upload(e)})},m=function(e){l.auto&&(r.value=""),"function"==typeof l.error&&l.error(e||0,function(e){a.upload(e)})},h=l.exts,v=function(){var t=[];return layui.each(e||a.chooseFiles,function(e,i){t.push(i.name)}),t}(),g={preview:function(e){a.preview(e)},upload:function(e,t){var i={};i[e]=t,a.upload(i)},pushFile:function(){return a.files=a.files||{},layui.each(a.chooseFiles,function(e,t){a.files[e]=t}),a.files},resetFile:function(e,t,i){var n=new File([t],i);a.files=a.files||{},a.files[e]=n}},y=function(){if("choose"!==i&&!l.auto||(l.choose&&l.choose(g),"choose"!==i))return l.before&&l.before(g),o.ie?o.ie>9?u():c():void u()};if(v=0===v.length?r.value.match(/[^\/\\]+\..+/g)||[]||"":v,0!==v.length){switch(l.accept){case"file":if(h&&!RegExp("\\w\\.("+h+")$","i").test(escape(v)))return a.msg("选择的文件中包含不支持的格式"),r.value="";break;case"video":if(!RegExp("\\w\\.("+(h||"avi|mp4|wma|rmvb|rm|flash|3gp|flv")+")$","i").test(escape(v)))return a.msg("选择的视频中包含不支持的格式"),r.value="";break;case"audio":if(!RegExp("\\w\\.("+(h||"mp3|wav|mid")+")$","i").test(escape(v)))return a.msg("选择的音频中包含不支持的格式"),r.value="";break;default:if(layui.each(v,function(e,t){RegExp("\\w\\.("+(h||"jpg|png|gif|bmp|jpeg$")+")","i").test(escape(t))||(n=!0)}),n)return a.msg("选择的图片中包含不支持的格式"),r.value=""}if(a.fileLength=function(){var t=0,i=e||a.files||a.chooseFiles||r.files;return layui.each(i,function(){t++}),t}(),l.number&&a.fileLength>l.number)return a.msg("同时最多只能上传的数量为:"+l.number);if(l.size>0&&!(o.ie&&o.ie<10)){var F;if(layui.each(a.chooseFiles,function(e,t){if(t.size>1024*l.size){var i=l.size/1024;i=i>=1?i.toFixed(2)+"MB":l.size+"KB",r.value="",F=i}}),F)return a.msg("文件不能超过"+F)}y()}},p.prototype.reload=function(e){e=e||{},delete e.elem,delete e.bindAction;var i=this,e=i.config=t.extend({},i.config,a.config,e),n=e.elem.next();n.attr({name:e.name,accept:e.acceptMime,multiple:e.multiple})},p.prototype.events=function(){var e=this,i=e.config,a=function(t){e.chooseFiles={},layui.each(t,function(t,i){var n=(new Date).getTime();e.chooseFiles[n+"-"+t]=i})},l=function(t,n){var o=e.elemFile,a=t.length>1?t.length+"个文件":(t[0]||{}).name||o[0].value.match(/[^\/\\]+\..+/g)||[]||"";o.next().hasClass(s)&&o.next().remove(),e.upload(null,"choose"),e.isFile()||i.choose||o.after(''+a+"")};i.elem.off("upload.start").on("upload.start",function(){var o=t(this),a=o.attr("lay-data");if(a)try{a=new Function("return "+a)(),e.config=t.extend({},i,a)}catch(l){n.error("Upload element property lay-data configuration item has a syntax error: "+a)}e.config.item=o,e.elemFile[0].click()}),o.ie&&o.ie<10||i.elem.off("upload.over").on("upload.over",function(){var e=t(this);e.attr("lay-over","")}).off("upload.leave").on("upload.leave",function(){var e=t(this);e.removeAttr("lay-over")}).off("upload.drop").on("upload.drop",function(n,o){var r=t(this),u=o.originalEvent.dataTransfer.files||[];r.removeAttr("lay-over"),a(u),i.auto?e.upload(u):l(u)}),e.elemFile.off("upload.change").on("upload.change",function(){var t=this.files||[];a(t),i.auto?e.upload():l(t)}),i.bindAction.off("upload.action").on("upload.action",function(){e.upload()}),i.elem.data("haveEvents")||(e.elemFile.on("change",function(){t(this).trigger("upload.change")}),i.elem.on("click",function(){e.isFile()||t(this).trigger("upload.start")}),i.drag&&i.elem.on("dragover",function(e){e.preventDefault(),t(this).trigger("upload.over")}).on("dragleave",function(e){t(this).trigger("upload.leave")}).on("drop",function(e){e.preventDefault(),t(this).trigger("upload.drop",e)}),i.bindAction.on("click",function(){t(this).trigger("upload.action")}),i.elem.data("haveEvents",!0))},a.render=function(e){var t=new p(e);return l.call(t)},e(r,a)}); \ No newline at end of file diff --git a/public/static/res/layui/lay/modules/util.js b/public/static/res/layui/lay/modules/util.js new file mode 100644 index 0000000..256f47a --- /dev/null +++ b/public/static/res/layui/lay/modules/util.js @@ -0,0 +1,2 @@ +/** layui-v2.5.5 MIT License By https://www.layui.com */ + ;layui.define("jquery",function(t){"use strict";var e=layui.$,i={fixbar:function(t){var i,n,a="layui-fixbar",o="layui-fixbar-top",r=e(document),l=e("body");t=e.extend({showHeight:200},t),t.bar1=t.bar1===!0?"":t.bar1,t.bar2=t.bar2===!0?"":t.bar2,t.bgcolor=t.bgcolor?"background-color:"+t.bgcolor:"";var c=[t.bar1,t.bar2,""],g=e(['
                ',t.bar1?'
              • '+c[0]+"
              • ":"",t.bar2?'
              • '+c[1]+"
              • ":"",'
              • '+c[2]+"
              • ","
              "].join("")),s=g.find("."+o),u=function(){var e=r.scrollTop();e>=t.showHeight?i||(s.show(),i=1):i&&(s.hide(),i=0)};e("."+a)[0]||("object"==typeof t.css&&g.css(t.css),l.append(g),u(),g.find("li").on("click",function(){var i=e(this),n=i.attr("lay-type");"top"===n&&e("html,body").animate({scrollTop:0},200),t.click&&t.click.call(this,n)}),r.on("scroll",function(){clearTimeout(n),n=setTimeout(function(){u()},100)}))},countdown:function(t,e,i){var n=this,a="function"==typeof e,o=new Date(t).getTime(),r=new Date(!e||a?(new Date).getTime():e).getTime(),l=o-r,c=[Math.floor(l/864e5),Math.floor(l/36e5)%24,Math.floor(l/6e4)%60,Math.floor(l/1e3)%60];a&&(i=e);var g=setTimeout(function(){n.countdown(t,r+1e3,i)},1e3);return i&&i(l>0?c:[0,0,0,0],e,g),l<=0&&clearTimeout(g),g},timeAgo:function(t,e){var i=this,n=[[],[]],a=(new Date).getTime()-new Date(t).getTime();return a>6912e5?(a=new Date(t),n[0][0]=i.digit(a.getFullYear(),4),n[0][1]=i.digit(a.getMonth()+1),n[0][2]=i.digit(a.getDate()),e||(n[1][0]=i.digit(a.getHours()),n[1][1]=i.digit(a.getMinutes()),n[1][2]=i.digit(a.getSeconds())),n[0].join("-")+" "+n[1].join(":")):a>=864e5?(a/1e3/60/60/24|0)+"天前":a>=36e5?(a/1e3/60/60|0)+"小时前":a>=12e4?(a/1e3/60|0)+"分钟前":a<0?"未来":"刚刚"},digit:function(t,e){var i="";t=String(t),e=e||2;for(var n=t.length;n/g,">").replace(/'/g,"'").replace(/"/g,""")},event:function(t,n,a){n=i.event[t]=e.extend(!0,i.event[t],n)||{},e("body").on(a||"click","*["+t+"]",function(){var i=e(this),a=i.attr(t);n[a]&&n[a].call(this,i)})}};!function(t,e,i){"$:nomunge";function n(){a=e[l](function(){o.each(function(){var e=t(this),i=e.width(),n=e.height(),a=t.data(this,g);(i!==a.w||n!==a.h)&&e.trigger(c,[a.w=i,a.h=n])}),n()},r[s])}var a,o=t([]),r=t.resize=t.extend(t.resize,{}),l="setTimeout",c="resize",g=c+"-special-event",s="delay",u="throttleWindow";r[s]=250,r[u]=!0,t.event.special[c]={setup:function(){if(!r[u]&&this[l])return!1;var e=t(this);o=o.add(e),t.data(this,g,{w:e.width(),h:e.height()}),1===o.length&&n()},teardown:function(){if(!r[u]&&this[l])return!1;var e=t(this);o=o.not(e),e.removeData(g),o.length||clearTimeout(a)},add:function(e){function n(e,n,o){var r=t(this),l=t.data(this,g)||{};l.w=n!==i?n:r.width(),l.h=o!==i?o:r.height(),a.apply(this,arguments)}if(!r[u]&&this[l])return!1;var a;return t.isFunction(e)?(a=e,n):(a=e.handler,void(e.handler=n))}}}(e,window),t("util",i)}); \ No newline at end of file diff --git a/public/static/res/layui/layui.all.js b/public/static/res/layui/layui.all.js new file mode 100644 index 0000000..1d911b3 --- /dev/null +++ b/public/static/res/layui/layui.all.js @@ -0,0 +1,5 @@ +/** layui-v2.5.5 MIT License By https://www.layui.com */ + ;!function(e){"use strict";var t=document,o={modules:{},status:{},timeout:10,event:{}},n=function(){this.v="2.5.5"},r=function(){var e=t.currentScript?t.currentScript.src:function(){for(var e,o=t.scripts,n=o.length-1,r=n;r>0;r--)if("interactive"===o[r].readyState){e=o[r].src;break}return e||o[n].src}();return e.substring(0,e.lastIndexOf("/")+1)}(),i=function(t){e.console&&console.error&&console.error("Layui hint: "+t)},a="undefined"!=typeof opera&&"[object Opera]"===opera.toString(),u={layer:"modules/layer",laydate:"modules/laydate",laypage:"modules/laypage",laytpl:"modules/laytpl",layim:"modules/layim",layedit:"modules/layedit",form:"modules/form",upload:"modules/upload",transfer:"modules/transfer",tree:"modules/tree",table:"modules/table",element:"modules/element",rate:"modules/rate",colorpicker:"modules/colorpicker",slider:"modules/slider",carousel:"modules/carousel",flow:"modules/flow",util:"modules/util",code:"modules/code",jquery:"modules/jquery",mobile:"modules/mobile","layui.all":"../layui.all"};n.prototype.cache=o,n.prototype.define=function(e,t){var n=this,r="function"==typeof e,i=function(){var e=function(e,t){layui[e]=t,o.status[e]=!0};return"function"==typeof t&&t(function(n,r){e(n,r),o.callback[n]=function(){t(e)}}),this};return r&&(t=e,e=[]),!layui["layui.all"]&&layui["layui.mobile"]?i.call(n):(n.use(e,i),n)},n.prototype.use=function(e,n,l){function s(e,t){var n="PLaySTATION 3"===navigator.platform?/^complete$/:/^(complete|loaded)$/;("load"===e.type||n.test((e.currentTarget||e.srcElement).readyState))&&(o.modules[f]=t,d.removeChild(v),function r(){return++m>1e3*o.timeout/4?i(f+" is not a valid module"):void(o.status[f]?c():setTimeout(r,4))}())}function c(){l.push(layui[f]),e.length>1?y.use(e.slice(1),n,l):"function"==typeof n&&n.apply(layui,l)}var y=this,p=o.dir=o.dir?o.dir:r,d=t.getElementsByTagName("head")[0];e="string"==typeof e?[e]:e,window.jQuery&&jQuery.fn.on&&(y.each(e,function(t,o){"jquery"===o&&e.splice(t,1)}),layui.jquery=layui.$=jQuery);var f=e[0],m=0;if(l=l||[],o.host=o.host||(p.match(/\/\/([\s\S]+?)\//)||["//"+location.host+"/"])[0],0===e.length||layui["layui.all"]&&u[f]||!layui["layui.all"]&&layui["layui.mobile"]&&u[f])return c(),y;if(o.modules[f])!function g(){return++m>1e3*o.timeout/4?i(f+" is not a valid module"):void("string"==typeof o.modules[f]&&o.status[f]?c():setTimeout(g,4))}();else{var v=t.createElement("script"),h=(u[f]?p+"lay/":/^\{\/\}/.test(y.modules[f])?"":o.base||"")+(y.modules[f]||f)+".js";h=h.replace(/^\{\/\}/,""),v.async=!0,v.charset="utf-8",v.src=h+function(){var e=o.version===!0?o.v||(new Date).getTime():o.version||"";return e?"?v="+e:""}(),d.appendChild(v),!v.attachEvent||v.attachEvent.toString&&v.attachEvent.toString().indexOf("[native code")<0||a?v.addEventListener("load",function(e){s(e,h)},!1):v.attachEvent("onreadystatechange",function(e){s(e,h)}),o.modules[f]=h}return y},n.prototype.getStyle=function(t,o){var n=t.currentStyle?t.currentStyle:e.getComputedStyle(t,null);return n[n.getPropertyValue?"getPropertyValue":"getAttribute"](o)},n.prototype.link=function(e,n,r){var a=this,u=t.createElement("link"),l=t.getElementsByTagName("head")[0];"string"==typeof n&&(r=n);var s=(r||e).replace(/\.|\//g,""),c=u.id="layuicss-"+s,y=0;return u.rel="stylesheet",u.href=e+(o.debug?"?v="+(new Date).getTime():""),u.media="all",t.getElementById(c)||l.appendChild(u),"function"!=typeof n?a:(function p(){return++y>1e3*o.timeout/100?i(e+" timeout"):void(1989===parseInt(a.getStyle(t.getElementById(c),"width"))?function(){n()}():setTimeout(p,100))}(),a)},o.callback={},n.prototype.factory=function(e){if(layui[e])return"function"==typeof o.callback[e]?o.callback[e]:null},n.prototype.addcss=function(e,t,n){return layui.link(o.dir+"css/"+e,t,n)},n.prototype.img=function(e,t,o){var n=new Image;return n.src=e,n.complete?t(n):(n.onload=function(){n.onload=null,"function"==typeof t&&t(n)},void(n.onerror=function(e){n.onerror=null,"function"==typeof o&&o(e)}))},n.prototype.config=function(e){e=e||{};for(var t in e)o[t]=e[t];return this},n.prototype.modules=function(){var e={};for(var t in u)e[t]=u[t];return e}(),n.prototype.extend=function(e){var t=this;e=e||{};for(var o in e)t[o]||t.modules[o]?i("模块名 "+o+" 已被占用"):t.modules[o]=e[o];return t},n.prototype.router=function(e){var t=this,e=e||location.hash,o={path:[],search:{},hash:(e.match(/[^#](#.*$)/)||[])[1]||""};return/^#\//.test(e)?(e=e.replace(/^#\//,""),o.href="/"+e,e=e.replace(/([^#])(#.*$)/,"$1").split("/")||[],t.each(e,function(e,t){/^\w+=/.test(t)?function(){t=t.split("="),o.search[t[0]]=t[1]}():o.path.push(t)}),o):o},n.prototype.data=function(t,o,n){if(t=t||"layui",n=n||localStorage,e.JSON&&e.JSON.parse){if(null===o)return delete n[t];o="object"==typeof o?o:{key:o};try{var r=JSON.parse(n[t])}catch(i){var r={}}return"value"in o&&(r[o.key]=o.value),o.remove&&delete r[o.key],n[t]=JSON.stringify(r),o.key?r[o.key]:r}},n.prototype.sessionData=function(e,t){return this.data(e,t,sessionStorage)},n.prototype.device=function(t){var o=navigator.userAgent.toLowerCase(),n=function(e){var t=new RegExp(e+"/([^\\s\\_\\-]+)");return e=(o.match(t)||[])[1],e||!1},r={os:function(){return/windows/.test(o)?"windows":/linux/.test(o)?"linux":/iphone|ipod|ipad|ios/.test(o)?"ios":/mac/.test(o)?"mac":void 0}(),ie:function(){return!!(e.ActiveXObject||"ActiveXObject"in e)&&((o.match(/msie\s(\d+)/)||[])[1]||"11")}(),weixin:n("micromessenger")};return t&&!r[t]&&(r[t]=n(t)),r.android=/android/.test(o),r.ios="ios"===r.os,r},n.prototype.hint=function(){return{error:i}},n.prototype.each=function(e,t){var o,n=this;if("function"!=typeof t)return n;if(e=e||[],e.constructor===Object){for(o in e)if(t.call(e[o],o,e[o]))break}else for(o=0;oi?1:r/g,">").replace(/'/g,"'").replace(/"/g,""")},error:function(e,r){var c="Laytpl Error:";return"object"==typeof console&&console.error(c+e+"\n"+(r||"")),c+e}},n=c.exp,t=function(e){this.tpl=e};t.pt=t.prototype,window.errors=0,t.pt.parse=function(e,t){var o=this,p=e,a=n("^"+r.open+"#",""),l=n(r.close+"$","");e=e.replace(/\s+|\r|\t|\n/g," ").replace(n(r.open+"#"),r.open+"# ").replace(n(r.close+"}"),"} "+r.close).replace(/\\/g,"\\\\").replace(n(r.open+"!(.+?)!"+r.close),function(e){return e=e.replace(n("^"+r.open+"!"),"").replace(n("!"+r.close),"").replace(n(r.open+"|"+r.close),function(e){return e.replace(/(.)/g,"\\$1")})}).replace(/(?="|')/g,"\\").replace(c.query(),function(e){return e=e.replace(a,"").replace(l,""),'";'+e.replace(/\\/g,"")+';view+="'}).replace(c.query(1),function(e){var c='"+(';return e.replace(/\s/g,"")===r.open+r.close?"":(e=e.replace(n(r.open+"|"+r.close),""),/^=/.test(e)&&(e=e.replace(/^=/,""),c='"+_escape_('),c+e.replace(/\\/g,"")+')+"')}),e='"use strict";var view = "'+e+'";return view;';try{return o.cache=e=new Function("d, _escape_",e),e(t,c.escape)}catch(u){return delete o.cache,c.error(u,p)}},t.pt.render=function(e,r){var n,t=this;return e?(n=t.cache?t.cache(e,c.escape):t.parse(t.tpl,e),r?void r(n):n):c.error("no data")};var o=function(e){return"string"!=typeof e?c.error("Template not found"):new t(e)};o.config=function(e){e=e||{};for(var c in e)r[c]=e[c]},o.v="1.2.0",e("laytpl",o)});layui.define(function(e){"use strict";var a=document,t="getElementById",n="getElementsByTagName",i="laypage",r="layui-disabled",u=function(e){var a=this;a.config=e||{},a.config.index=++s.index,a.render(!0)};u.prototype.type=function(){var e=this.config;if("object"==typeof e.elem)return void 0===e.elem.length?2:3},u.prototype.view=function(){var e=this,a=e.config,t=a.groups="groups"in a?0|a.groups:5;a.layout="object"==typeof a.layout?a.layout:["prev","page","next"],a.count=0|a.count,a.curr=0|a.curr||1,a.limits="object"==typeof a.limits?a.limits:[10,20,30,40,50],a.limit=0|a.limit||10,a.pages=Math.ceil(a.count/a.limit)||1,a.curr>a.pages&&(a.curr=a.pages),t<0?t=1:t>a.pages&&(t=a.pages),a.prev="prev"in a?a.prev:"上一页",a.next="next"in a?a.next:"下一页";var n=a.pages>t?Math.ceil((a.curr+(t>1?1:0))/(t>0?t:1)):1,i={prev:function(){return a.prev?''+a.prev+"":""}(),page:function(){var e=[];if(a.count<1)return"";n>1&&a.first!==!1&&0!==t&&e.push(''+(a.first||1)+"");var i=Math.floor((t-1)/2),r=n>1?a.curr-i:1,u=n>1?function(){var e=a.curr+(t-i-1);return e>a.pages?a.pages:e}():t;for(u-r2&&e.push('');r<=u;r++)r===a.curr?e.push('"+r+""):e.push(''+r+"");return a.pages>t&&a.pages>u&&a.last!==!1&&(u+1…'),0!==t&&e.push(''+(a.last||a.pages)+"")),e.join("")}(),next:function(){return a.next?''+a.next+"":""}(),count:'共 '+a.count+" 条",limit:function(){var e=['"}(),refresh:['','',""].join(""),skip:function(){return['到第','','页',""].join("")}()};return['
              ',function(){var e=[];return layui.each(a.layout,function(a,t){i[t]&&e.push(i[t])}),e.join("")}(),"
              "].join("")},u.prototype.jump=function(e,a){if(e){var t=this,i=t.config,r=e.children,u=e[n]("button")[0],l=e[n]("input")[0],p=e[n]("select")[0],c=function(){var e=0|l.value.replace(/\s|\D/g,"");e&&(i.curr=e,t.render())};if(a)return c();for(var o=0,y=r.length;oi.pages||(i.curr=e,t.render())});p&&s.on(p,"change",function(){var e=this.value;i.curr*e>i.count&&(i.curr=Math.ceil(i.count/e)),i.limit=e,t.render()}),u&&s.on(u,"click",function(){c()})}},u.prototype.skip=function(e){if(e){var a=this,t=e[n]("input")[0];t&&s.on(t,"keyup",function(t){var n=this.value,i=t.keyCode;/^(37|38|39|40)$/.test(i)||(/\D/.test(n)&&(this.value=n.replace(/\D/,"")),13===i&&a.jump(e,!0))})}},u.prototype.render=function(e){var n=this,i=n.config,r=n.type(),u=n.view();2===r?i.elem&&(i.elem.innerHTML=u):3===r?i.elem.html(u):a[t](i.elem)&&(a[t](i.elem).innerHTML=u),i.jump&&i.jump(i,e);var s=a[t]("layui-laypage-"+i.index);n.jump(s),i.hash&&!e&&(location.hash="!"+i.hash+"="+i.curr),n.skip(s)};var s={render:function(e){var a=new u(e);return a.index},index:layui.laypage?layui.laypage.index+1e4:0,on:function(e,a,t){return e.attachEvent?e.attachEvent("on"+a,function(a){a.target=a.srcElement,t.call(e,a)}):e.addEventListener(a,t,!1),this}};e(i,s)});!function(){"use strict";var e=window.layui&&layui.define,t={getPath:function(){var e=document.currentScript?document.currentScript.src:function(){for(var e,t=document.scripts,n=t.length-1,a=n;a>0;a--)if("interactive"===t[a].readyState){e=t[a].src;break}return e||t[n].src}();return e.substring(0,e.lastIndexOf("/")+1)}(),getStyle:function(e,t){var n=e.currentStyle?e.currentStyle:window.getComputedStyle(e,null);return n[n.getPropertyValue?"getPropertyValue":"getAttribute"](t)},link:function(e,a,i){if(n.path){var r=document.getElementsByTagName("head")[0],o=document.createElement("link");"string"==typeof a&&(i=a);var s=(i||e).replace(/\.|\//g,""),l="layuicss-"+s,d=0;o.rel="stylesheet",o.href=n.path+e,o.id=l,document.getElementById(l)||r.appendChild(o),"function"==typeof a&&!function c(){return++d>80?window.console&&console.error("laydate.css: Invalid"):void(1989===parseInt(t.getStyle(document.getElementById(l),"width"))?a():setTimeout(c,100))}()}}},n={v:"5.0.9",config:{},index:window.laydate&&window.laydate.v?1e5:0,path:t.getPath,set:function(e){var t=this;return t.config=w.extend({},t.config,e),t},ready:function(a){var i="laydate",r="",o=(e?"modules/laydate/":"theme/")+"default/laydate.css?v="+n.v+r;return e?layui.addcss(o,a,i):t.link(o,a,i),this}},a=function(){var e=this;return{hint:function(t){e.hint.call(e,t)},config:e.config}},i="laydate",r=".layui-laydate",o="layui-this",s="laydate-disabled",l="开始日期超出了结束日期
              建议重新选择",d=[100,2e5],c="layui-laydate-static",m="layui-laydate-list",u="laydate-selected",h="layui-laydate-hint",y="laydate-day-prev",f="laydate-day-next",p="layui-laydate-footer",g=".laydate-btns-confirm",v="laydate-time-text",D=".laydate-btns-time",T=function(e){var t=this;t.index=++n.index,t.config=w.extend({},t.config,n.config,e),n.ready(function(){t.init()})},w=function(e){return new C(e)},C=function(e){for(var t=0,n="object"==typeof e?[e]:(this.selector=e,document.querySelectorAll(e||null));t0)return n[0].getAttribute(e)}():n.each(function(n,a){a.setAttribute(e,t)})},C.prototype.removeAttr=function(e){return this.each(function(t,n){n.removeAttribute(e)})},C.prototype.html=function(e){return this.each(function(t,n){n.innerHTML=e})},C.prototype.val=function(e){return this.each(function(t,n){n.value=e})},C.prototype.append=function(e){return this.each(function(t,n){"object"==typeof e?n.appendChild(e):n.innerHTML=n.innerHTML+e})},C.prototype.remove=function(e){return this.each(function(t,n){e?n.removeChild(e):n.parentNode.removeChild(n)})},C.prototype.on=function(e,t){return this.each(function(n,a){a.attachEvent?a.attachEvent("on"+e,function(e){e.target=e.srcElement,t.call(a,e)}):a.addEventListener(e,t,!1)})},C.prototype.off=function(e,t){return this.each(function(n,a){a.detachEvent?a.detachEvent("on"+e,t):a.removeEventListener(e,t,!1)})},T.isLeapYear=function(e){return e%4===0&&e%100!==0||e%400===0},T.prototype.config={type:"date",range:!1,format:"yyyy-MM-dd",value:null,isInitValue:!0,min:"1900-1-1",max:"2099-12-31",trigger:"focus",show:!1,showBottom:!0,btns:["clear","now","confirm"],lang:"cn",theme:"default",position:null,calendar:!1,mark:{},zIndex:null,done:null,change:null},T.prototype.lang=function(){var e=this,t=e.config,n={cn:{weeks:["日","一","二","三","四","五","六"],time:["时","分","秒"],timeTips:"选择时间",startTime:"开始时间",endTime:"结束时间",dateTips:"返回日期",month:["一","二","三","四","五","六","七","八","九","十","十一","十二"],tools:{confirm:"确定",clear:"清空",now:"现在"}},en:{weeks:["Su","Mo","Tu","We","Th","Fr","Sa"],time:["Hours","Minutes","Seconds"],timeTips:"Select Time",startTime:"Start Time",endTime:"End Time",dateTips:"Select Date",month:["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"],tools:{confirm:"Confirm",clear:"Clear",now:"Now"}}};return n[t.lang]||n.cn},T.prototype.init=function(){var e=this,t=e.config,n="yyyy|y|MM|M|dd|d|HH|H|mm|m|ss|s",a="static"===t.position,i={year:"yyyy",month:"yyyy-MM",date:"yyyy-MM-dd",time:"HH:mm:ss",datetime:"yyyy-MM-dd HH:mm:ss"};t.elem=w(t.elem),t.eventElem=w(t.eventElem),t.elem[0]&&(t.range===!0&&(t.range="-"),t.format===i.date&&(t.format=i[t.type]),e.format=t.format.match(new RegExp(n+"|.","g"))||[],e.EXP_IF="",e.EXP_SPLIT="",w.each(e.format,function(t,a){var i=new RegExp(n).test(a)?"\\d{"+function(){return new RegExp(n).test(e.format[0===t?t+1:t-1]||"")?/^yyyy|y$/.test(a)?4:a.length:/^yyyy$/.test(a)?"1,4":/^y$/.test(a)?"1,308":"1,2"}()+"}":"\\"+a;e.EXP_IF=e.EXP_IF+i,e.EXP_SPLIT=e.EXP_SPLIT+"("+i+")"}),e.EXP_IF=new RegExp("^"+(t.range?e.EXP_IF+"\\s\\"+t.range+"\\s"+e.EXP_IF:e.EXP_IF)+"$"),e.EXP_SPLIT=new RegExp("^"+e.EXP_SPLIT+"$",""),e.isInput(t.elem[0])||"focus"===t.trigger&&(t.trigger="click"),t.elem.attr("lay-key")||(t.elem.attr("lay-key",e.index),t.eventElem.attr("lay-key",e.index)),t.mark=w.extend({},t.calendar&&"cn"===t.lang?{"0-1-1":"元旦","0-2-14":"情人","0-3-8":"妇女","0-3-12":"植树","0-4-1":"愚人","0-5-1":"劳动","0-5-4":"青年","0-6-1":"儿童","0-9-10":"教师","0-9-18":"国耻","0-10-1":"国庆","0-12-25":"圣诞"}:{},t.mark),w.each(["min","max"],function(e,n){var a=[],i=[];if("number"==typeof t[n]){var r=t[n],o=(new Date).getTime(),s=864e5,l=new Date(r?r0)return!0;var a=w.elem("div",{"class":"layui-laydate-header"}),i=[function(){var e=w.elem("i",{"class":"layui-icon laydate-icon laydate-prev-y"});return e.innerHTML="",e}(),function(){var e=w.elem("i",{"class":"layui-icon laydate-icon laydate-prev-m"});return e.innerHTML="",e}(),function(){var e=w.elem("div",{"class":"laydate-set-ym"}),t=w.elem("span"),n=w.elem("span");return e.appendChild(t),e.appendChild(n),e}(),function(){var e=w.elem("i",{"class":"layui-icon laydate-icon laydate-next-m"});return e.innerHTML="",e}(),function(){var e=w.elem("i",{"class":"layui-icon laydate-icon laydate-next-y"});return e.innerHTML="",e}()],d=w.elem("div",{"class":"layui-laydate-content"}),c=w.elem("table"),m=w.elem("thead"),u=w.elem("tr");w.each(i,function(e,t){a.appendChild(t)}),m.appendChild(u),w.each(new Array(6),function(e){var t=c.insertRow(0);w.each(new Array(7),function(a){if(0===e){var i=w.elem("th");i.innerHTML=n.weeks[a],u.appendChild(i)}t.insertCell(a)})}),c.insertBefore(m,c.children[0]),d.appendChild(c),r[e]=w.elem("div",{"class":"layui-laydate-main laydate-main-list-"+e}),r[e].appendChild(a),r[e].appendChild(d),o.push(i),s.push(d),l.push(c)}),w(d).html(function(){var e=[],i=[];return"datetime"===t.type&&e.push(''+n.timeTips+""),w.each(t.btns,function(e,r){var o=n.tools[r]||"btn";t.range&&"now"===r||(a&&"clear"===r&&(o="cn"===t.lang?"重置":"Reset"),i.push(''+o+""))}),e.push('"),e.join("")}()),w.each(r,function(e,t){i.appendChild(t)}),t.showBottom&&i.appendChild(d),/^#/.test(t.theme)){var m=w.elem("style"),u=["#{{id}} .layui-laydate-header{background-color:{{theme}};}","#{{id}} .layui-this{background-color:{{theme}} !important;}"].join("").replace(/{{id}}/g,e.elemID).replace(/{{theme}}/g,t.theme);"styleSheet"in m?(m.setAttribute("type","text/css"),m.styleSheet.cssText=u):m.innerHTML=u,w(i).addClass("laydate-theme-molv"),i.appendChild(m)}e.remove(T.thisElemDate),a?t.elem.append(i):(document.body.appendChild(i),e.position()),e.checkDate().calendar(),e.changeEvent(),T.thisElemDate=e.elemID,"function"==typeof t.ready&&t.ready(w.extend({},t.dateTime,{month:t.dateTime.month+1}))},T.prototype.remove=function(e){var t=this,n=(t.config,w("#"+(e||t.elemID)));return n.hasClass(c)||t.checkDate(function(){n.remove()}),t},T.prototype.position=function(){var e=this,t=e.config,n=e.bindElem||t.elem[0],a=n.getBoundingClientRect(),i=e.elem.offsetWidth,r=e.elem.offsetHeight,o=function(e){return e=e?"scrollLeft":"scrollTop",document.body[e]|document.documentElement[e]},s=function(e){return document.documentElement[e?"clientWidth":"clientHeight"]},l=5,d=a.left,c=a.bottom;d+i+l>s("width")&&(d=s("width")-i-l),c+r+l>s()&&(c=a.top>r?a.top-r:s()-r,c-=2*l),t.position&&(e.elem.style.position=t.position),e.elem.style.left=d+("fixed"===t.position?0:o(1))+"px",e.elem.style.top=c+("fixed"===t.position?0:o())+"px"},T.prototype.hint=function(e){var t=this,n=(t.config,w.elem("div",{"class":h}));t.elem&&(n.innerHTML=e||"",w(t.elem).find("."+h).remove(),t.elem.appendChild(n),clearTimeout(t.hinTimer),t.hinTimer=setTimeout(function(){w(t.elem).find("."+h).remove()},3e3))},T.prototype.getAsYM=function(e,t,n){return n?t--:t++,t<0&&(t=11,e--),t>11&&(t=0,e++),[e,t]},T.prototype.systemDate=function(e){var t=e||new Date;return{year:t.getFullYear(),month:t.getMonth(),date:t.getDate(),hours:e?e.getHours():0,minutes:e?e.getMinutes():0,seconds:e?e.getSeconds():0}},T.prototype.checkDate=function(e){var t,a,i=this,r=(new Date,i.config),o=r.dateTime=r.dateTime||i.systemDate(),s=i.bindElem||r.elem[0],l=(i.isInput(s)?"val":"html",i.isInput(s)?s.value:"static"===r.position?"":s.innerHTML),c=function(e){e.year>d[1]&&(e.year=d[1],a=!0),e.month>11&&(e.month=11,a=!0),e.hours>23&&(e.hours=0,a=!0),e.minutes>59&&(e.minutes=0,e.hours++,a=!0),e.seconds>59&&(e.seconds=0,e.minutes++,a=!0),t=n.getEndDate(e.month+1,e.year),e.date>t&&(e.date=t,a=!0)},m=function(e,t,n){var o=["startTime","endTime"];t=(t.match(i.EXP_SPLIT)||[]).slice(1),n=n||0,r.range&&(i[o[n]]=i[o[n]]||{}),w.each(i.format,function(s,l){var c=parseFloat(t[s]);t[s].length必须遵循下述格式:
              "+(r.range?r.format+" "+r.range+" "+r.format:r.format)+"
              已为你重置"),a=!0):l&&l.constructor===Date?r.dateTime=i.systemDate(l):(r.dateTime=i.systemDate(),delete i.startState,delete i.endState,delete i.startDate,delete i.endDate,delete i.startTime,delete i.endTime),c(o),a&&l&&i.setValue(r.range?i.endDate?i.parse():"":i.parse()),e&&e(),i)},T.prototype.mark=function(e,t){var n,a=this,i=a.config;return w.each(i.mark,function(e,a){var i=e.split("-");i[0]!=t[0]&&0!=i[0]||i[1]!=t[1]&&0!=i[1]||i[2]!=t[2]||(n=a||t[2])}),n&&e.html(''+n+""),a},T.prototype.limit=function(e,t,n,a){var i,r=this,o=r.config,l={},d=o[n>41?"endDate":"dateTime"],c=w.extend({},d,t||{});return w.each({now:c,min:o.min,max:o.max},function(e,t){l[e]=r.newDate(w.extend({year:t.year,month:t.month,date:t.date},function(){var e={};return w.each(a,function(n,a){e[a]=t[a]}),e}())).getTime()}),i=l.nowl.max,e&&e[i?"addClass":"removeClass"](s),i},T.prototype.calendar=function(e){var t,a,i,r=this,s=r.config,l=e||s.dateTime,c=new Date,m=r.lang(),u="date"!==s.type&&"datetime"!==s.type,h=e?1:0,y=w(r.table[h]).find("td"),f=w(r.elemHeader[h][2]).find("span");if(l.yeard[1]&&(l.year=d[1],r.hint("最高只能支持到公元"+d[1]+"年")),r.firstDate||(r.firstDate=w.extend({},l)),c.setFullYear(l.year,l.month,1),t=c.getDay(),a=n.getEndDate(l.month||12,l.year),i=n.getEndDate(l.month+1,l.year),w.each(y,function(e,n){var d=[l.year,l.month],c=0;n=w(n),n.removeAttr("class"),e=t&&e=n.firstDate.year&&(r.month=a.max.month,r.date=a.max.date),n.limit(w(i),r,t),M++}),w(u[f?0:1]).attr("lay-ym",M-8+"-"+T[1]).html(b+p+" - "+(M-1+p))}else if("month"===e)w.each(new Array(12),function(e){var i=w.elem("li",{"lay-ym":e}),s={year:T[0],month:e};e+1==T[1]&&w(i).addClass(o),i.innerHTML=r.month[e]+(f?"月":""),d.appendChild(i),T[0]=n.firstDate.year&&(s.date=a.max.date),n.limit(w(i),s,t)}),w(u[f?0:1]).attr("lay-ym",T[0]+"-"+T[1]).html(T[0]+p);else if("time"===e){var E=function(){w(d).find("ol").each(function(e,a){w(a).find("li").each(function(a,i){n.limit(w(i),[{hours:a},{hours:n[x].hours,minutes:a},{hours:n[x].hours,minutes:n[x].minutes,seconds:a}][e],t,[["hours"],["hours","minutes"],["hours","minutes","seconds"]][e])})}),a.range||n.limit(w(n.footer).find(g),n[x],0,["hours","minutes","seconds"])};a.range?n[x]||(n[x]={hours:0,minutes:0,seconds:0}):n[x]=i,w.each([24,60,60],function(e,t){var a=w.elem("li"),i=["

              "+r.time[e]+"

                "];w.each(new Array(t),function(t){i.push(""+w.digit(t,2)+"")}),a.innerHTML=i.join("")+"
              ",d.appendChild(a)}),E()}if(y&&h.removeChild(y),h.appendChild(d),"year"===e||"month"===e)w(n.elemMain[t]).addClass("laydate-ym-show"),w(d).find("li").on("click",function(){var r=0|w(this).attr("lay-ym");if(!w(this).hasClass(s)){if(0===t)i[e]=r,l&&(n.startDate[e]=r),n.limit(w(n.footer).find(g),null,0);else if(l)n.endDate[e]=r;else{var c="year"===e?n.getAsYM(r,T[1]-1,"sub"):n.getAsYM(T[0],r,"sub");w.extend(i,{year:c[0],month:c[1]})}"year"===a.type||"month"===a.type?(w(d).find("."+o).removeClass(o),w(this).addClass(o),"month"===a.type&&"year"===e&&(n.listYM[t][0]=r,l&&(n[["startDate","endDate"][t]].year=r),n.list("month",t))):(n.checkDate("limit").calendar(),n.closeList()),n.setBtnStatus(),a.range||n.done(null,"change"),w(n.footer).find(D).removeClass(s)}});else{var S=w.elem("span",{"class":v}),k=function(){w(d).find("ol").each(function(e){var t=this,a=w(t).find("li");t.scrollTop=30*(n[x][C[e]]-2),t.scrollTop<=0&&a.each(function(e,n){if(!w(this).hasClass(s))return t.scrollTop=30*(e-2),!0})})},H=w(c[2]).find("."+v);k(),S.innerHTML=a.range?[r.startTime,r.endTime][t]:r.timeTips,w(n.elemMain[t]).addClass("laydate-time-show"),H[0]&&H.remove(),c[2].appendChild(S),w(d).find("ol").each(function(e){var t=this;w(t).find("li").on("click",function(){var r=0|this.innerHTML;w(this).hasClass(s)||(a.range?n[x][C[e]]=r:i[C[e]]=r,w(t).find("."+o).removeClass(o),w(this).addClass(o),E(),k(),(n.endDate||"time"===a.type)&&n.done(null,"change"),n.setBtnStatus())})})}return n},T.prototype.listYM=[],T.prototype.closeList=function(){var e=this;e.config;w.each(e.elemCont,function(t,n){w(this).find("."+m).remove(),w(e.elemMain[t]).removeClass("laydate-ym-show laydate-time-show")}),w(e.elem).find("."+v).remove()},T.prototype.setBtnStatus=function(e,t,n){var a,i=this,r=i.config,o=w(i.footer).find(g),d=r.range&&"date"!==r.type&&"time"!==r.type;d&&(t=t||i.startDate,n=n||i.endDate,a=i.newDate(t).getTime()>i.newDate(n).getTime(),i.limit(null,t)||i.limit(null,n)?o.addClass(s):o[a?"addClass":"removeClass"](s),e&&a&&i.hint("string"==typeof e?l.replace(/日期/g,e):l))},T.prototype.parse=function(e,t){var n=this,a=n.config,i=t||(e?w.extend({},n.endDate,n.endTime):a.range?w.extend({},n.startDate,n.startTime):a.dateTime),r=n.format.concat();return w.each(r,function(e,t){/yyyy|y/.test(t)?r[e]=w.digit(i.year,t.length):/MM|M/.test(t)?r[e]=w.digit(i.month+1,t.length):/dd|d/.test(t)?r[e]=w.digit(i.date,t.length):/HH|H/.test(t)?r[e]=w.digit(i.hours,t.length):/mm|m/.test(t)?r[e]=w.digit(i.minutes,t.length):/ss|s/.test(t)&&(r[e]=w.digit(i.seconds,t.length))}),a.range&&!e?r.join("")+" "+a.range+" "+n.parse(1):r.join("")},T.prototype.newDate=function(e){return e=e||{},new Date(e.year||1,e.month||0,e.date||1,e.hours||0,e.minutes||0,e.seconds||0)},T.prototype.setValue=function(e){var t=this,n=t.config,a=t.bindElem||n.elem[0],i=t.isInput(a)?"val":"html";return"static"===n.position||w(a)[i](e||""),this},T.prototype.stampRange=function(){var e,t,n=this,a=n.config,i=w(n.elem).find("td");if(a.range&&!n.endDate&&w(n.footer).find(g).addClass(s),n.endDate)return e=n.newDate({year:n.startDate.year,month:n.startDate.month,date:n.startDate.date}).getTime(),t=n.newDate({year:n.endDate.year,month:n.endDate.month,date:n.endDate.date}).getTime(),e>t?n.hint(l):void w.each(i,function(a,i){var r=w(i).attr("lay-ymd").split("-"),s=n.newDate({year:r[0],month:r[1]-1,date:r[2]}).getTime();w(i).removeClass(u+" "+o),s!==e&&s!==t||w(i).addClass(w(i).hasClass(y)||w(i).hasClass(f)?u:o),s>e&&s0&&t-1 in e)}function r(e,t,n){if(pe.isFunction(t))return pe.grep(e,function(e,r){return!!t.call(e,r,e)!==n});if(t.nodeType)return pe.grep(e,function(e){return e===t!==n});if("string"==typeof t){if(Ce.test(t))return pe.filter(t,e,n);t=pe.filter(t,e)}return pe.grep(e,function(e){return pe.inArray(e,t)>-1!==n})}function i(e,t){do e=e[t];while(e&&1!==e.nodeType);return e}function o(e){var t={};return pe.each(e.match(De)||[],function(e,n){t[n]=!0}),t}function a(){re.addEventListener?(re.removeEventListener("DOMContentLoaded",s),e.removeEventListener("load",s)):(re.detachEvent("onreadystatechange",s),e.detachEvent("onload",s))}function s(){(re.addEventListener||"load"===e.event.type||"complete"===re.readyState)&&(a(),pe.ready())}function u(e,t,n){if(void 0===n&&1===e.nodeType){var r="data-"+t.replace(_e,"-$1").toLowerCase();if(n=e.getAttribute(r),"string"==typeof n){try{n="true"===n||"false"!==n&&("null"===n?null:+n+""===n?+n:qe.test(n)?pe.parseJSON(n):n)}catch(i){}pe.data(e,t,n)}else n=void 0}return n}function l(e){var t;for(t in e)if(("data"!==t||!pe.isEmptyObject(e[t]))&&"toJSON"!==t)return!1;return!0}function c(e,t,n,r){if(He(e)){var i,o,a=pe.expando,s=e.nodeType,u=s?pe.cache:e,l=s?e[a]:e[a]&&a;if(l&&u[l]&&(r||u[l].data)||void 0!==n||"string"!=typeof t)return l||(l=s?e[a]=ne.pop()||pe.guid++:a),u[l]||(u[l]=s?{}:{toJSON:pe.noop}),"object"!=typeof t&&"function"!=typeof t||(r?u[l]=pe.extend(u[l],t):u[l].data=pe.extend(u[l].data,t)),o=u[l],r||(o.data||(o.data={}),o=o.data),void 0!==n&&(o[pe.camelCase(t)]=n),"string"==typeof t?(i=o[t],null==i&&(i=o[pe.camelCase(t)])):i=o,i}}function f(e,t,n){if(He(e)){var r,i,o=e.nodeType,a=o?pe.cache:e,s=o?e[pe.expando]:pe.expando;if(a[s]){if(t&&(r=n?a[s]:a[s].data)){pe.isArray(t)?t=t.concat(pe.map(t,pe.camelCase)):t in r?t=[t]:(t=pe.camelCase(t),t=t in r?[t]:t.split(" ")),i=t.length;for(;i--;)delete r[t[i]];if(n?!l(r):!pe.isEmptyObject(r))return}(n||(delete a[s].data,l(a[s])))&&(o?pe.cleanData([e],!0):fe.deleteExpando||a!=a.window?delete a[s]:a[s]=void 0)}}}function d(e,t,n,r){var i,o=1,a=20,s=r?function(){return r.cur()}:function(){return pe.css(e,t,"")},u=s(),l=n&&n[3]||(pe.cssNumber[t]?"":"px"),c=(pe.cssNumber[t]||"px"!==l&&+u)&&Me.exec(pe.css(e,t));if(c&&c[3]!==l){l=l||c[3],n=n||[],c=+u||1;do o=o||".5",c/=o,pe.style(e,t,c+l);while(o!==(o=s()/u)&&1!==o&&--a)}return n&&(c=+c||+u||0,i=n[1]?c+(n[1]+1)*n[2]:+n[2],r&&(r.unit=l,r.start=c,r.end=i)),i}function p(e){var t=ze.split("|"),n=e.createDocumentFragment();if(n.createElement)for(;t.length;)n.createElement(t.pop());return n}function h(e,t){var n,r,i=0,o="undefined"!=typeof e.getElementsByTagName?e.getElementsByTagName(t||"*"):"undefined"!=typeof e.querySelectorAll?e.querySelectorAll(t||"*"):void 0;if(!o)for(o=[],n=e.childNodes||e;null!=(r=n[i]);i++)!t||pe.nodeName(r,t)?o.push(r):pe.merge(o,h(r,t));return void 0===t||t&&pe.nodeName(e,t)?pe.merge([e],o):o}function g(e,t){for(var n,r=0;null!=(n=e[r]);r++)pe._data(n,"globalEval",!t||pe._data(t[r],"globalEval"))}function m(e){Be.test(e.type)&&(e.defaultChecked=e.checked)}function y(e,t,n,r,i){for(var o,a,s,u,l,c,f,d=e.length,y=p(t),v=[],x=0;x"!==f[1]||Ve.test(a)?0:u:u.firstChild,o=a&&a.childNodes.length;o--;)pe.nodeName(c=a.childNodes[o],"tbody")&&!c.childNodes.length&&a.removeChild(c);for(pe.merge(v,u.childNodes),u.textContent="";u.firstChild;)u.removeChild(u.firstChild);u=y.lastChild}else v.push(t.createTextNode(a));for(u&&y.removeChild(u),fe.appendChecked||pe.grep(h(v,"input"),m),x=0;a=v[x++];)if(r&&pe.inArray(a,r)>-1)i&&i.push(a);else if(s=pe.contains(a.ownerDocument,a),u=h(y.appendChild(a),"script"),s&&g(u),n)for(o=0;a=u[o++];)Ie.test(a.type||"")&&n.push(a);return u=null,y}function v(){return!0}function x(){return!1}function b(){try{return re.activeElement}catch(e){}}function w(e,t,n,r,i,o){var a,s;if("object"==typeof t){"string"!=typeof n&&(r=r||n,n=void 0);for(s in t)w(e,s,n,r,t[s],o);return e}if(null==r&&null==i?(i=n,r=n=void 0):null==i&&("string"==typeof n?(i=r,r=void 0):(i=r,r=n,n=void 0)),i===!1)i=x;else if(!i)return e;return 1===o&&(a=i,i=function(e){return pe().off(e),a.apply(this,arguments)},i.guid=a.guid||(a.guid=pe.guid++)),e.each(function(){pe.event.add(this,t,i,r,n)})}function T(e,t){return pe.nodeName(e,"table")&&pe.nodeName(11!==t.nodeType?t:t.firstChild,"tr")?e.getElementsByTagName("tbody")[0]||e.appendChild(e.ownerDocument.createElement("tbody")):e}function C(e){return e.type=(null!==pe.find.attr(e,"type"))+"/"+e.type,e}function E(e){var t=it.exec(e.type);return t?e.type=t[1]:e.removeAttribute("type"),e}function N(e,t){if(1===t.nodeType&&pe.hasData(e)){var n,r,i,o=pe._data(e),a=pe._data(t,o),s=o.events;if(s){delete a.handle,a.events={};for(n in s)for(r=0,i=s[n].length;r1&&"string"==typeof p&&!fe.checkClone&&rt.test(p))return e.each(function(i){var o=e.eq(i);g&&(t[0]=p.call(this,i,o.html())),S(o,t,n,r)});if(f&&(l=y(t,e[0].ownerDocument,!1,e,r),i=l.firstChild,1===l.childNodes.length&&(l=i),i||r)){for(s=pe.map(h(l,"script"),C),a=s.length;c")).appendTo(t.documentElement),t=(ut[0].contentWindow||ut[0].contentDocument).document,t.write(),t.close(),n=D(e,t),ut.detach()),lt[e]=n),n}function L(e,t){return{get:function(){return e()?void delete this.get:(this.get=t).apply(this,arguments)}}}function H(e){if(e in Et)return e;for(var t=e.charAt(0).toUpperCase()+e.slice(1),n=Ct.length;n--;)if(e=Ct[n]+t,e in Et)return e}function q(e,t){for(var n,r,i,o=[],a=0,s=e.length;a=0&&n=0},isEmptyObject:function(e){var t;for(t in e)return!1;return!0},isPlainObject:function(e){var t;if(!e||"object"!==pe.type(e)||e.nodeType||pe.isWindow(e))return!1;try{if(e.constructor&&!ce.call(e,"constructor")&&!ce.call(e.constructor.prototype,"isPrototypeOf"))return!1}catch(n){return!1}if(!fe.ownFirst)for(t in e)return ce.call(e,t);for(t in e);return void 0===t||ce.call(e,t)},type:function(e){return null==e?e+"":"object"==typeof e||"function"==typeof e?ue[le.call(e)]||"object":typeof e},globalEval:function(t){t&&pe.trim(t)&&(e.execScript||function(t){e.eval.call(e,t)})(t)},camelCase:function(e){return e.replace(ge,"ms-").replace(me,ye)},nodeName:function(e,t){return e.nodeName&&e.nodeName.toLowerCase()===t.toLowerCase()},each:function(e,t){var r,i=0;if(n(e))for(r=e.length;iT.cacheLength&&delete e[t.shift()],e[n+" "]=r}var t=[];return e}function r(e){return e[P]=!0,e}function i(e){var t=H.createElement("div");try{return!!e(t)}catch(n){return!1}finally{t.parentNode&&t.parentNode.removeChild(t),t=null}}function o(e,t){for(var n=e.split("|"),r=n.length;r--;)T.attrHandle[n[r]]=t}function a(e,t){var n=t&&e,r=n&&1===e.nodeType&&1===t.nodeType&&(~t.sourceIndex||V)-(~e.sourceIndex||V);if(r)return r;if(n)for(;n=n.nextSibling;)if(n===t)return-1;return e?1:-1}function s(e){return function(t){var n=t.nodeName.toLowerCase();return"input"===n&&t.type===e}}function u(e){return function(t){var n=t.nodeName.toLowerCase();return("input"===n||"button"===n)&&t.type===e}}function l(e){return r(function(t){return t=+t,r(function(n,r){for(var i,o=e([],n.length,t),a=o.length;a--;)n[i=o[a]]&&(n[i]=!(r[i]=n[i]))})})}function c(e){return e&&"undefined"!=typeof e.getElementsByTagName&&e}function f(){}function d(e){for(var t=0,n=e.length,r="";t1?function(t,n,r){for(var i=e.length;i--;)if(!e[i](t,n,r))return!1;return!0}:e[0]}function g(e,n,r){for(var i=0,o=n.length;i-1&&(r[l]=!(a[l]=f))}}else x=m(x===a?x.splice(h,x.length):x),o?o(null,a,x,u):Q.apply(a,x)})}function v(e){for(var t,n,r,i=e.length,o=T.relative[e[0].type],a=o||T.relative[" "],s=o?1:0,u=p(function(e){return e===t},a,!0),l=p(function(e){return ee(t,e)>-1},a,!0),c=[function(e,n,r){var i=!o&&(r||n!==A)||((t=n).nodeType?u(e,n,r):l(e,n,r));return t=null,i}];s1&&h(c),s>1&&d(e.slice(0,s-1).concat({value:" "===e[s-2].type?"*":""})).replace(se,"$1"),n,s0,o=e.length>0,a=function(r,a,s,u,l){var c,f,d,p=0,h="0",g=r&&[],y=[],v=A,x=r||o&&T.find.TAG("*",l),b=W+=null==v?1:Math.random()||.1,w=x.length;for(l&&(A=a===H||a||l);h!==w&&null!=(c=x[h]);h++){if(o&&c){for(f=0,a||c.ownerDocument===H||(L(c),s=!_);d=e[f++];)if(d(c,a||H,s)){u.push(c);break}l&&(W=b)}i&&((c=!d&&c)&&p--,r&&g.push(c))}if(p+=h,i&&h!==p){for(f=0;d=n[f++];)d(g,y,a,s);if(r){if(p>0)for(;h--;)g[h]||y[h]||(y[h]=G.call(u));y=m(y)}Q.apply(u,y),l&&!r&&y.length>0&&p+n.length>1&&t.uniqueSort(u)}return l&&(W=b,A=v),g};return i?r(a):a}var b,w,T,C,E,N,k,S,A,D,j,L,H,q,_,F,M,O,R,P="sizzle"+1*new Date,B=e.document,W=0,I=0,$=n(),z=n(),X=n(),U=function(e,t){return e===t&&(j=!0),0},V=1<<31,Y={}.hasOwnProperty,J=[],G=J.pop,K=J.push,Q=J.push,Z=J.slice,ee=function(e,t){for(var n=0,r=e.length;n+~]|"+ne+")"+ne+"*"),ce=new RegExp("="+ne+"*([^\\]'\"]*?)"+ne+"*\\]","g"),fe=new RegExp(oe),de=new RegExp("^"+re+"$"),pe={ID:new RegExp("^#("+re+")"),CLASS:new RegExp("^\\.("+re+")"),TAG:new RegExp("^("+re+"|[*])"),ATTR:new RegExp("^"+ie),PSEUDO:new RegExp("^"+oe),CHILD:new RegExp("^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\("+ne+"*(even|odd|(([+-]|)(\\d*)n|)"+ne+"*(?:([+-]|)"+ne+"*(\\d+)|))"+ne+"*\\)|)","i"),bool:new RegExp("^(?:"+te+")$","i"),needsContext:new RegExp("^"+ne+"*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\("+ne+"*((?:-\\d)?\\d*)"+ne+"*\\)|)(?=[^-]|$)","i")},he=/^(?:input|select|textarea|button)$/i,ge=/^h\d$/i,me=/^[^{]+\{\s*\[native \w/,ye=/^(?:#([\w-]+)|(\w+)|\.([\w-]+))$/,ve=/[+~]/,xe=/'|\\/g,be=new RegExp("\\\\([\\da-f]{1,6}"+ne+"?|("+ne+")|.)","ig"),we=function(e,t,n){var r="0x"+t-65536;return r!==r||n?t:r<0?String.fromCharCode(r+65536):String.fromCharCode(r>>10|55296,1023&r|56320)},Te=function(){L()};try{Q.apply(J=Z.call(B.childNodes),B.childNodes),J[B.childNodes.length].nodeType}catch(Ce){Q={apply:J.length?function(e,t){K.apply(e,Z.call(t))}:function(e,t){for(var n=e.length,r=0;e[n++]=t[r++];);e.length=n-1}}}w=t.support={},E=t.isXML=function(e){var t=e&&(e.ownerDocument||e).documentElement;return!!t&&"HTML"!==t.nodeName},L=t.setDocument=function(e){var t,n,r=e?e.ownerDocument||e:B;return r!==H&&9===r.nodeType&&r.documentElement?(H=r,q=H.documentElement,_=!E(H),(n=H.defaultView)&&n.top!==n&&(n.addEventListener?n.addEventListener("unload",Te,!1):n.attachEvent&&n.attachEvent("onunload",Te)),w.attributes=i(function(e){return e.className="i",!e.getAttribute("className")}),w.getElementsByTagName=i(function(e){return e.appendChild(H.createComment("")),!e.getElementsByTagName("*").length}),w.getElementsByClassName=me.test(H.getElementsByClassName),w.getById=i(function(e){return q.appendChild(e).id=P,!H.getElementsByName||!H.getElementsByName(P).length}),w.getById?(T.find.ID=function(e,t){if("undefined"!=typeof t.getElementById&&_){var n=t.getElementById(e);return n?[n]:[]}},T.filter.ID=function(e){var t=e.replace(be,we);return function(e){return e.getAttribute("id")===t}}):(delete T.find.ID,T.filter.ID=function(e){var t=e.replace(be,we);return function(e){var n="undefined"!=typeof e.getAttributeNode&&e.getAttributeNode("id");return n&&n.value===t}}),T.find.TAG=w.getElementsByTagName?function(e,t){return"undefined"!=typeof t.getElementsByTagName?t.getElementsByTagName(e):w.qsa?t.querySelectorAll(e):void 0}:function(e,t){var n,r=[],i=0,o=t.getElementsByTagName(e);if("*"===e){for(;n=o[i++];)1===n.nodeType&&r.push(n);return r}return o},T.find.CLASS=w.getElementsByClassName&&function(e,t){if("undefined"!=typeof t.getElementsByClassName&&_)return t.getElementsByClassName(e)},M=[],F=[],(w.qsa=me.test(H.querySelectorAll))&&(i(function(e){q.appendChild(e).innerHTML="",e.querySelectorAll("[msallowcapture^='']").length&&F.push("[*^$]="+ne+"*(?:''|\"\")"),e.querySelectorAll("[selected]").length||F.push("\\["+ne+"*(?:value|"+te+")"),e.querySelectorAll("[id~="+P+"-]").length||F.push("~="),e.querySelectorAll(":checked").length||F.push(":checked"),e.querySelectorAll("a#"+P+"+*").length||F.push(".#.+[+~]")}),i(function(e){var t=H.createElement("input");t.setAttribute("type","hidden"),e.appendChild(t).setAttribute("name","D"),e.querySelectorAll("[name=d]").length&&F.push("name"+ne+"*[*^$|!~]?="),e.querySelectorAll(":enabled").length||F.push(":enabled",":disabled"),e.querySelectorAll("*,:x"),F.push(",.*:")})),(w.matchesSelector=me.test(O=q.matches||q.webkitMatchesSelector||q.mozMatchesSelector||q.oMatchesSelector||q.msMatchesSelector))&&i(function(e){w.disconnectedMatch=O.call(e,"div"),O.call(e,"[s!='']:x"),M.push("!=",oe)}),F=F.length&&new RegExp(F.join("|")),M=M.length&&new RegExp(M.join("|")),t=me.test(q.compareDocumentPosition),R=t||me.test(q.contains)?function(e,t){var n=9===e.nodeType?e.documentElement:e,r=t&&t.parentNode;return e===r||!(!r||1!==r.nodeType||!(n.contains?n.contains(r):e.compareDocumentPosition&&16&e.compareDocumentPosition(r)))}:function(e,t){if(t)for(;t=t.parentNode;)if(t===e)return!0;return!1},U=t?function(e,t){if(e===t)return j=!0,0;var n=!e.compareDocumentPosition-!t.compareDocumentPosition;return n?n:(n=(e.ownerDocument||e)===(t.ownerDocument||t)?e.compareDocumentPosition(t):1,1&n||!w.sortDetached&&t.compareDocumentPosition(e)===n?e===H||e.ownerDocument===B&&R(B,e)?-1:t===H||t.ownerDocument===B&&R(B,t)?1:D?ee(D,e)-ee(D,t):0:4&n?-1:1)}:function(e,t){if(e===t)return j=!0,0;var n,r=0,i=e.parentNode,o=t.parentNode,s=[e],u=[t];if(!i||!o)return e===H?-1:t===H?1:i?-1:o?1:D?ee(D,e)-ee(D,t):0;if(i===o)return a(e,t);for(n=e;n=n.parentNode;)s.unshift(n);for(n=t;n=n.parentNode;)u.unshift(n);for(;s[r]===u[r];)r++;return r?a(s[r],u[r]):s[r]===B?-1:u[r]===B?1:0},H):H},t.matches=function(e,n){return t(e,null,null,n)},t.matchesSelector=function(e,n){if((e.ownerDocument||e)!==H&&L(e),n=n.replace(ce,"='$1']"),w.matchesSelector&&_&&!X[n+" "]&&(!M||!M.test(n))&&(!F||!F.test(n)))try{var r=O.call(e,n);if(r||w.disconnectedMatch||e.document&&11!==e.document.nodeType)return r}catch(i){}return t(n,H,null,[e]).length>0},t.contains=function(e,t){return(e.ownerDocument||e)!==H&&L(e),R(e,t)},t.attr=function(e,t){(e.ownerDocument||e)!==H&&L(e);var n=T.attrHandle[t.toLowerCase()],r=n&&Y.call(T.attrHandle,t.toLowerCase())?n(e,t,!_):void 0;return void 0!==r?r:w.attributes||!_?e.getAttribute(t):(r=e.getAttributeNode(t))&&r.specified?r.value:null},t.error=function(e){throw new Error("Syntax error, unrecognized expression: "+e)},t.uniqueSort=function(e){var t,n=[],r=0,i=0;if(j=!w.detectDuplicates,D=!w.sortStable&&e.slice(0),e.sort(U),j){for(;t=e[i++];)t===e[i]&&(r=n.push(i));for(;r--;)e.splice(n[r],1)}return D=null,e},C=t.getText=function(e){var t,n="",r=0,i=e.nodeType;if(i){if(1===i||9===i||11===i){if("string"==typeof e.textContent)return e.textContent;for(e=e.firstChild;e;e=e.nextSibling)n+=C(e)}else if(3===i||4===i)return e.nodeValue}else for(;t=e[r++];)n+=C(t);return n},T=t.selectors={cacheLength:50,createPseudo:r,match:pe,attrHandle:{},find:{},relative:{">":{dir:"parentNode",first:!0}," ":{dir:"parentNode"},"+":{dir:"previousSibling",first:!0},"~":{dir:"previousSibling"}},preFilter:{ATTR:function(e){return e[1]=e[1].replace(be,we),e[3]=(e[3]||e[4]||e[5]||"").replace(be,we),"~="===e[2]&&(e[3]=" "+e[3]+" "),e.slice(0,4)},CHILD:function(e){return e[1]=e[1].toLowerCase(),"nth"===e[1].slice(0,3)?(e[3]||t.error(e[0]),e[4]=+(e[4]?e[5]+(e[6]||1):2*("even"===e[3]||"odd"===e[3])),e[5]=+(e[7]+e[8]||"odd"===e[3])):e[3]&&t.error(e[0]),e},PSEUDO:function(e){var t,n=!e[6]&&e[2];return pe.CHILD.test(e[0])?null:(e[3]?e[2]=e[4]||e[5]||"":n&&fe.test(n)&&(t=N(n,!0))&&(t=n.indexOf(")",n.length-t)-n.length)&&(e[0]=e[0].slice(0,t),e[2]=n.slice(0,t)),e.slice(0,3))}},filter:{TAG:function(e){var t=e.replace(be,we).toLowerCase();return"*"===e?function(){return!0}:function(e){return e.nodeName&&e.nodeName.toLowerCase()===t}},CLASS:function(e){var t=$[e+" "];return t||(t=new RegExp("(^|"+ne+")"+e+"("+ne+"|$)"))&&$(e,function(e){return t.test("string"==typeof e.className&&e.className||"undefined"!=typeof e.getAttribute&&e.getAttribute("class")||"")})},ATTR:function(e,n,r){return function(i){var o=t.attr(i,e);return null==o?"!="===n:!n||(o+="","="===n?o===r:"!="===n?o!==r:"^="===n?r&&0===o.indexOf(r):"*="===n?r&&o.indexOf(r)>-1:"$="===n?r&&o.slice(-r.length)===r:"~="===n?(" "+o.replace(ae," ")+" ").indexOf(r)>-1:"|="===n&&(o===r||o.slice(0,r.length+1)===r+"-"))}},CHILD:function(e,t,n,r,i){var o="nth"!==e.slice(0,3),a="last"!==e.slice(-4),s="of-type"===t;return 1===r&&0===i?function(e){return!!e.parentNode}:function(t,n,u){var l,c,f,d,p,h,g=o!==a?"nextSibling":"previousSibling",m=t.parentNode,y=s&&t.nodeName.toLowerCase(),v=!u&&!s,x=!1;if(m){if(o){for(;g;){for(d=t;d=d[g];)if(s?d.nodeName.toLowerCase()===y:1===d.nodeType)return!1;h=g="only"===e&&!h&&"nextSibling"}return!0}if(h=[a?m.firstChild:m.lastChild],a&&v){for(d=m,f=d[P]||(d[P]={}),c=f[d.uniqueID]||(f[d.uniqueID]={}), +l=c[e]||[],p=l[0]===W&&l[1],x=p&&l[2],d=p&&m.childNodes[p];d=++p&&d&&d[g]||(x=p=0)||h.pop();)if(1===d.nodeType&&++x&&d===t){c[e]=[W,p,x];break}}else if(v&&(d=t,f=d[P]||(d[P]={}),c=f[d.uniqueID]||(f[d.uniqueID]={}),l=c[e]||[],p=l[0]===W&&l[1],x=p),x===!1)for(;(d=++p&&d&&d[g]||(x=p=0)||h.pop())&&((s?d.nodeName.toLowerCase()!==y:1!==d.nodeType)||!++x||(v&&(f=d[P]||(d[P]={}),c=f[d.uniqueID]||(f[d.uniqueID]={}),c[e]=[W,x]),d!==t)););return x-=i,x===r||x%r===0&&x/r>=0}}},PSEUDO:function(e,n){var i,o=T.pseudos[e]||T.setFilters[e.toLowerCase()]||t.error("unsupported pseudo: "+e);return o[P]?o(n):o.length>1?(i=[e,e,"",n],T.setFilters.hasOwnProperty(e.toLowerCase())?r(function(e,t){for(var r,i=o(e,n),a=i.length;a--;)r=ee(e,i[a]),e[r]=!(t[r]=i[a])}):function(e){return o(e,0,i)}):o}},pseudos:{not:r(function(e){var t=[],n=[],i=k(e.replace(se,"$1"));return i[P]?r(function(e,t,n,r){for(var o,a=i(e,null,r,[]),s=e.length;s--;)(o=a[s])&&(e[s]=!(t[s]=o))}):function(e,r,o){return t[0]=e,i(t,null,o,n),t[0]=null,!n.pop()}}),has:r(function(e){return function(n){return t(e,n).length>0}}),contains:r(function(e){return e=e.replace(be,we),function(t){return(t.textContent||t.innerText||C(t)).indexOf(e)>-1}}),lang:r(function(e){return de.test(e||"")||t.error("unsupported lang: "+e),e=e.replace(be,we).toLowerCase(),function(t){var n;do if(n=_?t.lang:t.getAttribute("xml:lang")||t.getAttribute("lang"))return n=n.toLowerCase(),n===e||0===n.indexOf(e+"-");while((t=t.parentNode)&&1===t.nodeType);return!1}}),target:function(t){var n=e.location&&e.location.hash;return n&&n.slice(1)===t.id},root:function(e){return e===q},focus:function(e){return e===H.activeElement&&(!H.hasFocus||H.hasFocus())&&!!(e.type||e.href||~e.tabIndex)},enabled:function(e){return e.disabled===!1},disabled:function(e){return e.disabled===!0},checked:function(e){var t=e.nodeName.toLowerCase();return"input"===t&&!!e.checked||"option"===t&&!!e.selected},selected:function(e){return e.parentNode&&e.parentNode.selectedIndex,e.selected===!0},empty:function(e){for(e=e.firstChild;e;e=e.nextSibling)if(e.nodeType<6)return!1;return!0},parent:function(e){return!T.pseudos.empty(e)},header:function(e){return ge.test(e.nodeName)},input:function(e){return he.test(e.nodeName)},button:function(e){var t=e.nodeName.toLowerCase();return"input"===t&&"button"===e.type||"button"===t},text:function(e){var t;return"input"===e.nodeName.toLowerCase()&&"text"===e.type&&(null==(t=e.getAttribute("type"))||"text"===t.toLowerCase())},first:l(function(){return[0]}),last:l(function(e,t){return[t-1]}),eq:l(function(e,t,n){return[n<0?n+t:n]}),even:l(function(e,t){for(var n=0;n=0;)e.push(r);return e}),gt:l(function(e,t,n){for(var r=n<0?n+t:n;++r2&&"ID"===(a=o[0]).type&&w.getById&&9===t.nodeType&&_&&T.relative[o[1].type]){if(t=(T.find.ID(a.matches[0].replace(be,we),t)||[])[0],!t)return n;l&&(t=t.parentNode),e=e.slice(o.shift().value.length)}for(i=pe.needsContext.test(e)?0:o.length;i--&&(a=o[i],!T.relative[s=a.type]);)if((u=T.find[s])&&(r=u(a.matches[0].replace(be,we),ve.test(o[0].type)&&c(t.parentNode)||t))){if(o.splice(i,1),e=r.length&&d(o),!e)return Q.apply(n,r),n;break}}return(l||k(e,f))(r,t,!_,n,!t||ve.test(e)&&c(t.parentNode)||t),n},w.sortStable=P.split("").sort(U).join("")===P,w.detectDuplicates=!!j,L(),w.sortDetached=i(function(e){return 1&e.compareDocumentPosition(H.createElement("div"))}),i(function(e){return e.innerHTML="","#"===e.firstChild.getAttribute("href")})||o("type|href|height|width",function(e,t,n){if(!n)return e.getAttribute(t,"type"===t.toLowerCase()?1:2)}),w.attributes&&i(function(e){return e.innerHTML="",e.firstChild.setAttribute("value",""),""===e.firstChild.getAttribute("value")})||o("value",function(e,t,n){if(!n&&"input"===e.nodeName.toLowerCase())return e.defaultValue}),i(function(e){return null==e.getAttribute("disabled")})||o(te,function(e,t,n){var r;if(!n)return e[t]===!0?t.toLowerCase():(r=e.getAttributeNode(t))&&r.specified?r.value:null}),t}(e);pe.find=ve,pe.expr=ve.selectors,pe.expr[":"]=pe.expr.pseudos,pe.uniqueSort=pe.unique=ve.uniqueSort,pe.text=ve.getText,pe.isXMLDoc=ve.isXML,pe.contains=ve.contains;var xe=function(e,t,n){for(var r=[],i=void 0!==n;(e=e[t])&&9!==e.nodeType;)if(1===e.nodeType){if(i&&pe(e).is(n))break;r.push(e)}return r},be=function(e,t){for(var n=[];e;e=e.nextSibling)1===e.nodeType&&e!==t&&n.push(e);return n},we=pe.expr.match.needsContext,Te=/^<([\w-]+)\s*\/?>(?:<\/\1>|)$/,Ce=/^.[^:#\[\.,]*$/;pe.filter=function(e,t,n){var r=t[0];return n&&(e=":not("+e+")"),1===t.length&&1===r.nodeType?pe.find.matchesSelector(r,e)?[r]:[]:pe.find.matches(e,pe.grep(t,function(e){return 1===e.nodeType}))},pe.fn.extend({find:function(e){var t,n=[],r=this,i=r.length;if("string"!=typeof e)return this.pushStack(pe(e).filter(function(){for(t=0;t1?pe.unique(n):n),n.selector=this.selector?this.selector+" "+e:e,n},filter:function(e){return this.pushStack(r(this,e||[],!1))},not:function(e){return this.pushStack(r(this,e||[],!0))},is:function(e){return!!r(this,"string"==typeof e&&we.test(e)?pe(e):e||[],!1).length}});var Ee,Ne=/^(?:\s*(<[\w\W]+>)[^>]*|#([\w-]*))$/,ke=pe.fn.init=function(e,t,n){var r,i;if(!e)return this;if(n=n||Ee,"string"==typeof e){if(r="<"===e.charAt(0)&&">"===e.charAt(e.length-1)&&e.length>=3?[null,e,null]:Ne.exec(e),!r||!r[1]&&t)return!t||t.jquery?(t||n).find(e):this.constructor(t).find(e);if(r[1]){if(t=t instanceof pe?t[0]:t,pe.merge(this,pe.parseHTML(r[1],t&&t.nodeType?t.ownerDocument||t:re,!0)),Te.test(r[1])&&pe.isPlainObject(t))for(r in t)pe.isFunction(this[r])?this[r](t[r]):this.attr(r,t[r]);return this}if(i=re.getElementById(r[2]),i&&i.parentNode){if(i.id!==r[2])return Ee.find(e);this.length=1,this[0]=i}return this.context=re,this.selector=e,this}return e.nodeType?(this.context=this[0]=e,this.length=1,this):pe.isFunction(e)?"undefined"!=typeof n.ready?n.ready(e):e(pe):(void 0!==e.selector&&(this.selector=e.selector,this.context=e.context),pe.makeArray(e,this))};ke.prototype=pe.fn,Ee=pe(re);var Se=/^(?:parents|prev(?:Until|All))/,Ae={children:!0,contents:!0,next:!0,prev:!0};pe.fn.extend({has:function(e){var t,n=pe(e,this),r=n.length;return this.filter(function(){for(t=0;t-1:1===n.nodeType&&pe.find.matchesSelector(n,e))){o.push(n);break}return this.pushStack(o.length>1?pe.uniqueSort(o):o)},index:function(e){return e?"string"==typeof e?pe.inArray(this[0],pe(e)):pe.inArray(e.jquery?e[0]:e,this):this[0]&&this[0].parentNode?this.first().prevAll().length:-1},add:function(e,t){return this.pushStack(pe.uniqueSort(pe.merge(this.get(),pe(e,t))))},addBack:function(e){return this.add(null==e?this.prevObject:this.prevObject.filter(e))}}),pe.each({parent:function(e){var t=e.parentNode;return t&&11!==t.nodeType?t:null},parents:function(e){return xe(e,"parentNode")},parentsUntil:function(e,t,n){return xe(e,"parentNode",n)},next:function(e){return i(e,"nextSibling")},prev:function(e){return i(e,"previousSibling")},nextAll:function(e){return xe(e,"nextSibling")},prevAll:function(e){return xe(e,"previousSibling")},nextUntil:function(e,t,n){return xe(e,"nextSibling",n)},prevUntil:function(e,t,n){return xe(e,"previousSibling",n)},siblings:function(e){return be((e.parentNode||{}).firstChild,e)},children:function(e){return be(e.firstChild)},contents:function(e){return pe.nodeName(e,"iframe")?e.contentDocument||e.contentWindow.document:pe.merge([],e.childNodes)}},function(e,t){pe.fn[e]=function(n,r){var i=pe.map(this,t,n);return"Until"!==e.slice(-5)&&(r=n),r&&"string"==typeof r&&(i=pe.filter(r,i)),this.length>1&&(Ae[e]||(i=pe.uniqueSort(i)),Se.test(e)&&(i=i.reverse())),this.pushStack(i)}});var De=/\S+/g;pe.Callbacks=function(e){e="string"==typeof e?o(e):pe.extend({},e);var t,n,r,i,a=[],s=[],u=-1,l=function(){for(i=e.once,r=t=!0;s.length;u=-1)for(n=s.shift();++u-1;)a.splice(n,1),n<=u&&u--}),this},has:function(e){return e?pe.inArray(e,a)>-1:a.length>0},empty:function(){return a&&(a=[]),this},disable:function(){return i=s=[],a=n="",this},disabled:function(){return!a},lock:function(){return i=!0,n||c.disable(),this},locked:function(){return!!i},fireWith:function(e,n){return i||(n=n||[],n=[e,n.slice?n.slice():n],s.push(n),t||l()),this},fire:function(){return c.fireWith(this,arguments),this},fired:function(){return!!r}};return c},pe.extend({Deferred:function(e){var t=[["resolve","done",pe.Callbacks("once memory"),"resolved"],["reject","fail",pe.Callbacks("once memory"),"rejected"],["notify","progress",pe.Callbacks("memory")]],n="pending",r={state:function(){return n},always:function(){return i.done(arguments).fail(arguments),this},then:function(){var e=arguments;return pe.Deferred(function(n){pe.each(t,function(t,o){var a=pe.isFunction(e[t])&&e[t];i[o[1]](function(){var e=a&&a.apply(this,arguments);e&&pe.isFunction(e.promise)?e.promise().progress(n.notify).done(n.resolve).fail(n.reject):n[o[0]+"With"](this===r?n.promise():this,a?[e]:arguments)})}),e=null}).promise()},promise:function(e){return null!=e?pe.extend(e,r):r}},i={};return r.pipe=r.then,pe.each(t,function(e,o){var a=o[2],s=o[3];r[o[1]]=a.add,s&&a.add(function(){n=s},t[1^e][2].disable,t[2][2].lock),i[o[0]]=function(){return i[o[0]+"With"](this===i?r:this,arguments),this},i[o[0]+"With"]=a.fireWith}),r.promise(i),e&&e.call(i,i),i},when:function(e){var t,n,r,i=0,o=ie.call(arguments),a=o.length,s=1!==a||e&&pe.isFunction(e.promise)?a:0,u=1===s?e:pe.Deferred(),l=function(e,n,r){return function(i){n[e]=this,r[e]=arguments.length>1?ie.call(arguments):i,r===t?u.notifyWith(n,r):--s||u.resolveWith(n,r)}};if(a>1)for(t=new Array(a),n=new Array(a),r=new Array(a);i0||(je.resolveWith(re,[pe]),pe.fn.triggerHandler&&(pe(re).triggerHandler("ready"),pe(re).off("ready"))))}}),pe.ready.promise=function(t){if(!je)if(je=pe.Deferred(),"complete"===re.readyState||"loading"!==re.readyState&&!re.documentElement.doScroll)e.setTimeout(pe.ready);else if(re.addEventListener)re.addEventListener("DOMContentLoaded",s),e.addEventListener("load",s);else{re.attachEvent("onreadystatechange",s),e.attachEvent("onload",s);var n=!1;try{n=null==e.frameElement&&re.documentElement}catch(r){}n&&n.doScroll&&!function i(){if(!pe.isReady){try{n.doScroll("left")}catch(t){return e.setTimeout(i,50)}a(),pe.ready()}}()}return je.promise(t)},pe.ready.promise();var Le;for(Le in pe(fe))break;fe.ownFirst="0"===Le,fe.inlineBlockNeedsLayout=!1,pe(function(){var e,t,n,r;n=re.getElementsByTagName("body")[0],n&&n.style&&(t=re.createElement("div"),r=re.createElement("div"),r.style.cssText="position:absolute;border:0;width:0;height:0;top:0;left:-9999px",n.appendChild(r).appendChild(t),"undefined"!=typeof t.style.zoom&&(t.style.cssText="display:inline;margin:0;border:0;padding:1px;width:1px;zoom:1",fe.inlineBlockNeedsLayout=e=3===t.offsetWidth,e&&(n.style.zoom=1)),n.removeChild(r))}),function(){var e=re.createElement("div");fe.deleteExpando=!0;try{delete e.test}catch(t){fe.deleteExpando=!1}e=null}();var He=function(e){var t=pe.noData[(e.nodeName+" ").toLowerCase()],n=+e.nodeType||1;return(1===n||9===n)&&(!t||t!==!0&&e.getAttribute("classid")===t)},qe=/^(?:\{[\w\W]*\}|\[[\w\W]*\])$/,_e=/([A-Z])/g;pe.extend({cache:{},noData:{"applet ":!0,"embed ":!0,"object ":"clsid:D27CDB6E-AE6D-11cf-96B8-444553540000"},hasData:function(e){return e=e.nodeType?pe.cache[e[pe.expando]]:e[pe.expando],!!e&&!l(e)},data:function(e,t,n){return c(e,t,n)},removeData:function(e,t){return f(e,t)},_data:function(e,t,n){return c(e,t,n,!0)},_removeData:function(e,t){return f(e,t,!0)}}),pe.fn.extend({data:function(e,t){var n,r,i,o=this[0],a=o&&o.attributes;if(void 0===e){if(this.length&&(i=pe.data(o),1===o.nodeType&&!pe._data(o,"parsedAttrs"))){for(n=a.length;n--;)a[n]&&(r=a[n].name,0===r.indexOf("data-")&&(r=pe.camelCase(r.slice(5)),u(o,r,i[r])));pe._data(o,"parsedAttrs",!0)}return i}return"object"==typeof e?this.each(function(){pe.data(this,e)}):arguments.length>1?this.each(function(){pe.data(this,e,t)}):o?u(o,e,pe.data(o,e)):void 0},removeData:function(e){return this.each(function(){pe.removeData(this,e)})}}),pe.extend({queue:function(e,t,n){var r;if(e)return t=(t||"fx")+"queue",r=pe._data(e,t),n&&(!r||pe.isArray(n)?r=pe._data(e,t,pe.makeArray(n)):r.push(n)),r||[]},dequeue:function(e,t){t=t||"fx";var n=pe.queue(e,t),r=n.length,i=n.shift(),o=pe._queueHooks(e,t),a=function(){pe.dequeue(e,t)};"inprogress"===i&&(i=n.shift(),r--),i&&("fx"===t&&n.unshift("inprogress"),delete o.stop,i.call(e,a,o)),!r&&o&&o.empty.fire()},_queueHooks:function(e,t){var n=t+"queueHooks";return pe._data(e,n)||pe._data(e,n,{empty:pe.Callbacks("once memory").add(function(){pe._removeData(e,t+"queue"),pe._removeData(e,n)})})}}),pe.fn.extend({queue:function(e,t){var n=2;return"string"!=typeof e&&(t=e,e="fx",n--),arguments.length
              a",fe.leadingWhitespace=3===e.firstChild.nodeType,fe.tbody=!e.getElementsByTagName("tbody").length,fe.htmlSerialize=!!e.getElementsByTagName("link").length,fe.html5Clone="<:nav>"!==re.createElement("nav").cloneNode(!0).outerHTML,n.type="checkbox",n.checked=!0,t.appendChild(n),fe.appendChecked=n.checked,e.innerHTML="",fe.noCloneChecked=!!e.cloneNode(!0).lastChild.defaultValue,t.appendChild(e),n=re.createElement("input"),n.setAttribute("type","radio"),n.setAttribute("checked","checked"),n.setAttribute("name","t"),e.appendChild(n),fe.checkClone=e.cloneNode(!0).cloneNode(!0).lastChild.checked,fe.noCloneEvent=!!e.addEventListener,e[pe.expando]=1,fe.attributes=!e.getAttribute(pe.expando)}();var Xe={option:[1,""],legend:[1,"
              ","
              "],area:[1,"",""],param:[1,"",""],thead:[1,"","
              "],tr:[2,"","
              "],col:[2,"","
              "],td:[3,"","
              "],_default:fe.htmlSerialize?[0,"",""]:[1,"X
              ","
              "]};Xe.optgroup=Xe.option,Xe.tbody=Xe.tfoot=Xe.colgroup=Xe.caption=Xe.thead,Xe.th=Xe.td;var Ue=/<|&#?\w+;/,Ve=/-1&&(h=p.split("."),p=h.shift(),h.sort()),a=p.indexOf(":")<0&&"on"+p,t=t[pe.expando]?t:new pe.Event(p,"object"==typeof t&&t),t.isTrigger=i?2:3,t.namespace=h.join("."),t.rnamespace=t.namespace?new RegExp("(^|\\.)"+h.join("\\.(?:.*\\.|)")+"(\\.|$)"):null,t.result=void 0,t.target||(t.target=r),n=null==n?[t]:pe.makeArray(n,[t]),l=pe.event.special[p]||{},i||!l.trigger||l.trigger.apply(r,n)!==!1)){if(!i&&!l.noBubble&&!pe.isWindow(r)){for(u=l.delegateType||p,Ke.test(u+p)||(s=s.parentNode);s;s=s.parentNode)d.push(s),c=s;c===(r.ownerDocument||re)&&d.push(c.defaultView||c.parentWindow||e)}for(f=0;(s=d[f++])&&!t.isPropagationStopped();)t.type=f>1?u:l.bindType||p,o=(pe._data(s,"events")||{})[t.type]&&pe._data(s,"handle"),o&&o.apply(s,n),o=a&&s[a],o&&o.apply&&He(s)&&(t.result=o.apply(s,n),t.result===!1&&t.preventDefault());if(t.type=p,!i&&!t.isDefaultPrevented()&&(!l._default||l._default.apply(d.pop(),n)===!1)&&He(r)&&a&&r[p]&&!pe.isWindow(r)){c=r[a],c&&(r[a]=null),pe.event.triggered=p;try{r[p]()}catch(g){}pe.event.triggered=void 0,c&&(r[a]=c)}return t.result}},dispatch:function(e){e=pe.event.fix(e);var t,n,r,i,o,a=[],s=ie.call(arguments),u=(pe._data(this,"events")||{})[e.type]||[],l=pe.event.special[e.type]||{};if(s[0]=e,e.delegateTarget=this,!l.preDispatch||l.preDispatch.call(this,e)!==!1){for(a=pe.event.handlers.call(this,e,u),t=0;(i=a[t++])&&!e.isPropagationStopped();)for(e.currentTarget=i.elem,n=0;(o=i.handlers[n++])&&!e.isImmediatePropagationStopped();)e.rnamespace&&!e.rnamespace.test(o.namespace)||(e.handleObj=o,e.data=o.data,r=((pe.event.special[o.origType]||{}).handle||o.handler).apply(i.elem,s),void 0!==r&&(e.result=r)===!1&&(e.preventDefault(),e.stopPropagation()));return l.postDispatch&&l.postDispatch.call(this,e),e.result}},handlers:function(e,t){var n,r,i,o,a=[],s=t.delegateCount,u=e.target;if(s&&u.nodeType&&("click"!==e.type||isNaN(e.button)||e.button<1))for(;u!=this;u=u.parentNode||this)if(1===u.nodeType&&(u.disabled!==!0||"click"!==e.type)){for(r=[],n=0;n-1:pe.find(i,this,null,[u]).length),r[i]&&r.push(o);r.length&&a.push({elem:u,handlers:r})}return s]","i"),tt=/<(?!area|br|col|embed|hr|img|input|link|meta|param)(([\w:-]+)[^>]*)\/>/gi,nt=/\s*$/g,at=p(re),st=at.appendChild(re.createElement("div"));pe.extend({htmlPrefilter:function(e){return e.replace(tt,"<$1>")},clone:function(e,t,n){var r,i,o,a,s,u=pe.contains(e.ownerDocument,e);if(fe.html5Clone||pe.isXMLDoc(e)||!et.test("<"+e.nodeName+">")?o=e.cloneNode(!0):(st.innerHTML=e.outerHTML,st.removeChild(o=st.firstChild)),!(fe.noCloneEvent&&fe.noCloneChecked||1!==e.nodeType&&11!==e.nodeType||pe.isXMLDoc(e)))for(r=h(o),s=h(e),a=0;null!=(i=s[a]);++a)r[a]&&k(i,r[a]);if(t)if(n)for(s=s||h(e),r=r||h(o),a=0;null!=(i=s[a]);a++)N(i,r[a]);else N(e,o);return r=h(o,"script"),r.length>0&&g(r,!u&&h(e,"script")),r=s=i=null,o},cleanData:function(e,t){for(var n,r,i,o,a=0,s=pe.expando,u=pe.cache,l=fe.attributes,c=pe.event.special;null!=(n=e[a]);a++)if((t||He(n))&&(i=n[s],o=i&&u[i])){if(o.events)for(r in o.events)c[r]?pe.event.remove(n,r):pe.removeEvent(n,r,o.handle);u[i]&&(delete u[i],l||"undefined"==typeof n.removeAttribute?n[s]=void 0:n.removeAttribute(s),ne.push(i))}}}),pe.fn.extend({domManip:S,detach:function(e){return A(this,e,!0)},remove:function(e){return A(this,e)},text:function(e){return Pe(this,function(e){return void 0===e?pe.text(this):this.empty().append((this[0]&&this[0].ownerDocument||re).createTextNode(e))},null,e,arguments.length)},append:function(){return S(this,arguments,function(e){if(1===this.nodeType||11===this.nodeType||9===this.nodeType){var t=T(this,e);t.appendChild(e)}})},prepend:function(){return S(this,arguments,function(e){if(1===this.nodeType||11===this.nodeType||9===this.nodeType){var t=T(this,e);t.insertBefore(e,t.firstChild)}})},before:function(){return S(this,arguments,function(e){this.parentNode&&this.parentNode.insertBefore(e,this)})},after:function(){return S(this,arguments,function(e){this.parentNode&&this.parentNode.insertBefore(e,this.nextSibling)})},empty:function(){for(var e,t=0;null!=(e=this[t]);t++){for(1===e.nodeType&&pe.cleanData(h(e,!1));e.firstChild;)e.removeChild(e.firstChild);e.options&&pe.nodeName(e,"select")&&(e.options.length=0)}return this},clone:function(e,t){return e=null!=e&&e,t=null==t?e:t,this.map(function(){return pe.clone(this,e,t)})},html:function(e){return Pe(this,function(e){var t=this[0]||{},n=0,r=this.length;if(void 0===e)return 1===t.nodeType?t.innerHTML.replace(Ze,""):void 0;if("string"==typeof e&&!nt.test(e)&&(fe.htmlSerialize||!et.test(e))&&(fe.leadingWhitespace||!$e.test(e))&&!Xe[(We.exec(e)||["",""])[1].toLowerCase()]){e=pe.htmlPrefilter(e);try{for(;nt",t=l.getElementsByTagName("td"),t[0].style.cssText="margin:0;border:0;padding:0;display:none",o=0===t[0].offsetHeight,o&&(t[0].style.display="",t[1].style.display="none",o=0===t[0].offsetHeight)),f.removeChild(u)}var n,r,i,o,a,s,u=re.createElement("div"),l=re.createElement("div");l.style&&(l.style.cssText="float:left;opacity:.5",fe.opacity="0.5"===l.style.opacity,fe.cssFloat=!!l.style.cssFloat,l.style.backgroundClip="content-box",l.cloneNode(!0).style.backgroundClip="",fe.clearCloneStyle="content-box"===l.style.backgroundClip,u=re.createElement("div"),u.style.cssText="border:0;width:8px;height:0;top:0;left:-9999px;padding:0;margin-top:1px;position:absolute",l.innerHTML="",u.appendChild(l),fe.boxSizing=""===l.style.boxSizing||""===l.style.MozBoxSizing||""===l.style.WebkitBoxSizing,pe.extend(fe,{reliableHiddenOffsets:function(){return null==n&&t(),o},boxSizingReliable:function(){return null==n&&t(),i},pixelMarginRight:function(){return null==n&&t(),r},pixelPosition:function(){return null==n&&t(),n},reliableMarginRight:function(){return null==n&&t(),a},reliableMarginLeft:function(){return null==n&&t(),s}}))}();var ht,gt,mt=/^(top|right|bottom|left)$/;e.getComputedStyle?(ht=function(t){var n=t.ownerDocument.defaultView;return n&&n.opener||(n=e),n.getComputedStyle(t)},gt=function(e,t,n){var r,i,o,a,s=e.style;return n=n||ht(e),a=n?n.getPropertyValue(t)||n[t]:void 0,""!==a&&void 0!==a||pe.contains(e.ownerDocument,e)||(a=pe.style(e,t)),n&&!fe.pixelMarginRight()&&ft.test(a)&&ct.test(t)&&(r=s.width,i=s.minWidth,o=s.maxWidth,s.minWidth=s.maxWidth=s.width=a,a=n.width,s.width=r,s.minWidth=i,s.maxWidth=o),void 0===a?a:a+""}):pt.currentStyle&&(ht=function(e){return e.currentStyle},gt=function(e,t,n){var r,i,o,a,s=e.style;return n=n||ht(e),a=n?n[t]:void 0,null==a&&s&&s[t]&&(a=s[t]),ft.test(a)&&!mt.test(t)&&(r=s.left,i=e.runtimeStyle,o=i&&i.left,o&&(i.left=e.currentStyle.left),s.left="fontSize"===t?"1em":a,a=s.pixelLeft+"px",s.left=r,o&&(i.left=o)),void 0===a?a:a+""||"auto"});var yt=/alpha\([^)]*\)/i,vt=/opacity\s*=\s*([^)]*)/i,xt=/^(none|table(?!-c[ea]).+)/,bt=new RegExp("^("+Fe+")(.*)$","i"),wt={position:"absolute",visibility:"hidden",display:"block"},Tt={letterSpacing:"0",fontWeight:"400"},Ct=["Webkit","O","Moz","ms"],Et=re.createElement("div").style;pe.extend({cssHooks:{opacity:{get:function(e,t){if(t){var n=gt(e,"opacity");return""===n?"1":n}}}},cssNumber:{animationIterationCount:!0,columnCount:!0,fillOpacity:!0,flexGrow:!0,flexShrink:!0,fontWeight:!0,lineHeight:!0,opacity:!0,order:!0,orphans:!0,widows:!0,zIndex:!0,zoom:!0},cssProps:{"float":fe.cssFloat?"cssFloat":"styleFloat"},style:function(e,t,n,r){if(e&&3!==e.nodeType&&8!==e.nodeType&&e.style){var i,o,a,s=pe.camelCase(t),u=e.style;if(t=pe.cssProps[s]||(pe.cssProps[s]=H(s)||s),a=pe.cssHooks[t]||pe.cssHooks[s],void 0===n)return a&&"get"in a&&void 0!==(i=a.get(e,!1,r))?i:u[t];if(o=typeof n,"string"===o&&(i=Me.exec(n))&&i[1]&&(n=d(e,t,i),o="number"),null!=n&&n===n&&("number"===o&&(n+=i&&i[3]||(pe.cssNumber[s]?"":"px")),fe.clearCloneStyle||""!==n||0!==t.indexOf("background")||(u[t]="inherit"),!(a&&"set"in a&&void 0===(n=a.set(e,n,r)))))try{u[t]=n}catch(l){}}},css:function(e,t,n,r){var i,o,a,s=pe.camelCase(t);return t=pe.cssProps[s]||(pe.cssProps[s]=H(s)||s),a=pe.cssHooks[t]||pe.cssHooks[s],a&&"get"in a&&(o=a.get(e,!0,n)),void 0===o&&(o=gt(e,t,r)),"normal"===o&&t in Tt&&(o=Tt[t]),""===n||n?(i=parseFloat(o),n===!0||isFinite(i)?i||0:o):o}}),pe.each(["height","width"],function(e,t){pe.cssHooks[t]={get:function(e,n,r){if(n)return xt.test(pe.css(e,"display"))&&0===e.offsetWidth?dt(e,wt,function(){return M(e,t,r)}):M(e,t,r)},set:function(e,n,r){var i=r&&ht(e);return _(e,n,r?F(e,t,r,fe.boxSizing&&"border-box"===pe.css(e,"boxSizing",!1,i),i):0)}}}),fe.opacity||(pe.cssHooks.opacity={get:function(e,t){return vt.test((t&&e.currentStyle?e.currentStyle.filter:e.style.filter)||"")?.01*parseFloat(RegExp.$1)+"":t?"1":""},set:function(e,t){var n=e.style,r=e.currentStyle,i=pe.isNumeric(t)?"alpha(opacity="+100*t+")":"",o=r&&r.filter||n.filter||"";n.zoom=1,(t>=1||""===t)&&""===pe.trim(o.replace(yt,""))&&n.removeAttribute&&(n.removeAttribute("filter"),""===t||r&&!r.filter)||(n.filter=yt.test(o)?o.replace(yt,i):o+" "+i)}}),pe.cssHooks.marginRight=L(fe.reliableMarginRight,function(e,t){if(t)return dt(e,{display:"inline-block"},gt,[e,"marginRight"])}),pe.cssHooks.marginLeft=L(fe.reliableMarginLeft,function(e,t){if(t)return(parseFloat(gt(e,"marginLeft"))||(pe.contains(e.ownerDocument,e)?e.getBoundingClientRect().left-dt(e,{marginLeft:0},function(){return e.getBoundingClientRect().left}):0))+"px"}),pe.each({margin:"",padding:"",border:"Width"},function(e,t){pe.cssHooks[e+t]={expand:function(n){for(var r=0,i={},o="string"==typeof n?n.split(" "):[n];r<4;r++)i[e+Oe[r]+t]=o[r]||o[r-2]||o[0];return i}},ct.test(e)||(pe.cssHooks[e+t].set=_)}),pe.fn.extend({css:function(e,t){return Pe(this,function(e,t,n){var r,i,o={},a=0;if(pe.isArray(t)){for(r=ht(e),i=t.length;a1)},show:function(){return q(this,!0)},hide:function(){return q(this)},toggle:function(e){return"boolean"==typeof e?e?this.show():this.hide():this.each(function(){Re(this)?pe(this).show():pe(this).hide()})}}),pe.Tween=O,O.prototype={constructor:O,init:function(e,t,n,r,i,o){this.elem=e,this.prop=n,this.easing=i||pe.easing._default,this.options=t,this.start=this.now=this.cur(),this.end=r,this.unit=o||(pe.cssNumber[n]?"":"px")},cur:function(){var e=O.propHooks[this.prop];return e&&e.get?e.get(this):O.propHooks._default.get(this)},run:function(e){var t,n=O.propHooks[this.prop];return this.options.duration?this.pos=t=pe.easing[this.easing](e,this.options.duration*e,0,1,this.options.duration):this.pos=t=e,this.now=(this.end-this.start)*t+this.start,this.options.step&&this.options.step.call(this.elem,this.now,this),n&&n.set?n.set(this):O.propHooks._default.set(this),this}},O.prototype.init.prototype=O.prototype,O.propHooks={_default:{get:function(e){var t;return 1!==e.elem.nodeType||null!=e.elem[e.prop]&&null==e.elem.style[e.prop]?e.elem[e.prop]:(t=pe.css(e.elem,e.prop,""),t&&"auto"!==t?t:0)},set:function(e){pe.fx.step[e.prop]?pe.fx.step[e.prop](e):1!==e.elem.nodeType||null==e.elem.style[pe.cssProps[e.prop]]&&!pe.cssHooks[e.prop]?e.elem[e.prop]=e.now:pe.style(e.elem,e.prop,e.now+e.unit)}}},O.propHooks.scrollTop=O.propHooks.scrollLeft={set:function(e){e.elem.nodeType&&e.elem.parentNode&&(e.elem[e.prop]=e.now)}},pe.easing={linear:function(e){return e},swing:function(e){return.5-Math.cos(e*Math.PI)/2},_default:"swing"},pe.fx=O.prototype.init,pe.fx.step={};var Nt,kt,St=/^(?:toggle|show|hide)$/,At=/queueHooks$/;pe.Animation=pe.extend($,{tweeners:{"*":[function(e,t){var n=this.createTween(e,t);return d(n.elem,e,Me.exec(t),n),n}]},tweener:function(e,t){pe.isFunction(e)?(t=e,e=["*"]):e=e.match(De);for(var n,r=0,i=e.length;r
              a",e=n.getElementsByTagName("a")[0],t.setAttribute("type","checkbox"),n.appendChild(t),e=n.getElementsByTagName("a")[0],e.style.cssText="top:1px",fe.getSetAttribute="t"!==n.className,fe.style=/top/.test(e.getAttribute("style")),fe.hrefNormalized="/a"===e.getAttribute("href"),fe.checkOn=!!t.value,fe.optSelected=i.selected,fe.enctype=!!re.createElement("form").enctype,r.disabled=!0,fe.optDisabled=!i.disabled,t=re.createElement("input"),t.setAttribute("value",""),fe.input=""===t.getAttribute("value"),t.value="t",t.setAttribute("type","radio"),fe.radioValue="t"===t.value}();var Dt=/\r/g,jt=/[\x20\t\r\n\f]+/g;pe.fn.extend({val:function(e){var t,n,r,i=this[0];{if(arguments.length)return r=pe.isFunction(e),this.each(function(n){var i;1===this.nodeType&&(i=r?e.call(this,n,pe(this).val()):e,null==i?i="":"number"==typeof i?i+="":pe.isArray(i)&&(i=pe.map(i,function(e){return null==e?"":e+""})),t=pe.valHooks[this.type]||pe.valHooks[this.nodeName.toLowerCase()],t&&"set"in t&&void 0!==t.set(this,i,"value")||(this.value=i))});if(i)return t=pe.valHooks[i.type]||pe.valHooks[i.nodeName.toLowerCase()],t&&"get"in t&&void 0!==(n=t.get(i,"value"))?n:(n=i.value,"string"==typeof n?n.replace(Dt,""):null==n?"":n)}}}),pe.extend({valHooks:{option:{get:function(e){var t=pe.find.attr(e,"value");return null!=t?t:pe.trim(pe.text(e)).replace(jt," ")}},select:{get:function(e){for(var t,n,r=e.options,i=e.selectedIndex,o="select-one"===e.type||i<0,a=o?null:[],s=o?i+1:r.length,u=i<0?s:o?i:0;u-1)try{r.selected=n=!0}catch(s){r.scrollHeight}else r.selected=!1;return n||(e.selectedIndex=-1),i}}}}),pe.each(["radio","checkbox"],function(){pe.valHooks[this]={set:function(e,t){if(pe.isArray(t))return e.checked=pe.inArray(pe(e).val(),t)>-1}},fe.checkOn||(pe.valHooks[this].get=function(e){return null===e.getAttribute("value")?"on":e.value})});var Lt,Ht,qt=pe.expr.attrHandle,_t=/^(?:checked|selected)$/i,Ft=fe.getSetAttribute,Mt=fe.input;pe.fn.extend({attr:function(e,t){return Pe(this,pe.attr,e,t,arguments.length>1)},removeAttr:function(e){return this.each(function(){pe.removeAttr(this,e)})}}),pe.extend({attr:function(e,t,n){var r,i,o=e.nodeType;if(3!==o&&8!==o&&2!==o)return"undefined"==typeof e.getAttribute?pe.prop(e,t,n):(1===o&&pe.isXMLDoc(e)||(t=t.toLowerCase(),i=pe.attrHooks[t]||(pe.expr.match.bool.test(t)?Ht:Lt)),void 0!==n?null===n?void pe.removeAttr(e,t):i&&"set"in i&&void 0!==(r=i.set(e,n,t))?r:(e.setAttribute(t,n+""),n):i&&"get"in i&&null!==(r=i.get(e,t))?r:(r=pe.find.attr(e,t),null==r?void 0:r))},attrHooks:{type:{set:function(e,t){if(!fe.radioValue&&"radio"===t&&pe.nodeName(e,"input")){var n=e.value;return e.setAttribute("type",t),n&&(e.value=n),t}}}},removeAttr:function(e,t){var n,r,i=0,o=t&&t.match(De);if(o&&1===e.nodeType)for(;n=o[i++];)r=pe.propFix[n]||n,pe.expr.match.bool.test(n)?Mt&&Ft||!_t.test(n)?e[r]=!1:e[pe.camelCase("default-"+n)]=e[r]=!1:pe.attr(e,n,""),e.removeAttribute(Ft?n:r)}}),Ht={set:function(e,t,n){return t===!1?pe.removeAttr(e,n):Mt&&Ft||!_t.test(n)?e.setAttribute(!Ft&&pe.propFix[n]||n,n):e[pe.camelCase("default-"+n)]=e[n]=!0,n}},pe.each(pe.expr.match.bool.source.match(/\w+/g),function(e,t){var n=qt[t]||pe.find.attr;Mt&&Ft||!_t.test(t)?qt[t]=function(e,t,r){var i,o;return r||(o=qt[t],qt[t]=i,i=null!=n(e,t,r)?t.toLowerCase():null,qt[t]=o),i}:qt[t]=function(e,t,n){if(!n)return e[pe.camelCase("default-"+t)]?t.toLowerCase():null}}),Mt&&Ft||(pe.attrHooks.value={set:function(e,t,n){return pe.nodeName(e,"input")?void(e.defaultValue=t):Lt&&Lt.set(e,t,n)}}),Ft||(Lt={set:function(e,t,n){var r=e.getAttributeNode(n);if(r||e.setAttributeNode(r=e.ownerDocument.createAttribute(n)),r.value=t+="","value"===n||t===e.getAttribute(n))return t}},qt.id=qt.name=qt.coords=function(e,t,n){var r;if(!n)return(r=e.getAttributeNode(t))&&""!==r.value?r.value:null},pe.valHooks.button={get:function(e,t){var n=e.getAttributeNode(t);if(n&&n.specified)return n.value},set:Lt.set},pe.attrHooks.contenteditable={set:function(e,t,n){Lt.set(e,""!==t&&t,n)}},pe.each(["width","height"],function(e,t){pe.attrHooks[t]={set:function(e,n){if(""===n)return e.setAttribute(t,"auto"),n}}})),fe.style||(pe.attrHooks.style={get:function(e){return e.style.cssText||void 0},set:function(e,t){return e.style.cssText=t+""}});var Ot=/^(?:input|select|textarea|button|object)$/i,Rt=/^(?:a|area)$/i;pe.fn.extend({prop:function(e,t){return Pe(this,pe.prop,e,t,arguments.length>1)},removeProp:function(e){return e=pe.propFix[e]||e,this.each(function(){try{this[e]=void 0,delete this[e]}catch(t){}})}}),pe.extend({prop:function(e,t,n){var r,i,o=e.nodeType;if(3!==o&&8!==o&&2!==o)return 1===o&&pe.isXMLDoc(e)||(t=pe.propFix[t]||t,i=pe.propHooks[t]),void 0!==n?i&&"set"in i&&void 0!==(r=i.set(e,n,t))?r:e[t]=n:i&&"get"in i&&null!==(r=i.get(e,t))?r:e[t]},propHooks:{tabIndex:{get:function(e){var t=pe.find.attr(e,"tabindex");return t?parseInt(t,10):Ot.test(e.nodeName)||Rt.test(e.nodeName)&&e.href?0:-1}}},propFix:{"for":"htmlFor","class":"className"}}),fe.hrefNormalized||pe.each(["href","src"],function(e,t){pe.propHooks[t]={get:function(e){return e.getAttribute(t,4)}}}),fe.optSelected||(pe.propHooks.selected={get:function(e){var t=e.parentNode;return t&&(t.selectedIndex,t.parentNode&&t.parentNode.selectedIndex),null},set:function(e){var t=e.parentNode;t&&(t.selectedIndex,t.parentNode&&t.parentNode.selectedIndex)}}),pe.each(["tabIndex","readOnly","maxLength","cellSpacing","cellPadding","rowSpan","colSpan","useMap","frameBorder","contentEditable"],function(){pe.propFix[this.toLowerCase()]=this}),fe.enctype||(pe.propFix.enctype="encoding");var Pt=/[\t\r\n\f]/g;pe.fn.extend({addClass:function(e){var t,n,r,i,o,a,s,u=0;if(pe.isFunction(e))return this.each(function(t){pe(this).addClass(e.call(this,t,z(this)))});if("string"==typeof e&&e)for(t=e.match(De)||[];n=this[u++];)if(i=z(n),r=1===n.nodeType&&(" "+i+" ").replace(Pt," ")){for(a=0;o=t[a++];)r.indexOf(" "+o+" ")<0&&(r+=o+" ");s=pe.trim(r),i!==s&&pe.attr(n,"class",s)}return this},removeClass:function(e){var t,n,r,i,o,a,s,u=0;if(pe.isFunction(e))return this.each(function(t){pe(this).removeClass(e.call(this,t,z(this)))});if(!arguments.length)return this.attr("class","");if("string"==typeof e&&e)for(t=e.match(De)||[];n=this[u++];)if(i=z(n),r=1===n.nodeType&&(" "+i+" ").replace(Pt," ")){for(a=0;o=t[a++];)for(;r.indexOf(" "+o+" ")>-1;)r=r.replace(" "+o+" "," ");s=pe.trim(r),i!==s&&pe.attr(n,"class",s)}return this},toggleClass:function(e,t){var n=typeof e;return"boolean"==typeof t&&"string"===n?t?this.addClass(e):this.removeClass(e):pe.isFunction(e)?this.each(function(n){pe(this).toggleClass(e.call(this,n,z(this),t),t)}):this.each(function(){var t,r,i,o;if("string"===n)for(r=0,i=pe(this),o=e.match(De)||[];t=o[r++];)i.hasClass(t)?i.removeClass(t):i.addClass(t);else void 0!==e&&"boolean"!==n||(t=z(this),t&&pe._data(this,"__className__",t),pe.attr(this,"class",t||e===!1?"":pe._data(this,"__className__")||""))})},hasClass:function(e){var t,n,r=0;for(t=" "+e+" ";n=this[r++];)if(1===n.nodeType&&(" "+z(n)+" ").replace(Pt," ").indexOf(t)>-1)return!0;return!1}}),pe.each("blur focus focusin focusout load resize scroll unload click dblclick mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave change select submit keydown keypress keyup error contextmenu".split(" "),function(e,t){pe.fn[t]=function(e,n){return arguments.length>0?this.on(t,null,e,n):this.trigger(t)}}),pe.fn.extend({hover:function(e,t){return this.mouseenter(e).mouseleave(t||e)}});var Bt=e.location,Wt=pe.now(),It=/\?/,$t=/(,)|(\[|{)|(}|])|"(?:[^"\\\r\n]|\\["\\\/bfnrt]|\\u[\da-fA-F]{4})*"\s*:?|true|false|null|-?(?!0\d)\d+(?:\.\d+|)(?:[eE][+-]?\d+|)/g;pe.parseJSON=function(t){if(e.JSON&&e.JSON.parse)return e.JSON.parse(t+"");var n,r=null,i=pe.trim(t+"");return i&&!pe.trim(i.replace($t,function(e,t,i,o){return n&&t&&(r=0),0===r?e:(n=i||t,r+=!o-!i,"")}))?Function("return "+i)():pe.error("Invalid JSON: "+t)},pe.parseXML=function(t){var n,r;if(!t||"string"!=typeof t)return null;try{e.DOMParser?(r=new e.DOMParser,n=r.parseFromString(t,"text/xml")):(n=new e.ActiveXObject("Microsoft.XMLDOM"),n.async="false",n.loadXML(t))}catch(i){n=void 0}return n&&n.documentElement&&!n.getElementsByTagName("parsererror").length||pe.error("Invalid XML: "+t),n};var zt=/#.*$/,Xt=/([?&])_=[^&]*/,Ut=/^(.*?):[ \t]*([^\r\n]*)\r?$/gm,Vt=/^(?:about|app|app-storage|.+-extension|file|res|widget):$/,Yt=/^(?:GET|HEAD)$/,Jt=/^\/\//,Gt=/^([\w.+-]+:)(?:\/\/(?:[^\/?#]*@|)([^\/?#:]*)(?::(\d+)|)|)/,Kt={},Qt={},Zt="*/".concat("*"),en=Bt.href,tn=Gt.exec(en.toLowerCase())||[];pe.extend({active:0,lastModified:{},etag:{},ajaxSettings:{url:en,type:"GET",isLocal:Vt.test(tn[1]),global:!0,processData:!0,async:!0,contentType:"application/x-www-form-urlencoded; charset=UTF-8",accepts:{"*":Zt,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":pe.parseJSON,"text xml":pe.parseXML},flatOptions:{url:!0,context:!0}},ajaxSetup:function(e,t){return t?V(V(e,pe.ajaxSettings),t):V(pe.ajaxSettings,e)},ajaxPrefilter:X(Kt),ajaxTransport:X(Qt),ajax:function(t,n){function r(t,n,r,i){var o,f,v,x,w,C=n;2!==b&&(b=2,u&&e.clearTimeout(u),c=void 0,s=i||"",T.readyState=t>0?4:0,o=t>=200&&t<300||304===t,r&&(x=Y(d,T,r)),x=J(d,x,T,o),o?(d.ifModified&&(w=T.getResponseHeader("Last-Modified"),w&&(pe.lastModified[a]=w),w=T.getResponseHeader("etag"),w&&(pe.etag[a]=w)),204===t||"HEAD"===d.type?C="nocontent":304===t?C="notmodified":(C=x.state,f=x.data,v=x.error,o=!v)):(v=C,!t&&C||(C="error",t<0&&(t=0))),T.status=t,T.statusText=(n||C)+"",o?g.resolveWith(p,[f,C,T]):g.rejectWith(p,[T,C,v]),T.statusCode(y),y=void 0,l&&h.trigger(o?"ajaxSuccess":"ajaxError",[T,d,o?f:v]),m.fireWith(p,[T,C]),l&&(h.trigger("ajaxComplete",[T,d]),--pe.active||pe.event.trigger("ajaxStop")))}"object"==typeof t&&(n=t,t=void 0),n=n||{};var i,o,a,s,u,l,c,f,d=pe.ajaxSetup({},n),p=d.context||d,h=d.context&&(p.nodeType||p.jquery)?pe(p):pe.event,g=pe.Deferred(),m=pe.Callbacks("once memory"),y=d.statusCode||{},v={},x={},b=0,w="canceled",T={readyState:0,getResponseHeader:function(e){var t;if(2===b){if(!f)for(f={};t=Ut.exec(s);)f[t[1].toLowerCase()]=t[2];t=f[e.toLowerCase()]}return null==t?null:t},getAllResponseHeaders:function(){return 2===b?s:null},setRequestHeader:function(e,t){var n=e.toLowerCase();return b||(e=x[n]=x[n]||e,v[e]=t),this},overrideMimeType:function(e){return b||(d.mimeType=e),this},statusCode:function(e){var t;if(e)if(b<2)for(t in e)y[t]=[y[t],e[t]];else T.always(e[T.status]);return this},abort:function(e){var t=e||w;return c&&c.abort(t),r(0,t),this}};if(g.promise(T).complete=m.add,T.success=T.done,T.error=T.fail,d.url=((t||d.url||en)+"").replace(zt,"").replace(Jt,tn[1]+"//"),d.type=n.method||n.type||d.method||d.type,d.dataTypes=pe.trim(d.dataType||"*").toLowerCase().match(De)||[""],null==d.crossDomain&&(i=Gt.exec(d.url.toLowerCase()),d.crossDomain=!(!i||i[1]===tn[1]&&i[2]===tn[2]&&(i[3]||("http:"===i[1]?"80":"443"))===(tn[3]||("http:"===tn[1]?"80":"443")))),d.data&&d.processData&&"string"!=typeof d.data&&(d.data=pe.param(d.data,d.traditional)),U(Kt,d,n,T),2===b)return T;l=pe.event&&d.global,l&&0===pe.active++&&pe.event.trigger("ajaxStart"),d.type=d.type.toUpperCase(),d.hasContent=!Yt.test(d.type),a=d.url,d.hasContent||(d.data&&(a=d.url+=(It.test(a)?"&":"?")+d.data,delete d.data),d.cache===!1&&(d.url=Xt.test(a)?a.replace(Xt,"$1_="+Wt++):a+(It.test(a)?"&":"?")+"_="+Wt++)),d.ifModified&&(pe.lastModified[a]&&T.setRequestHeader("If-Modified-Since",pe.lastModified[a]),pe.etag[a]&&T.setRequestHeader("If-None-Match",pe.etag[a])),(d.data&&d.hasContent&&d.contentType!==!1||n.contentType)&&T.setRequestHeader("Content-Type",d.contentType),T.setRequestHeader("Accept",d.dataTypes[0]&&d.accepts[d.dataTypes[0]]?d.accepts[d.dataTypes[0]]+("*"!==d.dataTypes[0]?", "+Zt+"; q=0.01":""):d.accepts["*"]);for(o in d.headers)T.setRequestHeader(o,d.headers[o]);if(d.beforeSend&&(d.beforeSend.call(p,T,d)===!1||2===b))return T.abort();w="abort";for(o in{success:1,error:1,complete:1})T[o](d[o]);if(c=U(Qt,d,n,T)){if(T.readyState=1,l&&h.trigger("ajaxSend",[T,d]),2===b)return T;d.async&&d.timeout>0&&(u=e.setTimeout(function(){T.abort("timeout")},d.timeout));try{b=1,c.send(v,r)}catch(C){if(!(b<2))throw C;r(-1,C)}}else r(-1,"No Transport");return T},getJSON:function(e,t,n){return pe.get(e,t,n,"json")},getScript:function(e,t){return pe.get(e,void 0,t,"script")}}),pe.each(["get","post"],function(e,t){pe[t]=function(e,n,r,i){return pe.isFunction(n)&&(i=i||r,r=n,n=void 0),pe.ajax(pe.extend({url:e,type:t,dataType:i,data:n,success:r},pe.isPlainObject(e)&&e))}}),pe._evalUrl=function(e){return pe.ajax({url:e,type:"GET",dataType:"script",cache:!0,async:!1,global:!1,"throws":!0})},pe.fn.extend({wrapAll:function(e){if(pe.isFunction(e))return this.each(function(t){pe(this).wrapAll(e.call(this,t))});if(this[0]){var t=pe(e,this[0].ownerDocument).eq(0).clone(!0);this[0].parentNode&&t.insertBefore(this[0]),t.map(function(){for(var e=this;e.firstChild&&1===e.firstChild.nodeType;)e=e.firstChild;return e}).append(this)}return this},wrapInner:function(e){return pe.isFunction(e)?this.each(function(t){pe(this).wrapInner(e.call(this,t))}):this.each(function(){var t=pe(this),n=t.contents();n.length?n.wrapAll(e):t.append(e)})},wrap:function(e){var t=pe.isFunction(e);return this.each(function(n){pe(this).wrapAll(t?e.call(this,n):e)})},unwrap:function(){return this.parent().each(function(){pe.nodeName(this,"body")||pe(this).replaceWith(this.childNodes)}).end()}}),pe.expr.filters.hidden=function(e){return fe.reliableHiddenOffsets()?e.offsetWidth<=0&&e.offsetHeight<=0&&!e.getClientRects().length:K(e)},pe.expr.filters.visible=function(e){return!pe.expr.filters.hidden(e)};var nn=/%20/g,rn=/\[\]$/,on=/\r?\n/g,an=/^(?:submit|button|image|reset|file)$/i,sn=/^(?:input|select|textarea|keygen)/i;pe.param=function(e,t){var n,r=[],i=function(e,t){t=pe.isFunction(t)?t():null==t?"":t,r[r.length]=encodeURIComponent(e)+"="+encodeURIComponent(t)};if(void 0===t&&(t=pe.ajaxSettings&&pe.ajaxSettings.traditional),pe.isArray(e)||e.jquery&&!pe.isPlainObject(e))pe.each(e,function(){i(this.name,this.value)});else for(n in e)Q(n,e[n],t,i);return r.join("&").replace(nn,"+")},pe.fn.extend({serialize:function(){return pe.param(this.serializeArray())},serializeArray:function(){return this.map(function(){var e=pe.prop(this,"elements");return e?pe.makeArray(e):this}).filter(function(){var e=this.type;return this.name&&!pe(this).is(":disabled")&&sn.test(this.nodeName)&&!an.test(e)&&(this.checked||!Be.test(e))}).map(function(e,t){var n=pe(this).val();return null==n?null:pe.isArray(n)?pe.map(n,function(e){return{name:t.name,value:e.replace(on,"\r\n")}}):{name:t.name,value:n.replace(on,"\r\n")}}).get()}}),pe.ajaxSettings.xhr=void 0!==e.ActiveXObject?function(){return this.isLocal?ee():re.documentMode>8?Z():/^(get|post|head|put|delete|options)$/i.test(this.type)&&Z()||ee()}:Z;var un=0,ln={},cn=pe.ajaxSettings.xhr();e.attachEvent&&e.attachEvent("onunload",function(){for(var e in ln)ln[e](void 0,!0)}),fe.cors=!!cn&&"withCredentials"in cn,cn=fe.ajax=!!cn,cn&&pe.ajaxTransport(function(t){if(!t.crossDomain||fe.cors){var n;return{send:function(r,i){var o,a=t.xhr(),s=++un;if(a.open(t.type,t.url,t.async,t.username,t.password),t.xhrFields)for(o in t.xhrFields)a[o]=t.xhrFields[o];t.mimeType&&a.overrideMimeType&&a.overrideMimeType(t.mimeType),t.crossDomain||r["X-Requested-With"]||(r["X-Requested-With"]="XMLHttpRequest");for(o in r)void 0!==r[o]&&a.setRequestHeader(o,r[o]+"");a.send(t.hasContent&&t.data||null),n=function(e,r){var o,u,l;if(n&&(r||4===a.readyState))if(delete ln[s],n=void 0,a.onreadystatechange=pe.noop,r)4!==a.readyState&&a.abort();else{l={},o=a.status,"string"==typeof a.responseText&&(l.text=a.responseText);try{u=a.statusText}catch(c){u=""}o||!t.isLocal||t.crossDomain?1223===o&&(o=204):o=l.text?200:404}l&&i(o,u,l,a.getAllResponseHeaders())},t.async?4===a.readyState?e.setTimeout(n):a.onreadystatechange=ln[s]=n:n()},abort:function(){n&&n(void 0,!0)}}}}),pe.ajaxSetup({accepts:{script:"text/javascript, application/javascript, application/ecmascript, application/x-ecmascript"},contents:{script:/\b(?:java|ecma)script\b/},converters:{"text script":function(e){return pe.globalEval(e),e}}}),pe.ajaxPrefilter("script",function(e){void 0===e.cache&&(e.cache=!1),e.crossDomain&&(e.type="GET",e.global=!1)}),pe.ajaxTransport("script",function(e){if(e.crossDomain){var t,n=re.head||pe("head")[0]||re.documentElement;return{send:function(r,i){t=re.createElement("script"),t.async=!0,e.scriptCharset&&(t.charset=e.scriptCharset),t.src=e.url,t.onload=t.onreadystatechange=function(e,n){(n||!t.readyState||/loaded|complete/.test(t.readyState))&&(t.onload=t.onreadystatechange=null,t.parentNode&&t.parentNode.removeChild(t),t=null,n||i(200,"success"))},n.insertBefore(t,n.firstChild)},abort:function(){t&&t.onload(void 0,!0)}}}});var fn=[],dn=/(=)\?(?=&|$)|\?\?/;pe.ajaxSetup({jsonp:"callback",jsonpCallback:function(){var e=fn.pop()||pe.expando+"_"+Wt++;return this[e]=!0,e}}),pe.ajaxPrefilter("json jsonp",function(t,n,r){var i,o,a,s=t.jsonp!==!1&&(dn.test(t.url)?"url":"string"==typeof t.data&&0===(t.contentType||"").indexOf("application/x-www-form-urlencoded")&&dn.test(t.data)&&"data");if(s||"jsonp"===t.dataTypes[0])return i=t.jsonpCallback=pe.isFunction(t.jsonpCallback)?t.jsonpCallback():t.jsonpCallback,s?t[s]=t[s].replace(dn,"$1"+i):t.jsonp!==!1&&(t.url+=(It.test(t.url)?"&":"?")+t.jsonp+"="+i),t.converters["script json"]=function(){return a||pe.error(i+" was not called"),a[0]},t.dataTypes[0]="json",o=e[i],e[i]=function(){a=arguments},r.always(function(){void 0===o?pe(e).removeProp(i):e[i]=o,t[i]&&(t.jsonpCallback=n.jsonpCallback,fn.push(i)),a&&pe.isFunction(o)&&o(a[0]),a=o=void 0}),"script"}),pe.parseHTML=function(e,t,n){if(!e||"string"!=typeof e)return null;"boolean"==typeof t&&(n=t,t=!1),t=t||re;var r=Te.exec(e),i=!n&&[];return r?[t.createElement(r[1])]:(r=y([e],t,i),i&&i.length&&pe(i).remove(),pe.merge([],r.childNodes))};var pn=pe.fn.load;return pe.fn.load=function(e,t,n){if("string"!=typeof e&&pn)return pn.apply(this,arguments);var r,i,o,a=this,s=e.indexOf(" ");return s>-1&&(r=pe.trim(e.slice(s,e.length)),e=e.slice(0,s)),pe.isFunction(t)?(n=t,t=void 0):t&&"object"==typeof t&&(i="POST"),a.length>0&&pe.ajax({url:e,type:i||"GET",dataType:"html",data:t}).done(function(e){o=arguments,a.html(r?pe("
              ").append(pe.parseHTML(e)).find(r):e)}).always(n&&function(e,t){a.each(function(){n.apply(this,o||[e.responseText,t,e])})}),this},pe.each(["ajaxStart","ajaxStop","ajaxComplete","ajaxError","ajaxSuccess","ajaxSend"],function(e,t){pe.fn[t]=function(e){return this.on(t,e)}}),pe.expr.filters.animated=function(e){return pe.grep(pe.timers,function(t){return e===t.elem}).length},pe.offset={setOffset:function(e,t,n){var r,i,o,a,s,u,l,c=pe.css(e,"position"),f=pe(e),d={};"static"===c&&(e.style.position="relative"),s=f.offset(),o=pe.css(e,"top"),u=pe.css(e,"left"),l=("absolute"===c||"fixed"===c)&&pe.inArray("auto",[o,u])>-1,l?(r=f.position(),a=r.top,i=r.left):(a=parseFloat(o)||0,i=parseFloat(u)||0),pe.isFunction(t)&&(t=t.call(e,n,pe.extend({},s))),null!=t.top&&(d.top=t.top-s.top+a),null!=t.left&&(d.left=t.left-s.left+i),"using"in t?t.using.call(e,d):f.css(d)}},pe.fn.extend({offset:function(e){if(arguments.length)return void 0===e?this:this.each(function(t){pe.offset.setOffset(this,e,t)});var t,n,r={top:0,left:0},i=this[0],o=i&&i.ownerDocument;if(o)return t=o.documentElement,pe.contains(t,i)?("undefined"!=typeof i.getBoundingClientRect&&(r=i.getBoundingClientRect()),n=te(o),{top:r.top+(n.pageYOffset||t.scrollTop)-(t.clientTop||0),left:r.left+(n.pageXOffset||t.scrollLeft)-(t.clientLeft||0)}):r},position:function(){if(this[0]){var e,t,n={top:0,left:0},r=this[0];return"fixed"===pe.css(r,"position")?t=r.getBoundingClientRect():(e=this.offsetParent(),t=this.offset(),pe.nodeName(e[0],"html")||(n=e.offset()),n.top+=pe.css(e[0],"borderTopWidth",!0),n.left+=pe.css(e[0],"borderLeftWidth",!0)),{top:t.top-n.top-pe.css(r,"marginTop",!0),left:t.left-n.left-pe.css(r,"marginLeft",!0)}}},offsetParent:function(){return this.map(function(){ +for(var e=this.offsetParent;e&&!pe.nodeName(e,"html")&&"static"===pe.css(e,"position");)e=e.offsetParent;return e||pt})}}),pe.each({scrollLeft:"pageXOffset",scrollTop:"pageYOffset"},function(e,t){var n=/Y/.test(t);pe.fn[e]=function(r){return Pe(this,function(e,r,i){var o=te(e);return void 0===i?o?t in o?o[t]:o.document.documentElement[r]:e[r]:void(o?o.scrollTo(n?pe(o).scrollLeft():i,n?i:pe(o).scrollTop()):e[r]=i)},e,r,arguments.length,null)}}),pe.each(["top","left"],function(e,t){pe.cssHooks[t]=L(fe.pixelPosition,function(e,n){if(n)return n=gt(e,t),ft.test(n)?pe(e).position()[t]+"px":n})}),pe.each({Height:"height",Width:"width"},function(e,t){pe.each({padding:"inner"+e,content:t,"":"outer"+e},function(n,r){pe.fn[r]=function(r,i){var o=arguments.length&&(n||"boolean"!=typeof r),a=n||(r===!0||i===!0?"margin":"border");return Pe(this,function(t,n,r){var i;return pe.isWindow(t)?t.document.documentElement["client"+e]:9===t.nodeType?(i=t.documentElement,Math.max(t.body["scroll"+e],i["scroll"+e],t.body["offset"+e],i["offset"+e],i["client"+e])):void 0===r?pe.css(t,n,a):pe.style(t,n,r,a)},t,o?r:void 0,o,null)}})}),pe.fn.extend({bind:function(e,t,n){return this.on(e,null,t,n)},unbind:function(e,t){return this.off(e,null,t)},delegate:function(e,t,n,r){return this.on(t,e,n,r)},undelegate:function(e,t,n){return 1===arguments.length?this.off(e,"**"):this.off(t,e||"**",n)}}),pe.fn.size=function(){return this.length},pe.fn.andSelf=pe.fn.addBack,layui.define(function(e){layui.$=pe,e("jquery",pe)}),pe});!function(e,t){"use strict";var i,n,a=e.layui&&layui.define,o={getPath:function(){var e=document.currentScript?document.currentScript.src:function(){for(var e,t=document.scripts,i=t.length-1,n=i;n>0;n--)if("interactive"===t[n].readyState){e=t[n].src;break}return e||t[i].src}();return e.substring(0,e.lastIndexOf("/")+1)}(),config:{},end:{},minIndex:0,minLeft:[],btn:["确定","取消"],type:["dialog","page","iframe","loading","tips"],getStyle:function(t,i){var n=t.currentStyle?t.currentStyle:e.getComputedStyle(t,null);return n[n.getPropertyValue?"getPropertyValue":"getAttribute"](i)},link:function(t,i,n){if(r.path){var a=document.getElementsByTagName("head")[0],s=document.createElement("link");"string"==typeof i&&(n=i);var l=(n||t).replace(/\.|\//g,""),f="layuicss-"+l,c=0;s.rel="stylesheet",s.href=r.path+t,s.id=f,document.getElementById(f)||a.appendChild(s),"function"==typeof i&&!function u(){return++c>80?e.console&&console.error("layer.css: Invalid"):void(1989===parseInt(o.getStyle(document.getElementById(f),"width"))?i():setTimeout(u,100))}()}}},r={v:"3.1.1",ie:function(){var t=navigator.userAgent.toLowerCase();return!!(e.ActiveXObject||"ActiveXObject"in e)&&((t.match(/msie\s(\d+)/)||[])[1]||"11")}(),index:e.layer&&e.layer.v?1e5:0,path:o.getPath,config:function(e,t){return e=e||{},r.cache=o.config=i.extend({},o.config,e),r.path=o.config.path||r.path,"string"==typeof e.extend&&(e.extend=[e.extend]),o.config.path&&r.ready(),e.extend?(a?layui.addcss("modules/layer/"+e.extend):o.link("theme/"+e.extend),this):this},ready:function(e){var t="layer",i="",n=(a?"modules/layer/":"theme/")+"default/layer.css?v="+r.v+i;return a?layui.addcss(n,e,t):o.link(n,e,t),this},alert:function(e,t,n){var a="function"==typeof t;return a&&(n=t),r.open(i.extend({content:e,yes:n},a?{}:t))},confirm:function(e,t,n,a){var s="function"==typeof t;return s&&(a=n,n=t),r.open(i.extend({content:e,btn:o.btn,yes:n,btn2:a},s?{}:t))},msg:function(e,n,a){var s="function"==typeof n,f=o.config.skin,c=(f?f+" "+f+"-msg":"")||"layui-layer-msg",u=l.anim.length-1;return s&&(a=n),r.open(i.extend({content:e,time:3e3,shade:!1,skin:c,title:!1,closeBtn:!1,btn:!1,resize:!1,end:a},s&&!o.config.skin?{skin:c+" layui-layer-hui",anim:u}:function(){return n=n||{},(n.icon===-1||n.icon===t&&!o.config.skin)&&(n.skin=c+" "+(n.skin||"layui-layer-hui")),n}()))},load:function(e,t){return r.open(i.extend({type:3,icon:e||0,resize:!1,shade:.01},t))},tips:function(e,t,n){return r.open(i.extend({type:4,content:[e,t],closeBtn:!1,time:3e3,shade:!1,resize:!1,fixed:!1,maxWidth:210},n))}},s=function(e){var t=this;t.index=++r.index,t.config=i.extend({},t.config,o.config,e),document.body?t.creat():setTimeout(function(){t.creat()},30)};s.pt=s.prototype;var l=["layui-layer",".layui-layer-title",".layui-layer-main",".layui-layer-dialog","layui-layer-iframe","layui-layer-content","layui-layer-btn","layui-layer-close"];l.anim=["layer-anim-00","layer-anim-01","layer-anim-02","layer-anim-03","layer-anim-04","layer-anim-05","layer-anim-06"],s.pt.config={type:0,shade:.3,fixed:!0,move:l[1],title:"信息",offset:"auto",area:"auto",closeBtn:1,time:0,zIndex:19891014,maxWidth:360,anim:0,isOutAnim:!0,icon:-1,moveType:1,resize:!0,scrollbar:!0,tips:2},s.pt.vessel=function(e,t){var n=this,a=n.index,r=n.config,s=r.zIndex+a,f="object"==typeof r.title,c=r.maxmin&&(1===r.type||2===r.type),u=r.title?'
              '+(f?r.title[0]:r.title)+"
              ":"";return r.zIndex=s,t([r.shade?'
              ':"",'
              '+(e&&2!=r.type?"":u)+'
              '+(0==r.type&&r.icon!==-1?'':"")+(1==r.type&&e?"":r.content||"")+'
              '+function(){var e=c?'':"";return r.closeBtn&&(e+=''),e}()+""+(r.btn?function(){var e="";"string"==typeof r.btn&&(r.btn=[r.btn]);for(var t=0,i=r.btn.length;t'+r.btn[t]+"";return'
              '+e+"
              "}():"")+(r.resize?'':"")+"
              "],u,i('
              ')),n},s.pt.creat=function(){var e=this,t=e.config,a=e.index,s=t.content,f="object"==typeof s,c=i("body");if(!t.id||!i("#"+t.id)[0]){switch("string"==typeof t.area&&(t.area="auto"===t.area?["",""]:[t.area,""]),t.shift&&(t.anim=t.shift),6==r.ie&&(t.fixed=!1),t.type){case 0:t.btn="btn"in t?t.btn:o.btn[0],r.closeAll("dialog");break;case 2:var s=t.content=f?t.content:[t.content||"","auto"];t.content='';break;case 3:delete t.title,delete t.closeBtn,t.icon===-1&&0===t.icon,r.closeAll("loading");break;case 4:f||(t.content=[t.content,"body"]),t.follow=t.content[1],t.content=t.content[0]+'',delete t.title,t.tips="object"==typeof t.tips?t.tips:[t.tips,!0],t.tipsMore||r.closeAll("tips")}if(e.vessel(f,function(n,r,u){c.append(n[0]),f?function(){2==t.type||4==t.type?function(){i("body").append(n[1])}():function(){s.parents("."+l[0])[0]||(s.data("display",s.css("display")).show().addClass("layui-layer-wrap").wrap(n[1]),i("#"+l[0]+a).find("."+l[5]).before(r))}()}():c.append(n[1]),i(".layui-layer-move")[0]||c.append(o.moveElem=u),e.layero=i("#"+l[0]+a),t.scrollbar||l.html.css("overflow","hidden").attr("layer-full",a)}).auto(a),i("#layui-layer-shade"+e.index).css({"background-color":t.shade[1]||"#000",opacity:t.shade[0]||t.shade}),2==t.type&&6==r.ie&&e.layero.find("iframe").attr("src",s[0]),4==t.type?e.tips():e.offset(),t.fixed&&n.on("resize",function(){e.offset(),(/^\d+%$/.test(t.area[0])||/^\d+%$/.test(t.area[1]))&&e.auto(a),4==t.type&&e.tips()}),t.time<=0||setTimeout(function(){r.close(e.index)},t.time),e.move().callback(),l.anim[t.anim]){var u="layer-anim "+l.anim[t.anim];e.layero.addClass(u).one("webkitAnimationEnd mozAnimationEnd MSAnimationEnd oanimationend animationend",function(){i(this).removeClass(u)})}t.isOutAnim&&e.layero.data("isOutAnim",!0)}},s.pt.auto=function(e){var t=this,a=t.config,o=i("#"+l[0]+e);""===a.area[0]&&a.maxWidth>0&&(r.ie&&r.ie<8&&a.btn&&o.width(o.innerWidth()),o.outerWidth()>a.maxWidth&&o.width(a.maxWidth));var s=[o.innerWidth(),o.innerHeight()],f=o.find(l[1]).outerHeight()||0,c=o.find("."+l[6]).outerHeight()||0,u=function(e){e=o.find(e),e.height(s[1]-f-c-2*(0|parseFloat(e.css("padding-top"))))};switch(a.type){case 2:u("iframe");break;default:""===a.area[1]?a.maxHeight>0&&o.outerHeight()>a.maxHeight?(s[1]=a.maxHeight,u("."+l[5])):a.fixed&&s[1]>=n.height()&&(s[1]=n.height(),u("."+l[5])):u("."+l[5])}return t},s.pt.offset=function(){var e=this,t=e.config,i=e.layero,a=[i.outerWidth(),i.outerHeight()],o="object"==typeof t.offset;e.offsetTop=(n.height()-a[1])/2,e.offsetLeft=(n.width()-a[0])/2,o?(e.offsetTop=t.offset[0],e.offsetLeft=t.offset[1]||e.offsetLeft):"auto"!==t.offset&&("t"===t.offset?e.offsetTop=0:"r"===t.offset?e.offsetLeft=n.width()-a[0]:"b"===t.offset?e.offsetTop=n.height()-a[1]:"l"===t.offset?e.offsetLeft=0:"lt"===t.offset?(e.offsetTop=0,e.offsetLeft=0):"lb"===t.offset?(e.offsetTop=n.height()-a[1],e.offsetLeft=0):"rt"===t.offset?(e.offsetTop=0,e.offsetLeft=n.width()-a[0]):"rb"===t.offset?(e.offsetTop=n.height()-a[1],e.offsetLeft=n.width()-a[0]):e.offsetTop=t.offset),t.fixed||(e.offsetTop=/%$/.test(e.offsetTop)?n.height()*parseFloat(e.offsetTop)/100:parseFloat(e.offsetTop),e.offsetLeft=/%$/.test(e.offsetLeft)?n.width()*parseFloat(e.offsetLeft)/100:parseFloat(e.offsetLeft),e.offsetTop+=n.scrollTop(),e.offsetLeft+=n.scrollLeft()),i.attr("minLeft")&&(e.offsetTop=n.height()-(i.find(l[1]).outerHeight()||0),e.offsetLeft=i.css("left")),i.css({top:e.offsetTop,left:e.offsetLeft})},s.pt.tips=function(){var e=this,t=e.config,a=e.layero,o=[a.outerWidth(),a.outerHeight()],r=i(t.follow);r[0]||(r=i("body"));var s={width:r.outerWidth(),height:r.outerHeight(),top:r.offset().top,left:r.offset().left},f=a.find(".layui-layer-TipsG"),c=t.tips[0];t.tips[1]||f.remove(),s.autoLeft=function(){s.left+o[0]-n.width()>0?(s.tipLeft=s.left+s.width-o[0],f.css({right:12,left:"auto"})):s.tipLeft=s.left},s.where=[function(){s.autoLeft(),s.tipTop=s.top-o[1]-10,f.removeClass("layui-layer-TipsB").addClass("layui-layer-TipsT").css("border-right-color",t.tips[1])},function(){s.tipLeft=s.left+s.width+10,s.tipTop=s.top,f.removeClass("layui-layer-TipsL").addClass("layui-layer-TipsR").css("border-bottom-color",t.tips[1])},function(){s.autoLeft(),s.tipTop=s.top+s.height+10,f.removeClass("layui-layer-TipsT").addClass("layui-layer-TipsB").css("border-right-color",t.tips[1])},function(){s.tipLeft=s.left-o[0]-10,s.tipTop=s.top,f.removeClass("layui-layer-TipsR").addClass("layui-layer-TipsL").css("border-bottom-color",t.tips[1])}],s.where[c-1](),1===c?s.top-(n.scrollTop()+o[1]+16)<0&&s.where[2]():2===c?n.width()-(s.left+s.width+o[0]+16)>0||s.where[3]():3===c?s.top-n.scrollTop()+s.height+o[1]+16-n.height()>0&&s.where[0]():4===c&&o[0]+16-s.left>0&&s.where[1](),a.find("."+l[5]).css({"background-color":t.tips[1],"padding-right":t.closeBtn?"30px":""}),a.css({left:s.tipLeft-(t.fixed?n.scrollLeft():0),top:s.tipTop-(t.fixed?n.scrollTop():0)})},s.pt.move=function(){var e=this,t=e.config,a=i(document),s=e.layero,l=s.find(t.move),f=s.find(".layui-layer-resize"),c={};return t.move&&l.css("cursor","move"),l.on("mousedown",function(e){e.preventDefault(),t.move&&(c.moveStart=!0,c.offset=[e.clientX-parseFloat(s.css("left")),e.clientY-parseFloat(s.css("top"))],o.moveElem.css("cursor","move").show())}),f.on("mousedown",function(e){e.preventDefault(),c.resizeStart=!0,c.offset=[e.clientX,e.clientY],c.area=[s.outerWidth(),s.outerHeight()],o.moveElem.css("cursor","se-resize").show()}),a.on("mousemove",function(i){if(c.moveStart){var a=i.clientX-c.offset[0],o=i.clientY-c.offset[1],l="fixed"===s.css("position");if(i.preventDefault(),c.stX=l?0:n.scrollLeft(),c.stY=l?0:n.scrollTop(),!t.moveOut){var f=n.width()-s.outerWidth()+c.stX,u=n.height()-s.outerHeight()+c.stY;af&&(a=f),ou&&(o=u)}s.css({left:a,top:o})}if(t.resize&&c.resizeStart){var a=i.clientX-c.offset[0],o=i.clientY-c.offset[1];i.preventDefault(),r.style(e.index,{width:c.area[0]+a,height:c.area[1]+o}),c.isResize=!0,t.resizing&&t.resizing(s)}}).on("mouseup",function(e){c.moveStart&&(delete c.moveStart,o.moveElem.hide(),t.moveEnd&&t.moveEnd(s)),c.resizeStart&&(delete c.resizeStart,o.moveElem.hide())}),e},s.pt.callback=function(){function e(){var e=a.cancel&&a.cancel(t.index,n);e===!1||r.close(t.index)}var t=this,n=t.layero,a=t.config;t.openLayer(),a.success&&(2==a.type?n.find("iframe").on("load",function(){a.success(n,t.index)}):a.success(n,t.index)),6==r.ie&&t.IE6(n),n.find("."+l[6]).children("a").on("click",function(){var e=i(this).index();if(0===e)a.yes?a.yes(t.index,n):a.btn1?a.btn1(t.index,n):r.close(t.index);else{var o=a["btn"+(e+1)]&&a["btn"+(e+1)](t.index,n);o===!1||r.close(t.index)}}),n.find("."+l[7]).on("click",e),a.shadeClose&&i("#layui-layer-shade"+t.index).on("click",function(){r.close(t.index)}),n.find(".layui-layer-min").on("click",function(){var e=a.min&&a.min(n);e===!1||r.min(t.index,a)}),n.find(".layui-layer-max").on("click",function(){i(this).hasClass("layui-layer-maxmin")?(r.restore(t.index),a.restore&&a.restore(n)):(r.full(t.index,a),setTimeout(function(){a.full&&a.full(n)},100))}),a.end&&(o.end[t.index]=a.end)},o.reselect=function(){i.each(i("select"),function(e,t){var n=i(this);n.parents("."+l[0])[0]||1==n.attr("layer")&&i("."+l[0]).length<1&&n.removeAttr("layer").show(),n=null})},s.pt.IE6=function(e){i("select").each(function(e,t){var n=i(this);n.parents("."+l[0])[0]||"none"===n.css("display")||n.attr({layer:"1"}).hide(),n=null})},s.pt.openLayer=function(){var e=this;r.zIndex=e.config.zIndex,r.setTop=function(e){var t=function(){r.zIndex++,e.css("z-index",r.zIndex+1)};return r.zIndex=parseInt(e[0].style.zIndex),e.on("mousedown",t),r.zIndex}},o.record=function(e){var t=[e.width(),e.height(),e.position().top,e.position().left+parseFloat(e.css("margin-left"))];e.find(".layui-layer-max").addClass("layui-layer-maxmin"),e.attr({area:t})},o.rescollbar=function(e){l.html.attr("layer-full")==e&&(l.html[0].style.removeProperty?l.html[0].style.removeProperty("overflow"):l.html[0].style.removeAttribute("overflow"),l.html.removeAttr("layer-full"))},e.layer=r,r.getChildFrame=function(e,t){return t=t||i("."+l[4]).attr("times"),i("#"+l[0]+t).find("iframe").contents().find(e)},r.getFrameIndex=function(e){return i("#"+e).parents("."+l[4]).attr("times")},r.iframeAuto=function(e){if(e){var t=r.getChildFrame("html",e).outerHeight(),n=i("#"+l[0]+e),a=n.find(l[1]).outerHeight()||0,o=n.find("."+l[6]).outerHeight()||0;n.css({height:t+a+o}),n.find("iframe").css({height:t})}},r.iframeSrc=function(e,t){i("#"+l[0]+e).find("iframe").attr("src",t)},r.style=function(e,t,n){var a=i("#"+l[0]+e),r=a.find(".layui-layer-content"),s=a.attr("type"),f=a.find(l[1]).outerHeight()||0,c=a.find("."+l[6]).outerHeight()||0;a.attr("minLeft");s!==o.type[3]&&s!==o.type[4]&&(n||(parseFloat(t.width)<=260&&(t.width=260),parseFloat(t.height)-f-c<=64&&(t.height=64+f+c)),a.css(t),c=a.find("."+l[6]).outerHeight(),s===o.type[2]?a.find("iframe").css({height:parseFloat(t.height)-f-c}):r.css({height:parseFloat(t.height)-f-c-parseFloat(r.css("padding-top"))-parseFloat(r.css("padding-bottom"))}))},r.min=function(e,t){var a=i("#"+l[0]+e),s=a.find(l[1]).outerHeight()||0,f=a.attr("minLeft")||181*o.minIndex+"px",c=a.css("position");o.record(a),o.minLeft[0]&&(f=o.minLeft[0],o.minLeft.shift()),a.attr("position",c),r.style(e,{width:180,height:s,left:f,top:n.height()-s,position:"fixed",overflow:"hidden"},!0),a.find(".layui-layer-min").hide(),"page"===a.attr("type")&&a.find(l[4]).hide(),o.rescollbar(e),a.attr("minLeft")||o.minIndex++,a.attr("minLeft",f)},r.restore=function(e){var t=i("#"+l[0]+e),n=t.attr("area").split(",");t.attr("type");r.style(e,{width:parseFloat(n[0]),height:parseFloat(n[1]),top:parseFloat(n[2]),left:parseFloat(n[3]),position:t.attr("position"),overflow:"visible"},!0),t.find(".layui-layer-max").removeClass("layui-layer-maxmin"),t.find(".layui-layer-min").show(),"page"===t.attr("type")&&t.find(l[4]).show(),o.rescollbar(e)},r.full=function(e){var t,a=i("#"+l[0]+e);o.record(a),l.html.attr("layer-full")||l.html.css("overflow","hidden").attr("layer-full",e),clearTimeout(t),t=setTimeout(function(){var t="fixed"===a.css("position");r.style(e,{top:t?0:n.scrollTop(),left:t?0:n.scrollLeft(),width:n.width(),height:n.height()},!0),a.find(".layui-layer-min").hide()},100)},r.title=function(e,t){var n=i("#"+l[0]+(t||r.index)).find(l[1]);n.html(e)},r.close=function(e){var t=i("#"+l[0]+e),n=t.attr("type"),a="layer-anim-close";if(t[0]){var s="layui-layer-wrap",f=function(){if(n===o.type[1]&&"object"===t.attr("conType")){t.children(":not(."+l[5]+")").remove();for(var a=t.find("."+s),r=0;r<2;r++)a.unwrap();a.css("display",a.data("display")).removeClass(s)}else{if(n===o.type[2])try{var f=i("#"+l[4]+e)[0];f.contentWindow.document.write(""),f.contentWindow.close(),t.find("."+l[5])[0].removeChild(f)}catch(c){}t[0].innerHTML="",t.remove()}"function"==typeof o.end[e]&&o.end[e](),delete o.end[e]};t.data("isOutAnim")&&t.addClass("layer-anim "+a),i("#layui-layer-moves, #layui-layer-shade"+e).remove(),6==r.ie&&o.reselect(),o.rescollbar(e),t.attr("minLeft")&&(o.minIndex--,o.minLeft.push(t.attr("minLeft"))),r.ie&&r.ie<10||!t.data("isOutAnim")?f():setTimeout(function(){f()},200)}},r.closeAll=function(e){i.each(i("."+l[0]),function(){var t=i(this),n=e?t.attr("type")===e:1;n&&r.close(t.attr("times")),n=null})};var f=r.cache||{},c=function(e){return f.skin?" "+f.skin+" "+f.skin+"-"+e:""};r.prompt=function(e,t){var a="";if(e=e||{},"function"==typeof e&&(t=e),e.area){var o=e.area;a='style="width: '+o[0]+"; height: "+o[1]+';"',delete e.area}var s,l=2==e.formType?'":function(){return''}(),f=e.success;return delete e.success,r.open(i.extend({type:1,btn:["确定","取消"],content:l,skin:"layui-layer-prompt"+c("prompt"),maxWidth:n.width(),success:function(t){s=t.find(".layui-layer-input"),s.val(e.value||"").focus(),"function"==typeof f&&f(t)},resize:!1,yes:function(i){var n=s.val();""===n?s.focus():n.length>(e.maxlength||500)?r.tips("最多输入"+(e.maxlength||500)+"个字数",s,{tips:1}):t&&t(n,i,s)}},e))},r.tab=function(e){e=e||{};var t=e.tab||{},n="layui-this",a=e.success;return delete e.success,r.open(i.extend({type:1,skin:"layui-layer-tab"+c("tab"),resize:!1,title:function(){var e=t.length,i=1,a="";if(e>0)for(a=''+t[0].title+"";i"+t[i].title+"";return a}(),content:'
                '+function(){var e=t.length,i=1,a="";if(e>0)for(a='
              • '+(t[0].content||"no content")+"
              • ";i'+(t[i].content||"no content")+"";return a}()+"
              ",success:function(t){var o=t.find(".layui-layer-title").children(),r=t.find(".layui-layer-tabmain").children();o.on("mousedown",function(t){t.stopPropagation?t.stopPropagation():t.cancelBubble=!0;var a=i(this),o=a.index();a.addClass(n).siblings().removeClass(n),r.eq(o).show().siblings().hide(),"function"==typeof e.change&&e.change(o)}),"function"==typeof a&&a(t)}},e))},r.photos=function(t,n,a){function o(e,t,i){var n=new Image;return n.src=e,n.complete?t(n):(n.onload=function(){n.onload=null,t(n)},void(n.onerror=function(e){n.onerror=null,i(e)}))}var s={};if(t=t||{},t.photos){var l=t.photos.constructor===Object,f=l?t.photos:{},u=f.data||[],d=f.start||0;s.imgIndex=(0|d)+1,t.img=t.img||"img";var y=t.success;if(delete t.success,l){if(0===u.length)return r.msg("没有图片")}else{var p=i(t.photos),h=function(){u=[],p.find(t.img).each(function(e){var t=i(this);t.attr("layer-index",e),u.push({alt:t.attr("alt"),pid:t.attr("layer-pid"),src:t.attr("layer-src")||t.attr("src"),thumb:t.attr("src")})})};if(h(),0===u.length)return;if(n||p.on("click",t.img,function(){var e=i(this),n=e.attr("layer-index");r.photos(i.extend(t,{photos:{start:n,data:u,tab:t.tab},full:t.full}),!0),h()}),!n)return}s.imgprev=function(e){s.imgIndex--,s.imgIndex<1&&(s.imgIndex=u.length),s.tabimg(e)},s.imgnext=function(e,t){s.imgIndex++,s.imgIndex>u.length&&(s.imgIndex=1,t)||s.tabimg(e)},s.keyup=function(e){if(!s.end){var t=e.keyCode;e.preventDefault(),37===t?s.imgprev(!0):39===t?s.imgnext(!0):27===t&&r.close(s.index)}},s.tabimg=function(e){if(!(u.length<=1))return f.start=s.imgIndex-1,r.close(s.index),r.photos(t,!0,e)},s.event=function(){s.bigimg.hover(function(){s.imgsee.show()},function(){s.imgsee.hide()}),s.bigimg.find(".layui-layer-imgprev").on("click",function(e){e.preventDefault(),s.imgprev()}),s.bigimg.find(".layui-layer-imgnext").on("click",function(e){e.preventDefault(),s.imgnext()}),i(document).on("keyup",s.keyup)},s.loadi=r.load(1,{shade:!("shade"in t)&&.9,scrollbar:!1}),o(u[d].src,function(n){r.close(s.loadi),s.index=r.open(i.extend({type:1,id:"layui-layer-photos",area:function(){var a=[n.width,n.height],o=[i(e).width()-100,i(e).height()-100];if(!t.full&&(a[0]>o[0]||a[1]>o[1])){var r=[a[0]/o[0],a[1]/o[1]];r[0]>r[1]?(a[0]=a[0]/r[0],a[1]=a[1]/r[0]):r[0]'+(u[d].alt||
              '+(u.length>1?'':"")+'
              '+(u[d].alt||"")+""+s.imgIndex+"/"+u.length+"
              ",success:function(e,i){s.bigimg=e.find(".layui-layer-phimg"),s.imgsee=e.find(".layui-layer-imguide,.layui-layer-imgbar"),s.event(e),t.tab&&t.tab(u[d],e),"function"==typeof y&&y(e)},end:function(){s.end=!0,i(document).off("keyup",s.keyup)}},t))},function(){r.close(s.loadi),r.msg("当前图片地址异常
              是否继续查看下一张?",{time:3e4,btn:["下一张","不看了"],yes:function(){u.length>1&&s.imgnext(!0,!0)}})})}},o.run=function(t){i=t,n=i(e),l.html=i("html"),r.open=function(e){var t=new s(e);return t.index}},e.layui&&layui.define?(r.ready(),layui.define("jquery",function(t){r.path=layui.cache.dir,o.run(layui.$),e.layer=r,t("layer",r)})):"function"==typeof define&&define.amd?define(["jquery"],function(){return o.run(e.jQuery),r}):function(){o.run(e.jQuery),r.ready()}()}(window);layui.define("jquery",function(t){"use strict";var a=layui.$,i=(layui.hint(),layui.device()),e="element",l="layui-this",n="layui-show",s=function(){this.config={}};s.prototype.set=function(t){var i=this;return a.extend(!0,i.config,t),i},s.prototype.on=function(t,a){return layui.onevent.call(this,e,t,a)},s.prototype.tabAdd=function(t,i){var e=".layui-tab-title",l=a(".layui-tab[lay-filter="+t+"]"),n=l.children(e),s=n.children(".layui-tab-bar"),o=l.children(".layui-tab-content"),r='
            • "+(i.title||"unnaming")+"
            • ";return s[0]?s.before(r):n.append(r),o.append('
              '+(i.content||"")+"
              "),f.hideTabMore(!0),f.tabAuto(),this},s.prototype.tabDelete=function(t,i){var e=".layui-tab-title",l=a(".layui-tab[lay-filter="+t+"]"),n=l.children(e),s=n.find('>li[lay-id="'+i+'"]');return f.tabDelete(null,s),this},s.prototype.tabChange=function(t,i){var e=".layui-tab-title",l=a(".layui-tab[lay-filter="+t+"]"),n=l.children(e),s=n.find('>li[lay-id="'+i+'"]');return f.tabClick.call(s[0],null,null,s),this},s.prototype.tab=function(t){t=t||{},b.on("click",t.headerElem,function(i){var e=a(this).index();f.tabClick.call(this,i,e,null,t)})},s.prototype.progress=function(t,i){var e="layui-progress",l=a("."+e+"[lay-filter="+t+"]"),n=l.find("."+e+"-bar"),s=n.find("."+e+"-text");return n.css("width",i),s.text(i),this};var o=".layui-nav",r="layui-nav-item",c="layui-nav-bar",u="layui-nav-tree",d="layui-nav-child",y="layui-nav-more",h="layui-anim layui-anim-upbit",f={tabClick:function(t,i,s,o){o=o||{};var r=s||a(this),i=i||r.parent().children("li").index(r),c=o.headerElem?r.parent():r.parents(".layui-tab").eq(0),u=o.bodyElem?a(o.bodyElem):c.children(".layui-tab-content").children(".layui-tab-item"),d=r.find("a"),y=c.attr("lay-filter");"javascript:;"!==d.attr("href")&&"_blank"===d.attr("target")||(r.addClass(l).siblings().removeClass(l),u.eq(i).addClass(n).siblings().removeClass(n)),layui.event.call(this,e,"tab("+y+")",{elem:c,index:i})},tabDelete:function(t,i){var n=i||a(this).parent(),s=n.index(),o=n.parents(".layui-tab").eq(0),r=o.children(".layui-tab-content").children(".layui-tab-item"),c=o.attr("lay-filter");n.hasClass(l)&&(n.next()[0]?f.tabClick.call(n.next()[0],null,s+1):n.prev()[0]&&f.tabClick.call(n.prev()[0],null,s-1)),n.remove(),r.eq(s).remove(),setTimeout(function(){f.tabAuto()},50),layui.event.call(this,e,"tabDelete("+c+")",{elem:o,index:s})},tabAuto:function(){var t="layui-tab-more",e="layui-tab-bar",l="layui-tab-close",n=this;a(".layui-tab").each(function(){var s=a(this),o=s.children(".layui-tab-title"),r=(s.children(".layui-tab-content").children(".layui-tab-item"),'lay-stope="tabmore"'),c=a('');if(n===window&&8!=i.ie&&f.hideTabMore(!0),s.attr("lay-allowClose")&&o.find("li").each(function(){var t=a(this);if(!t.find("."+l)[0]){var i=a('');i.on("click",f.tabDelete),t.append(i)}}),"string"!=typeof s.attr("lay-unauto"))if(o.prop("scrollWidth")>o.outerWidth()+1){if(o.find("."+e)[0])return;o.append(c),s.attr("overflow",""),c.on("click",function(a){o[this.title?"removeClass":"addClass"](t),this.title=this.title?"":"收缩"})}else o.find("."+e).remove(),s.removeAttr("overflow")})},hideTabMore:function(t){var i=a(".layui-tab-title");t!==!0&&"tabmore"===a(t.target).attr("lay-stope")||(i.removeClass("layui-tab-more"),i.find(".layui-tab-bar").attr("title",""))},clickThis:function(){var t=a(this),i=t.parents(o),n=i.attr("lay-filter"),s=t.parent(),c=t.siblings("."+d),y="string"==typeof s.attr("lay-unselect");"javascript:;"!==t.attr("href")&&"_blank"===t.attr("target")||y||c[0]||(i.find("."+l).removeClass(l),s.addClass(l)),i.hasClass(u)&&(c.removeClass(h),c[0]&&(s["none"===c.css("display")?"addClass":"removeClass"](r+"ed"),"all"===i.attr("lay-shrink")&&s.siblings().removeClass(r+"ed"))),layui.event.call(this,e,"nav("+n+")",t)},collapse:function(){var t=a(this),i=t.find(".layui-colla-icon"),l=t.siblings(".layui-colla-content"),s=t.parents(".layui-collapse").eq(0),o=s.attr("lay-filter"),r="none"===l.css("display");if("string"==typeof s.attr("lay-accordion")){var c=s.children(".layui-colla-item").children("."+n);c.siblings(".layui-colla-title").children(".layui-colla-icon").html(""),c.removeClass(n)}l[r?"addClass":"removeClass"](n),i.html(r?"":""),layui.event.call(this,e,"collapse("+o+")",{title:t,content:l,show:r})}};s.prototype.init=function(t,e){var l=function(){return e?'[lay-filter="'+e+'"]':""}(),s={tab:function(){f.tabAuto.call({})},nav:function(){var t=200,e={},s={},p={},b=function(l,o,r){var c=a(this),f=c.find("."+d);o.hasClass(u)?l.css({top:c.position().top,height:c.children("a").outerHeight(),opacity:1}):(f.addClass(h),l.css({left:c.position().left+parseFloat(c.css("marginLeft")),top:c.position().top+c.height()-l.height()}),e[r]=setTimeout(function(){l.css({width:c.width(),opacity:1})},i.ie&&i.ie<10?0:t),clearTimeout(p[r]),"block"===f.css("display")&&clearTimeout(s[r]),s[r]=setTimeout(function(){f.addClass(n),c.find("."+y).addClass(y+"d")},300))};a(o+l).each(function(i){var l=a(this),o=a(''),h=l.find("."+r);l.find("."+c)[0]||(l.append(o),h.on("mouseenter",function(){b.call(this,o,l,i)}).on("mouseleave",function(){l.hasClass(u)||(clearTimeout(s[i]),s[i]=setTimeout(function(){l.find("."+d).removeClass(n),l.find("."+y).removeClass(y+"d")},300))}),l.on("mouseleave",function(){clearTimeout(e[i]),p[i]=setTimeout(function(){l.hasClass(u)?o.css({height:0,top:o.position().top+o.height()/2,opacity:0}):o.css({width:0,left:o.position().left+o.width()/2,opacity:0})},t)})),h.find("a").each(function(){var t=a(this),i=(t.parent(),t.siblings("."+d));i[0]&&!t.children("."+y)[0]&&t.append(''),t.off("click",f.clickThis).on("click",f.clickThis)})})},breadcrumb:function(){var t=".layui-breadcrumb";a(t+l).each(function(){var t=a(this),i="lay-separator",e=t.attr(i)||"/",l=t.find("a");l.next("span["+i+"]")[0]||(l.each(function(t){t!==l.length-1&&a(this).after(""+e+"")}),t.css("visibility","visible"))})},progress:function(){var t="layui-progress";a("."+t+l).each(function(){var i=a(this),e=i.find(".layui-progress-bar"),l=e.attr("lay-percent");e.css("width",function(){return/^.+\/.+$/.test(l)?100*new Function("return "+l)()+"%":l}()),i.attr("lay-showPercent")&&setTimeout(function(){e.html(''+l+"")},350)})},collapse:function(){var t="layui-collapse";a("."+t+l).each(function(){var t=a(this).find(".layui-colla-item");t.each(function(){var t=a(this),i=t.find(".layui-colla-title"),e=t.find(".layui-colla-content"),l="none"===e.css("display");i.find(".layui-colla-icon").remove(),i.append(''+(l?"":"")+""),i.off("click",f.collapse).on("click",f.collapse)})})}};return s[t]?s[t]():layui.each(s,function(t,a){a()})},s.prototype.render=s.prototype.init;var p=new s,b=a(document);p.render();var v=".layui-tab-title li";b.on("click",v,f.tabClick),b.on("click",f.hideTabMore),a(window).on("resize",f.tabAuto),t(e,p)});layui.define("layer",function(e){"use strict";var t=layui.$,i=layui.layer,n=layui.hint(),o=layui.device(),a={config:{},set:function(e){var i=this;return i.config=t.extend({},i.config,e),i},on:function(e,t){return layui.onevent.call(this,r,e,t)}},l=function(){var e=this;return{upload:function(t){e.upload.call(e,t)},reload:function(t){e.reload.call(e,t)},config:e.config}},r="upload",u="layui-upload-file",c="layui-upload-form",f="layui-upload-iframe",s="layui-upload-choose",p=function(e){var i=this;i.config=t.extend({},i.config,a.config,e),i.render()};p.prototype.config={accept:"images",exts:"",auto:!0,bindAction:"",url:"",field:"file",acceptMime:"",method:"post",data:{},drag:!0,size:0,number:0,multiple:!1},p.prototype.render=function(e){var i=this,e=i.config;e.elem=t(e.elem),e.bindAction=t(e.bindAction),i.file(),i.events()},p.prototype.file=function(){var e=this,i=e.config,n=e.elemFile=t(['"].join("")),a=i.elem.next();(a.hasClass(u)||a.hasClass(c))&&a.remove(),o.ie&&o.ie<10&&i.elem.wrap('
              '),e.isFile()?(e.elemFile=i.elem,i.field=i.elem[0].name):i.elem.after(n),o.ie&&o.ie<10&&e.initIE()},p.prototype.initIE=function(){var e=this,i=e.config,n=t(''),o=t(['
              ',"
              "].join(""));t("#"+f)[0]||t("body").append(n),i.elem.next().hasClass(c)||(e.elemFile.wrap(o),i.elem.next("."+c).append(function(){var e=[];return layui.each(i.data,function(t,i){i="function"==typeof i?i():i,e.push('')}),e.join("")}()))},p.prototype.msg=function(e){return i.msg(e,{icon:2,shift:6})},p.prototype.isFile=function(){var e=this.config.elem[0];if(e)return"input"===e.tagName.toLocaleLowerCase()&&"file"===e.type},p.prototype.preview=function(e){var t=this;window.FileReader&&layui.each(t.chooseFiles,function(t,i){var n=new FileReader;n.readAsDataURL(i),n.onload=function(){e&&e(t,i,this.result)}})},p.prototype.upload=function(e,i){var n,a=this,l=a.config,r=a.elemFile[0],u=function(){var i=0,n=0,o=e||a.files||a.chooseFiles||r.files,u=function(){l.multiple&&i+n===a.fileLength&&"function"==typeof l.allDone&&l.allDone({total:a.fileLength,successful:i,aborted:n})};layui.each(o,function(e,o){var r=new FormData;r.append(l.field,o),layui.each(l.data,function(e,t){t="function"==typeof t?t():t,r.append(e,t)}),t.ajax({url:l.url,type:"post",data:r,contentType:!1,processData:!1,dataType:"json",headers:l.headers||{},success:function(t){i++,d(e,t),u()},error:function(){n++,a.msg("请求上传接口出现异常"),m(e),u()},xhr:function(){var e=new XMLHttpRequest;return e.upload.addEventListener("progress",function(e){if(e.lengthComputable){var t=Math.floor(e.loaded/e.total*100);"function"==typeof l.progress&&l.progress(t,e)}}),e}})})},c=function(){var e=t("#"+f);a.elemFile.parent().submit(),clearInterval(p.timer),p.timer=setInterval(function(){var t,i=e.contents().find("body");try{t=i.text()}catch(n){a.msg("获取上传后的响应信息出现异常"),clearInterval(p.timer),m()}t&&(clearInterval(p.timer),i.html(""),d(0,t))},30)},d=function(e,t){if(a.elemFile.next("."+s).remove(),r.value="","object"!=typeof t)try{t=JSON.parse(t)}catch(i){return t={},a.msg("请对上传接口返回有效JSON")}"function"==typeof l.done&&l.done(t,e||0,function(e){a.upload(e)})},m=function(e){l.auto&&(r.value=""),"function"==typeof l.error&&l.error(e||0,function(e){a.upload(e)})},h=l.exts,v=function(){var t=[];return layui.each(e||a.chooseFiles,function(e,i){t.push(i.name)}),t}(),g={preview:function(e){a.preview(e)},upload:function(e,t){var i={};i[e]=t,a.upload(i)},pushFile:function(){return a.files=a.files||{},layui.each(a.chooseFiles,function(e,t){a.files[e]=t}),a.files},resetFile:function(e,t,i){var n=new File([t],i);a.files=a.files||{},a.files[e]=n}},y=function(){if("choose"!==i&&!l.auto||(l.choose&&l.choose(g),"choose"!==i))return l.before&&l.before(g),o.ie?o.ie>9?u():c():void u()};if(v=0===v.length?r.value.match(/[^\/\\]+\..+/g)||[]||"":v,0!==v.length){switch(l.accept){case"file":if(h&&!RegExp("\\w\\.("+h+")$","i").test(escape(v)))return a.msg("选择的文件中包含不支持的格式"),r.value="";break;case"video":if(!RegExp("\\w\\.("+(h||"avi|mp4|wma|rmvb|rm|flash|3gp|flv")+")$","i").test(escape(v)))return a.msg("选择的视频中包含不支持的格式"),r.value="";break;case"audio":if(!RegExp("\\w\\.("+(h||"mp3|wav|mid")+")$","i").test(escape(v)))return a.msg("选择的音频中包含不支持的格式"),r.value="";break;default:if(layui.each(v,function(e,t){RegExp("\\w\\.("+(h||"jpg|png|gif|bmp|jpeg$")+")","i").test(escape(t))||(n=!0)}),n)return a.msg("选择的图片中包含不支持的格式"),r.value=""}if(a.fileLength=function(){var t=0,i=e||a.files||a.chooseFiles||r.files;return layui.each(i,function(){t++}),t}(),l.number&&a.fileLength>l.number)return a.msg("同时最多只能上传的数量为:"+l.number);if(l.size>0&&!(o.ie&&o.ie<10)){var F;if(layui.each(a.chooseFiles,function(e,t){if(t.size>1024*l.size){var i=l.size/1024;i=i>=1?i.toFixed(2)+"MB":l.size+"KB",r.value="",F=i}}),F)return a.msg("文件不能超过"+F)}y()}},p.prototype.reload=function(e){e=e||{},delete e.elem,delete e.bindAction;var i=this,e=i.config=t.extend({},i.config,a.config,e),n=e.elem.next();n.attr({name:e.name,accept:e.acceptMime,multiple:e.multiple})},p.prototype.events=function(){var e=this,i=e.config,a=function(t){e.chooseFiles={},layui.each(t,function(t,i){var n=(new Date).getTime();e.chooseFiles[n+"-"+t]=i})},l=function(t,n){var o=e.elemFile,a=t.length>1?t.length+"个文件":(t[0]||{}).name||o[0].value.match(/[^\/\\]+\..+/g)||[]||"";o.next().hasClass(s)&&o.next().remove(),e.upload(null,"choose"),e.isFile()||i.choose||o.after(''+a+"")};i.elem.off("upload.start").on("upload.start",function(){var o=t(this),a=o.attr("lay-data");if(a)try{a=new Function("return "+a)(),e.config=t.extend({},i,a)}catch(l){n.error("Upload element property lay-data configuration item has a syntax error: "+a)}e.config.item=o,e.elemFile[0].click()}),o.ie&&o.ie<10||i.elem.off("upload.over").on("upload.over",function(){var e=t(this);e.attr("lay-over","")}).off("upload.leave").on("upload.leave",function(){var e=t(this);e.removeAttr("lay-over")}).off("upload.drop").on("upload.drop",function(n,o){var r=t(this),u=o.originalEvent.dataTransfer.files||[];r.removeAttr("lay-over"),a(u),i.auto?e.upload(u):l(u)}),e.elemFile.off("upload.change").on("upload.change",function(){var t=this.files||[];a(t),i.auto?e.upload():l(t)}),i.bindAction.off("upload.action").on("upload.action",function(){e.upload()}),i.elem.data("haveEvents")||(e.elemFile.on("change",function(){t(this).trigger("upload.change")}),i.elem.on("click",function(){e.isFile()||t(this).trigger("upload.start")}),i.drag&&i.elem.on("dragover",function(e){e.preventDefault(),t(this).trigger("upload.over")}).on("dragleave",function(e){t(this).trigger("upload.leave")}).on("drop",function(e){e.preventDefault(),t(this).trigger("upload.drop",e)}),i.bindAction.on("click",function(){t(this).trigger("upload.action")}),i.elem.data("haveEvents",!0))},a.render=function(e){var t=new p(e);return l.call(t)},e(r,a)});layui.define("jquery",function(e){"use strict";var i=layui.jquery,t={config:{},index:layui.slider?layui.slider.index+1e4:0,set:function(e){var t=this;return t.config=i.extend({},t.config,e),t},on:function(e,i){return layui.onevent.call(this,n,e,i)}},a=function(){var e=this,i=e.config;return{setValue:function(i,t){return e.slide("set",i,t||0)},config:i}},n="slider",l="layui-disabled",s="layui-slider",r="layui-slider-bar",o="layui-slider-wrap",u="layui-slider-wrap-btn",d="layui-slider-tips",v="layui-slider-input",c="layui-slider-input-txt",m="layui-slider-input-btn",p="layui-slider-hover",f=function(e){var a=this;a.index=++t.index,a.config=i.extend({},a.config,t.config,e),a.render()};f.prototype.config={type:"default",min:0,max:100,value:0,step:1,showstep:!1,tips:!0,input:!1,range:!1,height:200,disabled:!1,theme:"#009688"},f.prototype.render=function(){var e=this,t=e.config;if(t.step<1&&(t.step=1),t.maxt.min?a:t.min,t.value[1]=n>t.min?n:t.min,t.value[0]=t.value[0]>t.max?t.max:t.value[0],t.value[1]=t.value[1]>t.max?t.max:t.value[1];var r=Math.floor((t.value[0]-t.min)/(t.max-t.min)*100),v=Math.floor((t.value[1]-t.min)/(t.max-t.min)*100),m=v-r+"%";r+="%",v+="%"}else{"object"==typeof t.value&&(t.value=Math.min.apply(null,t.value)),t.valuet.max&&(t.value=t.max);var m=Math.floor((t.value-t.min)/(t.max-t.min)*100)+"%"}var p=t.disabled?"#c2c2c2":t.theme,f='
              '+(t.tips?'
              ':"")+'
              '+(t.range?'
              ':"")+"
              ",h=i(t.elem),y=h.next("."+s);if(y[0]&&y.remove(),e.elemTemp=i(f),t.range?(e.elemTemp.find("."+o).eq(0).data("value",t.value[0]),e.elemTemp.find("."+o).eq(1).data("value",t.value[1])):e.elemTemp.find("."+o).data("value",t.value),h.html(e.elemTemp),"vertical"===t.type&&e.elemTemp.height(t.height+"px"),t.showstep){for(var g=(t.max-t.min)/t.step,b="",x=1;x
              ')}e.elemTemp.append(b)}if(t.input&&!t.range){var w=i('
              ');h.css("position","relative"),h.append(w),h.find("."+c).children("input").val(t.value),"vertical"===t.type?w.css({left:0,top:-48}):e.elemTemp.css("margin-right",w.outerWidth()+15)}t.disabled?(e.elemTemp.addClass(l),e.elemTemp.find("."+u).addClass(l)):e.slide(),e.elemTemp.find("."+u).on("mouseover",function(){var a="vertical"===t.type?t.height:e.elemTemp[0].offsetWidth,n=e.elemTemp.find("."+o),l="vertical"===t.type?a-i(this).parent()[0].offsetTop-n.height():i(this).parent()[0].offsetLeft,s=l/a*100,r=i(this).parent().data("value"),u=t.setTips?t.setTips(r):r;e.elemTemp.find("."+d).html(u),"vertical"===t.type?e.elemTemp.find("."+d).css({bottom:s+"%","margin-bottom":"20px",display:"inline-block"}):e.elemTemp.find("."+d).css({left:s+"%",display:"inline-block"})}).on("mouseout",function(){e.elemTemp.find("."+d).css("display","none")})},f.prototype.slide=function(e,t,a){var n=this,l=n.config,s=n.elemTemp,f=function(){return"vertical"===l.type?l.height:s[0].offsetWidth},h=s.find("."+o),y=s.next("."+v),g=y.children("."+c).children("input").val(),b=100/((l.max-l.min)/Math.ceil(l.step)),x=function(e,i){e=Math.ceil(e)*b>100?Math.ceil(e)*b:Math.round(e)*b,e=e>100?100:e,h.eq(i).css("vertical"===l.type?"bottom":"left",e+"%");var t=T(h[0].offsetLeft),a=l.range?T(h[1].offsetLeft):0;"vertical"===l.type?(s.find("."+d).css({bottom:e+"%","margin-bottom":"20px"}),t=T(f()-h[0].offsetTop-h.height()),a=l.range?T(f()-h[1].offsetTop-h.height()):0):s.find("."+d).css("left",e+"%"),t=t>100?100:t,a=a>100?100:a;var n=Math.min(t,a),o=Math.abs(t-a);"vertical"===l.type?s.find("."+r).css({height:o+"%",bottom:n+"%"}):s.find("."+r).css({width:o+"%",left:n+"%"});var u=l.min+Math.round((l.max-l.min)*e/100);if(g=u,y.children("."+c).children("input").val(g),h.eq(i).data("value",u),u=l.setTips?l.setTips(u):u,s.find("."+d).html(u),l.range){var v=[h.eq(0).data("value"),h.eq(1).data("value")];v[0]>v[1]&&v.reverse()}l.change&&l.change(l.range?v:u)},T=function(e){var i=e/f()*100/b,t=Math.round(i)*b;return e==f()&&(t=Math.ceil(i)*b),t},w=i(['
              f()&&(r=f());var o=r/f()*100/b;x(o,e),t.addClass(p),s.find("."+d).show(),i.preventDefault()},o=function(){t.removeClass(p),s.find("."+d).hide()};M(r,o)})}),s.on("click",function(e){var t=i("."+u);if(!t.is(event.target)&&0===t.has(event.target).length&&t.length){var a,n="vertical"===l.type?f()-e.clientY+i(this).offset().top:e.clientX-i(this).offset().left;n<0&&(n=0),n>f()&&(n=f());var s=n/f()*100/b;a=l.range?"vertical"===l.type?Math.abs(n-parseInt(i(h[0]).css("bottom")))>Math.abs(n-parseInt(i(h[1]).css("bottom")))?1:0:Math.abs(n-h[0].offsetLeft)>Math.abs(n-h[1].offsetLeft)?1:0:0,x(s,a),e.preventDefault()}}),y.hover(function(){var e=i(this);e.children("."+m).fadeIn("fast")},function(){var e=i(this);e.children("."+m).fadeOut("fast")}),y.children("."+m).children("i").each(function(e){i(this).on("click",function(){g=1==e?g-l.stepl.max?l.max:Number(g)+l.step;var i=(g-l.min)/(l.max-l.min)*100/b;x(i,0)})});var q=function(){var e=this.value;e=isNaN(e)?0:e,e=el.max?l.max:e,this.value=e;var i=(e-l.min)/(l.max-l.min)*100/b;x(i,0)};y.children("."+c).children("input").on("keydown",function(e){13===e.keyCode&&(e.preventDefault(),q.call(this))}).on("change",q)},f.prototype.events=function(){var e=this;e.config},t.render=function(e){var i=new f(e);return a.call(i)},e(n,t)});layui.define("jquery",function(e){"use strict";var i=layui.jquery,o={config:{},index:layui.colorpicker?layui.colorpicker.index+1e4:0,set:function(e){var o=this;return o.config=i.extend({},o.config,e),o},on:function(e,i){return layui.onevent.call(this,"colorpicker",e,i)}},r=function(){var e=this,i=e.config;return{config:i}},t="colorpicker",n="layui-show",l="layui-colorpicker",c=".layui-colorpicker-main",a="layui-icon-down",s="layui-icon-close",f="layui-colorpicker-trigger-span",d="layui-colorpicker-trigger-i",u="layui-colorpicker-side",p="layui-colorpicker-side-slider",g="layui-colorpicker-basis",v="layui-colorpicker-alpha-bgcolor",h="layui-colorpicker-alpha-slider",m="layui-colorpicker-basis-cursor",b="layui-colorpicker-main-input",k=function(e){var i={h:0,s:0,b:0},o=Math.min(e.r,e.g,e.b),r=Math.max(e.r,e.g,e.b),t=r-o;return i.b=r,i.s=0!=r?255*t/r:0,0!=i.s?e.r==r?i.h=(e.g-e.b)/t:e.g==r?i.h=2+(e.b-e.r)/t:i.h=4+(e.r-e.g)/t:i.h=-1,r==o&&(i.h=0),i.h*=60,i.h<0&&(i.h+=360),i.s*=100/255,i.b*=100/255,i},y=function(e){var e=e.indexOf("#")>-1?e.substring(1):e;if(3==e.length){var i=e.split("");e=i[0]+i[0]+i[1]+i[1]+i[2]+i[2]}e=parseInt(e,16);var o={r:e>>16,g:(65280&e)>>8,b:255&e};return k(o)},x=function(e){var i={},o=e.h,r=255*e.s/100,t=255*e.b/100;if(0==r)i.r=i.g=i.b=t;else{var n=t,l=(255-r)*t/255,c=(n-l)*(o%60)/60;360==o&&(o=0),o<60?(i.r=n,i.b=l,i.g=l+c):o<120?(i.g=n,i.b=l,i.r=n-c):o<180?(i.g=n,i.r=l,i.b=l+c):o<240?(i.b=n,i.r=l,i.g=n-c):o<300?(i.b=n,i.g=l,i.r=l+c):o<360?(i.r=n,i.g=l,i.b=n-c):(i.r=0,i.g=0,i.b=0)}return{r:Math.round(i.r),g:Math.round(i.g),b:Math.round(i.b)}},C=function(e){var o=x(e),r=[o.r.toString(16),o.g.toString(16),o.b.toString(16)];return i.each(r,function(e,i){1==i.length&&(r[e]="0"+i)}),r.join("")},P=function(e){var i=/[0-9]{1,3}/g,o=e.match(i)||[];return{r:o[0],g:o[1],b:o[2]}},B=i(window),w=i(document),D=function(e){var r=this;r.index=++o.index,r.config=i.extend({},r.config,o.config,e),r.render()};D.prototype.config={color:"",size:null,alpha:!1,format:"hex",predefine:!1,colors:["#009688","#5FB878","#1E9FFF","#FF5722","#FFB800","#01AAED","#999","#c00","#ff8c00","#ffd700","#90ee90","#00ced1","#1e90ff","#c71585","rgb(0, 186, 189)","rgb(255, 120, 0)","rgb(250, 212, 0)","#393D49","rgba(0,0,0,.5)","rgba(255, 69, 0, 0.68)","rgba(144, 240, 144, 0.5)","rgba(31, 147, 255, 0.73)"]},D.prototype.render=function(){var e=this,o=e.config,r=i(['
              ',"",'3&&(o.alpha&&"rgb"==o.format||(e="#"+C(k(P(o.color))))),"background: "+e):e}()+'">','',"","","
              "].join("")),t=i(o.elem);o.size&&r.addClass("layui-colorpicker-"+o.size),t.addClass("layui-inline").html(e.elemColorBox=r),e.color=e.elemColorBox.find("."+f)[0].style.background,e.events()},D.prototype.renderPicker=function(){var e=this,o=e.config,r=e.elemColorBox[0],t=e.elemPicker=i(['
              ','
              ','
              ','
              ','
              ','
              ',"
              ",'
              ','
              ',"
              ","
              ",'
              ','
              ','
              ',"
              ","
              ",function(){if(o.predefine){var e=['
              '];return layui.each(o.colors,function(i,o){e.push(['
              ','
              ',"
              "].join(""))}),e.push("
              "),e.join("")}return""}(),'
              ','
              ','',"
              ",'
              ','','',"","
              "].join(""));e.elemColorBox.find("."+f)[0];i(c)[0]&&i(c).data("index")==e.index?e.removePicker(D.thisElemInd):(e.removePicker(D.thisElemInd),i("body").append(t)),D.thisElemInd=e.index,D.thisColor=r.style.background,e.position(),e.pickerEvents()},D.prototype.removePicker=function(e){var o=this;o.config;return i("#layui-colorpicker"+(e||o.index)).remove(),o},D.prototype.position=function(){var e=this,i=e.config,o=e.bindElem||e.elemColorBox[0],r=e.elemPicker[0],t=o.getBoundingClientRect(),n=r.offsetWidth,l=r.offsetHeight,c=function(e){return e=e?"scrollLeft":"scrollTop",document.body[e]|document.documentElement[e]},a=function(e){return document.documentElement[e?"clientWidth":"clientHeight"]},s=5,f=t.left,d=t.bottom;f-=(n-o.offsetWidth)/2,d+=s,f+n+s>a("width")?f=a("width")-n-s:fa()&&(d=t.top>l?t.top-l:a()-l,d-=2*s),i.position&&(r.style.position=i.position),r.style.left=f+("fixed"===i.position?0:c(1))+"px",r.style.top=d+("fixed"===i.position?0:c())+"px"},D.prototype.val=function(){var e=this,i=(e.config,e.elemColorBox.find("."+f)),o=e.elemPicker.find("."+b),r=i[0],t=r.style.backgroundColor;if(t){var n=k(P(t)),l=i.attr("lay-type");if(e.select(n.h,n.s,n.b),"torgb"===l&&o.find("input").val(t),"rgba"===l){var c=P(t);if(3==(t.match(/[0-9]{1,3}/g)||[]).length)o.find("input").val("rgba("+c.r+", "+c.g+", "+c.b+", 1)"),e.elemPicker.find("."+h).css("left",280);else{o.find("input").val(t);var a=280*t.slice(t.lastIndexOf(",")+1,t.length-1);e.elemPicker.find("."+h).css("left",a)}e.elemPicker.find("."+v)[0].style.background="linear-gradient(to right, rgba("+c.r+", "+c.g+", "+c.b+", 0), rgb("+c.r+", "+c.g+", "+c.b+"))"}}else e.select(0,100,100),o.find("input").val(""),e.elemPicker.find("."+v)[0].style.background="",e.elemPicker.find("."+h).css("left",280)},D.prototype.side=function(){var e=this,o=e.config,r=e.elemColorBox.find("."+f),t=r.attr("lay-type"),n=e.elemPicker.find("."+u),l=e.elemPicker.find("."+p),c=e.elemPicker.find("."+g),y=e.elemPicker.find("."+m),C=e.elemPicker.find("."+v),w=e.elemPicker.find("."+h),D=l[0].offsetTop/180*360,E=100-(y[0].offsetTop+3)/180*100,H=(y[0].offsetLeft+3)/260*100,W=Math.round(w[0].offsetLeft/280*100)/100,j=e.elemColorBox.find("."+d),F=e.elemPicker.find(".layui-colorpicker-pre").children("div"),L=function(i,n,l,c){e.select(i,n,l);var f=x({h:i,s:n,b:l});if(j.addClass(a).removeClass(s),r[0].style.background="rgb("+f.r+", "+f.g+", "+f.b+")","torgb"===t&&e.elemPicker.find("."+b).find("input").val("rgb("+f.r+", "+f.g+", "+f.b+")"),"rgba"===t){var d=0;d=280*c,w.css("left",d),e.elemPicker.find("."+b).find("input").val("rgba("+f.r+", "+f.g+", "+f.b+", "+c+")"),r[0].style.background="rgba("+f.r+", "+f.g+", "+f.b+", "+c+")",C[0].style.background="linear-gradient(to right, rgba("+f.r+", "+f.g+", "+f.b+", 0), rgb("+f.r+", "+f.g+", "+f.b+"))"}o.change&&o.change(e.elemPicker.find("."+b).find("input").val())},M=i(['
              t&&(r=t);var l=r/180*360;D=l,L(l,H,E,W),e.preventDefault()};Y(r),e.preventDefault()}),n.on("click",function(e){var o=e.clientY-i(this).offset().top;o<0&&(o=0),o>this.offsetHeight&&(o=this.offsetHeight);var r=o/180*360;D=r,L(r,H,E,W),e.preventDefault()}),y.on("mousedown",function(e){var i=this.offsetTop,o=this.offsetLeft,r=e.clientY,t=e.clientX,n=function(e){var n=i+(e.clientY-r),l=o+(e.clientX-t),a=c[0].offsetHeight-3,s=c[0].offsetWidth-3;n<-3&&(n=-3),n>a&&(n=a),l<-3&&(l=-3),l>s&&(l=s);var f=(l+3)/260*100,d=100-(n+3)/180*100;E=d,H=f,L(D,f,d,W),e.preventDefault()};layui.stope(e),Y(n),e.preventDefault()}),c.on("mousedown",function(e){var o=e.clientY-i(this).offset().top-3+B.scrollTop(),r=e.clientX-i(this).offset().left-3+B.scrollLeft();o<-3&&(o=-3),o>this.offsetHeight-3&&(o=this.offsetHeight-3),r<-3&&(r=-3),r>this.offsetWidth-3&&(r=this.offsetWidth-3);var t=(r+3)/260*100,n=100-(o+3)/180*100;E=n,H=t,L(D,t,n,W),e.preventDefault(),y.trigger(e,"mousedown")}),w.on("mousedown",function(e){var i=this.offsetLeft,o=e.clientX,r=function(e){var r=i+(e.clientX-o),t=C[0].offsetWidth;r<0&&(r=0),r>t&&(r=t);var n=Math.round(r/280*100)/100;W=n,L(D,H,E,n),e.preventDefault()};Y(r),e.preventDefault()}),C.on("click",function(e){var o=e.clientX-i(this).offset().left;o<0&&(o=0),o>this.offsetWidth&&(o=this.offsetWidth);var r=Math.round(o/280*100)/100;W=r,L(D,H,E,r),e.preventDefault()}),F.each(function(){i(this).on("click",function(){i(this).parent(".layui-colorpicker-pre").addClass("selected").siblings().removeClass("selected");var e,o=this.style.backgroundColor,r=k(P(o)),t=o.slice(o.lastIndexOf(",")+1,o.length-1);D=r.h,H=r.s,E=r.b,3==(o.match(/[0-9]{1,3}/g)||[]).length&&(t=1),W=t,e=280*t,L(r.h,r.s,r.b,t)})})},D.prototype.select=function(e,i,o,r){var t=this,n=(t.config,C({h:e,s:100,b:100})),l=C({h:e,s:i,b:o}),c=e/360*180,a=180-o/100*180-3,s=i/100*260-3;t.elemPicker.find("."+p).css("top",c),t.elemPicker.find("."+g)[0].style.background="#"+n,t.elemPicker.find("."+m).css({top:a,left:s}),"change"!==r&&t.elemPicker.find("."+b).find("input").val("#"+l)},D.prototype.pickerEvents=function(){var e=this,o=e.config,r=e.elemColorBox.find("."+f),t=e.elemPicker.find("."+b+" input"),n={clear:function(i){r[0].style.background="",e.elemColorBox.find("."+d).removeClass(a).addClass(s),e.color="",o.done&&o.done(""),e.removePicker()},confirm:function(i,n){var l=t.val(),c=l,f={};if(l.indexOf(",")>-1){if(f=k(P(l)),e.select(f.h,f.s,f.b),r[0].style.background=c="#"+C(f),(l.match(/[0-9]{1,3}/g)||[]).length>3&&"rgba"===r.attr("lay-type")){var u=280*l.slice(l.lastIndexOf(",")+1,l.length-1);e.elemPicker.find("."+h).css("left",u),r[0].style.background=l,c=l}}else f=y(l),r[0].style.background=c="#"+C(f),e.elemColorBox.find("."+d).removeClass(s).addClass(a);return"change"===n?(e.select(f.h,f.s,f.b,n),void(o.change&&o.change(c))):(e.color=l,o.done&&o.done(l),void e.removePicker())}};e.elemPicker.on("click","*[colorpicker-events]",function(){var e=i(this),o=e.attr("colorpicker-events");n[o]&&n[o].call(this,e)}),t.on("keyup",function(e){var o=i(this);n.confirm.call(this,o,13===e.keyCode?null:"change")})},D.prototype.events=function(){var e=this,o=e.config,r=e.elemColorBox.find("."+f);e.elemColorBox.on("click",function(){e.renderPicker(),i(c)[0]&&(e.val(),e.side())}),o.elem[0]&&!e.elemColorBox[0].eventHandler&&(w.on("click",function(o){if(!i(o.target).hasClass(l)&&!i(o.target).parents("."+l)[0]&&!i(o.target).hasClass(c.replace(/\./g,""))&&!i(o.target).parents(c)[0]&&e.elemPicker){if(e.color){var t=k(P(e.color));e.select(t.h,t.s,t.b)}else e.elemColorBox.find("."+d).removeClass(a).addClass(s);r[0].style.background=e.color||"",e.removePicker()}}),B.on("resize",function(){return!(!e.elemPicker||!i(c)[0])&&void e.position()}),e.elemColorBox[0].eventHandler=!0)},o.render=function(e){var i=new D(e);return r.call(i)},e(t,o)});layui.define("layer",function(e){"use strict";var t=layui.$,i=layui.layer,a=layui.hint(),n=layui.device(),l="form",r=".layui-form",s="layui-this",o="layui-hide",c="layui-disabled",u=function(){this.config={verify:{required:[/[\S]+/,"必填项不能为空"],phone:[/^1\d{10}$/,"请输入正确的手机号"],email:[/^([a-zA-Z0-9_\.\-])+\@(([a-zA-Z0-9\-])+\.)+([a-zA-Z0-9]{2,4})+$/,"邮箱格式不正确"],url:[/(^#)|(^http(s*):\/\/[^\s]+\.[^\s]+)/,"链接格式不正确"],number:function(e){if(!e||isNaN(e))return"只能填写数字"},date:[/^(\d{4})[-\/](\d{1}|0\d{1}|1[0-2])([-\/](\d{1}|0\d{1}|[1-2][0-9]|3[0-1]))*$/,"日期格式不正确"],identity:[/(^\d{15}$)|(^\d{17}(x|X|\d)$)/,"请输入正确的身份证号"]}}};u.prototype.set=function(e){var i=this;return t.extend(!0,i.config,e),i},u.prototype.verify=function(e){var i=this;return t.extend(!0,i.config.verify,e),i},u.prototype.on=function(e,t){return layui.onevent.call(this,l,e,t)},u.prototype.val=function(e,i){var a=this,n=t(r+'[lay-filter="'+e+'"]');return n.each(function(e,a){var n=t(this);layui.each(i,function(e,t){var i,a=n.find('[name="'+e+'"]');a[0]&&(i=a[0].type,"checkbox"===i?a[0].checked=t:"radio"===i?a.each(function(){this.value==t&&(this.checked=!0)}):a.val(t))})}),f.render(null,e),a.getValue(e)},u.prototype.getValue=function(e,i){i=i||t(r+'[lay-filter="'+e+'"]').eq(0);var a={},n={},l=i.find("input,select,textarea");return layui.each(l,function(e,t){if(t.name=(t.name||"").replace(/^\s*|\s*&/,""),t.name){if(/^.*\[\]$/.test(t.name)){var i=t.name.match(/^(.*)\[\]$/g)[0];a[i]=0|a[i],t.name=t.name.replace(/^(.*)\[\]$/,"$1["+a[i]++ +"]")}/^checkbox|radio$/.test(t.type)&&!t.checked||(n[t.name]=t.value)}}),n},u.prototype.render=function(e,i){var n=this,u=t(r+function(){return i?'[lay-filter="'+i+'"]':""}()),d={select:function(){var e,i="请选择",a="layui-form-select",n="layui-select-title",r="layui-select-none",d="",f=u.find("select"),v=function(i,l){t(i.target).parent().hasClass(n)&&!l||(t("."+a).removeClass(a+"ed "+a+"up"),e&&d&&e.val(d)),e=null},y=function(i,u,f){var y,p=t(this),m=i.find("."+n),k=m.find("input"),g=i.find("dl"),x=g.children("dd"),b=this.selectedIndex;if(!u){var C=function(){var e=i.offset().top+i.outerHeight()+5-h.scrollTop(),t=g.outerHeight();b=p[0].selectedIndex,i.addClass(a+"ed"),x.removeClass(o),y=null,x.eq(b).addClass(s).siblings().removeClass(s),e+t>h.height()&&e>=t&&i.addClass(a+"up"),T()},w=function(e){i.removeClass(a+"ed "+a+"up"),k.blur(),y=null,e||$(k.val(),function(e){var i=p[0].selectedIndex;e&&(d=t(p[0].options[i]).html(),0===i&&d===k.attr("placeholder")&&(d=""),k.val(d||""))})},T=function(){var e=g.children("dd."+s);if(e[0]){var t=e.position().top,i=g.height(),a=e.height();t>i&&g.scrollTop(t+g.scrollTop()-i+a-5),t<0&&g.scrollTop(t+g.scrollTop()-5)}};m.on("click",function(e){i.hasClass(a+"ed")?w():(v(e,!0),C()),g.find("."+r).remove()}),m.find(".layui-edge").on("click",function(){k.focus()}),k.on("keyup",function(e){var t=e.keyCode;9===t&&C()}).on("keydown",function(e){var t=e.keyCode;9===t&&w();var i=function(t,a){var n,l;e.preventDefault();var r=function(){var e=g.children("dd."+s);if(g.children("dd."+o)[0]&&"next"===t){var i=g.children("dd:not(."+o+",."+c+")"),n=i.eq(0).index();if(n>=0&&n无匹配项

              '):g.find("."+r).remove()},"keyup"),""===t&&g.find("."+r).remove(),void T())};f&&k.on("keyup",q).on("blur",function(i){var a=p[0].selectedIndex;e=k,d=t(p[0].options[a]).html(),0===a&&d===k.attr("placeholder")&&(d=""),setTimeout(function(){$(k.val(),function(e){d||k.val("")},"blur")},200)}),x.on("click",function(){var e=t(this),a=e.attr("lay-value"),n=p.attr("lay-filter");return!e.hasClass(c)&&(e.hasClass("layui-select-tips")?k.val(""):(k.val(e.text()),e.addClass(s)),e.siblings().removeClass(s),p.val(a).removeClass("layui-form-danger"),layui.event.call(this,l,"select("+n+")",{elem:p[0],value:a,othis:i}),w(!0),!1)}),i.find("dl>dt").on("click",function(e){return!1}),t(document).off("click",v).on("click",v)}};f.each(function(e,l){var r=t(this),o=r.next("."+a),u=this.disabled,d=l.value,f=t(l.options[l.selectedIndex]),v=l.options[0];if("string"==typeof r.attr("lay-ignore"))return r.show();var h="string"==typeof r.attr("lay-search"),p=v?v.value?i:v.innerHTML||i:i,m=t(['
              ','
              ','','
              ','
              ',function(e){var t=[];return layui.each(e,function(e,a){0!==e||a.value?"optgroup"===a.tagName.toLowerCase()?t.push("
              "+a.label+"
              "):t.push('
              '+a.innerHTML+"
              "):t.push('
              '+(a.innerHTML||i)+"
              ")}),0===t.length&&t.push('
              没有选项
              '),t.join("")}(r.find("*"))+"
              ","
              "].join(""));o[0]&&o.remove(),r.after(m),y.call(this,m,u,h)})},checkbox:function(){var e={checkbox:["layui-form-checkbox","layui-form-checked","checkbox"],_switch:["layui-form-switch","layui-form-onswitch","switch"]},i=u.find("input[type=checkbox]"),a=function(e,i){var a=t(this);e.on("click",function(){var t=a.attr("lay-filter"),n=(a.attr("lay-text")||"").split("|");a[0].disabled||(a[0].checked?(a[0].checked=!1,e.removeClass(i[1]).find("em").text(n[1])):(a[0].checked=!0,e.addClass(i[1]).find("em").text(n[0])),layui.event.call(a[0],l,i[2]+"("+t+")",{elem:a[0],value:a[0].value,othis:e}))})};i.each(function(i,n){var l=t(this),r=l.attr("lay-skin"),s=(l.attr("lay-text")||"").split("|"),o=this.disabled;"switch"===r&&(r="_"+r);var u=e[r]||e.checkbox;if("string"==typeof l.attr("lay-ignore"))return l.show();var d=l.next("."+u[0]),f=t(['
              ",function(){var e=n.title.replace(/\s/g,""),t={checkbox:[e?""+n.title+"":"",''].join(""),_switch:""+((n.checked?s[0]:s[1])||"")+""};return t[r]||t.checkbox}(),"
              "].join(""));d[0]&&d.remove(),l.after(f),a.call(this,f,u)})},radio:function(){var e="layui-form-radio",i=["",""],a=u.find("input[type=radio]"),n=function(a){var n=t(this),s="layui-anim-scaleSpring";a.on("click",function(){var o=n[0].name,c=n.parents(r),u=n.attr("lay-filter"),d=c.find("input[name="+o.replace(/(\.|#|\[|\])/g,"\\$1")+"]");n[0].disabled||(layui.each(d,function(){var a=t(this).next("."+e);this.checked=!1,a.removeClass(e+"ed"),a.find(".layui-icon").removeClass(s).html(i[1])}),n[0].checked=!0,a.addClass(e+"ed"),a.find(".layui-icon").addClass(s).html(i[0]),layui.event.call(n[0],l,"radio("+u+")",{elem:n[0],value:n[0].value,othis:a}))})};a.each(function(a,l){var r=t(this),s=r.next("."+e),o=this.disabled;if("string"==typeof r.attr("lay-ignore"))return r.show();s[0]&&s.remove();var u=t(['
              ',''+i[l.checked?0:1]+"","
              "+function(){var e=l.title||"";return"string"==typeof r.next().attr("lay-radio")&&(e=r.next().html(),r.next().remove()),e}()+"
              ","
              "].join(""));r.after(u),n.call(this,u)})}};return e?d[e]?d[e]():a.error("不支持的"+e+"表单渲染"):layui.each(d,function(e,t){t()}),n};var d=function(){var e=null,a=f.config.verify,s="layui-form-danger",o={},c=t(this),u=c.parents(r),d=u.find("*[lay-verify]"),v=c.parents("form")[0],h=c.attr("lay-filter");return layui.each(d,function(l,r){var o=t(this),c=o.attr("lay-verify").split("|"),u=o.attr("lay-verType"),d=o.val();if(o.removeClass(s),layui.each(c,function(t,l){var c,f="",v="function"==typeof a[l];if(a[l]){var c=v?f=a[l](d,r):!a[l][0].test(d);if(f=f||a[l][1],"required"===l&&(f=o.attr("lay-reqText")||f),c)return"tips"===u?i.tips(f,function(){return"string"==typeof o.attr("lay-ignore")||"select"!==r.tagName.toLowerCase()&&!/^checkbox|radio$/.test(r.type)?o:o.next()}(),{tips:1}):"alert"===u?i.alert(f,{title:"提示",shadeClose:!0}):i.msg(f,{icon:5,shift:6}),n.android||n.ios||setTimeout(function(){r.focus()},7),o.addClass(s),e=!0}}),e)return e}),!e&&(o=f.getValue(null,u),layui.event.call(this,l,"submit("+h+")",{elem:this,form:v,field:o}))},f=new u,v=t(document),h=t(window);f.render(),v.on("reset",r,function(){var e=t(this).attr("lay-filter");setTimeout(function(){f.render(null,e)},50)}),v.on("submit",r,d).on("click","*[lay-submit]",d),e(l,f)});layui.define("form",function(e){"use strict";var i=layui.$,a=layui.form,n=layui.layer,t="tree",r={config:{},index:layui[t]?layui[t].index+1e4:0,set:function(e){var a=this;return a.config=i.extend({},a.config,e),a},on:function(e,i){return layui.onevent.call(this,t,e,i)}},l=function(){var e=this,i=e.config,a=i.id||e.index;return l.that[a]=e,l.config[a]=i,{config:i,reload:function(i){e.reload.call(e,i)},getChecked:function(){return e.getChecked.call(e)},setChecked:function(i){return e.setChecked.call(e,i)}}},c="layui-hide",d="layui-disabled",s="layui-tree-set",o="layui-tree-iconClick",h="layui-icon-addition",u="layui-icon-subtraction",p="layui-tree-entry",f="layui-tree-main",y="layui-tree-txt",v="layui-tree-pack",C="layui-tree-spread",k="layui-tree-setLineShort",m="layui-tree-showLine",x="layui-tree-lineExtend",b=function(e){var a=this;a.index=++r.index,a.config=i.extend({},a.config,r.config,e),a.render()};b.prototype.config={data:[],showCheckbox:!1,showLine:!0,accordion:!1,onlyIconControl:!1,isJump:!1,edit:!1,text:{defaultNodeName:"未命名",none:"无数据"}},b.prototype.reload=function(e){var a=this;layui.each(e,function(e,i){i.constructor===Array&&delete a.config[e]}),a.config=i.extend(!0,{},a.config,e),a.render()},b.prototype.render=function(){var e=this,a=e.config;e.checkids=[];var n=i('
              ');e.tree(n);var t=a.elem=i(a.elem);if(t[0]){if(e.key=a.id||e.index,e.elem=n,e.elemNone=i('
              '+a.text.none+"
              "),t.html(e.elem),0==e.elem.find(".layui-tree-set").length)return e.elem.append(e.elemNone);a.showCheckbox&&e.renderForm("checkbox"),e.elem.find(".layui-tree-set").each(function(){var e=i(this);e.parent(".layui-tree-pack")[0]||e.addClass("layui-tree-setHide"),!e.next()[0]&&e.parents(".layui-tree-pack").eq(1).hasClass("layui-tree-lineExtend")&&e.addClass(k),e.next()[0]||e.parents(".layui-tree-set").eq(0).next()[0]||e.addClass(k)}),e.events()}},b.prototype.renderForm=function(e){a.render(e,"LAY-tree-"+this.index)},b.prototype.tree=function(e,a){var n=this,t=n.config,r=a||t.data;layui.each(r,function(a,r){var l=r.children&&r.children.length>0,o=i('
              '),h=i(['
              ','
              ','
              ',function(){return t.showLine?l?'':'':''}(),function(){return t.showCheckbox?'':""}(),function(){return t.isJump&&r.href?''+(r.title||r.label||t.text.defaultNodeName)+"":''+(r.title||r.label||t.text.defaultNodeName)+""}(),"
              ",function(){if(!t.edit)return"";var e={add:'',update:'',del:''},i=['
              '];return t.edit===!0&&(t.edit=["update","del"]),"object"==typeof t.edit?(layui.each(t.edit,function(a,n){i.push(e[n]||"")}),i.join("")+"
              "):void 0}(),"
              "].join(""));l&&(h.append(o),n.tree(o,r.children)),e.append(h),h.prev("."+s)[0]&&h.prev().children(".layui-tree-pack").addClass("layui-tree-showLine"),l||h.parent(".layui-tree-pack").addClass("layui-tree-lineExtend"),n.spread(h,r),t.showCheckbox&&(r.checked&&n.checkids.push(r.id),n.checkClick(h,r)),t.edit&&n.operate(h,r)})},b.prototype.spread=function(e,a){var n=this,t=n.config,r=e.children("."+p),l=r.children("."+f),c=r.find("."+o),k=r.find("."+y),m=t.onlyIconControl?c:l,x="";m.on("click",function(i){var a=e.children("."+v),n=m.children(".layui-icon")[0]?m.children(".layui-icon"):m.find(".layui-tree-icon").children(".layui-icon");if(a[0]){if(e.hasClass(C))e.removeClass(C),a.slideUp(200),n.removeClass(u).addClass(h);else if(e.addClass(C),a.slideDown(200),n.addClass(u).removeClass(h),t.accordion){var r=e.siblings("."+s);r.removeClass(C),r.children("."+v).slideUp(200),r.find(".layui-tree-icon").children(".layui-icon").removeClass(u).addClass(h)}}else x="normal"}),k.on("click",function(){var n=i(this);n.hasClass(d)||(x=e.hasClass(C)?t.onlyIconControl?"open":"close":t.onlyIconControl?"close":"open",t.click&&t.click({elem:e,state:x,data:a}))})},b.prototype.setCheckbox=function(e,i,a){var n=this,t=(n.config,a.prop("checked"));if(!a.prop("disabled")){if("object"==typeof i.children||e.find("."+v)[0]){var r=e.find("."+v).find('input[same="layuiTreeCheck"]');r.each(function(){this.disabled||(this.checked=t)})}var l=function(e){if(e.parents("."+s)[0]){var i,a=e.parent("."+v),n=a.parent(),r=a.prev().find('input[same="layuiTreeCheck"]');t?r.prop("checked",t):(a.find('input[same="layuiTreeCheck"]').each(function(){this.checked&&(i=!0)}),i||r.prop("checked",!1)),l(n)}};l(e),n.renderForm("checkbox")}},b.prototype.checkClick=function(e,a){var n=this,t=n.config,r=e.children("."+p),l=r.children("."+f);l.on("click",'input[same="layuiTreeCheck"]+',function(r){layui.stope(r);var l=i(this).prev(),c=l.prop("checked");l.prop("disabled")||(n.setCheckbox(e,a,l),t.oncheck&&t.oncheck({elem:e,checked:c,data:a}))})},b.prototype.operate=function(e,a){var t=this,r=t.config,l=e.children("."+p),d=l.children("."+f);l.children(".layui-tree-btnGroup").on("click",".layui-icon",function(l){layui.stope(l);var f=i(this).data("type"),b=e.children("."+v),g={data:a,type:f,elem:e};if("add"==f){b[0]||(r.showLine?(d.find("."+o).addClass("layui-tree-icon"),d.find("."+o).children(".layui-icon").addClass(h).removeClass("layui-icon-file")):d.find(".layui-tree-iconArrow").removeClass(c),e.append('
              '));var w=r.operate&&r.operate(g),N={};if(N.title=r.text.defaultNodeName,N.id=w,t.tree(e.children("."+v),[N]),r.showLine)if(b[0])b.hasClass(x)||b.addClass(x),e.find("."+v).each(function(){i(this).children("."+s).last().addClass(k)}),b.children("."+s).last().prev().hasClass(k)?b.children("."+s).last().prev().removeClass(k):b.children("."+s).last().removeClass(k),!e.parent("."+v)[0]&&e.next()[0]&&b.children("."+s).last().removeClass(k);else{var T=e.siblings("."+s),L=1,A=e.parent("."+v);layui.each(T,function(e,a){i(a).children("."+v)[0]||(L=0)}),1==L?(T.children("."+v).addClass(m),T.children("."+v).children("."+s).removeClass(k),e.children("."+v).addClass(m),A.removeClass(x),A.children("."+s).last().children("."+v).children("."+s).last().addClass(k)):e.children("."+v).children("."+s).addClass(k)}if(!r.showCheckbox)return;if(d.find('input[same="layuiTreeCheck"]')[0].checked){var I=e.children("."+v).children("."+s).last();I.find('input[same="layuiTreeCheck"]')[0].checked=!0}t.renderForm("checkbox")}else if("update"==f){var F=d.children("."+y).html();d.children("."+y).html(""),d.append(''),d.children(".layui-tree-editInput").val(F).focus();var j=function(e){var i=e.val().trim();i=i?i:r.text.defaultNodeName,e.remove(),d.children("."+y).html(i),g.data.title=i,r.operate&&r.operate(g)};d.children(".layui-tree-editInput").blur(function(){j(i(this))}),d.children(".layui-tree-editInput").on("keydown",function(e){13===e.keyCode&&(e.preventDefault(),j(i(this)))})}else n.confirm('确认删除该节点 "'+(a.title||"")+'" 吗?',function(a){if(r.operate&&r.operate(g),g.status="remove",n.close(a),!e.prev("."+s)[0]&&!e.next("."+s)[0]&&!e.parent("."+v)[0])return e.remove(),void t.elem.append(t.elemNone);if(e.siblings("."+s).children("."+p)[0]){if(r.showCheckbox){var l=function(e){if(e.parents("."+s)[0]){var a=e.siblings("."+s).children("."+p),n=e.parent("."+v).prev(),r=n.find('input[same="layuiTreeCheck"]')[0],c=1,d=0;0==r.checked&&(a.each(function(e,a){var n=i(a).find('input[same="layuiTreeCheck"]')[0];0!=n.checked||n.disabled||(c=0),n.disabled||(d=1)}),1==c&&1==d&&(r.checked=!0,t.renderForm("checkbox"),l(n.parent("."+s))))}};l(e)}if(r.showLine){var d=e.siblings("."+s),h=1,f=e.parent("."+v);layui.each(d,function(e,a){i(a).children("."+v)[0]||(h=0)}),1==h?(b[0]||(f.removeClass(x),d.children("."+v).addClass(m),d.children("."+v).children("."+s).removeClass(k)),e.next()[0]?f.children("."+s).last().children("."+v).children("."+s).last().addClass(k):e.prev().children("."+v).children("."+s).last().addClass(k),e.next()[0]||e.parents("."+s)[1]||e.parents("."+s).eq(0).next()[0]||e.prev("."+s).addClass(k)):!e.next()[0]&&e.hasClass(k)&&e.prev().addClass(k)}}else{var y=e.parent("."+v).prev();if(r.showLine){y.find("."+o).removeClass("layui-tree-icon"),y.find("."+o).children(".layui-icon").removeClass(u).addClass("layui-icon-file");var w=y.parents("."+v).eq(0);w.addClass(x),w.children("."+s).each(function(){i(this).children("."+v).children("."+s).last().addClass(k)})}else y.find(".layui-tree-iconArrow").addClass(c);e.parents("."+s).eq(0).removeClass(C),e.parent("."+v).remove()}e.remove()})})},b.prototype.events=function(){var e=this,a=e.config;e.elem.find(".layui-tree-checkedFirst");e.setChecked(e.checkids),e.elem.find(".layui-tree-search").on("keyup",function(){var n=i(this),t=n.val(),r=n.nextAll(),l=[];r.find("."+y).each(function(){var e=i(this).parents("."+p);if(i(this).html().indexOf(t)!=-1){l.push(i(this).parent());var a=function(e){e.addClass("layui-tree-searchShow"),e.parent("."+v)[0]&&a(e.parent("."+v).parent("."+s))};a(e.parent("."+s))}}),r.find("."+p).each(function(){var e=i(this).parent("."+s);e.hasClass("layui-tree-searchShow")||e.addClass(c)}),0==r.find(".layui-tree-searchShow").length&&e.elem.append(e.elemNone),a.onsearch&&a.onsearch({elem:l})}),e.elem.find(".layui-tree-search").on("keydown",function(){i(this).nextAll().find("."+p).each(function(){var e=i(this).parent("."+s);e.removeClass("layui-tree-searchShow "+c)}),i(".layui-tree-emptyText")[0]&&i(".layui-tree-emptyText").remove()})},b.prototype.getChecked=function(){var e=this,a=e.config,n=[],t=[];e.elem.find(".layui-form-checked").each(function(){n.push(i(this).prev()[0].value)});var r=function(e,a){layui.each(e,function(e,t){layui.each(n,function(e,n){if(t.id==n){var l=i.extend({},t);return delete l.children,a.push(l),t.children&&(l.children=[],r(t.children,l.children)),!0}})})};return r(i.extend({},a.data),t),t},b.prototype.setChecked=function(e){var a=this;a.config;a.elem.find("."+s).each(function(a,n){var t=i(this).data("id"),r=i(n).children("."+p).find('input[same="layuiTreeCheck"]'),l=r.next();if("number"==typeof e){if(t==e)return r[0].checked||l.click(),!1}else"object"==typeof e&&layui.each(e,function(e,i){if(i==t&&!r[0].checked)return l.click(),!0})})},l.that={},l.config={},r.reload=function(e,i){var a=l.that[e];return a.reload(i),l.call(a)},r.getChecked=function(e){var i=l.that[e];return i.getChecked()},r.setChecked=function(e,i){var a=l.that[e];return a.setChecked(i)},r.render=function(e){var i=new b(e);return l.call(i)},e(t,r)});layui.define(["laytpl","form"],function(e){"use strict";var a=layui.$,t=layui.laytpl,n=layui.form,i="transfer",l={config:{},index:layui[i]?layui[i].index+1e4:0,set:function(e){var t=this;return t.config=a.extend({},t.config,e),t},on:function(e,a){return layui.onevent.call(this,i,e,a)}},r=function(){var e=this,a=e.config,t=a.id||e.index;return r.that[t]=e,r.config[t]=a,{config:a,reload:function(a){e.reload.call(e,a)},getData:function(){return e.getData.call(e)}}},c="layui-hide",o="layui-btn-disabled",d="layui-none",s="layui-transfer-box",u="layui-transfer-header",h="layui-transfer-search",f="layui-transfer-active",y="layui-transfer-data",p=function(e){return e=e||{},['
              ','
              ','","
              ","{{# if(d.data.showSearch){ }}",'","{{# } }}",'
                ',"
                "].join("")},v=['
                ',p({index:0,checkAllName:"layTransferLeftCheckAll"}),'
                ','",'","
                ",p({index:1,checkAllName:"layTransferRightCheckAll"}),"
                "].join(""),x=function(e){var t=this;t.index=++l.index,t.config=a.extend({},t.config,l.config,e),t.render()};x.prototype.config={title:["列表一","列表二"],width:200,height:360,data:[],value:[],showSearch:!1,id:"",text:{none:"无数据",searchNone:"无匹配数据"}},x.prototype.reload=function(e){var t=this;layui.each(e,function(e,a){a.constructor===Array&&delete t.config[e]}),t.config=a.extend(!0,{},t.config,e),t.render()},x.prototype.render=function(){var e=this,n=e.config,i=e.elem=a(t(v).render({data:n,index:e.index})),l=n.elem=a(n.elem);l[0]&&(n.data=n.data||[],n.value=n.value||[],e.key=n.id||e.index,l.html(e.elem),e.layBox=e.elem.find("."+s),e.layHeader=e.elem.find("."+u),e.laySearch=e.elem.find("."+h),e.layData=i.find("."+y),e.layBtn=i.find("."+f+" .layui-btn"),e.layBox.css({width:n.width,height:n.height}),e.layData.css({height:function(){return n.height-e.layHeader.outerHeight()-e.laySearch.outerHeight()-2}()}),e.renderData(),e.events())},x.prototype.renderData=function(){var e=this,a=(e.config,[{checkName:"layTransferLeftCheck",views:[]},{checkName:"layTransferRightCheck",views:[]}]);e.parseData(function(e){var t=e.selected?1:0,n=["
              • ",'',"
              • "].join("");a[t].views.push(n),delete e.selected}),e.layData.eq(0).html(a[0].views.join("")),e.layData.eq(1).html(a[1].views.join("")),e.renderCheckBtn()},x.prototype.renderForm=function(e){n.render(e,"LAY-transfer-"+this.index)},x.prototype.renderCheckBtn=function(e){var t=this,n=t.config;e=e||{},t.layBox.each(function(i){var l=a(this),r=l.find("."+y),d=l.find("."+u).find('input[type="checkbox"]'),s=r.find('input[type="checkbox"]'),h=0,f=!1;if(s.each(function(){var e=a(this).data("hide");(this.checked||this.disabled||e)&&h++,this.checked&&!e&&(f=!0)}),d.prop("checked",f&&h===s.length),t.layBtn.eq(i)[f?"removeClass":"addClass"](o),!e.stopNone){var p=r.children("li:not(."+c+")").length;t.noneView(r,p?"":n.text.none)}}),t.renderForm("checkbox")},x.prototype.noneView=function(e,t){var n=a('

                '+(t||"")+"

                ");e.find("."+d)[0]&&e.find("."+d).remove(),t.replace(/\s/g,"")&&e.append(n)},x.prototype.setValue=function(){var e=this,t=e.config,n=[];return e.layBox.eq(1).find("."+y+' input[type="checkbox"]').each(function(){var e=a(this).data("hide");e||n.push(this.value)}),t.value=n,e},x.prototype.parseData=function(e){var t=this,n=t.config,i=[];return layui.each(n.data,function(t,l){l=("function"==typeof n.parseData?n.parseData(l):l)||l,i.push(l=a.extend({},l)),layui.each(n.value,function(e,a){a==l.value&&(l.selected=!0)}),e&&e(l)}),n.data=i,t},x.prototype.getData=function(e){var a=this,t=a.config,n=[];return a.setValue(),layui.each(e||t.value,function(e,a){layui.each(t.data,function(e,t){delete t.selected,a==t.value&&n.push(t)})}),n},x.prototype.events=function(){var e=this,t=e.config;e.elem.on("click",'input[lay-filter="layTransferCheckbox"]+',function(){var t=a(this).prev(),n=t[0].checked,i=t.parents("."+s).eq(0).find("."+y);t[0].disabled||("all"===t.attr("lay-type")&&i.find('input[type="checkbox"]').each(function(){this.disabled||(this.checked=n)}),e.renderCheckBtn({stopNone:!0}))}),e.layBtn.on("click",function(){var n=a(this),i=n.data("index"),l=e.layBox.eq(i),r=[];if(!n.hasClass(o)){e.layBox.eq(i).each(function(t){var n=a(this),i=n.find("."+y);i.children("li").each(function(){var t=a(this),n=t.find('input[type="checkbox"]'),i=n.data("hide");n[0].checked&&!i&&(n[0].checked=!1,l.siblings("."+s).find("."+y).append(t.clone()),t.remove(),r.push(n[0].value)),e.setValue()})}),e.renderCheckBtn();var c=l.siblings("."+s).find("."+h+" input");""===c.val()||c.trigger("keyup"),t.onchange&&t.onchange(e.getData(r),i)}}),e.laySearch.find("input").on("keyup",function(){var n=this.value,i=a(this).parents("."+h).eq(0).siblings("."+y),l=i.children("li");l.each(function(){var e=a(this),t=e.find('input[type="checkbox"]'),i=t[0].title.indexOf(n)!==-1;e[i?"removeClass":"addClass"](c),t.data("hide",!i)}),e.renderCheckBtn();var r=l.length===i.children("li."+c).length;e.noneView(i,r?t.text.searchNone:"")})},r.that={},r.config={},l.reload=function(e,a){var t=r.that[e];return t.reload(a),r.call(t)},l.getData=function(e){var a=r.that[e];return a.getData()},l.render=function(e){var a=new x(e);return r.call(a)},e(i,l)});layui.define(["laytpl","laypage","layer","form","util"],function(e){"use strict";var t=layui.$,i=layui.laytpl,a=layui.laypage,l=layui.layer,n=layui.form,o=(layui.util,layui.hint()),r=layui.device(),d={config:{checkName:"LAY_CHECKED",indexName:"LAY_TABLE_INDEX"},cache:{},index:layui.table?layui.table.index+1e4:0,set:function(e){var i=this;return i.config=t.extend({},i.config,e),i},on:function(e,t){return layui.onevent.call(this,y,e,t)}},c=function(){var e=this,t=e.config,i=t.id||t.index;return i&&(c.that[i]=e,c.config[i]=t),{config:t,reload:function(t){e.reload.call(e,t)},setColsWidth:function(){e.setColsWidth.call(e)},resize:function(){e.resize.call(e)}}},s=function(e){var t=c.config[e];return t||o.error("The ID option was not found in the table instance"),t||null},u=function(e,a,l,n){var o=e.templet?function(){return"function"==typeof e.templet?e.templet(l):i(t(e.templet).html()||String(a)).render(l)}():a;return n?t("
                "+o+"
                ").text():o},y="table",h=".layui-table",f="layui-hide",p="layui-none",v="layui-table-view",m=".layui-table-tool",g=".layui-table-box",b=".layui-table-init",x=".layui-table-header",k=".layui-table-body",C=".layui-table-main",w=".layui-table-fixed",T=".layui-table-fixed-l",A=".layui-table-fixed-r",L=".layui-table-total",N=".layui-table-page",S=".layui-table-sort",W="layui-table-edit",_="layui-table-hover",E=function(e){var t='{{#if(item2.colspan){}} colspan="{{item2.colspan}}"{{#} if(item2.rowspan){}} rowspan="{{item2.rowspan}}"{{#}}}';return e=e||{},['',"","{{# layui.each(d.data.cols, function(i1, item1){ }}","","{{# layui.each(item1, function(i2, item2){ }}",'{{# if(item2.fixed && item2.fixed !== "right"){ left = true; } }}','{{# if(item2.fixed === "right"){ right = true; } }}',function(){return e.fixed&&"right"!==e.fixed?'{{# if(item2.fixed && item2.fixed !== "right"){ }}':"right"===e.fixed?'{{# if(item2.fixed === "right"){ }}':""}(),"{{# var isSort = !(item2.colGroup) && item2.sort; }}",'",e.fixed?"{{# }; }}":"","{{# }); }}","","{{# }); }}","","
                ','
                ','{{# if(item2.type === "checkbox"){ }}','',"{{# } else { }}",'{{item2.title||""}}',"{{# if(isSort){ }}",'',"{{# } }}","{{# } }}","
                ","
                "].join("")},z=['',"","
                "].join(""),H=['
                ',"{{# if(d.data.toolbar){ }}",'
                ','
                ','
                ',"
                ","{{# } }}",'
                ',"{{# if(d.data.loading){ }}",'
                ','',"
                ","{{# } }}","{{# var left, right; }}",'
                ',E(),"
                ",'
                ',z,"
                ","{{# if(left){ }}",'
                ','
                ',E({fixed:!0}),"
                ",'
                ',z,"
                ","
                ","{{# }; }}","{{# if(right){ }}",'
                ','
                ',E({fixed:"right"}),'
                ',"
                ",'
                ',z,"
                ","
                ","{{# }; }}","
                ","{{# if(d.data.totalRow){ }}",'
                ','','',"
                ","
                ","{{# } }}","{{# if(d.data.page){ }}",'
                ','
                ',"
                ","{{# } }}","","
                "].join(""),R=t(window),F=t(document),j=function(e){var i=this;i.index=++d.index,i.config=t.extend({},i.config,d.config,e),i.render()};j.prototype.config={limit:10,loading:!0,cellMinWidth:60,defaultToolbar:["filter","exports","print"],autoSort:!0,text:{none:"无数据"}},j.prototype.render=function(){var e=this,a=e.config;if(a.elem=t(a.elem),a.where=a.where||{},a.id=a.id||a.elem.attr("id")||e.index,a.request=t.extend({pageName:"page",limitName:"limit"},a.request),a.response=t.extend({statusName:"code",statusCode:0,msgName:"msg",dataName:"data",countName:"count"},a.response),"object"==typeof a.page&&(a.limit=a.page.limit||a.limit,a.limits=a.page.limits||a.limits,e.page=a.page.curr=a.page.curr||1,delete a.page.elem,delete a.page.jump),!a.elem[0])return e;a.height&&/^full-\d+$/.test(a.height)&&(e.fullHeightGap=a.height.split("-")[1],a.height=R.height()-e.fullHeightGap),e.setInit();var l=a.elem,n=l.next("."+v),o=e.elem=t(i(H).render({VIEW_CLASS:v,data:a,index:e.index}));if(a.index=e.index,e.key=a.id||a.index,n[0]&&n.remove(),l.after(o),e.layTool=o.find(m),e.layBox=o.find(g),e.layHeader=o.find(x),e.layMain=o.find(C),e.layBody=o.find(k),e.layFixed=o.find(w),e.layFixLeft=o.find(T),e.layFixRight=o.find(A),e.layTotal=o.find(L),e.layPage=o.find(N),e.renderToolbar(),e.fullSize(),a.cols.length>1){var r=e.layFixed.find(x).find("th");r.height(e.layHeader.height()-1-parseFloat(r.css("padding-top"))-parseFloat(r.css("padding-bottom")))}e.pullData(e.page),e.events()},j.prototype.initOpts=function(e){var t=this,i=(t.config,{checkbox:48,radio:48,space:15,numbers:40});e.checkbox&&(e.type="checkbox"),e.space&&(e.type="space"),e.type||(e.type="normal"),"normal"!==e.type&&(e.unresize=!0,e.width=e.width||i[e.type])},j.prototype.setInit=function(e){var t=this,i=t.config;return i.clientWidth=i.width||function(){var e=function(t){var a,l;t=t||i.elem.parent(),a=t.width();try{l="none"===t.css("display")}catch(n){}return!t[0]||a&&!l?a:e(t.parent())};return e()}(),"width"===e?i.clientWidth:void layui.each(i.cols,function(e,a){layui.each(a,function(l,n){if(!n)return void a.splice(l,1);if(n.key=e+"-"+l,n.hide=n.hide||!1,n.colGroup||n.colspan>1){var o=0;layui.each(i.cols[e+1],function(t,i){i.HAS_PARENT||o>1&&o==n.colspan||(i.HAS_PARENT=!0,i.parentKey=e+"-"+l,o+=parseInt(i.colspan>1?i.colspan:1))}),n.colGroup=!0}t.initOpts(n)})})},j.prototype.renderToolbar=function(){var e=this,a=e.config,l=['
                ','
                ','
                '].join(""),n=e.layTool.find(".layui-table-tool-temp");if("default"===a.toolbar)n.html(l);else if("string"==typeof a.toolbar){var o=t(a.toolbar).html()||"";o&&n.html(i(o).render(a))}var r={filter:{title:"筛选列",layEvent:"LAYTABLE_COLS",icon:"layui-icon-cols"},exports:{title:"导出",layEvent:"LAYTABLE_EXPORT",icon:"layui-icon-export"},print:{title:"打印",layEvent:"LAYTABLE_PRINT",icon:"layui-icon-print"}},d=[];"object"==typeof a.defaultToolbar&&layui.each(a.defaultToolbar,function(e,t){var i="string"==typeof t?r[t]:t;i&&d.push('
                ')}),e.layTool.find(".layui-table-tool-self").html(d.join(""))},j.prototype.setParentCol=function(e,t){var i=this,a=i.config,l=i.layHeader.find('th[data-key="'+a.index+"-"+t+'"]'),n=parseInt(l.attr("colspan"))||0;if(l[0]){var o=t.split("-"),r=a.cols[o[0]][o[1]];e?n--:n++,l.attr("colspan",n),l[n<1?"addClass":"removeClass"](f),r.colspan=n,r.hide=n<1;var d=l.data("parentkey");d&&i.setParentCol(e,d)}},j.prototype.setColsPatch=function(){var e=this,t=e.config;layui.each(t.cols,function(t,i){layui.each(i,function(t,i){i.hide&&e.setParentCol(i.hide,i.parentKey)})})},j.prototype.setColsWidth=function(){var e=this,t=e.config,i=0,a=0,l=0,n=0,o=e.setInit("width");e.eachCols(function(e,t){t.hide||i++}),o=o-function(){return"line"===t.skin||"nob"===t.skin?2:i+1}()-e.getScrollWidth(e.layMain[0])-1;var r=function(e){layui.each(t.cols,function(i,r){layui.each(r,function(i,d){var c=0,s=d.minWidth||t.cellMinWidth;return d?void(d.colGroup||d.hide||(e?l&&ln&&a&&(l=(o-n)/a)};r(),r(!0),e.autoColNums=a,e.eachCols(function(i,a){var n=a.minWidth||t.cellMinWidth;a.colGroup||a.hide||(0===a.width?e.getCssRule(t.index+"-"+a.key,function(e){e.style.width=Math.floor(l>=n?l:n)+"px"}):/\d+%$/.test(a.width)&&e.getCssRule(t.index+"-"+a.key,function(e){e.style.width=Math.floor(parseFloat(a.width)/100*o)+"px"}))});var d=e.layMain.width()-e.getScrollWidth(e.layMain[0])-e.layMain.children("table").outerWidth();if(e.autoColNums&&d>=-i&&d<=i){var c=function(t){var i;return t=t||e.layHeader.eq(0).find("thead th:last-child"),i=t.data("field"),!i&&t.prev()[0]?c(t.prev()):t},s=c(),u=s.data("key");e.getCssRule(u,function(t){var i=t.style.width||s.outerWidth();t.style.width=parseFloat(i)+d+"px",e.layMain.height()-e.layMain.prop("clientHeight")>0&&(t.style.width=parseFloat(t.style.width)-1+"px")})}e.loading(!0)},j.prototype.resize=function(){var e=this;e.fullSize(),e.setColsWidth(),e.scrollPatch()},j.prototype.reload=function(e){var i=this;e=e||{},delete i.haveInit,e.data&&e.data.constructor===Array&&delete i.config.data,i.config=t.extend(!0,{},i.config,e),i.render()},j.prototype.errorView=function(e){var i=this,a=i.layMain.find("."+p),l=t('
                '+(e||"Error")+"
                ");a[0]&&(i.layNone.remove(),a.remove()),i.layFixed.addClass(f),i.layMain.find("tbody").html(""),i.layMain.append(i.layNone=l),d.cache[i.key]=[]},j.prototype.page=1,j.prototype.pullData=function(e){var i=this,a=i.config,l=a.request,n=a.response,o=function(){"object"==typeof a.initSort&&i.sort(a.initSort.field,a.initSort.type)};if(i.startTime=(new Date).getTime(),a.url){var r={};r[l.pageName]=e,r[l.limitName]=a.limit;var d=t.extend(r,a.where);a.contentType&&0==a.contentType.indexOf("application/json")&&(d=JSON.stringify(d)),i.loading(),t.ajax({type:a.method||"get",url:a.url,contentType:a.contentType,data:d,dataType:"json",headers:a.headers||{},success:function(t){"function"==typeof a.parseData&&(t=a.parseData(t)||t),t[n.statusName]!=n.statusCode?(i.renderForm(),i.errorView(t[n.msgName]||'返回的数据不符合规范,正确的成功状态码应为:"'+n.statusName+'": '+n.statusCode)):(i.renderData(t,e,t[n.countName]),o(),a.time=(new Date).getTime()-i.startTime+" ms"),i.setColsWidth(),"function"==typeof a.done&&a.done(t,e,t[n.countName])},error:function(e,t){i.errorView("数据接口请求异常:"+t),i.renderForm(),i.setColsWidth()}})}else if(a.data&&a.data.constructor===Array){var c={},s=e*a.limit-a.limit;c[n.dataName]=a.data.concat().splice(s,a.limit),c[n.countName]=a.data.length,i.renderData(c,e,c[n.countName]),o(),i.setColsWidth(),"function"==typeof a.done&&a.done(c,e,c[n.countName])}},j.prototype.eachCols=function(e){var t=this;return d.eachCols(null,e,t.config.cols),t},j.prototype.renderData=function(e,n,o,r){var c=this,s=c.config,y=e[s.response.dataName]||[],h=[],v=[],m=[],g=function(){var e;return!r&&c.sortKey?c.sort(c.sortKey.field,c.sortKey.sort,!0):(layui.each(y,function(a,l){var o=[],y=[],p=[],g=a+s.limit*(n-1)+1;0!==l.length&&(r||(l[d.config.indexName]=a),c.eachCols(function(n,r){var c=r.field||n,h=s.index+"-"+r.key,v=l[c];if(void 0!==v&&null!==v||(v=""),!r.colGroup){var m=['','
                '+function(){var n=t.extend(!0,{LAY_INDEX:g},l),o=d.config.checkName;switch(r.type){case"checkbox":return'";case"radio":return n[o]&&(e=a),'';case"numbers":return g}return r.toolbar?i(t(r.toolbar).html()||"").render(n):u(r,v,n)}(),"
                "].join("");o.push(m),r.fixed&&"right"!==r.fixed&&y.push(m),"right"===r.fixed&&p.push(m)}}),h.push(''+o.join("")+""),v.push(''+y.join("")+""),m.push(''+p.join("")+""))}),c.layBody.scrollTop(0),c.layMain.find("."+p).remove(),c.layMain.find("tbody").html(h.join("")),c.layFixLeft.find("tbody").html(v.join("")),c.layFixRight.find("tbody").html(m.join("")),c.renderForm(),"number"==typeof e&&c.setThisRowChecked(e),c.syncCheckAll(),c.haveInit?c.scrollPatch():setTimeout(function(){c.scrollPatch()},50),c.haveInit=!0,l.close(c.tipsIndex),s.HAS_SET_COLS_PATCH||c.setColsPatch(),void(s.HAS_SET_COLS_PATCH=!0))};return d.cache[c.key]=y,c.layPage[0==o||0===y.length&&1==n?"addClass":"removeClass"](f),r?g():0===y.length?(c.renderForm(),c.errorView(s.text.none)):(c.layFixed.removeClass(f),g(),c.renderTotal(y),void(s.page&&(s.page=t.extend({elem:"layui-table-page"+s.index,count:o,limit:s.limit,limits:s.limits||[10,20,30,40,50,60,70,80,90],groups:3,layout:["prev","page","next","skip","count","limit"],prev:'',next:'',jump:function(e,t){t||(c.page=e.curr,s.limit=e.limit,c.pullData(e.curr))}},s.page),s.page.count=o,a.render(s.page))))},j.prototype.renderTotal=function(e){var t=this,i=t.config,a={};if(i.totalRow){layui.each(e,function(e,i){0!==i.length&&t.eachCols(function(e,t){var l=t.field||e,n=i[l];t.totalRow&&(a[l]=(a[l]||0)+(parseFloat(n)||0))})}),t.dataTotal={};var l=[];t.eachCols(function(e,n){var o=n.field||e,r=function(){var e=n.totalRowText||"",t=parseFloat(a[o]).toFixed(2),i={};return i[o]=t,t=u(n,t,i),n.totalRow?t||e:e}(),d=['','
                '+r,"
                "].join("");n.field&&(t.dataTotal[o]=r),l.push(d)}),t.layTotal.find("tbody").html(""+l.join("")+"")}},j.prototype.getColElem=function(e,t){var i=this,a=i.config;return e.eq(0).find(".laytable-cell-"+(a.index+"-"+t)+":eq(0)")},j.prototype.renderForm=function(e){n.render(e,"LAY-table-"+this.index)},j.prototype.setThisRowChecked=function(e){var t=this,i=(t.config,"layui-table-click"),a=t.layBody.find('tr[data-index="'+e+'"]');a.addClass(i).siblings("tr").removeClass(i)},j.prototype.sort=function(e,i,a,l){var n,r,c=this,s={},u=c.config,h=u.elem.attr("lay-filter"),f=d.cache[c.key];"string"==typeof e&&c.layHeader.find("th").each(function(i,a){var l=t(this),o=l.data("field");if(o===e)return e=l,n=o,!1});try{var n=n||e.data("field"),p=e.data("key");if(c.sortKey&&!a&&n===c.sortKey.field&&i===c.sortKey.sort)return;var v=c.layHeader.find("th .laytable-cell-"+p).find(S);c.layHeader.find("th").find(S).removeAttr("lay-sort"),v.attr("lay-sort",i||null),c.layFixed.find("th")}catch(m){return o.error("Table modules: Did not match to field")}c.sortKey={field:n,sort:i},u.autoSort&&("asc"===i?r=layui.sort(f,n):"desc"===i?r=layui.sort(f,n,!0):(r=layui.sort(f,d.config.indexName),delete c.sortKey)),s[u.response.dataName]=r||f,c.renderData(s,c.page,c.count,!0),l&&layui.event.call(e,y,"sort("+h+")",{field:n,type:i})},j.prototype.loading=function(e){var i=this,a=i.config;a.loading&&(e?(i.layInit&&i.layInit.remove(),delete i.layInit,i.layBox.find(b).remove()):(i.layInit=t(['
                ','',"
                "].join("")),i.layBox.append(i.layInit)))},j.prototype.setCheckData=function(e,t){var i=this,a=i.config,l=d.cache[i.key];l[e]&&l[e].constructor!==Array&&(l[e][a.checkName]=t)},j.prototype.syncCheckAll=function(){var e=this,t=e.config,i=e.layHeader.find('input[name="layTableCheckbox"]'),a=function(i){return e.eachCols(function(e,a){"checkbox"===a.type&&(a[t.checkName]=i)}),i};i[0]&&(d.checkStatus(e.key).isAll?(i[0].checked||(i.prop("checked",!0),e.renderForm("checkbox")),a(!0)):(i[0].checked&&(i.prop("checked",!1),e.renderForm("checkbox")),a(!1)))},j.prototype.getCssRule=function(e,t){var i=this,a=i.elem.find("style")[0],l=a.sheet||a.styleSheet||{},n=l.cssRules||l.rules;layui.each(n,function(i,a){if(a.selectorText===".laytable-cell-"+e)return t(a),!0})},j.prototype.fullSize=function(){var e,t=this,i=t.config,a=i.height;t.fullHeightGap&&(a=R.height()-t.fullHeightGap,a<135&&(a=135),t.elem.css("height",a)),a&&(e=parseFloat(a)-(t.layHeader.outerHeight()||38),i.toolbar&&(e-=t.layTool.outerHeight()||50),i.totalRow&&(e-=t.layTotal.outerHeight()||40),i.page&&(e-=t.layPage.outerHeight()||41),t.layMain.css("height",e-2))},j.prototype.getScrollWidth=function(e){var t=0;return e?t=e.offsetWidth-e.clientWidth:(e=document.createElement("div"),e.style.width="100px",e.style.height="100px",e.style.overflowY="scroll",document.body.appendChild(e),t=e.offsetWidth-e.clientWidth,document.body.removeChild(e)),t},j.prototype.scrollPatch=function(){var e=this,i=e.layMain.children("table"),a=e.layMain.width()-e.layMain.prop("clientWidth"),l=e.layMain.height()-e.layMain.prop("clientHeight"),n=(e.getScrollWidth(e.layMain[0]),i.outerWidth()-e.layMain.width()),o=function(e){if(a&&l){if(e=e.eq(0),!e.find(".layui-table-patch")[0]){var i=t('
                ');i.find("div").css({width:a}),e.find("tr").append(i)}}else e.find(".layui-table-patch").remove()};o(e.layHeader),o(e.layTotal);var r=e.layMain.height(),d=r-l;e.layFixed.find(k).css("height",i.height()>=d?d:"auto"),e.layFixRight[n>0?"removeClass":"addClass"](f),e.layFixRight.css("right",a-1)},j.prototype.events=function(){var e,i=this,a=i.config,o=t("body"),c={},s=i.layHeader.find("th"),h=".layui-table-cell",p=a.elem.attr("lay-filter");i.layTool.on("click","*[lay-event]",function(e){var o=t(this),c=o.attr("lay-event"),s=function(e){var l=t(e.list),n=t('
                  ');n.html(l),a.height&&n.css("max-height",a.height-(i.layTool.outerHeight()||50)),o.find(".layui-table-tool-panel")[0]||o.append(n),i.renderForm(),n.on("click",function(e){layui.stope(e)}),e.done&&e.done(n,l)};switch(layui.stope(e),F.trigger("table.tool.panel.remove"),l.close(i.tipsIndex),c){case"LAYTABLE_COLS":s({list:function(){var e=[];return i.eachCols(function(t,i){i.field&&"normal"==i.type&&e.push('
                • ')}),e.join("")}(),done:function(){n.on("checkbox(LAY_TABLE_TOOL_COLS)",function(e){var l=t(e.elem),n=this.checked,o=l.data("key"),r=l.data("parentkey");layui.each(a.cols,function(e,t){layui.each(t,function(t,l){if(e+"-"+t===o){var d=l.hide;l.hide=!n,i.elem.find('*[data-key="'+a.index+"-"+o+'"]')[n?"removeClass":"addClass"](f),d!=l.hide&&i.setParentCol(!n,r),i.resize()}})})})}});break;case"LAYTABLE_EXPORT":r.ie?l.tips("导出功能不支持 IE,请用 Chrome 等高级浏览器导出",this,{tips:3}):s({list:function(){return['
                • 导出到 Csv 文件
                • ','
                • 导出到 Excel 文件
                • '].join("")}(),done:function(e,l){l.on("click",function(){var e=t(this).data("type");d.exportFile.call(i,a.id,null,e)})}});break;case"LAYTABLE_PRINT":var u=window.open("打印窗口","_blank"),h=[""].join(""),v=t(i.layHeader.html());v.append(i.layMain.find("table").html()),v.append(i.layTotal.find("table").html()),v.find("th.layui-table-patch").remove(),v.find(".layui-table-col-special").remove(),u.document.write(h+v.prop("outerHTML")),u.document.close(),u.print(),u.close()}layui.event.call(this,y,"toolbar("+p+")",t.extend({event:c,config:a},{}))}),s.on("mousemove",function(e){var i=t(this),a=i.offset().left,l=e.clientX-a;i.data("unresize")||c.resizeStart||(c.allowResize=i.width()-l<=10,o.css("cursor",c.allowResize?"col-resize":""))}).on("mouseleave",function(){t(this);c.resizeStart||o.css("cursor","")}).on("mousedown",function(e){var l=t(this);if(c.allowResize){var n=l.data("key");e.preventDefault(),c.resizeStart=!0,c.offset=[e.clientX,e.clientY],i.getCssRule(n,function(e){var t=e.style.width||l.outerWidth();c.rule=e,c.ruleWidth=parseFloat(t),c.minWidth=l.data("minwidth")||a.cellMinWidth})}}),F.on("mousemove",function(t){if(c.resizeStart){if(t.preventDefault(),c.rule){var a=c.ruleWidth+t.clientX-c.offset[0];a');return n[0].value=i.data("content")||l.text(),i.find("."+W)[0]||i.append(n),n.focus(),void layui.stope(e)}}).on("mouseenter","td",function(){b.call(this)}).on("mouseleave","td",function(){b.call(this,"hide")});var g="layui-table-grid-down",b=function(e){var i=t(this),a=i.children(h);if(!i.data("off"))if(e)i.find(".layui-table-grid-down").remove();else if(a.prop("scrollWidth")>a.outerWidth()){if(a.find("."+g)[0])return;i.append('
                  ')}};i.layBody.on("click","."+g,function(e){var n=t(this),o=n.parent(),d=o.children(h);i.tipsIndex=l.tips(['
                  ',d.html(),"
                  ",''].join(""),d[0],{tips:[3,""],time:-1,anim:-1,maxWidth:r.ios||r.android?300:i.elem.width()/2,isOutAnim:!1,skin:"layui-table-tips",success:function(e,t){e.find(".layui-table-tips-c").on("click",function(){l.close(t)})}}),layui.stope(e)}),i.layBody.on("click","*[lay-event]",function(){var e=t(this),a=e.parents("tr").eq(0).data("index");layui.event.call(this,y,"tool("+p+")",v.call(this,{event:e.attr("lay-event")})),i.setThisRowChecked(a)}),i.layMain.on("scroll",function(){var e=t(this),a=e.scrollLeft(),n=e.scrollTop();i.layHeader.scrollLeft(a),i.layTotal.scrollLeft(a),i.layFixed.find(k).scrollTop(n),l.close(i.tipsIndex)}),R.on("resize",function(){i.resize()})},function(){F.on("click",function(){F.trigger("table.remove.tool.panel")}),F.on("table.remove.tool.panel",function(){t(".layui-table-tool-panel").remove()})}(),d.init=function(e,i){i=i||{};var a=this,l=t(e?'table[lay-filter="'+e+'"]':h+"[lay-data]"),n="Table element property lay-data configuration item has a syntax error: ";return l.each(function(){var a=t(this),l=a.attr("lay-data");try{l=new Function("return "+l)()}catch(r){o.error(n+l)}var c=[],s=t.extend({elem:this,cols:[],data:[],skin:a.attr("lay-skin"),size:a.attr("lay-size"),even:"string"==typeof a.attr("lay-even")},d.config,i,l);e&&a.hide(),a.find("thead>tr").each(function(e){s.cols[e]=[],t(this).children().each(function(i){var a=t(this),l=a.attr("lay-data");try{l=new Function("return "+l)()}catch(r){return o.error(n+l)}var d=t.extend({title:a.text(),colspan:a.attr("colspan")||0,rowspan:a.attr("rowspan")||0},l);d.colspan<2&&c.push(d),s.cols[e].push(d)})}),a.find("tbody>tr").each(function(e){var i=t(this),a={};i.children("td").each(function(e,i){var l=t(this),n=l.data("field");if(n)return a[n]=l.html()}),layui.each(c,function(e,t){var l=i.children("td").eq(e);a[t.field]=l.html()}),s.data[e]=a}),d.render(s)}),a},c.that={},c.config={},d.eachCols=function(e,i,a){var l=c.config[e]||{},n=[],o=0;a=t.extend(!0,[],a||l.cols),layui.each(a,function(e,t){layui.each(t,function(t,i){if(i.colGroup){var l=0;o++,i.CHILD_COLS=[],layui.each(a[e+1],function(e,t){t.PARENT_COL_INDEX||l>1&&l==i.colspan||(t.PARENT_COL_INDEX=o,i.CHILD_COLS.push(t),l+=parseInt(t.colspan>1?t.colspan:1))})}i.PARENT_COL_INDEX||n.push(i)})});var r=function(e){layui.each(e||n,function(e,t){return t.CHILD_COLS?r(t.CHILD_COLS):void("function"==typeof i&&i(e,t))})};r()},d.checkStatus=function(e){var t=0,i=0,a=[],l=d.cache[e]||[];return layui.each(l,function(e,l){return l.constructor===Array?void i++:void(l[d.config.checkName]&&(t++,a.push(d.clearCacheKey(l))))}),{data:a,isAll:!!l.length&&t===l.length-i}},d.exportFile=function(e,t,i){var a=this;t=t||d.clearCacheKey(d.cache[e]),i=i||"csv";var l=c.config[e]||{},n={csv:"text/csv",xls:"application/vnd.ms-excel"}[i],s=document.createElement("a");return r.ie?o.error("IE_NOT_SUPPORT_EXPORTS"):(s.href="data:"+n+";charset=utf-8,\ufeff"+encodeURIComponent(function(){var i=[],l=[],n=[];return layui.each(t,function(t,a){var n=[];"object"==typeof e?(layui.each(e,function(e,a){0==t&&i.push(a||"")}),layui.each(d.clearCacheKey(a),function(e,t){n.push('"'+(t||"")+'"')})):d.eachCols(e,function(e,l){if(l.field&&"normal"==l.type&&!l.hide){var o=a[l.field];void 0!==o&&null!==o||(o=""),0==t&&i.push(l.title||""),n.push('"'+u(l,o,a,"text")+'"')}}),l.push(n.join(","))}),layui.each(a.dataTotal,function(e,t){n.push(t)}),i.join(",")+"\r\n"+l.join("\r\n")+"\r\n"+n.join(",")}()),s.download=(l.title||"table_"+(l.index||""))+"."+i,document.body.appendChild(s),s.click(),void document.body.removeChild(s))},d.resize=function(e){if(e){var t=s(e);if(!t)return;c.that[e].resize()}else layui.each(c.that,function(){this.resize()})},d.reload=function(e,t){var i=s(e);if(i){var a=c.that[e];return a.reload(t),c.call(a)}},d.render=function(e){var t=new j(e);return c.call(t)},d.clearCacheKey=function(e){return e=t.extend({},e),delete e[d.config.checkName],delete e[d.config.indexName],e},d.init(),e(y,d)});layui.define("jquery",function(e){"use strict";var i=layui.$,n=(layui.hint(),layui.device(),{config:{},set:function(e){var n=this;return n.config=i.extend({},n.config,e),n},on:function(e,i){return layui.onevent.call(this,t,e,i)}}),t="carousel",a="layui-this",l=">*[carousel-item]>*",o="layui-carousel-left",r="layui-carousel-right",d="layui-carousel-prev",s="layui-carousel-next",u="layui-carousel-arrow",c="layui-carousel-ind",m=function(e){var t=this;t.config=i.extend({},t.config,n.config,e),t.render()};m.prototype.config={width:"600px",height:"280px",full:!1,arrow:"hover",indicator:"inside",autoplay:!0,interval:3e3,anim:"",trigger:"click",index:0},m.prototype.render=function(){var e=this,n=e.config;n.elem=i(n.elem),n.elem[0]&&(e.elemItem=n.elem.find(l),n.index<0&&(n.index=0),n.index>=e.elemItem.length&&(n.index=e.elemItem.length-1),n.interval<800&&(n.interval=800),n.full?n.elem.css({position:"fixed",width:"100%",height:"100%",zIndex:9999}):n.elem.css({width:n.width,height:n.height}),n.elem.attr("lay-anim",n.anim),e.elemItem.eq(n.index).addClass(a),e.elemItem.length<=1||(e.indicator(),e.arrow(),e.autoplay(),e.events()))},m.prototype.reload=function(e){var n=this;clearInterval(n.timer),n.config=i.extend({},n.config,e),n.render()},m.prototype.prevIndex=function(){var e=this,i=e.config,n=i.index-1;return n<0&&(n=e.elemItem.length-1),n},m.prototype.nextIndex=function(){var e=this,i=e.config,n=i.index+1;return n>=e.elemItem.length&&(n=0),n},m.prototype.addIndex=function(e){var i=this,n=i.config;e=e||1,n.index=n.index+e,n.index>=i.elemItem.length&&(n.index=0)},m.prototype.subIndex=function(e){var i=this,n=i.config;e=e||1,n.index=n.index-e,n.index<0&&(n.index=i.elemItem.length-1)},m.prototype.autoplay=function(){var e=this,i=e.config;i.autoplay&&(clearInterval(e.timer),e.timer=setInterval(function(){e.slide()},i.interval))},m.prototype.arrow=function(){var e=this,n=e.config,t=i(['",'"].join(""));n.elem.attr("lay-arrow",n.arrow),n.elem.find("."+u)[0]&&n.elem.find("."+u).remove(),n.elem.append(t),t.on("click",function(){var n=i(this),t=n.attr("lay-type");e.slide(t)})},m.prototype.indicator=function(){var e=this,n=e.config,t=e.elemInd=i(['
                    ',function(){var i=[];return layui.each(e.elemItem,function(e){i.push("")}),i.join("")}(),"
                  "].join(""));n.elem.attr("lay-indicator",n.indicator),n.elem.find("."+c)[0]&&n.elem.find("."+c).remove(),n.elem.append(t),"updown"===n.anim&&t.css("margin-top",-(t.height()/2)),t.find("li").on("hover"===n.trigger?"mouseover":n.trigger,function(){var t=i(this),a=t.index();a>n.index?e.slide("add",a-n.index):a",u=1;u<=i.length;u++){var r='
                • ";i.half&&parseInt(i.value)!==i.value&&u==Math.ceil(i.value)?n=n+'
                • ":n+=r}n+=""+(i.text?''+i.value+"星":"")+"";var c=i.elem,f=c.next("."+t);f[0]&&f.remove(),e.elemTemp=a(n),i.span=e.elemTemp.next("span"),i.setText&&i.setText(i.value),c.html(e.elemTemp),c.addClass("layui-inline"),i.readonly||e.action()},v.prototype.setvalue=function(e){var a=this,i=a.config;i.value=e,a.render()},v.prototype.action=function(){var e=this,i=e.config,l=e.elemTemp,n=l.find("i").width();l.children("li").each(function(e){var t=e+1,v=a(this);v.on("click",function(e){if(i.value=t,i.half){var o=e.pageX-a(this).offset().left;o<=n/2&&(i.value=i.value-.5)}i.text&&l.next("span").text(i.value+"星"),i.choose&&i.choose(i.value),i.setText&&i.setText(i.value)}),v.on("mousemove",function(e){if(l.find("i").each(function(){a(this).addClass(o).removeClass(r)}),l.find("i:lt("+t+")").each(function(){a(this).addClass(s).removeClass(f)}),i.half){var c=e.pageX-a(this).offset().left;c<=n/2&&v.children("i").addClass(u).removeClass(s)}}),v.on("mouseleave",function(){l.find("i").each(function(){a(this).addClass(o).removeClass(r)}),l.find("i:lt("+Math.floor(i.value)+")").each(function(){a(this).addClass(s).removeClass(f)}),i.half&&parseInt(i.value)!==i.value&&l.children("li:eq("+Math.floor(i.value)+")").children("i").addClass(u).removeClass(c)})})},v.prototype.events=function(){var e=this;e.config},i.render=function(e){var a=new v(e);return l.call(a)},e(n,i)});layui.define("jquery",function(t){"use strict";var e=layui.$,i={fixbar:function(t){var i,n,a="layui-fixbar",o="layui-fixbar-top",r=e(document),l=e("body");t=e.extend({showHeight:200},t),t.bar1=t.bar1===!0?"":t.bar1,t.bar2=t.bar2===!0?"":t.bar2,t.bgcolor=t.bgcolor?"background-color:"+t.bgcolor:"";var c=[t.bar1,t.bar2,""],g=e(['
                    ',t.bar1?'
                  • '+c[0]+"
                  • ":"",t.bar2?'
                  • '+c[1]+"
                  • ":"",'
                  • '+c[2]+"
                  • ","
                  "].join("")),s=g.find("."+o),u=function(){var e=r.scrollTop();e>=t.showHeight?i||(s.show(),i=1):i&&(s.hide(),i=0)};e("."+a)[0]||("object"==typeof t.css&&g.css(t.css),l.append(g),u(),g.find("li").on("click",function(){var i=e(this),n=i.attr("lay-type");"top"===n&&e("html,body").animate({scrollTop:0},200),t.click&&t.click.call(this,n)}),r.on("scroll",function(){clearTimeout(n),n=setTimeout(function(){u()},100)}))},countdown:function(t,e,i){var n=this,a="function"==typeof e,o=new Date(t).getTime(),r=new Date(!e||a?(new Date).getTime():e).getTime(),l=o-r,c=[Math.floor(l/864e5),Math.floor(l/36e5)%24,Math.floor(l/6e4)%60,Math.floor(l/1e3)%60];a&&(i=e);var g=setTimeout(function(){n.countdown(t,r+1e3,i)},1e3);return i&&i(l>0?c:[0,0,0,0],e,g),l<=0&&clearTimeout(g),g},timeAgo:function(t,e){var i=this,n=[[],[]],a=(new Date).getTime()-new Date(t).getTime();return a>6912e5?(a=new Date(t),n[0][0]=i.digit(a.getFullYear(),4),n[0][1]=i.digit(a.getMonth()+1),n[0][2]=i.digit(a.getDate()),e||(n[1][0]=i.digit(a.getHours()),n[1][1]=i.digit(a.getMinutes()),n[1][2]=i.digit(a.getSeconds())),n[0].join("-")+" "+n[1].join(":")):a>=864e5?(a/1e3/60/60/24|0)+"天前":a>=36e5?(a/1e3/60/60|0)+"小时前":a>=12e4?(a/1e3/60|0)+"分钟前":a<0?"未来":"刚刚"},digit:function(t,e){var i="";t=String(t),e=e||2;for(var n=t.length;n/g,">").replace(/'/g,"'").replace(/"/g,""")},event:function(t,n,a){n=i.event[t]=e.extend(!0,i.event[t],n)||{},e("body").on(a||"click","*["+t+"]",function(){var i=e(this),a=i.attr(t);n[a]&&n[a].call(this,i)})}};!function(t,e,i){"$:nomunge";function n(){a=e[l](function(){o.each(function(){var e=t(this),i=e.width(),n=e.height(),a=t.data(this,g);(i!==a.w||n!==a.h)&&e.trigger(c,[a.w=i,a.h=n])}),n()},r[s])}var a,o=t([]),r=t.resize=t.extend(t.resize,{}),l="setTimeout",c="resize",g=c+"-special-event",s="delay",u="throttleWindow";r[s]=250,r[u]=!0,t.event.special[c]={setup:function(){if(!r[u]&&this[l])return!1;var e=t(this);o=o.add(e),t.data(this,g,{w:e.width(),h:e.height()}),1===o.length&&n()},teardown:function(){if(!r[u]&&this[l])return!1;var e=t(this);o=o.not(e),e.removeData(g),o.length||clearTimeout(a)},add:function(e){function n(e,n,o){var r=t(this),l=t.data(this,g)||{};l.w=n!==i?n:r.width(),l.h=o!==i?o:r.height(),a.apply(this,arguments)}if(!r[u]&&this[l])return!1;var a;return t.isFunction(e)?(a=e,n):(a=e.handler,void(e.handler=n))}}}(e,window),t("util",i)});layui.define("jquery",function(e){"use strict";var l=layui.$,o=function(e){},t='';o.prototype.load=function(e){var o,i,n,r,a=this,c=0;e=e||{};var f=l(e.elem);if(f[0]){var m=l(e.scrollElem||document),u=e.mb||50,s=!("isAuto"in e)||e.isAuto,v=e.end||"没有更多了",y=e.scrollElem&&e.scrollElem!==document,d="加载更多",h=l('");f.find(".layui-flow-more")[0]||f.append(h);var p=function(e,t){e=l(e),h.before(e),t=0==t||null,t?h.html(v):h.find("a").html(d),i=t,o=null,n&&n()},g=function(){o=!0,h.find("a").html(t),"function"==typeof e.done&&e.done(++c,p)};if(g(),h.find("a").on("click",function(){l(this);i||o||g()}),e.isLazyimg)var n=a.lazyimg({elem:e.elem+" img",scrollElem:e.scrollElem});return s?(m.on("scroll",function(){var e=l(this),t=e.scrollTop();r&&clearTimeout(r),i||(r=setTimeout(function(){var i=y?e.height():l(window).height(),n=y?e.prop("scrollHeight"):document.documentElement.scrollHeight;n-t-i<=u&&(o||g())},100))}),a):a}},o.prototype.lazyimg=function(e){var o,t=this,i=0;e=e||{};var n=l(e.scrollElem||document),r=e.elem||"img",a=e.scrollElem&&e.scrollElem!==document,c=function(e,l){var o=n.scrollTop(),r=o+l,c=a?function(){return e.offset().top-n.offset().top+o}():e.offset().top;if(c>=o&&c<=r&&!e.attr("src")){var m=e.attr("lay-src");layui.img(m,function(){var l=t.lazyimg.elem.eq(i);e.attr("src",m).removeAttr("lay-src"),l[0]&&f(l),i++})}},f=function(e,o){var f=a?(o||n).height():l(window).height(),m=n.scrollTop(),u=m+f;if(t.lazyimg.elem=l(r),e)c(e,f);else for(var s=0;su)break}};if(f(),!o){var m;n.on("scroll",function(){var e=l(this);m&&clearTimeout(m),m=setTimeout(function(){f(null,e)},50)}),o=!0}return f},e("flow",new o)});layui.define(["layer","form"],function(t){"use strict";var e=layui.$,i=layui.layer,a=layui.form,l=(layui.hint(),layui.device()),n="layedit",o="layui-show",r="layui-disabled",c=function(){var t=this;t.index=0,t.config={tool:["strong","italic","underline","del","|","left","center","right","|","link","unlink","face","image"],hideTool:[],height:280}};c.prototype.set=function(t){var i=this;return e.extend(!0,i.config,t),i},c.prototype.on=function(t,e){return layui.onevent(n,t,e)},c.prototype.build=function(t,i){i=i||{};var a=this,n=a.config,r="layui-layedit",c=e("string"==typeof t?"#"+t:t),u="LAY_layedit_"+ ++a.index,d=c.next("."+r),y=e.extend({},n,i),f=function(){var t=[],e={};return layui.each(y.hideTool,function(t,i){e[i]=!0}),layui.each(y.tool,function(i,a){C[a]&&!e[a]&&t.push(C[a])}),t.join("")}(),m=e(['
                  ','
                  '+f+"
                  ",'
                  ','',"
                  ","
                  "].join(""));return l.ie&&l.ie<8?c.removeClass("layui-hide").addClass(o):(d[0]&&d.remove(),s.call(a,m,c[0],y),c.addClass("layui-hide").after(m),a.index)},c.prototype.getContent=function(t){var e=u(t);if(e[0])return d(e[0].document.body.innerHTML)},c.prototype.getText=function(t){var i=u(t);if(i[0])return e(i[0].document.body).text()},c.prototype.setContent=function(t,i,a){var l=u(t);l[0]&&(a?e(l[0].document.body).append(i):e(l[0].document.body).html(i),layedit.sync(t))},c.prototype.sync=function(t){var i=u(t);if(i[0]){var a=e("#"+i[1].attr("textarea"));a.val(d(i[0].document.body.innerHTML))}},c.prototype.getSelection=function(t){var e=u(t);if(e[0]){var i=m(e[0].document);return document.selection?i.text:i.toString()}};var s=function(t,i,a){var l=this,n=t.find("iframe");n.css({height:a.height}).on("load",function(){var o=n.contents(),r=n.prop("contentWindow"),c=o.find("head"),s=e([""].join("")),u=o.find("body");c.append(s),u.attr("contenteditable","true").css({"min-height":a.height}).html(i.value||""),y.apply(l,[r,n,i,a]),g.call(l,r,t,a)})},u=function(t){var i=e("#LAY_layedit_"+t),a=i.prop("contentWindow");return[a,i]},d=function(t){return 8==l.ie&&(t=t.replace(/<.+>/g,function(t){return t.toLowerCase()})),t},y=function(t,a,n,o){var r=t.document,c=e(r.body);c.on("keydown",function(t){var e=t.keyCode;if(13===e){var a=m(r),l=p(a),n=l.parentNode;if("pre"===n.tagName.toLowerCase()){if(t.shiftKey)return;return i.msg("请暂时用shift+enter"),!1}r.execCommand("formatBlock",!1,"

                  ")}}),e(n).parents("form").on("submit",function(){var t=c.html();8==l.ie&&(t=t.replace(/<.+>/g,function(t){return t.toLowerCase()})),n.value=t}),c.on("paste",function(e){r.execCommand("formatBlock",!1,"

                  "),setTimeout(function(){f.call(t,c),n.value=c.html()},100)})},f=function(t){var i=this;i.document;t.find("*[style]").each(function(){var t=this.style.textAlign;this.removeAttribute("style"),e(this).css({"text-align":t||""})}),t.find("table").addClass("layui-table"),t.find("script,link").remove()},m=function(t){return t.selection?t.selection.createRange():t.getSelection().getRangeAt(0)},p=function(t){return t.endContainer||t.parentElement().childNodes[0]},v=function(t,i,a){var l=this.document,n=document.createElement(t);for(var o in i)n.setAttribute(o,i[o]);if(n.removeAttribute("text"),l.selection){var r=a.text||i.text;if("a"===t&&!r)return;r&&(n.innerHTML=r),a.pasteHTML(e(n).prop("outerHTML")),a.select()}else{var r=a.toString()||i.text;if("a"===t&&!r)return;r&&(n.innerHTML=r),a.deleteContents(),a.insertNode(n)}},h=function(t,i){var a=this.document,l="layedit-tool-active",n=p(m(a)),o=function(e){return t.find(".layedit-tool-"+e)};i&&i[i.hasClass(l)?"removeClass":"addClass"](l),t.find(">i").removeClass(l),o("unlink").addClass(r),e(n).parents().each(function(){var t=this.tagName.toLowerCase(),e=this.style.textAlign;"b"!==t&&"strong"!==t||o("b").addClass(l),"i"!==t&&"em"!==t||o("i").addClass(l),"u"===t&&o("u").addClass(l),"strike"===t&&o("d").addClass(l),"p"===t&&("center"===e?o("center").addClass(l):"right"===e?o("right").addClass(l):o("left").addClass(l)),"a"===t&&(o("link").addClass(l),o("unlink").removeClass(r))})},g=function(t,a,l){var n=t.document,o=e(n.body),c={link:function(i){var a=p(i),l=e(a).parent();b.call(o,{href:l.attr("href"),target:l.attr("target")},function(e){var a=l[0];"A"===a.tagName?a.href=e.url:v.call(t,"a",{target:e.target,href:e.url,text:e.url},i)})},unlink:function(t){n.execCommand("unlink")},face:function(e){x.call(this,function(i){v.call(t,"img",{src:i.src,alt:i.alt},e)})},image:function(a){var n=this;layui.use("upload",function(o){var r=l.uploadImage||{};o.render({url:r.url,method:r.type,elem:e(n).find("input")[0],done:function(e){0==e.code?(e.data=e.data||{},v.call(t,"img",{src:e.data.src,alt:e.data.title},a)):i.msg(e.msg||"上传失败")}})})},code:function(e){k.call(o,function(i){v.call(t,"pre",{text:i.code,"lay-lang":i.lang},e)})},help:function(){i.open({type:2,title:"帮助",area:["600px","380px"],shadeClose:!0,shade:.1,skin:"layui-layer-msg",content:["http://www.layui.com/about/layedit/help.html","no"]})}},s=a.find(".layui-layedit-tool"),u=function(){var i=e(this),a=i.attr("layedit-event"),l=i.attr("lay-command");if(!i.hasClass(r)){o.focus();var u=m(n);u.commonAncestorContainer;l?(n.execCommand(l),/justifyLeft|justifyCenter|justifyRight/.test(l)&&n.execCommand("formatBlock",!1,"

                  "),setTimeout(function(){o.focus()},10)):c[a]&&c[a].call(this,u),h.call(t,s,i)}},d=/image/;s.find(">i").on("mousedown",function(){var t=e(this),i=t.attr("layedit-event");d.test(i)||u.call(this)}).on("click",function(){var t=e(this),i=t.attr("layedit-event");d.test(i)&&u.call(this)}),o.on("click",function(){h.call(t,s),i.close(x.index)})},b=function(t,e){var l=this,n=i.open({type:1,id:"LAY_layedit_link",area:"350px",shade:.05,shadeClose:!0,moveType:1,title:"超链接",skin:"layui-layer-msg",content:['

                    ','
                  • ','','
                    ','',"
                    ","
                  • ",'
                  • ','','
                    ','",'","
                    ","
                  • ",'
                  • ','','',"
                  • ","
                  "].join(""),success:function(t,n){var o="submit(layedit-link-yes)";a.render("radio"),t.find(".layui-btn-primary").on("click",function(){i.close(n),l.focus()}),a.on(o,function(t){i.close(b.index),e&&e(t.field)})}});b.index=n},x=function(t){var a=function(){var t=["[微笑]","[嘻嘻]","[哈哈]","[可爱]","[可怜]","[挖鼻]","[吃惊]","[害羞]","[挤眼]","[闭嘴]","[鄙视]","[爱你]","[泪]","[偷笑]","[亲亲]","[生病]","[太开心]","[白眼]","[右哼哼]","[左哼哼]","[嘘]","[衰]","[委屈]","[吐]","[哈欠]","[抱抱]","[怒]","[疑问]","[馋嘴]","[拜拜]","[思考]","[汗]","[困]","[睡]","[钱]","[失望]","[酷]","[色]","[哼]","[鼓掌]","[晕]","[悲伤]","[抓狂]","[黑线]","[阴险]","[怒骂]","[互粉]","[心]","[伤心]","[猪头]","[熊猫]","[兔子]","[ok]","[耶]","[good]","[NO]","[赞]","[来]","[弱]","[草泥马]","[神马]","[囧]","[浮云]","[给力]","[围观]","[威武]","[奥特曼]","[礼物]","[钟]","[话筒]","[蜡烛]","[蛋糕]"],e={};return layui.each(t,function(t,i){e[i]=layui.cache.dir+"images/face/"+t+".gif"}),e}();return x.hide=x.hide||function(t){"face"!==e(t.target).attr("layedit-event")&&i.close(x.index)},x.index=i.tips(function(){var t=[];return layui.each(a,function(e,i){t.push('
                • '+e+'
                • ')}),'
                    '+t.join("")+"
                  "}(),this,{tips:1,time:0,skin:"layui-box layui-util-face",maxWidth:500,success:function(l,n){l.css({marginTop:-4,marginLeft:-10}).find(".layui-clear>li").on("click",function(){t&&t({src:a[this.title],alt:this.title}),i.close(n)}),e(document).off("click",x.hide).on("click",x.hide)}})},k=function(t){var e=this,l=i.open({type:1,id:"LAY_layedit_code",area:"550px",shade:.05,shadeClose:!0,moveType:1,title:"插入代码",skin:"layui-layer-msg",content:['
                    ','
                  • ','','
                    ','","
                    ","
                  • ",'
                  • ','','
                    ','',"
                    ","
                  • ",'
                  • ','','',"
                  • ","
                  "].join(""),success:function(l,n){var o="submit(layedit-code-yes)";a.render("select"),l.find(".layui-btn-primary").on("click",function(){i.close(n),e.focus()}),a.on(o,function(e){i.close(k.index),t&&t(e.field)})}});k.index=l},C={html:'',strong:'',italic:'',underline:'',del:'',"|":'',left:'',center:'',right:'',link:'',unlink:'',face:'',image:'',code:'',help:''},w=new c;t(n,w)});layui.define("jquery",function(e){"use strict";var a=layui.$,l="http://www.layui.com/doc/modules/code.html";e("code",function(e){var t=[];e=e||{},e.elem=a(e.elem||".layui-code"),e.about=!("about"in e)||e.about,e.elem.each(function(){t.push(this)}),layui.each(t.reverse(),function(t,i){var c=a(i),o=c.html();(c.attr("lay-encode")||e.encode)&&(o=o.replace(/&(?!#?[a-zA-Z0-9]+;)/g,"&").replace(//g,">").replace(/'/g,"'").replace(/"/g,""")),c.html('
                  1. '+o.replace(/[\r\t\n]+/g,"
                  2. ")+"
                  "),c.find(">.layui-code-h3")[0]||c.prepend('

                  '+(c.attr("lay-title")||e.title||"code")+(e.about?'layui.code':"")+"

                  ");var d=c.find(">.layui-code-ol");c.addClass("layui-box layui-code-view"),(c.attr("lay-skin")||e.skin)&&c.addClass("layui-code-"+(c.attr("lay-skin")||e.skin)),(d.find("li").length/100|0)>0&&d.css("margin-left",(d.find("li").length/100|0)+"px"),(c.attr("lay-height")||e.height)&&d.css("max-height",c.attr("lay-height")||e.height)})})}).addcss("modules/code.css","skincodecss"); \ No newline at end of file diff --git a/public/static/res/layui/layui.js b/public/static/res/layui/layui.js new file mode 100644 index 0000000..4615b57 --- /dev/null +++ b/public/static/res/layui/layui.js @@ -0,0 +1,2 @@ +/** layui-v2.5.5 MIT License By https://www.layui.com */ + ;!function(e){"use strict";var t=document,o={modules:{},status:{},timeout:10,event:{}},n=function(){this.v="2.5.5"},r=function(){var e=t.currentScript?t.currentScript.src:function(){for(var e,o=t.scripts,n=o.length-1,r=n;r>0;r--)if("interactive"===o[r].readyState){e=o[r].src;break}return e||o[n].src}();return e.substring(0,e.lastIndexOf("/")+1)}(),i=function(t){e.console&&console.error&&console.error("Layui hint: "+t)},a="undefined"!=typeof opera&&"[object Opera]"===opera.toString(),u={layer:"modules/layer",laydate:"modules/laydate",laypage:"modules/laypage",laytpl:"modules/laytpl",layim:"modules/layim",layedit:"modules/layedit",form:"modules/form",upload:"modules/upload",transfer:"modules/transfer",tree:"modules/tree",table:"modules/table",element:"modules/element",rate:"modules/rate",colorpicker:"modules/colorpicker",slider:"modules/slider",carousel:"modules/carousel",flow:"modules/flow",util:"modules/util",code:"modules/code",jquery:"modules/jquery",mobile:"modules/mobile","layui.all":"../layui.all"};n.prototype.cache=o,n.prototype.define=function(e,t){var n=this,r="function"==typeof e,i=function(){var e=function(e,t){layui[e]=t,o.status[e]=!0};return"function"==typeof t&&t(function(n,r){e(n,r),o.callback[n]=function(){t(e)}}),this};return r&&(t=e,e=[]),!layui["layui.all"]&&layui["layui.mobile"]?i.call(n):(n.use(e,i),n)},n.prototype.use=function(e,n,l){function s(e,t){var n="PLaySTATION 3"===navigator.platform?/^complete$/:/^(complete|loaded)$/;("load"===e.type||n.test((e.currentTarget||e.srcElement).readyState))&&(o.modules[f]=t,d.removeChild(v),function r(){return++m>1e3*o.timeout/4?i(f+" is not a valid module"):void(o.status[f]?c():setTimeout(r,4))}())}function c(){l.push(layui[f]),e.length>1?y.use(e.slice(1),n,l):"function"==typeof n&&n.apply(layui,l)}var y=this,p=o.dir=o.dir?o.dir:r,d=t.getElementsByTagName("head")[0];e="string"==typeof e?[e]:e,window.jQuery&&jQuery.fn.on&&(y.each(e,function(t,o){"jquery"===o&&e.splice(t,1)}),layui.jquery=layui.$=jQuery);var f=e[0],m=0;if(l=l||[],o.host=o.host||(p.match(/\/\/([\s\S]+?)\//)||["//"+location.host+"/"])[0],0===e.length||layui["layui.all"]&&u[f]||!layui["layui.all"]&&layui["layui.mobile"]&&u[f])return c(),y;if(o.modules[f])!function g(){return++m>1e3*o.timeout/4?i(f+" is not a valid module"):void("string"==typeof o.modules[f]&&o.status[f]?c():setTimeout(g,4))}();else{var v=t.createElement("script"),h=(u[f]?p+"lay/":/^\{\/\}/.test(y.modules[f])?"":o.base||"")+(y.modules[f]||f)+".js";h=h.replace(/^\{\/\}/,""),v.async=!0,v.charset="utf-8",v.src=h+function(){var e=o.version===!0?o.v||(new Date).getTime():o.version||"";return e?"?v="+e:""}(),d.appendChild(v),!v.attachEvent||v.attachEvent.toString&&v.attachEvent.toString().indexOf("[native code")<0||a?v.addEventListener("load",function(e){s(e,h)},!1):v.attachEvent("onreadystatechange",function(e){s(e,h)}),o.modules[f]=h}return y},n.prototype.getStyle=function(t,o){var n=t.currentStyle?t.currentStyle:e.getComputedStyle(t,null);return n[n.getPropertyValue?"getPropertyValue":"getAttribute"](o)},n.prototype.link=function(e,n,r){var a=this,u=t.createElement("link"),l=t.getElementsByTagName("head")[0];"string"==typeof n&&(r=n);var s=(r||e).replace(/\.|\//g,""),c=u.id="layuicss-"+s,y=0;return u.rel="stylesheet",u.href=e+(o.debug?"?v="+(new Date).getTime():""),u.media="all",t.getElementById(c)||l.appendChild(u),"function"!=typeof n?a:(function p(){return++y>1e3*o.timeout/100?i(e+" timeout"):void(1989===parseInt(a.getStyle(t.getElementById(c),"width"))?function(){n()}():setTimeout(p,100))}(),a)},o.callback={},n.prototype.factory=function(e){if(layui[e])return"function"==typeof o.callback[e]?o.callback[e]:null},n.prototype.addcss=function(e,t,n){return layui.link(o.dir+"css/"+e,t,n)},n.prototype.img=function(e,t,o){var n=new Image;return n.src=e,n.complete?t(n):(n.onload=function(){n.onload=null,"function"==typeof t&&t(n)},void(n.onerror=function(e){n.onerror=null,"function"==typeof o&&o(e)}))},n.prototype.config=function(e){e=e||{};for(var t in e)o[t]=e[t];return this},n.prototype.modules=function(){var e={};for(var t in u)e[t]=u[t];return e}(),n.prototype.extend=function(e){var t=this;e=e||{};for(var o in e)t[o]||t.modules[o]?i("模块名 "+o+" 已被占用"):t.modules[o]=e[o];return t},n.prototype.router=function(e){var t=this,e=e||location.hash,o={path:[],search:{},hash:(e.match(/[^#](#.*$)/)||[])[1]||""};return/^#\//.test(e)?(e=e.replace(/^#\//,""),o.href="/"+e,e=e.replace(/([^#])(#.*$)/,"$1").split("/")||[],t.each(e,function(e,t){/^\w+=/.test(t)?function(){t=t.split("="),o.search[t[0]]=t[1]}():o.path.push(t)}),o):o},n.prototype.data=function(t,o,n){if(t=t||"layui",n=n||localStorage,e.JSON&&e.JSON.parse){if(null===o)return delete n[t];o="object"==typeof o?o:{key:o};try{var r=JSON.parse(n[t])}catch(i){var r={}}return"value"in o&&(r[o.key]=o.value),o.remove&&delete r[o.key],n[t]=JSON.stringify(r),o.key?r[o.key]:r}},n.prototype.sessionData=function(e,t){return this.data(e,t,sessionStorage)},n.prototype.device=function(t){var o=navigator.userAgent.toLowerCase(),n=function(e){var t=new RegExp(e+"/([^\\s\\_\\-]+)");return e=(o.match(t)||[])[1],e||!1},r={os:function(){return/windows/.test(o)?"windows":/linux/.test(o)?"linux":/iphone|ipod|ipad|ios/.test(o)?"ios":/mac/.test(o)?"mac":void 0}(),ie:function(){return!!(e.ActiveXObject||"ActiveXObject"in e)&&((o.match(/msie\s(\d+)/)||[])[1]||"11")}(),weixin:n("micromessenger")};return t&&!r[t]&&(r[t]=n(t)),r.android=/android/.test(o),r.ios="ios"===r.os,r},n.prototype.hint=function(){return{error:i}},n.prototype.each=function(e,t){var o,n=this;if("function"!=typeof t)return n;if(e=e||[],e.constructor===Object){for(o in e)if(t.call(e[o],o,e[o]))break}else for(o=0;oi?1:r'); + }); + +/** + * 清除缓存 + */ +$('#clear-cache').click(function(){ + var _url = $(this).data('url'); + if (_url !== 'undefined') { + $.ajax({ + url: _url, + type: "get",//支持php6 + success: function (data) { + if (data.code === 1) { + setTimeout(function () { + location.href = location.pathname; + }, 1000); + } + layer.msg(data.msg); + } + }); + } + return false; +}); diff --git a/public/static/res/mods/case.js b/public/static/res/mods/case.js new file mode 100644 index 0000000..e939a2c --- /dev/null +++ b/public/static/res/mods/case.js @@ -0,0 +1,165 @@ +/** + + @Name: 案例 + + */ + +layui.define(['laypage', 'fly'], function(exports){ + + var $ = layui.jquery; + var layer = layui.layer; + var util = layui.util; + var laytpl = layui.laytpl; + var form = layui.form; + var laypage = layui.laypage; + var upload = layui.upload; + var fly = layui.fly; + var device = layui.device(); + + + //求解管理 + var active = { + //提交案例 + push: function(div){ + layer.open({ + type: 1 + ,id: 'LAY_pushcase' + ,title: '提交案例' + ,area: (device.ios || device.android) ? ($(window).width() + 'px') : '660px' + ,content: ['
                    ' + ,'
                  • ' + ,'' + ,'
                    ' + ,'' + ,'
                    ' + ,'
                  • ' + ,'
                  • ' + ,'' + ,'
                    ' + ,'' + ,'
                    ' + ,'
                  • ' + ,'
                  • ' + ,'' + ,'
                    ' + ,'' + ,'
                    ' + ,'
                  • ' + ,'
                  • ' + ,'' + ,'
                    ' + ,'' + ,'' + ,'
                    ' + ,'
                    推荐尺寸:478*300,大小不能超过 30kb
                    ' + ,'
                  • ' + ,'
                  • ' + ,'' + ,'
                    ' + ,'' + ,'
                    ' + ,'
                  • ' + ,'
                  • ' + ,'
                    ' + ,'' + ,'
                    ' + ,'
                  • ' + ,'
                  '].join('') + ,success: function(layero, index){ + var image = layero.find('.fly-case-image') + ,preview = $('#preview'); + + upload.render({ + url: '/api/upload/case/' + ,elem: '#caseUpload' + ,size: 30 + ,done: function(res){ + if(res.status == 0){ + image.val(res.url); + preview.html('封面已上传,点击可预览'); + } else { + layer.msg(res.msg, {icon: 5}); + } + } + }); + + form.render('checkbox').on('submit(pushCase)', function(data){ + if(!data.field.agree){ + return layer.tips('你需要同意才能提交', $('#agree').next(), {tips: 1}); + } + + fly.json('/case/push/', data.field, function(res){ + layer.close(index); + layer.alert(res.msg, { + icon: 1 + }) + }); + }); + } + }); + } + + //点赞 + ,praise: function(othis){ + var li = othis.parents('li') + ,PRIMARY = 'layui-btn-primary' + ,unpraise = !othis.hasClass(PRIMARY) + ,numElem = li.find('.fly-case-nums') + + fly.json('/case/praise/', { + id: li.data('id') + ,unpraise: unpraise ? true : null + }, function(res){ + numElem.html(res.praise); + if(unpraise){ + othis.addClass(PRIMARY).html('点赞'); + layer.tips('少了个赞囖', numElem, { + tips: 1 + }); + } else { + othis.removeClass(PRIMARY).html('已赞'); + layer.tips('成功获得个赞', numElem, { + tips: [1, '#FF5722'] + }); + } + }); + } + + //查看点赞用户 + ,showPraise: function(othis){ + var li = othis.parents('li'); + if(othis.html() == 0) return layer.tips('该项目还没有收到赞', othis, { + tips: 1 + }); + fly.json('/case/praise_user/', { + id: li.data('id') + }, function(res){ + var html = ''; + layer.open({ + type: 1 + ,title: '项目【'+ res.title + '】获得的赞' + ,id: 'LAY_showPraise' + ,shade: 0.8 + ,shadeClose: true + ,area: '305px' + ,skin: 'layer-ext-case' + ,content: function(){ + layui.each(res.data, function(_, item){ + html += '
                • ' + }); + return '
                    ' + html + '
                  '; + }() + }) + }); + } + }; + + $('body').on('click', '.fly-case-active', function(){ + var othis = $(this), type = othis.data('type'); + active[type] && active[type].call(this, othis); + }); + + exports('case', {}); +}); \ No newline at end of file diff --git a/public/static/res/mods/face.js b/public/static/res/mods/face.js new file mode 100644 index 0000000..00272e3 --- /dev/null +++ b/public/static/res/mods/face.js @@ -0,0 +1,9 @@ + + +layui.define(function(exports){ + + var face = {"[微笑]":"http://img.t.sinajs.cn/t4/appstyle/expression/ext/normal/5c/huanglianwx_thumb.gif","[嘻嘻]":"http://img.t.sinajs.cn/t4/appstyle/expression/ext/normal/0b/tootha_thumb.gif","[哈哈]":"http://img.t.sinajs.cn/t4/appstyle/expression/ext/normal/6a/laugh.gif","[可爱]":"http://img.t.sinajs.cn/t4/appstyle/expression/ext/normal/14/tza_thumb.gif","[可怜]":"http://img.t.sinajs.cn/t4/appstyle/expression/ext/normal/af/kl_thumb.gif","[挖鼻]":"http://img.t.sinajs.cn/t4/appstyle/expression/ext/normal/0b/wabi_thumb.gif","[吃惊]":"http://img.t.sinajs.cn/t4/appstyle/expression/ext/normal/f4/cj_thumb.gif","[害羞]":"http://img.t.sinajs.cn/t4/appstyle/expression/ext/normal/6e/shamea_thumb.gif","[挤眼]":"http://img.t.sinajs.cn/t4/appstyle/expression/ext/normal/c3/zy_thumb.gif","[闭嘴]":"http://img.t.sinajs.cn/t4/appstyle/expression/ext/normal/29/bz_thumb.gif","[鄙视]":"http://img.t.sinajs.cn/t4/appstyle/expression/ext/normal/71/bs2_thumb.gif","[爱你]":"http://img.t.sinajs.cn/t4/appstyle/expression/ext/normal/6d/lovea_thumb.gif","[泪]":"http://img.t.sinajs.cn/t4/appstyle/expression/ext/normal/9d/sada_thumb.gif","[偷笑]":"http://img.t.sinajs.cn/t4/appstyle/expression/ext/normal/19/heia_thumb.gif","[亲亲]":"http://img.t.sinajs.cn/t4/appstyle/expression/ext/normal/8f/qq_thumb.gif","[生病]":"http://img.t.sinajs.cn/t4/appstyle/expression/ext/normal/b6/sb_thumb.gif","[太开心]":"http://img.t.sinajs.cn/t4/appstyle/expression/ext/normal/58/mb_thumb.gif","[白眼]":"http://img.t.sinajs.cn/t4/appstyle/expression/ext/normal/d9/landeln_thumb.gif","[右哼哼]":"http://img.t.sinajs.cn/t4/appstyle/expression/ext/normal/98/yhh_thumb.gif","[左哼哼]":"http://img.t.sinajs.cn/t4/appstyle/expression/ext/normal/6d/zhh_thumb.gif","[嘘]":"http://img.t.sinajs.cn/t4/appstyle/expression/ext/normal/a6/x_thumb.gif","[衰]":"http://img.t.sinajs.cn/t4/appstyle/expression/ext/normal/af/cry.gif","[委屈]":"http://img.t.sinajs.cn/t4/appstyle/expression/ext/normal/73/wq_thumb.gif","[吐]":"http://img.t.sinajs.cn/t4/appstyle/expression/ext/normal/9e/t_thumb.gif","[哈欠]":"http://img.t.sinajs.cn/t4/appstyle/expression/ext/normal/cc/haqianv2_thumb.gif","[抱抱]":"http://img.t.sinajs.cn/t4/appstyle/expression/ext/normal/27/bba_thumb.gif","[怒]":"http://img.t.sinajs.cn/t4/appstyle/expression/ext/normal/7c/angrya_thumb.gif","[疑问]":"http://img.t.sinajs.cn/t4/appstyle/expression/ext/normal/5c/yw_thumb.gif","[馋嘴]":"http://img.t.sinajs.cn/t4/appstyle/expression/ext/normal/a5/cza_thumb.gif","[拜拜]":"http://img.t.sinajs.cn/t4/appstyle/expression/ext/normal/70/88_thumb.gif","[思考]":"http://img.t.sinajs.cn/t4/appstyle/expression/ext/normal/e9/sk_thumb.gif","[汗]":"http://img.t.sinajs.cn/t4/appstyle/expression/ext/normal/24/sweata_thumb.gif","[困]":"http://img.t.sinajs.cn/t4/appstyle/expression/ext/normal/40/kunv2_thumb.gif","[睡]":"http://img.t.sinajs.cn/t4/appstyle/expression/ext/normal/96/huangliansj_thumb.gif","[钱]":"http://img.t.sinajs.cn/t4/appstyle/expression/ext/normal/90/money_thumb.gif","[失望]":"http://img.t.sinajs.cn/t4/appstyle/expression/ext/normal/0c/sw_thumb.gif","[酷]":"http://img.t.sinajs.cn/t4/appstyle/expression/ext/normal/40/cool_thumb.gif","[色]":"http://img.t.sinajs.cn/t4/appstyle/expression/ext/normal/20/huanglianse_thumb.gif","[哼]":"http://img.t.sinajs.cn/t4/appstyle/expression/ext/normal/49/hatea_thumb.gif","[鼓掌]":"http://img.t.sinajs.cn/t4/appstyle/expression/ext/normal/36/gza_thumb.gif","[晕]":"http://img.t.sinajs.cn/t4/appstyle/expression/ext/normal/d9/dizzya_thumb.gif","[悲伤]":"http://img.t.sinajs.cn/t4/appstyle/expression/ext/normal/1a/bs_thumb.gif","[抓狂]":"http://img.t.sinajs.cn/t4/appstyle/expression/ext/normal/62/crazya_thumb.gif","[黑线]":"http://img.t.sinajs.cn/t4/appstyle/expression/ext/normal/91/h_thumb.gif","[阴险]":"http://img.t.sinajs.cn/t4/appstyle/expression/ext/normal/6d/yx_thumb.gif","[怒骂]":"http://img.t.sinajs.cn/t4/appstyle/expression/ext/normal/60/numav2_thumb.gif","[互粉]":"http://img.t.sinajs.cn/t4/appstyle/expression/ext/normal/89/hufen_thumb.gif","[心]":"http://img.t.sinajs.cn/t4/appstyle/expression/ext/normal/40/hearta_thumb.gif","[伤心]":"http://img.t.sinajs.cn/t4/appstyle/expression/ext/normal/ea/unheart.gif","[猪头]":"http://img.t.sinajs.cn/t4/appstyle/expression/ext/normal/58/pig.gif","[熊猫]":"http://img.t.sinajs.cn/t4/appstyle/expression/ext/normal/6e/panda_thumb.gif","[兔子]":"http://img.t.sinajs.cn/t4/appstyle/expression/ext/normal/81/rabbit_thumb.gif","[ok]":"http://img.t.sinajs.cn/t4/appstyle/expression/ext/normal/d6/ok_thumb.gif","[耶]":"http://img.t.sinajs.cn/t4/appstyle/expression/ext/normal/d9/ye_thumb.gif","[good]":"http://img.t.sinajs.cn/t4/appstyle/expression/ext/normal/d8/good_thumb.gif","[NO]":"http://img.t.sinajs.cn/t4/appstyle/expression/ext/normal/ae/buyao_org.gif","[赞]":"http://img.t.sinajs.cn/t4/appstyle/expression/ext/normal/d0/z2_thumb.gif","[来]":"http://img.t.sinajs.cn/t4/appstyle/expression/ext/normal/40/come_thumb.gif","[弱]":"http://img.t.sinajs.cn/t4/appstyle/expression/ext/normal/d8/sad_thumb.gif","[草泥马]":"http://img.t.sinajs.cn/t4/appstyle/expression/ext/normal/7a/shenshou_thumb.gif","[神马]":"http://img.t.sinajs.cn/t4/appstyle/expression/ext/normal/60/horse2_thumb.gif","[囧]":"http://img.t.sinajs.cn/t4/appstyle/expression/ext/normal/15/j_thumb.gif","[浮云]":"http://img.t.sinajs.cn/t4/appstyle/expression/ext/normal/bc/fuyun_thumb.gif","[给力]":"http://img.t.sinajs.cn/t4/appstyle/expression/ext/normal/1e/geiliv2_thumb.gif","[围观]":"http://img.t.sinajs.cn/t4/appstyle/expression/ext/normal/f2/wg_thumb.gif","[威武]":"http://img.t.sinajs.cn/t4/appstyle/expression/ext/normal/70/vw_thumb.gif","[奥特曼]":"http://img.t.sinajs.cn/t4/appstyle/expression/ext/normal/bc/otm_thumb.gif","[礼物]":"http://img.t.sinajs.cn/t4/appstyle/expression/ext/normal/c4/liwu_thumb.gif","[钟]":"http://img.t.sinajs.cn/t4/appstyle/expression/ext/normal/d3/clock_thumb.gif","[话筒]":"http://img.t.sinajs.cn/t4/appstyle/expression/ext/normal/9f/huatongv2_thumb.gif","[蜡烛]":"http://img.t.sinajs.cn/t4/appstyle/expression/ext/normal/d9/lazhuv2_thumb.gif","[蛋糕]":"http://img.t.sinajs.cn/t4/appstyle/expression/ext/normal/3a/cakev2_thumb.gif"}; + + exports('face', face); + +}); \ No newline at end of file diff --git a/public/static/res/mods/global.js b/public/static/res/mods/global.js new file mode 100644 index 0000000..5a60b48 --- /dev/null +++ b/public/static/res/mods/global.js @@ -0,0 +1,163 @@ + +/** + * JS主入口 + */ +var $ = layui.jquery, + layer = layui.layer, + laydate = layui.laydate, + form = layui.form; + upload = layui.upload; +/** + * AJAX全局设置 + */ +$.ajaxSetup({ + type: "post", + dataType: "json" +}); + +/** + * 通用单图上传 + */ + +upload.render({ + elem: '#test1', + url: '/api.php/upload/upload', + size:100, + done: function(res){ + //如果上传失败 + if(res.code > 0){ + return layer.msg('上传失败'); + } + //上传成功 + layer.msg("上传成功"); + $("#thumb").val(res.data); + } +}); + +/*layui.upload({ + url: "/index.php/api/upload/upload", + type: 'image', + ext: 'jpg|png|gif|bmp', + success: function (data) { + if (data.error === 0) { + document.getElementById('thumb').value = data.url; + } else { + layer.msg(data.message); + } + } +});*/ + +/** + * 通用日期时间选择 + */ +$('.datetime').on('click', function () { + laydate({ + elem: this, + istime: true, + format: 'YYYY-MM-DD hh:mm:ss' + }) +}); + +/** + * 通用表单提交(AJAX方式) + */ +form.on('submit(*)', function (data) { + $.ajax({ + url: data.form.action, + type: data.form.method, + data: $(data.form).serialize(), + success: function (info) { + if (info.code === 1) { + setTimeout(function () { + location.href = info.url; + }, 1000); + } + layer.msg(info.msg); + } + }); + + return false; +}); + +/** + * 通用批量处理(审核、取消审核、删除) + */ +$('.ajax-action').on('click', function () { + var _action = $(this).data('action'); + layer.open({ + shade: false, + content: '确定执行此操作?', + btn: ['确定', '取消'], + yes: function (index) { + $.ajax({ + url: _action, + data: $('.ajax-form').serialize(), + success: function (info) { + if (info.code === 1) { + setTimeout(function () { + location.href = info.url; + }, 1000); + } + layer.msg(info.msg); + } + }); + layer.close(index); + } + }); + + return false; +}); + +/** + * 通用全选 + */ +$('.check-all').on('click', function () { + $(this).parents('table').find('input[type="checkbox"]').prop('checked', $(this).prop('checked')); +}); + +/** + * 通用删除 + */ +$('.ajax-delete').on('click', function () { + var _href = $(this).attr('href'); + layer.open({ + shade: false, + content: '确定删除?', + btn: ['确定', '取消'], + yes: function (index) { + $.ajax({ + url: _href, + type: "get", + success: function (info) { + if (info.code === 1) { + setTimeout(function () { + location.href = info.url; + }, 1000); + } + layer.msg(info.msg); + } + }); + layer.close(index); + } + }); + + return false; +}); +/** + * 通用弹出消息并跳转 + */ + $('.action').on('click', function () { + var _href = $(this).data("url"); + $.ajax({ + url: _href, + type: "get", + success: function (info) { + if (info.code === 1) { + setTimeout(function () { + location.href = info.url; + }, 1000); + } + layer.msg(info.msg); + } + }); +}); diff --git a/public/static/res/mods/hm.js b/public/static/res/mods/hm.js new file mode 100644 index 0000000..fcd8688 --- /dev/null +++ b/public/static/res/mods/hm.js @@ -0,0 +1,67 @@ +(function(){var h={},mt={},c={id:"d214947968792b839fd669a4decaaffc",dm:["layui.com"],js:"tongji.baidu.com/hm-web/js/",etrk:[],icon:'',ctrk:true,align:0,nv:-1,vdur:1800000,age:31536000000,rec:0,rp:[],trust:0,vcard:0,qiao:0,lxb:0,kbtrk:0,pt:0,aet:'',hca:'237B4F067C8485F6',conv:0,med:0,cvcc:'',cvcf:[],apps:''};var s=void 0,t=!0,u=null,v=!1;mt.cookie={};mt.cookie.set=function(b,a,f){var d;f.D&&(d=new Date,d.setTime(d.getTime()+f.D));document.cookie=b+"="+a+(f.domain?"; domain="+f.domain:"")+(f.path?"; path="+f.path:"")+(d?"; expires="+d.toGMTString():"")+(f.Xb?"; secure":"")};mt.cookie.get=function(b){return(b=RegExp("(^| )"+b+"=([^;]*)(;|$)").exec(document.cookie))?b[2]:u}; +mt.cookie.vb=function(b,a){try{var f="Hm_ck_"+ +new Date;mt.cookie.set(f,"is-cookie-enabled",{domain:b,path:a,D:s});var d="is-cookie-enabled"===mt.cookie.get(f)?"1":"0";mt.cookie.set(f,"",{domain:b,path:a,D:-1});return d}catch(g){return"0"}};mt.lang={};mt.lang.d=function(b,a){return"[object "+a+"]"==={}.toString.call(b)};mt.lang.wa=function(b){return mt.lang.d(b,"Number")&&isFinite(b)};mt.lang.ea=function(){return mt.lang.d(c.aet,"String")}; +mt.lang.h=function(b){return b.replace?b.replace(/'/g,"'0").replace(/\*/g,"'1").replace(/!/g,"'2"):b};mt.lang.trim=function(b){return b.replace(/^\s+|\s+$/g,"")};mt.lang.O=function(b,a){var f=v;if(b==u||!mt.lang.d(b,"Array")||a===s)return f;if(Array.prototype.indexOf)f=-1!==b.indexOf(a);else for(var d=0;d"+d.join(">"):n,g.push(n)),d.unshift(encodeURIComponent(String(a.nodeName).toLowerCase())+ +(1"));return g};mt.e.ta=function(a){return(a=mt.e.ba(a,t))&&a.length?String(a[0]):""};mt.e.Tb=function(a){return mt.e.ba(a,v)};mt.e.Ya=function(a){var b;for(b="A";(a=a.parentNode)&&1==a.nodeType;)if(a.tagName==b)return a;return u};mt.e.$a=function(a){return 9===a.nodeType?a:a.ownerDocument||a.document};mt.e.fb=function(a){var b={top:0,left:0};if(!a)return b;var d=mt.e.$a(a).documentElement;"undefined"!==typeof a.getBoundingClientRect&&(b=a.getBoundingClientRect()); +return{top:b.top+(window.pageYOffset||d.scrollTop)-(d.clientTop||0),left:b.left+(window.pageXOffset||d.scrollLeft)-(d.clientLeft||0)}};mt.e.getAttribute=function(a,b){var d=a.getAttribute&&a.getAttribute(b)||u;if(!d&&a.attributes&&a.attributes.length)for(var g=a.attributes,m=g.length,p=0;pa?"0"+a:a}var f={"\b":"\\b","\t":"\\t","\n":"\\n","\f":"\\f","\r":"\\r",'"':'\\"',"\\":"\\\\"};return function(d){switch(typeof d){case "undefined":return"undefined";case "number":return isFinite(d)?String(d):"null";case "string":return b(d);case "boolean":return String(d); +default:if(d===u)return"null";if(d instanceof Array){var f=["["],m=d.length,p,n,e;for(n=0;n(new Date).getTime())return b.substring(a+1)}}else if(mt.localStorage.U())try{return mt.localStorage.j.load(document.location.hostname),mt.localStorage.j.getAttribute(b)}catch(d){}return u}; +mt.localStorage.remove=function(b){if(window.localStorage)window.localStorage.removeItem(b);else if(mt.localStorage.U())try{mt.localStorage.j.load(document.location.hostname),mt.localStorage.j.removeAttribute(b),mt.localStorage.j.save(document.location.hostname)}catch(a){}};mt.sessionStorage={};mt.sessionStorage.set=function(b,a){if(window.sessionStorage)try{window.sessionStorage.setItem(b,a)}catch(f){}}; +mt.sessionStorage.get=function(b){return window.sessionStorage?window.sessionStorage.getItem(b):u};mt.sessionStorage.remove=function(b){window.sessionStorage&&window.sessionStorage.removeItem(b)};mt.Ba={};mt.Ba.log=function(b,a){var f=new Image,d="mini_tangram_log_"+Math.floor(2147483648*Math.random()).toString(36);window[d]=f;f.onload=function(){f.onload=u;f=window[d]=u;a&&a(b)};f.src=b};mt.ka={}; +mt.ka.jb=function(){var b="";if(navigator.plugins&&navigator.mimeTypes.length){var a=navigator.plugins["Shockwave Flash"];a&&a.description&&(b=a.description.replace(/^.*\s+(\S+)\s+\S+$/,"$1"))}else if(window.ActiveXObject)try{if(a=new ActiveXObject("ShockwaveFlash.ShockwaveFlash"))(b=a.GetVariable("$version"))&&(b=b.replace(/^.*\s+(\d+),(\d+).*$/,"$1.$2"))}catch(f){}return b}; +mt.ka.Sb=function(b,a,f,d,g){return''};mt.url={}; +mt.url.k=function(b,a){var f=b.match(RegExp("(^|&|\\?|#)("+a+")=([^&#]*)(&|$|#)",""));return f?f[3]:u};mt.url.Ub=function(b){return(b=b.match(/^(https?:)\/\//))?b[1]:u};mt.url.cb=function(b){return(b=b.match(/^(https?:\/\/)?([^\/\?#]*)/))?b[2].replace(/.*@/,""):u};mt.url.aa=function(b){return(b=mt.url.cb(b))?b.replace(/:\d+$/,""):b};mt.url.ba=function(b){return(b=b.match(/^(https?:\/\/)?[^\/]*(.*)/))?b[2].replace(/[\?#].*/,"").replace(/^$/,"/"):u}; +(function(){function b(){for(var a=v,b=document.getElementsByTagName("script"),d=b.length,d=100g.B||(b+encodeURIComponent(p.join("!")+(p.length?"!":"")).length+(g.I+"").length>g.B&&n.S(),p.push(a),(p.length>=g.Pa||/\*a\*/.test(a))&& +n.S())}}},Za:function(l){var k=l.target||l.srcElement;if(0===g.Na){var e=(k.tagName||"").toLowerCase();if("embed"==e||"object"==e)return""}var q;d.da?(q=Math.max(document.documentElement.scrollTop,document.body.scrollTop),e=Math.max(document.documentElement.scrollLeft,document.body.scrollLeft),e=l.clientX+e,q=l.clientY+q):(e=l.pageX,q=l.pageY);l=n.eb(l,k,e,q);var r=window.innerWidth||document.documentElement.clientWidth||document.body.offsetWidth;switch(c.align){case 1:e-=r/2;break;case 2:e-=r}r= +[];r.push(e);r.push(q);r.push(l.xb);r.push(l.yb);r.push(l.Ab);r.push(a.h(l.zb));r.push(l.Rb);r.push(l.lb);(k="a"===(k.tagName||"").toLowerCase()?k:b.Ya(k))?(r.push("a"),r.push(a.h(encodeURIComponent(k.href)))):r.push("b");return r.join("*")},eb:function(l,k,e,q){l=b.ta(k);var r=0,f=0,y=0,g=0;if(k&&(r=k.offsetWidth||k.clientWidth,f=k.offsetHeight||k.clientHeight,g=b.fb(k),y=g.left,g=g.top,a.d(k.getBBox,"Function")&&(f=k.getBBox(),r=f.width,f=f.height),"html"===(k.tagName||"").toLowerCase()))r=Math.max(r, +k.clientWidth),f=Math.max(f,k.clientHeight);return{xb:Math.round(100*((e-y)/r)),yb:Math.round(100*((q-g)/f)),Ab:d.orientation,zb:l,Rb:r,lb:f}},S:function(){0!==p.length&&(h.b.a.et=2,h.b.a.ep=p.join("!"),h.b.i(),p=[])}},e={Ga:function(){c.ctrk&&setInterval(e.Fb,g.Eb)},Fb:function(){var a=d.F()+d.z();0g.B||(encodeURIComponent(n.join("!")+a).length>g.B&&(e.K(n.join("!")),n=[]),n.push(a))},K:function(a){h.b.a.et=5;h.b.a.ep=a;h.b.i()}, +J:function(){return function(){n&&n.length&&(e.K(n.join("!")),n=[])}}};b.ea()&&""!==c.aet&&m.c("pv-b",function(){f.c(document,"click",e.sa());"ontouchend"in document&&f.c(window,"touchend",e.sa());f.c(window,"unload",e.J())});return e})(); +(function(){var b=mt.event,a=mt.g,f=h.m,d=h.w,g=+new Date,m=[],p=u,n={Sa:function(){return function(){h.b&&(h.b.G&&c.aet&&c.aet.length)&&(window.clearTimeout(p),p=window.setTimeout(function(){n.Fa(a.F()+a.z())},150))}},Fa:function(a){n.W([+new Date-(h.b.r!==s?h.b.r:g),a].join("*"))},W:function(a){if(encodeURIComponent(m.join("!")+a).length>f.B||3a.length)){var b=a[1],d=a[4]||3;if(0b&&0d){e.T++;for(var q=(h.b.a.cv||"*").split("!"),r=q.length;ra.length)){var e=f.h(a[1]);a=f.h(a[2]);if(e!==s&&a!==s){var d=decodeURIComponent(h.b.getData("Hm_ct_"+c.id)||""),d=b(d,e,1,a);h.b.setData("Hm_ct_"+c.id,encodeURIComponent(d),c.age)}}},_setVisitTag:function(a){if(!(3>a.length)){var d=f.h(a[1]);a=f.h(a[2]);if(d!==s&&a!==s){var g=e.o.ma,g=b(g,d,2,a);e.o.ma=g}}},_setPageTag:function(a){if(!(3>a.length)){var d=f.h(a[1]);a=f.h(a[2]);if(d!==s&&a!==s){var g=e.o.page, +g=b(g,d,3,a);e.o.page=g}}},_setReferrerOverride:function(a){1=encodeURIComponent(b).length&&(e.f|=64,h.b.a.rt=b))},_trackRTEvent:function(b){b=b[1];if(f.d(b,"Object")){a(b);b=encodeURIComponent(d.stringify(b));var k=function(a){var b=h.b.a.rt;e.f|=128;h.b.a.et=90;h.b.a.rt=a;h.b.i();h.b.a.rt=b},g=b.length;if(900>=g)k.call(this,b);else for(var g=Math.ceil(g/900),q="block|"+Math.round(Math.random()*m.I).toString(16)+"|"+g+"|",r=[],x=0;xc.vdur?1:4;var b=v;this.P(document.referrer)&&this.P(document.location.href)?b=t:(b=a.aa(document.referrer),b=this.fa(b||"",document.location.hostname));return b?k.s-k.A>c.vdur?1:4:3},getData:function(a){try{return m.get(a)||e.get(a)||n.get(a)}catch(b){}},setData:function(a,b,d){try{m.set(a,b,{domain:this.M(),path:this.Z(),D:d}),d?n.set(a,b,d):e.set(a,b)}catch(f){}},Cb:function(a){try{m.set(a,"",{domain:this.M(),path:this.Z(),D:-1}), +e.remove(a),n.remove(a)}catch(b){}},Ib:function(){var a,b,d,e,f;k.A=this.getData("Hm_lpvt_"+c.id)||0;13===k.A.length&&(k.A=Math.round(k.A/1E3));b=this.hb();a=4!==b?1:0;if(d=this.getData("Hm_lvt_"+c.id)){e=d.split(",");for(f=e.length-1;0<=f;f--)13===e[f].length&&(e[f]=""+Math.round(e[f]/1E3));for(;2592E3e.length?2:3;for(1===a&&e.push(k.s);4=+new Date-f;);};if(c.med)m="/zoosnet",g="swt",p=/swt|zixun|call|chat|zoos|business|talk|kefu|openkf|online|\/LR\/Chatpre\.aspx/i,n={click:function(){for(var a=[],b=e(document.getElementsByTagName("a")),b=[].concat.apply(b,e(document.getElementsByTagName("area"))),b=[].concat.apply(b,e(document.getElementsByTagName("img"))),d,f,g=0,k=b.length;g",d.insertBefore(c.lastChild,d.firstChild)}function d(){var a=t.elements;return"string"==typeof a?a.split(" "):a}function e(a,b){var c=t.elements;"string"!=typeof c&&(c=c.join(" ")),"string"!=typeof a&&(a=a.join(" ")),t.elements=c+" "+a,j(b)}function f(a){var b=s[a[q]];return b||(b={},r++,a[q]=r,s[r]=b),b}function g(a,c,d){if(c||(c=b),l)return c.createElement(a);d||(d=f(c));var e;return e=d.cache[a]?d.cache[a].cloneNode():p.test(a)?(d.cache[a]=d.createElem(a)).cloneNode():d.createElem(a),!e.canHaveChildren||o.test(a)||e.tagUrn?e:d.frag.appendChild(e)}function h(a,c){if(a||(a=b),l)return a.createDocumentFragment();c=c||f(a);for(var e=c.frag.cloneNode(),g=0,h=d(),i=h.length;i>g;g++)e.createElement(h[g]);return e}function i(a,b){b.cache||(b.cache={},b.createElem=a.createElement,b.createFrag=a.createDocumentFragment,b.frag=b.createFrag()),a.createElement=function(c){return t.shivMethods?g(c,a,b):b.createElem(c)},a.createDocumentFragment=Function("h,f","return function(){var n=f.cloneNode(),c=n.createElement;h.shivMethods&&("+d().join().replace(/[\w\-:]+/g,function(a){return b.createElem(a),b.frag.createElement(a),'c("'+a+'")'})+");return n}")(t,b.frag)}function j(a){a||(a=b);var d=f(a);return!t.shivCSS||k||d.hasCSS||(d.hasCSS=!!c(a,"article,aside,dialog,figcaption,figure,footer,header,hgroup,main,nav,section{display:block}mark{background:#FF0;color:#000}template{display:none}")),l||i(a,d),a}var k,l,m="3.7.3",n=a.html5||{},o=/^<|^(?:button|map|select|textarea|object|iframe|option|optgroup)$/i,p=/^(?:a|b|code|div|fieldset|h1|h2|h3|h4|h5|h6|i|label|li|ol|p|q|span|strong|style|table|tbody|td|th|tr|ul)$/i,q="_html5shiv",r=0,s={};!function(){try{var a=b.createElement("a");a.innerHTML="",k="hidden"in a,l=1==a.childNodes.length||function(){b.createElement("a");var a=b.createDocumentFragment();return"undefined"==typeof a.cloneNode||"undefined"==typeof a.createDocumentFragment||"undefined"==typeof a.createElement}()}catch(c){k=!0,l=!0}}();var t={elements:n.elements||"abbr article aside audio bdi canvas data datalist details dialog figcaption figure footer header hgroup main mark meter nav output picture progress section summary template time video",version:m,shivCSS:n.shivCSS!==!1,supportsUnknownElements:l,shivMethods:n.shivMethods!==!1,type:"default",shivDocument:j,createElement:g,createDocumentFragment:h,addElements:e};a.html5=t,j(b),"object"==typeof module&&module.exports&&(module.exports=t)}("undefined"!=typeof window?window:this,document); \ No newline at end of file diff --git a/public/static/res/mods/index.js b/public/static/res/mods/index.js new file mode 100644 index 0000000..c99688b --- /dev/null +++ b/public/static/res/mods/index.js @@ -0,0 +1,867 @@ +/** + + @Name: Fly社区主入口 + + */ + + +layui.define(['layer', 'laytpl', 'form', 'element', 'upload', 'util'], function(exports){ + + var $ = layui.jquery + ,layer = layui.layer + ,laytpl = layui.laytpl + ,form = layui.form + ,element = layui.element + ,upload = layui.upload + ,util = layui.util + ,device = layui.device() + + ,DISABLED = 'layui-btn-disabled'; + + //阻止IE7以下访问 + if(device.ie && device.ie < 8){ + layer.alert('如果您非得使用 IE 浏览器访问Fly社区,那么请使用 IE8+'); + } + + layui.focusInsert = function(obj, str){ + var result, val = obj.value; + obj.focus(); + if(document.selection){ //ie + result = document.selection.createRange(); + document.selection.empty(); + result.text = str; + } else { + result = [val.substring(0, obj.selectionStart), str, val.substr(obj.selectionEnd)]; + obj.focus(); + obj.value = result.join(''); + } + }; + + + //数字前置补零 + layui.laytpl.digit = function(num, length, end){ + var str = ''; + num = String(num); + length = length || 2; + for(var i = num.length; i < length; i++){ + str += '0'; + } + return num < Math.pow(10, length) ? str + (num|0) : num; + }; + + var fly = { + dir: layui.cache.host + 'static/res/mods/' //模块路径 + //Ajax + ,json: function(url, data, success, options){ + var that = this, type = typeof data === 'function'; + + if(type){ + options = success + success = data; + data = {}; + } + + options = options || {}; + + return $.ajax({ + type: options.type || 'post', + dataType: options.dataType || 'json', + data: data, + url: url, + success: function(res){ + if(res.status === 0) { + success && success(res); + } else { + layer.msg(res.msg || res.code, {shift: 6}); + options.error && options.error(); + } + }, error: function(e){ + layer.msg('请求异常,请重试', {shift: 6}); + options.error && options.error(e); + } + }); + } + + //计算字符长度 + ,charLen: function(val){ + var arr = val.split(''), len = 0; + for(var i = 0; i < val.length ; i++){ + arr[i].charCodeAt(0) < 299 ? len++ : len += 2; + } + return len; + } + + ,form: {} + + //简易编辑器 + ,layEditor: function(options){ + var html = ['
                  ' + ,'' + ,'' + ,'' + ,'' + ,'' + ,'hr' + ,'' + ,'
                  '].join(''); + + var closeTips = function(){ + layer.close(mod.face.index); + }; + + var log = {}, mod = { + face: function(editor, self){ //插入表情 + var str = '', ul, face = fly.faces; + for(var key in face){ + str += '
                • '; + } + str = '
                    '+ str +'
                  '; + + layer.close(mod.face.index); + mod.face.index = layer.tips(str, self, { + tips: 3 + ,time: 0 + ,skin: 'layui-edit-face' + ,tipsMore: true + }); + + $(document).off('click', closeTips).on('click', closeTips); + + $('#LAY-editface li').on('click', function(){ + var title = $(this).attr('title') + ' '; + layui.focusInsert(editor[0], 'face' + title); + editor.trigger('keyup'); + }); + } + ,picture: function(editor){ //插入图片 + layer.open({ + type: 1 + ,id: 'fly-jie-upload' + ,title: '插入图片' + ,area: 'auto' + ,shade: false + ,area: '465px' + ,fixed: false + ,offset: [ + editor.offset().top - $(window).scrollTop() + 'px' + ,editor.offset().left + 'px' + ] + ,skin: 'layui-layer-border' + ,content: ['
                    ' + ,'
                  • ' + ,'' + ,'
                    ' + ,'' + ,'
                    ' + ,'' + ,'
                  • ' + ,'
                  • ' + ,'' + ,'
                  • ' + ,'
                  '].join('') + ,success: function(layero, index){ + var image = layero.find('input[name="image"]'); + + //执行上传实例 + upload.render({ + elem: '#uploadImg' + ,url: '/article/text_img_upload' + ,size: 1024 + ,done: function(res){ + if(res.status == 0){ + image.val(res.url); + } else { + layer.msg(res.msg, {icon: 5}); + } + } + }); + + form.on('submit(uploadImages)', function(data){ + var field = data.field; + if(!field.image) return image.focus(); + layui.focusInsert(editor[0], 'img['+ field.image + '] '); + layer.close(index); + editor.trigger('keyup'); + }); + } + }); + } + ,href: function(editor){ //超链接 + layer.prompt({ + title: '请输入合法链接' + ,shade: false + ,fixed: false + ,id: 'LAY_flyedit_href' + ,offset: [ + editor.offset().top - $(window).scrollTop() + 1 + 'px' + ,editor.offset().left + 1 + 'px' + ] + }, function(val, index, elem){ + if(!/^http(s*):\/\/[\S]/.test(val)){ + layer.tips('请务必 http 或 https 开头', elem, {tips:1}) + return; + } + layui.focusInsert(editor[0], ' a('+ val +')['+ val + '] '); + layer.close(index); + editor.trigger('keyup'); + }); + } + ,quote: function(editor){ //引用 + layer.prompt({ + title: '请输入引用内容' + ,formType: 2 + ,maxlength: 10000 + ,shade: false + ,id: 'LAY_flyedit_quote' + ,offset: [ + editor.offset().top - $(window).scrollTop() + 1 + 'px' + ,editor.offset().left + 1 + 'px' + ] + ,area: ['300px', '100px'] + }, function(val, index, elem){ + layui.focusInsert(editor[0], '[quote]\n '+ val + '\n[/quote]\n'); + layer.close(index); + editor.trigger('keyup'); + }); + } + ,code: function(editor){ //插入代码 + layer.prompt({ + title: '请贴入代码' + ,formType: 2 + ,maxlength: 10000 + ,shade: false + ,id: 'LAY_flyedit_code' + ,area: ['800px', '360px'] + }, function(val, index, elem){ + layui.focusInsert(editor[0], '[pre]\n'+ val + '\n[/pre]\n'); + layer.close(index); + editor.trigger('keyup'); + }); + } + ,hr: function(editor){ //插入水平分割线 + layui.focusInsert(editor[0], '[hr]\n'); + editor.trigger('keyup'); + } + ,preview: function(editor, span){ //预览 + var othis = $(span), getContent = function(){ + var content = editor.val(); + return /^\{html\}/.test(content) + ? content.replace(/^\{html\}/, '') + : fly.content(content) + }, isMobile = device.ios || device.android; + + if(mod.preview.isOpen) return layer.close(mod.preview.index); + + mod.preview.index = layer.open({ + type: 1 + ,title: '预览' + ,shade: false + ,offset: 'r' + ,id: 'LAY_flyedit_preview' + ,area: [ + isMobile ? '100%' : '775px' + ,'100%' + ] + ,scrollbar: isMobile ? false : true + ,anim: -1 + ,isOutAnim: false + ,content: '
                  '+ getContent() +'
                  ' + ,success: function(layero){ + editor.on('keyup', function(val){ + layero.find('.detail-body').html(getContent()); + }); + mod.preview.isOpen = true; + othis.addClass('layui-this'); + } + ,end: function(){ + delete mod.preview.isOpen; + othis.removeClass('layui-this'); + } + }); + } + }; + + layui.use('face', function(face){ + options = options || {}; + fly.faces = face; + $(options.elem).each(function(index){ + var that = this, othis = $(that), parent = othis.parent(); + parent.prepend(html); + parent.find('.fly-edit span').on('click', function(event){ + var type = $(this).attr('type'); + mod[type].call(that, othis, this); + if(type === 'face'){ + event.stopPropagation() + } + }); + }); + }); + + } + + ,escape: function(html){ + return String(html||'').replace(/&(?!#?[a-zA-Z0-9]+;)/g, '&') + .replace(//g, '>').replace(/'/g, ''').replace(/"/g, '"'); + } + + //内容转义 + ,content: function(content){ + var util = fly + ,item = fly.faces; + + //支持的html标签 + var html = function(end){ + return new RegExp('\\n*\\|\\-'+ (end||'') +'(div|span|p|button|table|thead|th|tbody|tr|td|ul|li|ol|li|dl|dt|dd|h2|h3|h4|h5)([\\s\\S]*?)\\-\\|\\n*', 'g'); + }; + + + //XSS + content = util.escape(content||'') + + //转义图片 + .replace(/img\[([^\s]+?)\]/g, function(img){ + return ''; + }) + + //转义@ + .replace(/@(\S+)(\s+?|$)/g, '@$1$2') + + //转义表情 + .replace(/face\[([^\s\[\]]+?)\]/g, function(face){ + var alt = face.replace(/^face/g, ''); + return ''+ alt +''; + }) + + //转义脚本 + .replace(/a(\(javascript:)(.+)(;*\))/g, 'a(javascript:layer.msg(\'非法脚本\');)') + + //转义链接 + .replace(/a\([\s\S]+?\)\[[\s\S]*?\]/g, function(str){ + var href = (str.match(/a\(([\s\S]+?)\)\[/)||[])[1]; + var text = (str.match(/\)\[([\s\S]*?)\]/)||[])[1]; + if(!href) return str; + var rel = /^(http(s)*:\/\/)\b(?!(\w+\.)*(sentsin.com|layui.com))\b/.test(href.replace(/\s/g, '')); + return ''+ (text||href) +''; + }) + + //转义横线 + .replace(/\[hr\]\n*/g, '
                  ') + + //转义表格 + .replace(/\[table\]([\s\S]*)\[\/table\]\n*/g, function(str){ + return str.replace(/\[(thead|th|tbody|tr|td)\]\n*/g, '<$1>') + .replace(/\n*\[\/(thead|th|tbody|tr|td)\]\n*/g, '') + + .replace(/\[table\]\n*/g, '') + .replace(/\n*\[\/table\]\n*/g, '
                  '); + }) + + //转义 div/span + .replace(/\n*\[(div|span)([\s\S]*?)\]([\s\S]*?)\[\/(div|span)\]\n*/g, function(str){ + return str.replace(/\[(div|span)([\s\S]*?)\]\n*/g, '<$1 $2>') + .replace(/\n*\[\/(div|span)\]\n*/g, ''); + }) + + //转义列表 + .replace(/\[ul\]([\s\S]*)\[\/ul\]\n*/g, function(str){ + return str.replace(/\[li\]\n*/g, '
                • ') + .replace(/\n*\[\/li\]\n*/g, '
                • ') + + .replace(/\[ul\]\n*/g, '
                    ') + .replace(/\n*\[\/ul\]\n*/g, '
                  '); + }) + + //转义代码 + .replace(/\[pre\]([\s\S]*)\[\/pre\]\n*/g, function(str){ + return str.replace(/\[pre\]\n*/g, '
                  ')
                  +                      .replace(/\n*\[\/pre\]\n*/g, '
                  '); + }) + + //转义引用 + .replace(/\[quote\]([\s\S]*)\[\/quote\]\n*/g, function(str){ + return str.replace(/\[quote\]\n*/g, '
                  ') + .replace(/\n*\[\/quote\]\n*/g, '
                  '); + }) + + //转义换行 + .replace(/\n/g, '
                  ') + + return content; + } + + //新消息通知 + ,newmsg: function(){ + var elemUser = $('.fly-nav-user'); + if(layui.cache.user.uid !== -1 && elemUser[0]){ + fly.json('/index/message/nums', { + _: new Date().getTime() + }, function(res){ + if(res.status === 0 && res.count > 0){ + var msg = $(''+ res.count +''); + elemUser.append(msg); + msg.on('click', function(){ + fly.json('/message/read', {}, function(res){ + if(res.status === 0){ + location.href = '/user/message'; + } + }); + }); + layer.tips('你有 '+ res.count +' 条未读消息', msg, { + tips: 3 + ,tipsMore: true + ,fixed: true + }); + msg.on('mouseenter', function(){ + layer.closeAll('tips'); + }) + } + }); + } + return arguments.callee; + } + + //手机绑定弹窗 + ,setPhoneNotice: function(){ + layer.open({ + type: 1 + ,id: 'LAY_Notice_add' + ,title: '手机号绑定通知' + ,content: '
                  您需要绑定手机号后,才可进行发帖/回帖等操作。
                  ' + ,btnAlign: 'c' + ,btn: ['立即绑定', '朕偏不!'] + ,yes: function(){ + location.href = '/user/set' + } + ,btn2: function(){ + layer.msg('少年,我看好你!'); + } + }); + } + + //邮箱激活提示 + ,setEmailNotice: function(){ + layer.open({ + type: 1 + ,id: 'LAY_Notice_add' + ,title: '邮箱激活通知' + ,content: '
                  您需要激活邮箱后,才可进行发帖/回帖等操作。
                  ' + ,btnAlign: 'c' + ,btn: ['前往激活', '朕偏不!'] + ,yes: function(){ + location.href = '/user/set' + } + ,btn2: function(){ + layer.msg('少年,我看好你!'); + } + }); + } + }; + + //加载扩展模块 + layui.config({ + base: fly.dir + }).extend({ + im: 'im' + ,face: 'face' + }); + + //头像 + if(device.android || device.ios){ + $('#LAY_header_avatar').on('click', function(){ + return false; + }) + } + + //刷新图形验证码 + $('body').on('click', '.fly-imagecode', function(){ + this.src = '/index/captcha?id='+ new Date().getTime(); + }); + + //头条轮播 + if($('#FLY_topline')[0]){ + layui.use('carousel', function(){ + var carousel = layui.carousel; + + var ins = carousel.render({ + elem: '#FLY_topline' + ,width: '100%' + ,height: '172px' + ,anim: 'fade' + }); + + var resizeTopline = function(){ + var width = $(this).prop('innerWidth'); + if(width >= 1200){ + ins.reload({ + height: '172px' + }); + } else if(width >= 992){ + ins.reload({ + height: '141px' + }); + } else if(width >= 768){ + ins.reload({ + height: '166px' + }); + } + }; + + resizeTopline() + + $(window).on('resize', resizeTopline); + + }); + } + +/* + //签到 + var tplSignin = ['{{# if(d.signed){ }}' + ,'' + ,'获得了{{ d.experience }}飞吻' + ,'{{# } else { }}' + ,'' + ,'可获得{{ d.experience }}飞吻' + ,'{{# } }}'].join('') + ,tplSigninDay = '已连续签到{{ d.days }}天' + + ,signRender = function(data){ + laytpl(tplSignin).render(data, function(html){ + elemSigninMain.html(html); + }); + laytpl(tplSigninDay).render(data, function(html){ + elemSigninDays.html(html); + }); + } + + ,elemSigninHelp = $('#LAY_signinHelp') + ,elemSigninTop = $('#LAY_signinTop') + ,elemSigninMain = $('.fly-signin-main') + ,elemSigninDays = $('.fly-signin-days'); + + if(elemSigninMain[0]){ + + fly.json('/sign/status', function(res){ + if(!res.data) return; + signRender.token = res.data.token; + signRender(res.data); + }); + + } + $('body').on('click', '#LAY_signin', function(){ + var othis = $(this); + if(othis.hasClass(DISABLED)) return; + + fly.json('/sign/in/', { + token: signRender.token || 1 + }, function(res){ + signRender(res.data); + }, { + error: function(){ + othis.removeClass(DISABLED); + } + }); + + othis.addClass(DISABLED); + }); + + //签到说明 + elemSigninHelp.on('click', function(){ + layer.open({ + type: 1 + ,title: '签到说明' + ,area: '300px' + ,shade: 0.8 + ,shadeClose: true + ,content: ['
                  ' + ,'
                  “签到”可获得社区飞吻,规则如下
                  ' + ,'' + ,'' + ,'' + ,'' + ,'' + ,'' + ,'' + ,'' + ,'' + ,'' + ,'
                  连续签到天数每天可获飞吻
                  <55
                  ≥510
                  ≥1515
                  ≥3020
                  ' + ,'
                    ' + ,'
                  • 中间若有间隔,则连续天数重新计算
                  • ' + ,'
                  • 不可利用程序自动签到,否则飞吻清零
                  • ' + ,'
                  ' + ,'
                  '].join('') + }); + }); + + //签到活跃榜 + var tplSigninTop = ['{{# layui.each(d.data, function(index, item){ }}' + ,'
                • ' + ,'' + ,'' + ,'{{item.user.username}}' + ,'' + ,'{{# var date = new Date(item.time); if(d.index < 2){ }}' + ,'签到于 {{ layui.laytpl.digit(date.getHours()) + ":" + layui.laytpl.digit(date.getMinutes()) + ":" + layui.laytpl.digit(date.getSeconds()) }}' + ,'{{# } else { }}' + ,'已连续签到 {{ item.days }}' + ,'{{# } }}' + ,'
                • ' + ,'{{# }); }}' + ,'{{# if(d.data.length === 0) { }}' + ,'{{# if(d.index < 2) { }}' + ,'
                • 今天还没有人签到
                • ' + ,'{{# } else { }}' + ,'
                • 还没有签到记录
                • ' + ,'{{# } }}' + ,'{{# } }}'].join(''); + + elemSigninTop.on('click', function(){ + var loadIndex = layer.load(1, {shade: 0.8}); + fly.json('../json/signin.js', function(res){ //实际使用,请将 url 改为真实接口 + var tpl = $(['
                  ' + ,'
                    ' + ,'
                  • 最新签到
                  • ' + ,'
                  • 今日最快
                  • ' + ,'
                  • 总签到榜
                  • ' + ,'
                  ' + ,'' + ,'
                  '].join('')) + ,signinItems = tpl.find('.layui-tab-item'); + + layer.close(loadIndex); + + layui.each(signinItems, function(index, item){ + var html = laytpl(tplSigninTop).render({ + data: res.data[index] + ,index: index + }); + $(item).html(html); + }); + + layer.open({ + type: 1 + ,title: '签到活跃榜 - TOP 20' + ,area: '300px' + ,shade: 0.8 + ,shadeClose: true + ,id: 'layer-pop-signintop' + ,content: tpl.prop('outerHTML') + }); + + }, {type: 'get'}); + }); +*/ + + //回帖榜 + var tplReply = ['{{# layui.each(d.data, function(index, item){ }}' + ,'
                • \ +
                  \ + \ + {{= d.user.username}}\ + \ + \ +
                  \ + 刚刚\ +
                  \ +
                  \ +
                  \ + {{ d.content}}\ +
                  \ +
                • ' + data.content = fly.content(data.content); + laytpl(tpl).render($.extend(data, { + user: layui.cache.user + }), function(html){ + required[0].value = ''; + dom.jieda.find('.fly-none').remove(); + dom.jieda.append(html); + + var count = dom.jiedaCount.text()|0; + dom.jiedaCount.html(++count); + }); + }; + + + //求解管理 + gather.jieAdmin = { + //删求解 + del: function(div){ + layer.confirm('确认删除该贴么?', function(index){ + layer.close(index); + $.ajax({ + type:'get', + url:"/index/article/delete/", + data:{id: div.data('id')}, + dataType:'json', + success:function(data){ + if(data.code == 1){ + layer.msg(data.msg,{ + icon:6, + time:2000 + },function(){ + location.href = '/index/index/index/'; + }); + } else { + layer.open({ + title:'删除失败', + content:data.msg, + icon:5, + adim:6 + }) + } + } + }); + }); + } + + //设置置顶、状态 + ,set: function(div){ + var othis = $(this); + fly.json('/index/article/jieset/', { + id: div.data('id') + ,rank: othis.attr('rank') + ,field: othis.attr('field') + }, function(res){ + if(res.status === 0){ + layer.msg(res.msg); + location.reload(); + } + }); + } + + //收藏 + ,collect: function(div){ + var othis = $(this), type = othis.data('type'); + fly.json('/index/collection/'+ type +'/', { + cid: div.data('id') + }, function(res){ + if(type === 'add'){ + othis.data('type', 'remove').html('取消收藏').addClass('layui-btn-danger'); + } else if(type === 'remove'){ + othis.data('type', 'add').html('收藏').removeClass('layui-btn-danger'); + } + }); + } + }; + + $('body').on('click', '.jie-admin', function(){ + var othis = $(this), type = othis.attr('type'); + gather.jieAdmin[type] && gather.jieAdmin[type].call(this, othis.parent()); + }); + + //异步渲染 + var asyncRender = function(){ + var div = $('.fly-admin-box'), jieAdmin = $('#LAY_jieAdmin'); + //查询帖子是否收藏 + if(jieAdmin[0] && layui.cache.user.uid != -1){ + fly.json('/index/collection/find/', { + cid: div.data('id') + }, function(res){ + jieAdmin.append(''+ (res.data.collection ? '取消收藏' : '收藏') +''); + }); + } + }(); + + //解答操作 + gather.jiedaActive = { + zan: function(li){ //赞 + var othis = $(this), ok = othis.hasClass('zanok'); + fly.json('/index/comment/jiedaZan/', { + ok: ok + ,id: li.data('id') + }, function(res){ + if(res.status === 0){ + var zans = othis.find('em').html()|0; + othis[ok ? 'removeClass' : 'addClass']('zanok'); + othis.find('em').html(ok ? (--zans) : (++zans)); + } else { + layer.msg(res.msg); + } + }); + } + ,reply: function(li){ //回复 + var val = dom.content.val(); + var aite = '@'+ li.find('.fly-detail-user cite').text().replace(/\s/g, ''); + dom.content.focus() + if(val.indexOf(aite) !== -1) return; + dom.content.val(aite +' ' + val); + } + ,accept: function(li){ //采纳 + var othis = $(this); + layer.confirm('是否采纳该回答为最佳答案?', function(index){ + layer.close(index); + fly.json('/index/comment/jiedaCai/', { + id: li.data('id') + }, function(res){ + if(res.status === 0){ + $('.jieda-accept').remove(); + li.addClass('jieda-daan'); + li.find('.detail-about').append(''); + location.reload(); + } else { + layer.msg(res.msg); + } + }); + }); + } + ,edit: function(li){ //编辑 + fly.json('/index/comment/getDa/', { + id: li.data('id') + }, function(res){ + var data = res.rows; + layer.prompt({ + formType: 2 + ,value: data.content + + ,maxlength: 100000 + ,title: '编辑回帖' + ,area: ['738px', '310px'] + ,success: function(layero){ + fly.layEditor({ + elem: layero.find('textarea') + }); + } + }, function(value, index){ + fly.json('/index/comment/updateDa/', { + id: li.data('id') + ,content: value + }, function(res){ + layer.close(index); + layer.msg(res.msg); + li.find('.detail-body').html(fly.content(value)); + }); + }); + }); + } + ,del: function(li){ //删除 + layer.confirm('确认删除该回答么?', function(index){ + layer.close(index); + fly.json('/index/comment/jiedaDelete/', { + id: li.data('id') + }, function(res){ + if(res.status === 0){ + var count = dom.jiedaCount.text()|0; + dom.jiedaCount.html(--count); + li.remove(); + //如果删除了最佳答案 + if(li.hasClass('jieda-daan')){ + $('.jie-status').removeClass('jie-status-ok').text('求解中'); + } + } else { + layer.msg(res.msg); + } + }); + }); + } + }; + + $('.jieda-reply span').on('click', function(){ + var othis = $(this), type = othis.attr('type'); + gather.jiedaActive[type].call(this, othis.parents('li')); + }); + + + //定位分页 + if(/\/page\//.test(location.href) && !location.hash){ + var replyTop = $('#flyReply').offset().top - 80; + $('html,body').scrollTop(replyTop); + } + + exports('jie', null); +}); \ No newline at end of file diff --git a/public/static/res/mods/jquery.min.js b/public/static/res/mods/jquery.min.js new file mode 100644 index 0000000..4d9b3a2 --- /dev/null +++ b/public/static/res/mods/jquery.min.js @@ -0,0 +1,2 @@ +/*! jQuery v3.3.1 | (c) JS Foundation and other contributors | jquery.org/license */ +!function(e,t){"use strict";"object"==typeof module&&"object"==typeof module.exports?module.exports=e.document?t(e,!0):function(e){if(!e.document)throw new Error("jQuery requires a window with a document");return t(e)}:t(e)}("undefined"!=typeof window?window:this,function(e,t){"use strict";var n=[],r=e.document,i=Object.getPrototypeOf,o=n.slice,a=n.concat,s=n.push,u=n.indexOf,l={},c=l.toString,f=l.hasOwnProperty,p=f.toString,d=p.call(Object),h={},g=function e(t){return"function"==typeof t&&"number"!=typeof t.nodeType},y=function e(t){return null!=t&&t===t.window},v={type:!0,src:!0,noModule:!0};function m(e,t,n){var i,o=(t=t||r).createElement("script");if(o.text=e,n)for(i in v)n[i]&&(o[i]=n[i]);t.head.appendChild(o).parentNode.removeChild(o)}function x(e){return null==e?e+"":"object"==typeof e||"function"==typeof e?l[c.call(e)]||"object":typeof e}var b="3.3.1",w=function(e,t){return new w.fn.init(e,t)},T=/^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g;w.fn=w.prototype={jquery:"3.3.1",constructor:w,length:0,toArray:function(){return o.call(this)},get:function(e){return null==e?o.call(this):e<0?this[e+this.length]:this[e]},pushStack:function(e){var t=w.merge(this.constructor(),e);return t.prevObject=this,t},each:function(e){return w.each(this,e)},map:function(e){return this.pushStack(w.map(this,function(t,n){return e.call(t,n,t)}))},slice:function(){return this.pushStack(o.apply(this,arguments))},first:function(){return this.eq(0)},last:function(){return this.eq(-1)},eq:function(e){var t=this.length,n=+e+(e<0?t:0);return this.pushStack(n>=0&&n0&&t-1 in e)}var E=function(e){var t,n,r,i,o,a,s,u,l,c,f,p,d,h,g,y,v,m,x,b="sizzle"+1*new Date,w=e.document,T=0,C=0,E=ae(),k=ae(),S=ae(),D=function(e,t){return e===t&&(f=!0),0},N={}.hasOwnProperty,A=[],j=A.pop,q=A.push,L=A.push,H=A.slice,O=function(e,t){for(var n=0,r=e.length;n+~]|"+M+")"+M+"*"),z=new RegExp("="+M+"*([^\\]'\"]*?)"+M+"*\\]","g"),X=new RegExp(W),U=new RegExp("^"+R+"$"),V={ID:new RegExp("^#("+R+")"),CLASS:new RegExp("^\\.("+R+")"),TAG:new RegExp("^("+R+"|[*])"),ATTR:new RegExp("^"+I),PSEUDO:new RegExp("^"+W),CHILD:new RegExp("^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\("+M+"*(even|odd|(([+-]|)(\\d*)n|)"+M+"*(?:([+-]|)"+M+"*(\\d+)|))"+M+"*\\)|)","i"),bool:new RegExp("^(?:"+P+")$","i"),needsContext:new RegExp("^"+M+"*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\("+M+"*((?:-\\d)?\\d*)"+M+"*\\)|)(?=[^-]|$)","i")},G=/^(?:input|select|textarea|button)$/i,Y=/^h\d$/i,Q=/^[^{]+\{\s*\[native \w/,J=/^(?:#([\w-]+)|(\w+)|\.([\w-]+))$/,K=/[+~]/,Z=new RegExp("\\\\([\\da-f]{1,6}"+M+"?|("+M+")|.)","ig"),ee=function(e,t,n){var r="0x"+t-65536;return r!==r||n?t:r<0?String.fromCharCode(r+65536):String.fromCharCode(r>>10|55296,1023&r|56320)},te=/([\0-\x1f\x7f]|^-?\d)|^-$|[^\0-\x1f\x7f-\uFFFF\w-]/g,ne=function(e,t){return t?"\0"===e?"\ufffd":e.slice(0,-1)+"\\"+e.charCodeAt(e.length-1).toString(16)+" ":"\\"+e},re=function(){p()},ie=me(function(e){return!0===e.disabled&&("form"in e||"label"in e)},{dir:"parentNode",next:"legend"});try{L.apply(A=H.call(w.childNodes),w.childNodes),A[w.childNodes.length].nodeType}catch(e){L={apply:A.length?function(e,t){q.apply(e,H.call(t))}:function(e,t){var n=e.length,r=0;while(e[n++]=t[r++]);e.length=n-1}}}function oe(e,t,r,i){var o,s,l,c,f,h,v,m=t&&t.ownerDocument,T=t?t.nodeType:9;if(r=r||[],"string"!=typeof e||!e||1!==T&&9!==T&&11!==T)return r;if(!i&&((t?t.ownerDocument||t:w)!==d&&p(t),t=t||d,g)){if(11!==T&&(f=J.exec(e)))if(o=f[1]){if(9===T){if(!(l=t.getElementById(o)))return r;if(l.id===o)return r.push(l),r}else if(m&&(l=m.getElementById(o))&&x(t,l)&&l.id===o)return r.push(l),r}else{if(f[2])return L.apply(r,t.getElementsByTagName(e)),r;if((o=f[3])&&n.getElementsByClassName&&t.getElementsByClassName)return L.apply(r,t.getElementsByClassName(o)),r}if(n.qsa&&!S[e+" "]&&(!y||!y.test(e))){if(1!==T)m=t,v=e;else if("object"!==t.nodeName.toLowerCase()){(c=t.getAttribute("id"))?c=c.replace(te,ne):t.setAttribute("id",c=b),s=(h=a(e)).length;while(s--)h[s]="#"+c+" "+ve(h[s]);v=h.join(","),m=K.test(e)&&ge(t.parentNode)||t}if(v)try{return L.apply(r,m.querySelectorAll(v)),r}catch(e){}finally{c===b&&t.removeAttribute("id")}}}return u(e.replace(B,"$1"),t,r,i)}function ae(){var e=[];function t(n,i){return e.push(n+" ")>r.cacheLength&&delete t[e.shift()],t[n+" "]=i}return t}function se(e){return e[b]=!0,e}function ue(e){var t=d.createElement("fieldset");try{return!!e(t)}catch(e){return!1}finally{t.parentNode&&t.parentNode.removeChild(t),t=null}}function le(e,t){var n=e.split("|"),i=n.length;while(i--)r.attrHandle[n[i]]=t}function ce(e,t){var n=t&&e,r=n&&1===e.nodeType&&1===t.nodeType&&e.sourceIndex-t.sourceIndex;if(r)return r;if(n)while(n=n.nextSibling)if(n===t)return-1;return e?1:-1}function fe(e){return function(t){return"input"===t.nodeName.toLowerCase()&&t.type===e}}function pe(e){return function(t){var n=t.nodeName.toLowerCase();return("input"===n||"button"===n)&&t.type===e}}function de(e){return function(t){return"form"in t?t.parentNode&&!1===t.disabled?"label"in t?"label"in t.parentNode?t.parentNode.disabled===e:t.disabled===e:t.isDisabled===e||t.isDisabled!==!e&&ie(t)===e:t.disabled===e:"label"in t&&t.disabled===e}}function he(e){return se(function(t){return t=+t,se(function(n,r){var i,o=e([],n.length,t),a=o.length;while(a--)n[i=o[a]]&&(n[i]=!(r[i]=n[i]))})})}function ge(e){return e&&"undefined"!=typeof e.getElementsByTagName&&e}n=oe.support={},o=oe.isXML=function(e){var t=e&&(e.ownerDocument||e).documentElement;return!!t&&"HTML"!==t.nodeName},p=oe.setDocument=function(e){var t,i,a=e?e.ownerDocument||e:w;return a!==d&&9===a.nodeType&&a.documentElement?(d=a,h=d.documentElement,g=!o(d),w!==d&&(i=d.defaultView)&&i.top!==i&&(i.addEventListener?i.addEventListener("unload",re,!1):i.attachEvent&&i.attachEvent("onunload",re)),n.attributes=ue(function(e){return e.className="i",!e.getAttribute("className")}),n.getElementsByTagName=ue(function(e){return e.appendChild(d.createComment("")),!e.getElementsByTagName("*").length}),n.getElementsByClassName=Q.test(d.getElementsByClassName),n.getById=ue(function(e){return h.appendChild(e).id=b,!d.getElementsByName||!d.getElementsByName(b).length}),n.getById?(r.filter.ID=function(e){var t=e.replace(Z,ee);return function(e){return e.getAttribute("id")===t}},r.find.ID=function(e,t){if("undefined"!=typeof t.getElementById&&g){var n=t.getElementById(e);return n?[n]:[]}}):(r.filter.ID=function(e){var t=e.replace(Z,ee);return function(e){var n="undefined"!=typeof e.getAttributeNode&&e.getAttributeNode("id");return n&&n.value===t}},r.find.ID=function(e,t){if("undefined"!=typeof t.getElementById&&g){var n,r,i,o=t.getElementById(e);if(o){if((n=o.getAttributeNode("id"))&&n.value===e)return[o];i=t.getElementsByName(e),r=0;while(o=i[r++])if((n=o.getAttributeNode("id"))&&n.value===e)return[o]}return[]}}),r.find.TAG=n.getElementsByTagName?function(e,t){return"undefined"!=typeof t.getElementsByTagName?t.getElementsByTagName(e):n.qsa?t.querySelectorAll(e):void 0}:function(e,t){var n,r=[],i=0,o=t.getElementsByTagName(e);if("*"===e){while(n=o[i++])1===n.nodeType&&r.push(n);return r}return o},r.find.CLASS=n.getElementsByClassName&&function(e,t){if("undefined"!=typeof t.getElementsByClassName&&g)return t.getElementsByClassName(e)},v=[],y=[],(n.qsa=Q.test(d.querySelectorAll))&&(ue(function(e){h.appendChild(e).innerHTML="",e.querySelectorAll("[msallowcapture^='']").length&&y.push("[*^$]="+M+"*(?:''|\"\")"),e.querySelectorAll("[selected]").length||y.push("\\["+M+"*(?:value|"+P+")"),e.querySelectorAll("[id~="+b+"-]").length||y.push("~="),e.querySelectorAll(":checked").length||y.push(":checked"),e.querySelectorAll("a#"+b+"+*").length||y.push(".#.+[+~]")}),ue(function(e){e.innerHTML="";var t=d.createElement("input");t.setAttribute("type","hidden"),e.appendChild(t).setAttribute("name","D"),e.querySelectorAll("[name=d]").length&&y.push("name"+M+"*[*^$|!~]?="),2!==e.querySelectorAll(":enabled").length&&y.push(":enabled",":disabled"),h.appendChild(e).disabled=!0,2!==e.querySelectorAll(":disabled").length&&y.push(":enabled",":disabled"),e.querySelectorAll("*,:x"),y.push(",.*:")})),(n.matchesSelector=Q.test(m=h.matches||h.webkitMatchesSelector||h.mozMatchesSelector||h.oMatchesSelector||h.msMatchesSelector))&&ue(function(e){n.disconnectedMatch=m.call(e,"*"),m.call(e,"[s!='']:x"),v.push("!=",W)}),y=y.length&&new RegExp(y.join("|")),v=v.length&&new RegExp(v.join("|")),t=Q.test(h.compareDocumentPosition),x=t||Q.test(h.contains)?function(e,t){var n=9===e.nodeType?e.documentElement:e,r=t&&t.parentNode;return e===r||!(!r||1!==r.nodeType||!(n.contains?n.contains(r):e.compareDocumentPosition&&16&e.compareDocumentPosition(r)))}:function(e,t){if(t)while(t=t.parentNode)if(t===e)return!0;return!1},D=t?function(e,t){if(e===t)return f=!0,0;var r=!e.compareDocumentPosition-!t.compareDocumentPosition;return r||(1&(r=(e.ownerDocument||e)===(t.ownerDocument||t)?e.compareDocumentPosition(t):1)||!n.sortDetached&&t.compareDocumentPosition(e)===r?e===d||e.ownerDocument===w&&x(w,e)?-1:t===d||t.ownerDocument===w&&x(w,t)?1:c?O(c,e)-O(c,t):0:4&r?-1:1)}:function(e,t){if(e===t)return f=!0,0;var n,r=0,i=e.parentNode,o=t.parentNode,a=[e],s=[t];if(!i||!o)return e===d?-1:t===d?1:i?-1:o?1:c?O(c,e)-O(c,t):0;if(i===o)return ce(e,t);n=e;while(n=n.parentNode)a.unshift(n);n=t;while(n=n.parentNode)s.unshift(n);while(a[r]===s[r])r++;return r?ce(a[r],s[r]):a[r]===w?-1:s[r]===w?1:0},d):d},oe.matches=function(e,t){return oe(e,null,null,t)},oe.matchesSelector=function(e,t){if((e.ownerDocument||e)!==d&&p(e),t=t.replace(z,"='$1']"),n.matchesSelector&&g&&!S[t+" "]&&(!v||!v.test(t))&&(!y||!y.test(t)))try{var r=m.call(e,t);if(r||n.disconnectedMatch||e.document&&11!==e.document.nodeType)return r}catch(e){}return oe(t,d,null,[e]).length>0},oe.contains=function(e,t){return(e.ownerDocument||e)!==d&&p(e),x(e,t)},oe.attr=function(e,t){(e.ownerDocument||e)!==d&&p(e);var i=r.attrHandle[t.toLowerCase()],o=i&&N.call(r.attrHandle,t.toLowerCase())?i(e,t,!g):void 0;return void 0!==o?o:n.attributes||!g?e.getAttribute(t):(o=e.getAttributeNode(t))&&o.specified?o.value:null},oe.escape=function(e){return(e+"").replace(te,ne)},oe.error=function(e){throw new Error("Syntax error, unrecognized expression: "+e)},oe.uniqueSort=function(e){var t,r=[],i=0,o=0;if(f=!n.detectDuplicates,c=!n.sortStable&&e.slice(0),e.sort(D),f){while(t=e[o++])t===e[o]&&(i=r.push(o));while(i--)e.splice(r[i],1)}return c=null,e},i=oe.getText=function(e){var t,n="",r=0,o=e.nodeType;if(o){if(1===o||9===o||11===o){if("string"==typeof e.textContent)return e.textContent;for(e=e.firstChild;e;e=e.nextSibling)n+=i(e)}else if(3===o||4===o)return e.nodeValue}else while(t=e[r++])n+=i(t);return n},(r=oe.selectors={cacheLength:50,createPseudo:se,match:V,attrHandle:{},find:{},relative:{">":{dir:"parentNode",first:!0}," ":{dir:"parentNode"},"+":{dir:"previousSibling",first:!0},"~":{dir:"previousSibling"}},preFilter:{ATTR:function(e){return e[1]=e[1].replace(Z,ee),e[3]=(e[3]||e[4]||e[5]||"").replace(Z,ee),"~="===e[2]&&(e[3]=" "+e[3]+" "),e.slice(0,4)},CHILD:function(e){return e[1]=e[1].toLowerCase(),"nth"===e[1].slice(0,3)?(e[3]||oe.error(e[0]),e[4]=+(e[4]?e[5]+(e[6]||1):2*("even"===e[3]||"odd"===e[3])),e[5]=+(e[7]+e[8]||"odd"===e[3])):e[3]&&oe.error(e[0]),e},PSEUDO:function(e){var t,n=!e[6]&&e[2];return V.CHILD.test(e[0])?null:(e[3]?e[2]=e[4]||e[5]||"":n&&X.test(n)&&(t=a(n,!0))&&(t=n.indexOf(")",n.length-t)-n.length)&&(e[0]=e[0].slice(0,t),e[2]=n.slice(0,t)),e.slice(0,3))}},filter:{TAG:function(e){var t=e.replace(Z,ee).toLowerCase();return"*"===e?function(){return!0}:function(e){return e.nodeName&&e.nodeName.toLowerCase()===t}},CLASS:function(e){var t=E[e+" "];return t||(t=new RegExp("(^|"+M+")"+e+"("+M+"|$)"))&&E(e,function(e){return t.test("string"==typeof e.className&&e.className||"undefined"!=typeof e.getAttribute&&e.getAttribute("class")||"")})},ATTR:function(e,t,n){return function(r){var i=oe.attr(r,e);return null==i?"!="===t:!t||(i+="","="===t?i===n:"!="===t?i!==n:"^="===t?n&&0===i.indexOf(n):"*="===t?n&&i.indexOf(n)>-1:"$="===t?n&&i.slice(-n.length)===n:"~="===t?(" "+i.replace($," ")+" ").indexOf(n)>-1:"|="===t&&(i===n||i.slice(0,n.length+1)===n+"-"))}},CHILD:function(e,t,n,r,i){var o="nth"!==e.slice(0,3),a="last"!==e.slice(-4),s="of-type"===t;return 1===r&&0===i?function(e){return!!e.parentNode}:function(t,n,u){var l,c,f,p,d,h,g=o!==a?"nextSibling":"previousSibling",y=t.parentNode,v=s&&t.nodeName.toLowerCase(),m=!u&&!s,x=!1;if(y){if(o){while(g){p=t;while(p=p[g])if(s?p.nodeName.toLowerCase()===v:1===p.nodeType)return!1;h=g="only"===e&&!h&&"nextSibling"}return!0}if(h=[a?y.firstChild:y.lastChild],a&&m){x=(d=(l=(c=(f=(p=y)[b]||(p[b]={}))[p.uniqueID]||(f[p.uniqueID]={}))[e]||[])[0]===T&&l[1])&&l[2],p=d&&y.childNodes[d];while(p=++d&&p&&p[g]||(x=d=0)||h.pop())if(1===p.nodeType&&++x&&p===t){c[e]=[T,d,x];break}}else if(m&&(x=d=(l=(c=(f=(p=t)[b]||(p[b]={}))[p.uniqueID]||(f[p.uniqueID]={}))[e]||[])[0]===T&&l[1]),!1===x)while(p=++d&&p&&p[g]||(x=d=0)||h.pop())if((s?p.nodeName.toLowerCase()===v:1===p.nodeType)&&++x&&(m&&((c=(f=p[b]||(p[b]={}))[p.uniqueID]||(f[p.uniqueID]={}))[e]=[T,x]),p===t))break;return(x-=i)===r||x%r==0&&x/r>=0}}},PSEUDO:function(e,t){var n,i=r.pseudos[e]||r.setFilters[e.toLowerCase()]||oe.error("unsupported pseudo: "+e);return i[b]?i(t):i.length>1?(n=[e,e,"",t],r.setFilters.hasOwnProperty(e.toLowerCase())?se(function(e,n){var r,o=i(e,t),a=o.length;while(a--)e[r=O(e,o[a])]=!(n[r]=o[a])}):function(e){return i(e,0,n)}):i}},pseudos:{not:se(function(e){var t=[],n=[],r=s(e.replace(B,"$1"));return r[b]?se(function(e,t,n,i){var o,a=r(e,null,i,[]),s=e.length;while(s--)(o=a[s])&&(e[s]=!(t[s]=o))}):function(e,i,o){return t[0]=e,r(t,null,o,n),t[0]=null,!n.pop()}}),has:se(function(e){return function(t){return oe(e,t).length>0}}),contains:se(function(e){return e=e.replace(Z,ee),function(t){return(t.textContent||t.innerText||i(t)).indexOf(e)>-1}}),lang:se(function(e){return U.test(e||"")||oe.error("unsupported lang: "+e),e=e.replace(Z,ee).toLowerCase(),function(t){var n;do{if(n=g?t.lang:t.getAttribute("xml:lang")||t.getAttribute("lang"))return(n=n.toLowerCase())===e||0===n.indexOf(e+"-")}while((t=t.parentNode)&&1===t.nodeType);return!1}}),target:function(t){var n=e.location&&e.location.hash;return n&&n.slice(1)===t.id},root:function(e){return e===h},focus:function(e){return e===d.activeElement&&(!d.hasFocus||d.hasFocus())&&!!(e.type||e.href||~e.tabIndex)},enabled:de(!1),disabled:de(!0),checked:function(e){var t=e.nodeName.toLowerCase();return"input"===t&&!!e.checked||"option"===t&&!!e.selected},selected:function(e){return e.parentNode&&e.parentNode.selectedIndex,!0===e.selected},empty:function(e){for(e=e.firstChild;e;e=e.nextSibling)if(e.nodeType<6)return!1;return!0},parent:function(e){return!r.pseudos.empty(e)},header:function(e){return Y.test(e.nodeName)},input:function(e){return G.test(e.nodeName)},button:function(e){var t=e.nodeName.toLowerCase();return"input"===t&&"button"===e.type||"button"===t},text:function(e){var t;return"input"===e.nodeName.toLowerCase()&&"text"===e.type&&(null==(t=e.getAttribute("type"))||"text"===t.toLowerCase())},first:he(function(){return[0]}),last:he(function(e,t){return[t-1]}),eq:he(function(e,t,n){return[n<0?n+t:n]}),even:he(function(e,t){for(var n=0;n=0;)e.push(r);return e}),gt:he(function(e,t,n){for(var r=n<0?n+t:n;++r1?function(t,n,r){var i=e.length;while(i--)if(!e[i](t,n,r))return!1;return!0}:e[0]}function be(e,t,n){for(var r=0,i=t.length;r-1&&(o[l]=!(a[l]=f))}}else v=we(v===a?v.splice(h,v.length):v),i?i(null,a,v,u):L.apply(a,v)})}function Ce(e){for(var t,n,i,o=e.length,a=r.relative[e[0].type],s=a||r.relative[" "],u=a?1:0,c=me(function(e){return e===t},s,!0),f=me(function(e){return O(t,e)>-1},s,!0),p=[function(e,n,r){var i=!a&&(r||n!==l)||((t=n).nodeType?c(e,n,r):f(e,n,r));return t=null,i}];u1&&xe(p),u>1&&ve(e.slice(0,u-1).concat({value:" "===e[u-2].type?"*":""})).replace(B,"$1"),n,u0,i=e.length>0,o=function(o,a,s,u,c){var f,h,y,v=0,m="0",x=o&&[],b=[],w=l,C=o||i&&r.find.TAG("*",c),E=T+=null==w?1:Math.random()||.1,k=C.length;for(c&&(l=a===d||a||c);m!==k&&null!=(f=C[m]);m++){if(i&&f){h=0,a||f.ownerDocument===d||(p(f),s=!g);while(y=e[h++])if(y(f,a||d,s)){u.push(f);break}c&&(T=E)}n&&((f=!y&&f)&&v--,o&&x.push(f))}if(v+=m,n&&m!==v){h=0;while(y=t[h++])y(x,b,a,s);if(o){if(v>0)while(m--)x[m]||b[m]||(b[m]=j.call(u));b=we(b)}L.apply(u,b),c&&!o&&b.length>0&&v+t.length>1&&oe.uniqueSort(u)}return c&&(T=E,l=w),x};return n?se(o):o}return s=oe.compile=function(e,t){var n,r=[],i=[],o=S[e+" "];if(!o){t||(t=a(e)),n=t.length;while(n--)(o=Ce(t[n]))[b]?r.push(o):i.push(o);(o=S(e,Ee(i,r))).selector=e}return o},u=oe.select=function(e,t,n,i){var o,u,l,c,f,p="function"==typeof e&&e,d=!i&&a(e=p.selector||e);if(n=n||[],1===d.length){if((u=d[0]=d[0].slice(0)).length>2&&"ID"===(l=u[0]).type&&9===t.nodeType&&g&&r.relative[u[1].type]){if(!(t=(r.find.ID(l.matches[0].replace(Z,ee),t)||[])[0]))return n;p&&(t=t.parentNode),e=e.slice(u.shift().value.length)}o=V.needsContext.test(e)?0:u.length;while(o--){if(l=u[o],r.relative[c=l.type])break;if((f=r.find[c])&&(i=f(l.matches[0].replace(Z,ee),K.test(u[0].type)&&ge(t.parentNode)||t))){if(u.splice(o,1),!(e=i.length&&ve(u)))return L.apply(n,i),n;break}}}return(p||s(e,d))(i,t,!g,n,!t||K.test(e)&&ge(t.parentNode)||t),n},n.sortStable=b.split("").sort(D).join("")===b,n.detectDuplicates=!!f,p(),n.sortDetached=ue(function(e){return 1&e.compareDocumentPosition(d.createElement("fieldset"))}),ue(function(e){return e.innerHTML="","#"===e.firstChild.getAttribute("href")})||le("type|href|height|width",function(e,t,n){if(!n)return e.getAttribute(t,"type"===t.toLowerCase()?1:2)}),n.attributes&&ue(function(e){return e.innerHTML="",e.firstChild.setAttribute("value",""),""===e.firstChild.getAttribute("value")})||le("value",function(e,t,n){if(!n&&"input"===e.nodeName.toLowerCase())return e.defaultValue}),ue(function(e){return null==e.getAttribute("disabled")})||le(P,function(e,t,n){var r;if(!n)return!0===e[t]?t.toLowerCase():(r=e.getAttributeNode(t))&&r.specified?r.value:null}),oe}(e);w.find=E,w.expr=E.selectors,w.expr[":"]=w.expr.pseudos,w.uniqueSort=w.unique=E.uniqueSort,w.text=E.getText,w.isXMLDoc=E.isXML,w.contains=E.contains,w.escapeSelector=E.escape;var k=function(e,t,n){var r=[],i=void 0!==n;while((e=e[t])&&9!==e.nodeType)if(1===e.nodeType){if(i&&w(e).is(n))break;r.push(e)}return r},S=function(e,t){for(var n=[];e;e=e.nextSibling)1===e.nodeType&&e!==t&&n.push(e);return n},D=w.expr.match.needsContext;function N(e,t){return e.nodeName&&e.nodeName.toLowerCase()===t.toLowerCase()}var A=/^<([a-z][^\/\0>:\x20\t\r\n\f]*)[\x20\t\r\n\f]*\/?>(?:<\/\1>|)$/i;function j(e,t,n){return g(t)?w.grep(e,function(e,r){return!!t.call(e,r,e)!==n}):t.nodeType?w.grep(e,function(e){return e===t!==n}):"string"!=typeof t?w.grep(e,function(e){return u.call(t,e)>-1!==n}):w.filter(t,e,n)}w.filter=function(e,t,n){var r=t[0];return n&&(e=":not("+e+")"),1===t.length&&1===r.nodeType?w.find.matchesSelector(r,e)?[r]:[]:w.find.matches(e,w.grep(t,function(e){return 1===e.nodeType}))},w.fn.extend({find:function(e){var t,n,r=this.length,i=this;if("string"!=typeof e)return this.pushStack(w(e).filter(function(){for(t=0;t1?w.uniqueSort(n):n},filter:function(e){return this.pushStack(j(this,e||[],!1))},not:function(e){return this.pushStack(j(this,e||[],!0))},is:function(e){return!!j(this,"string"==typeof e&&D.test(e)?w(e):e||[],!1).length}});var q,L=/^(?:\s*(<[\w\W]+>)[^>]*|#([\w-]+))$/;(w.fn.init=function(e,t,n){var i,o;if(!e)return this;if(n=n||q,"string"==typeof e){if(!(i="<"===e[0]&&">"===e[e.length-1]&&e.length>=3?[null,e,null]:L.exec(e))||!i[1]&&t)return!t||t.jquery?(t||n).find(e):this.constructor(t).find(e);if(i[1]){if(t=t instanceof w?t[0]:t,w.merge(this,w.parseHTML(i[1],t&&t.nodeType?t.ownerDocument||t:r,!0)),A.test(i[1])&&w.isPlainObject(t))for(i in t)g(this[i])?this[i](t[i]):this.attr(i,t[i]);return this}return(o=r.getElementById(i[2]))&&(this[0]=o,this.length=1),this}return e.nodeType?(this[0]=e,this.length=1,this):g(e)?void 0!==n.ready?n.ready(e):e(w):w.makeArray(e,this)}).prototype=w.fn,q=w(r);var H=/^(?:parents|prev(?:Until|All))/,O={children:!0,contents:!0,next:!0,prev:!0};w.fn.extend({has:function(e){var t=w(e,this),n=t.length;return this.filter(function(){for(var e=0;e-1:1===n.nodeType&&w.find.matchesSelector(n,e))){o.push(n);break}return this.pushStack(o.length>1?w.uniqueSort(o):o)},index:function(e){return e?"string"==typeof e?u.call(w(e),this[0]):u.call(this,e.jquery?e[0]:e):this[0]&&this[0].parentNode?this.first().prevAll().length:-1},add:function(e,t){return this.pushStack(w.uniqueSort(w.merge(this.get(),w(e,t))))},addBack:function(e){return this.add(null==e?this.prevObject:this.prevObject.filter(e))}});function P(e,t){while((e=e[t])&&1!==e.nodeType);return e}w.each({parent:function(e){var t=e.parentNode;return t&&11!==t.nodeType?t:null},parents:function(e){return k(e,"parentNode")},parentsUntil:function(e,t,n){return k(e,"parentNode",n)},next:function(e){return P(e,"nextSibling")},prev:function(e){return P(e,"previousSibling")},nextAll:function(e){return k(e,"nextSibling")},prevAll:function(e){return k(e,"previousSibling")},nextUntil:function(e,t,n){return k(e,"nextSibling",n)},prevUntil:function(e,t,n){return k(e,"previousSibling",n)},siblings:function(e){return S((e.parentNode||{}).firstChild,e)},children:function(e){return S(e.firstChild)},contents:function(e){return N(e,"iframe")?e.contentDocument:(N(e,"template")&&(e=e.content||e),w.merge([],e.childNodes))}},function(e,t){w.fn[e]=function(n,r){var i=w.map(this,t,n);return"Until"!==e.slice(-5)&&(r=n),r&&"string"==typeof r&&(i=w.filter(r,i)),this.length>1&&(O[e]||w.uniqueSort(i),H.test(e)&&i.reverse()),this.pushStack(i)}});var M=/[^\x20\t\r\n\f]+/g;function R(e){var t={};return w.each(e.match(M)||[],function(e,n){t[n]=!0}),t}w.Callbacks=function(e){e="string"==typeof e?R(e):w.extend({},e);var t,n,r,i,o=[],a=[],s=-1,u=function(){for(i=i||e.once,r=t=!0;a.length;s=-1){n=a.shift();while(++s-1)o.splice(n,1),n<=s&&s--}),this},has:function(e){return e?w.inArray(e,o)>-1:o.length>0},empty:function(){return o&&(o=[]),this},disable:function(){return i=a=[],o=n="",this},disabled:function(){return!o},lock:function(){return i=a=[],n||t||(o=n=""),this},locked:function(){return!!i},fireWith:function(e,n){return i||(n=[e,(n=n||[]).slice?n.slice():n],a.push(n),t||u()),this},fire:function(){return l.fireWith(this,arguments),this},fired:function(){return!!r}};return l};function I(e){return e}function W(e){throw e}function $(e,t,n,r){var i;try{e&&g(i=e.promise)?i.call(e).done(t).fail(n):e&&g(i=e.then)?i.call(e,t,n):t.apply(void 0,[e].slice(r))}catch(e){n.apply(void 0,[e])}}w.extend({Deferred:function(t){var n=[["notify","progress",w.Callbacks("memory"),w.Callbacks("memory"),2],["resolve","done",w.Callbacks("once memory"),w.Callbacks("once memory"),0,"resolved"],["reject","fail",w.Callbacks("once memory"),w.Callbacks("once memory"),1,"rejected"]],r="pending",i={state:function(){return r},always:function(){return o.done(arguments).fail(arguments),this},"catch":function(e){return i.then(null,e)},pipe:function(){var e=arguments;return w.Deferred(function(t){w.each(n,function(n,r){var i=g(e[r[4]])&&e[r[4]];o[r[1]](function(){var e=i&&i.apply(this,arguments);e&&g(e.promise)?e.promise().progress(t.notify).done(t.resolve).fail(t.reject):t[r[0]+"With"](this,i?[e]:arguments)})}),e=null}).promise()},then:function(t,r,i){var o=0;function a(t,n,r,i){return function(){var s=this,u=arguments,l=function(){var e,l;if(!(t=o&&(r!==W&&(s=void 0,u=[e]),n.rejectWith(s,u))}};t?c():(w.Deferred.getStackHook&&(c.stackTrace=w.Deferred.getStackHook()),e.setTimeout(c))}}return w.Deferred(function(e){n[0][3].add(a(0,e,g(i)?i:I,e.notifyWith)),n[1][3].add(a(0,e,g(t)?t:I)),n[2][3].add(a(0,e,g(r)?r:W))}).promise()},promise:function(e){return null!=e?w.extend(e,i):i}},o={};return w.each(n,function(e,t){var a=t[2],s=t[5];i[t[1]]=a.add,s&&a.add(function(){r=s},n[3-e][2].disable,n[3-e][3].disable,n[0][2].lock,n[0][3].lock),a.add(t[3].fire),o[t[0]]=function(){return o[t[0]+"With"](this===o?void 0:this,arguments),this},o[t[0]+"With"]=a.fireWith}),i.promise(o),t&&t.call(o,o),o},when:function(e){var t=arguments.length,n=t,r=Array(n),i=o.call(arguments),a=w.Deferred(),s=function(e){return function(n){r[e]=this,i[e]=arguments.length>1?o.call(arguments):n,--t||a.resolveWith(r,i)}};if(t<=1&&($(e,a.done(s(n)).resolve,a.reject,!t),"pending"===a.state()||g(i[n]&&i[n].then)))return a.then();while(n--)$(i[n],s(n),a.reject);return a.promise()}});var B=/^(Eval|Internal|Range|Reference|Syntax|Type|URI)Error$/;w.Deferred.exceptionHook=function(t,n){e.console&&e.console.warn&&t&&B.test(t.name)&&e.console.warn("jQuery.Deferred exception: "+t.message,t.stack,n)},w.readyException=function(t){e.setTimeout(function(){throw t})};var F=w.Deferred();w.fn.ready=function(e){return F.then(e)["catch"](function(e){w.readyException(e)}),this},w.extend({isReady:!1,readyWait:1,ready:function(e){(!0===e?--w.readyWait:w.isReady)||(w.isReady=!0,!0!==e&&--w.readyWait>0||F.resolveWith(r,[w]))}}),w.ready.then=F.then;function _(){r.removeEventListener("DOMContentLoaded",_),e.removeEventListener("load",_),w.ready()}"complete"===r.readyState||"loading"!==r.readyState&&!r.documentElement.doScroll?e.setTimeout(w.ready):(r.addEventListener("DOMContentLoaded",_),e.addEventListener("load",_));var z=function(e,t,n,r,i,o,a){var s=0,u=e.length,l=null==n;if("object"===x(n)){i=!0;for(s in n)z(e,t,s,n[s],!0,o,a)}else if(void 0!==r&&(i=!0,g(r)||(a=!0),l&&(a?(t.call(e,r),t=null):(l=t,t=function(e,t,n){return l.call(w(e),n)})),t))for(;s1,null,!0)},removeData:function(e){return this.each(function(){K.remove(this,e)})}}),w.extend({queue:function(e,t,n){var r;if(e)return t=(t||"fx")+"queue",r=J.get(e,t),n&&(!r||Array.isArray(n)?r=J.access(e,t,w.makeArray(n)):r.push(n)),r||[]},dequeue:function(e,t){t=t||"fx";var n=w.queue(e,t),r=n.length,i=n.shift(),o=w._queueHooks(e,t),a=function(){w.dequeue(e,t)};"inprogress"===i&&(i=n.shift(),r--),i&&("fx"===t&&n.unshift("inprogress"),delete o.stop,i.call(e,a,o)),!r&&o&&o.empty.fire()},_queueHooks:function(e,t){var n=t+"queueHooks";return J.get(e,n)||J.access(e,n,{empty:w.Callbacks("once memory").add(function(){J.remove(e,[t+"queue",n])})})}}),w.fn.extend({queue:function(e,t){var n=2;return"string"!=typeof e&&(t=e,e="fx",n--),arguments.length\x20\t\r\n\f]+)/i,he=/^$|^module$|\/(?:java|ecma)script/i,ge={option:[1,""],thead:[1,"","
                  "],col:[2,"","
                  "],tr:[2,"","
                  "],td:[3,"","
                  "],_default:[0,"",""]};ge.optgroup=ge.option,ge.tbody=ge.tfoot=ge.colgroup=ge.caption=ge.thead,ge.th=ge.td;function ye(e,t){var n;return n="undefined"!=typeof e.getElementsByTagName?e.getElementsByTagName(t||"*"):"undefined"!=typeof e.querySelectorAll?e.querySelectorAll(t||"*"):[],void 0===t||t&&N(e,t)?w.merge([e],n):n}function ve(e,t){for(var n=0,r=e.length;n-1)i&&i.push(o);else if(l=w.contains(o.ownerDocument,o),a=ye(f.appendChild(o),"script"),l&&ve(a),n){c=0;while(o=a[c++])he.test(o.type||"")&&n.push(o)}return f}!function(){var e=r.createDocumentFragment().appendChild(r.createElement("div")),t=r.createElement("input");t.setAttribute("type","radio"),t.setAttribute("checked","checked"),t.setAttribute("name","t"),e.appendChild(t),h.checkClone=e.cloneNode(!0).cloneNode(!0).lastChild.checked,e.innerHTML="",h.noCloneChecked=!!e.cloneNode(!0).lastChild.defaultValue}();var be=r.documentElement,we=/^key/,Te=/^(?:mouse|pointer|contextmenu|drag|drop)|click/,Ce=/^([^.]*)(?:\.(.+)|)/;function Ee(){return!0}function ke(){return!1}function Se(){try{return r.activeElement}catch(e){}}function De(e,t,n,r,i,o){var a,s;if("object"==typeof t){"string"!=typeof n&&(r=r||n,n=void 0);for(s in t)De(e,s,n,r,t[s],o);return e}if(null==r&&null==i?(i=n,r=n=void 0):null==i&&("string"==typeof n?(i=r,r=void 0):(i=r,r=n,n=void 0)),!1===i)i=ke;else if(!i)return e;return 1===o&&(a=i,(i=function(e){return w().off(e),a.apply(this,arguments)}).guid=a.guid||(a.guid=w.guid++)),e.each(function(){w.event.add(this,t,i,r,n)})}w.event={global:{},add:function(e,t,n,r,i){var o,a,s,u,l,c,f,p,d,h,g,y=J.get(e);if(y){n.handler&&(n=(o=n).handler,i=o.selector),i&&w.find.matchesSelector(be,i),n.guid||(n.guid=w.guid++),(u=y.events)||(u=y.events={}),(a=y.handle)||(a=y.handle=function(t){return"undefined"!=typeof w&&w.event.triggered!==t.type?w.event.dispatch.apply(e,arguments):void 0}),l=(t=(t||"").match(M)||[""]).length;while(l--)d=g=(s=Ce.exec(t[l])||[])[1],h=(s[2]||"").split(".").sort(),d&&(f=w.event.special[d]||{},d=(i?f.delegateType:f.bindType)||d,f=w.event.special[d]||{},c=w.extend({type:d,origType:g,data:r,handler:n,guid:n.guid,selector:i,needsContext:i&&w.expr.match.needsContext.test(i),namespace:h.join(".")},o),(p=u[d])||((p=u[d]=[]).delegateCount=0,f.setup&&!1!==f.setup.call(e,r,h,a)||e.addEventListener&&e.addEventListener(d,a)),f.add&&(f.add.call(e,c),c.handler.guid||(c.handler.guid=n.guid)),i?p.splice(p.delegateCount++,0,c):p.push(c),w.event.global[d]=!0)}},remove:function(e,t,n,r,i){var o,a,s,u,l,c,f,p,d,h,g,y=J.hasData(e)&&J.get(e);if(y&&(u=y.events)){l=(t=(t||"").match(M)||[""]).length;while(l--)if(s=Ce.exec(t[l])||[],d=g=s[1],h=(s[2]||"").split(".").sort(),d){f=w.event.special[d]||{},p=u[d=(r?f.delegateType:f.bindType)||d]||[],s=s[2]&&new RegExp("(^|\\.)"+h.join("\\.(?:.*\\.|)")+"(\\.|$)"),a=o=p.length;while(o--)c=p[o],!i&&g!==c.origType||n&&n.guid!==c.guid||s&&!s.test(c.namespace)||r&&r!==c.selector&&("**"!==r||!c.selector)||(p.splice(o,1),c.selector&&p.delegateCount--,f.remove&&f.remove.call(e,c));a&&!p.length&&(f.teardown&&!1!==f.teardown.call(e,h,y.handle)||w.removeEvent(e,d,y.handle),delete u[d])}else for(d in u)w.event.remove(e,d+t[l],n,r,!0);w.isEmptyObject(u)&&J.remove(e,"handle events")}},dispatch:function(e){var t=w.event.fix(e),n,r,i,o,a,s,u=new Array(arguments.length),l=(J.get(this,"events")||{})[t.type]||[],c=w.event.special[t.type]||{};for(u[0]=t,n=1;n=1))for(;l!==this;l=l.parentNode||this)if(1===l.nodeType&&("click"!==e.type||!0!==l.disabled)){for(o=[],a={},n=0;n-1:w.find(i,this,null,[l]).length),a[i]&&o.push(r);o.length&&s.push({elem:l,handlers:o})}return l=this,u\x20\t\r\n\f]*)[^>]*)\/>/gi,Ae=/\s*$/g;function Le(e,t){return N(e,"table")&&N(11!==t.nodeType?t:t.firstChild,"tr")?w(e).children("tbody")[0]||e:e}function He(e){return e.type=(null!==e.getAttribute("type"))+"/"+e.type,e}function Oe(e){return"true/"===(e.type||"").slice(0,5)?e.type=e.type.slice(5):e.removeAttribute("type"),e}function Pe(e,t){var n,r,i,o,a,s,u,l;if(1===t.nodeType){if(J.hasData(e)&&(o=J.access(e),a=J.set(t,o),l=o.events)){delete a.handle,a.events={};for(i in l)for(n=0,r=l[i].length;n1&&"string"==typeof y&&!h.checkClone&&je.test(y))return e.each(function(i){var o=e.eq(i);v&&(t[0]=y.call(this,i,o.html())),Re(o,t,n,r)});if(p&&(i=xe(t,e[0].ownerDocument,!1,e,r),o=i.firstChild,1===i.childNodes.length&&(i=o),o||r)){for(u=(s=w.map(ye(i,"script"),He)).length;f")},clone:function(e,t,n){var r,i,o,a,s=e.cloneNode(!0),u=w.contains(e.ownerDocument,e);if(!(h.noCloneChecked||1!==e.nodeType&&11!==e.nodeType||w.isXMLDoc(e)))for(a=ye(s),r=0,i=(o=ye(e)).length;r0&&ve(a,!u&&ye(e,"script")),s},cleanData:function(e){for(var t,n,r,i=w.event.special,o=0;void 0!==(n=e[o]);o++)if(Y(n)){if(t=n[J.expando]){if(t.events)for(r in t.events)i[r]?w.event.remove(n,r):w.removeEvent(n,r,t.handle);n[J.expando]=void 0}n[K.expando]&&(n[K.expando]=void 0)}}}),w.fn.extend({detach:function(e){return Ie(this,e,!0)},remove:function(e){return Ie(this,e)},text:function(e){return z(this,function(e){return void 0===e?w.text(this):this.empty().each(function(){1!==this.nodeType&&11!==this.nodeType&&9!==this.nodeType||(this.textContent=e)})},null,e,arguments.length)},append:function(){return Re(this,arguments,function(e){1!==this.nodeType&&11!==this.nodeType&&9!==this.nodeType||Le(this,e).appendChild(e)})},prepend:function(){return Re(this,arguments,function(e){if(1===this.nodeType||11===this.nodeType||9===this.nodeType){var t=Le(this,e);t.insertBefore(e,t.firstChild)}})},before:function(){return Re(this,arguments,function(e){this.parentNode&&this.parentNode.insertBefore(e,this)})},after:function(){return Re(this,arguments,function(e){this.parentNode&&this.parentNode.insertBefore(e,this.nextSibling)})},empty:function(){for(var e,t=0;null!=(e=this[t]);t++)1===e.nodeType&&(w.cleanData(ye(e,!1)),e.textContent="");return this},clone:function(e,t){return e=null!=e&&e,t=null==t?e:t,this.map(function(){return w.clone(this,e,t)})},html:function(e){return z(this,function(e){var t=this[0]||{},n=0,r=this.length;if(void 0===e&&1===t.nodeType)return t.innerHTML;if("string"==typeof e&&!Ae.test(e)&&!ge[(de.exec(e)||["",""])[1].toLowerCase()]){e=w.htmlPrefilter(e);try{for(;n=0&&(u+=Math.max(0,Math.ceil(e["offset"+t[0].toUpperCase()+t.slice(1)]-o-u-s-.5))),u}function et(e,t,n){var r=$e(e),i=Fe(e,t,r),o="border-box"===w.css(e,"boxSizing",!1,r),a=o;if(We.test(i)){if(!n)return i;i="auto"}return a=a&&(h.boxSizingReliable()||i===e.style[t]),("auto"===i||!parseFloat(i)&&"inline"===w.css(e,"display",!1,r))&&(i=e["offset"+t[0].toUpperCase()+t.slice(1)],a=!0),(i=parseFloat(i)||0)+Ze(e,t,n||(o?"border":"content"),a,r,i)+"px"}w.extend({cssHooks:{opacity:{get:function(e,t){if(t){var n=Fe(e,"opacity");return""===n?"1":n}}}},cssNumber:{animationIterationCount:!0,columnCount:!0,fillOpacity:!0,flexGrow:!0,flexShrink:!0,fontWeight:!0,lineHeight:!0,opacity:!0,order:!0,orphans:!0,widows:!0,zIndex:!0,zoom:!0},cssProps:{},style:function(e,t,n,r){if(e&&3!==e.nodeType&&8!==e.nodeType&&e.style){var i,o,a,s=G(t),u=Xe.test(t),l=e.style;if(u||(t=Je(s)),a=w.cssHooks[t]||w.cssHooks[s],void 0===n)return a&&"get"in a&&void 0!==(i=a.get(e,!1,r))?i:l[t];"string"==(o=typeof n)&&(i=ie.exec(n))&&i[1]&&(n=ue(e,t,i),o="number"),null!=n&&n===n&&("number"===o&&(n+=i&&i[3]||(w.cssNumber[s]?"":"px")),h.clearCloneStyle||""!==n||0!==t.indexOf("background")||(l[t]="inherit"),a&&"set"in a&&void 0===(n=a.set(e,n,r))||(u?l.setProperty(t,n):l[t]=n))}},css:function(e,t,n,r){var i,o,a,s=G(t);return Xe.test(t)||(t=Je(s)),(a=w.cssHooks[t]||w.cssHooks[s])&&"get"in a&&(i=a.get(e,!0,n)),void 0===i&&(i=Fe(e,t,r)),"normal"===i&&t in Ve&&(i=Ve[t]),""===n||n?(o=parseFloat(i),!0===n||isFinite(o)?o||0:i):i}}),w.each(["height","width"],function(e,t){w.cssHooks[t]={get:function(e,n,r){if(n)return!ze.test(w.css(e,"display"))||e.getClientRects().length&&e.getBoundingClientRect().width?et(e,t,r):se(e,Ue,function(){return et(e,t,r)})},set:function(e,n,r){var i,o=$e(e),a="border-box"===w.css(e,"boxSizing",!1,o),s=r&&Ze(e,t,r,a,o);return a&&h.scrollboxSize()===o.position&&(s-=Math.ceil(e["offset"+t[0].toUpperCase()+t.slice(1)]-parseFloat(o[t])-Ze(e,t,"border",!1,o)-.5)),s&&(i=ie.exec(n))&&"px"!==(i[3]||"px")&&(e.style[t]=n,n=w.css(e,t)),Ke(e,n,s)}}}),w.cssHooks.marginLeft=_e(h.reliableMarginLeft,function(e,t){if(t)return(parseFloat(Fe(e,"marginLeft"))||e.getBoundingClientRect().left-se(e,{marginLeft:0},function(){return e.getBoundingClientRect().left}))+"px"}),w.each({margin:"",padding:"",border:"Width"},function(e,t){w.cssHooks[e+t]={expand:function(n){for(var r=0,i={},o="string"==typeof n?n.split(" "):[n];r<4;r++)i[e+oe[r]+t]=o[r]||o[r-2]||o[0];return i}},"margin"!==e&&(w.cssHooks[e+t].set=Ke)}),w.fn.extend({css:function(e,t){return z(this,function(e,t,n){var r,i,o={},a=0;if(Array.isArray(t)){for(r=$e(e),i=t.length;a1)}});function tt(e,t,n,r,i){return new tt.prototype.init(e,t,n,r,i)}w.Tween=tt,tt.prototype={constructor:tt,init:function(e,t,n,r,i,o){this.elem=e,this.prop=n,this.easing=i||w.easing._default,this.options=t,this.start=this.now=this.cur(),this.end=r,this.unit=o||(w.cssNumber[n]?"":"px")},cur:function(){var e=tt.propHooks[this.prop];return e&&e.get?e.get(this):tt.propHooks._default.get(this)},run:function(e){var t,n=tt.propHooks[this.prop];return this.options.duration?this.pos=t=w.easing[this.easing](e,this.options.duration*e,0,1,this.options.duration):this.pos=t=e,this.now=(this.end-this.start)*t+this.start,this.options.step&&this.options.step.call(this.elem,this.now,this),n&&n.set?n.set(this):tt.propHooks._default.set(this),this}},tt.prototype.init.prototype=tt.prototype,tt.propHooks={_default:{get:function(e){var t;return 1!==e.elem.nodeType||null!=e.elem[e.prop]&&null==e.elem.style[e.prop]?e.elem[e.prop]:(t=w.css(e.elem,e.prop,""))&&"auto"!==t?t:0},set:function(e){w.fx.step[e.prop]?w.fx.step[e.prop](e):1!==e.elem.nodeType||null==e.elem.style[w.cssProps[e.prop]]&&!w.cssHooks[e.prop]?e.elem[e.prop]=e.now:w.style(e.elem,e.prop,e.now+e.unit)}}},tt.propHooks.scrollTop=tt.propHooks.scrollLeft={set:function(e){e.elem.nodeType&&e.elem.parentNode&&(e.elem[e.prop]=e.now)}},w.easing={linear:function(e){return e},swing:function(e){return.5-Math.cos(e*Math.PI)/2},_default:"swing"},w.fx=tt.prototype.init,w.fx.step={};var nt,rt,it=/^(?:toggle|show|hide)$/,ot=/queueHooks$/;function at(){rt&&(!1===r.hidden&&e.requestAnimationFrame?e.requestAnimationFrame(at):e.setTimeout(at,w.fx.interval),w.fx.tick())}function st(){return e.setTimeout(function(){nt=void 0}),nt=Date.now()}function ut(e,t){var n,r=0,i={height:e};for(t=t?1:0;r<4;r+=2-t)i["margin"+(n=oe[r])]=i["padding"+n]=e;return t&&(i.opacity=i.width=e),i}function lt(e,t,n){for(var r,i=(pt.tweeners[t]||[]).concat(pt.tweeners["*"]),o=0,a=i.length;o1)},removeAttr:function(e){return this.each(function(){w.removeAttr(this,e)})}}),w.extend({attr:function(e,t,n){var r,i,o=e.nodeType;if(3!==o&&8!==o&&2!==o)return"undefined"==typeof e.getAttribute?w.prop(e,t,n):(1===o&&w.isXMLDoc(e)||(i=w.attrHooks[t.toLowerCase()]||(w.expr.match.bool.test(t)?dt:void 0)),void 0!==n?null===n?void w.removeAttr(e,t):i&&"set"in i&&void 0!==(r=i.set(e,n,t))?r:(e.setAttribute(t,n+""),n):i&&"get"in i&&null!==(r=i.get(e,t))?r:null==(r=w.find.attr(e,t))?void 0:r)},attrHooks:{type:{set:function(e,t){if(!h.radioValue&&"radio"===t&&N(e,"input")){var n=e.value;return e.setAttribute("type",t),n&&(e.value=n),t}}}},removeAttr:function(e,t){var n,r=0,i=t&&t.match(M);if(i&&1===e.nodeType)while(n=i[r++])e.removeAttribute(n)}}),dt={set:function(e,t,n){return!1===t?w.removeAttr(e,n):e.setAttribute(n,n),n}},w.each(w.expr.match.bool.source.match(/\w+/g),function(e,t){var n=ht[t]||w.find.attr;ht[t]=function(e,t,r){var i,o,a=t.toLowerCase();return r||(o=ht[a],ht[a]=i,i=null!=n(e,t,r)?a:null,ht[a]=o),i}});var gt=/^(?:input|select|textarea|button)$/i,yt=/^(?:a|area)$/i;w.fn.extend({prop:function(e,t){return z(this,w.prop,e,t,arguments.length>1)},removeProp:function(e){return this.each(function(){delete this[w.propFix[e]||e]})}}),w.extend({prop:function(e,t,n){var r,i,o=e.nodeType;if(3!==o&&8!==o&&2!==o)return 1===o&&w.isXMLDoc(e)||(t=w.propFix[t]||t,i=w.propHooks[t]),void 0!==n?i&&"set"in i&&void 0!==(r=i.set(e,n,t))?r:e[t]=n:i&&"get"in i&&null!==(r=i.get(e,t))?r:e[t]},propHooks:{tabIndex:{get:function(e){var t=w.find.attr(e,"tabindex");return t?parseInt(t,10):gt.test(e.nodeName)||yt.test(e.nodeName)&&e.href?0:-1}}},propFix:{"for":"htmlFor","class":"className"}}),h.optSelected||(w.propHooks.selected={get:function(e){var t=e.parentNode;return t&&t.parentNode&&t.parentNode.selectedIndex,null},set:function(e){var t=e.parentNode;t&&(t.selectedIndex,t.parentNode&&t.parentNode.selectedIndex)}}),w.each(["tabIndex","readOnly","maxLength","cellSpacing","cellPadding","rowSpan","colSpan","useMap","frameBorder","contentEditable"],function(){w.propFix[this.toLowerCase()]=this});function vt(e){return(e.match(M)||[]).join(" ")}function mt(e){return e.getAttribute&&e.getAttribute("class")||""}function xt(e){return Array.isArray(e)?e:"string"==typeof e?e.match(M)||[]:[]}w.fn.extend({addClass:function(e){var t,n,r,i,o,a,s,u=0;if(g(e))return this.each(function(t){w(this).addClass(e.call(this,t,mt(this)))});if((t=xt(e)).length)while(n=this[u++])if(i=mt(n),r=1===n.nodeType&&" "+vt(i)+" "){a=0;while(o=t[a++])r.indexOf(" "+o+" ")<0&&(r+=o+" ");i!==(s=vt(r))&&n.setAttribute("class",s)}return this},removeClass:function(e){var t,n,r,i,o,a,s,u=0;if(g(e))return this.each(function(t){w(this).removeClass(e.call(this,t,mt(this)))});if(!arguments.length)return this.attr("class","");if((t=xt(e)).length)while(n=this[u++])if(i=mt(n),r=1===n.nodeType&&" "+vt(i)+" "){a=0;while(o=t[a++])while(r.indexOf(" "+o+" ")>-1)r=r.replace(" "+o+" "," ");i!==(s=vt(r))&&n.setAttribute("class",s)}return this},toggleClass:function(e,t){var n=typeof e,r="string"===n||Array.isArray(e);return"boolean"==typeof t&&r?t?this.addClass(e):this.removeClass(e):g(e)?this.each(function(n){w(this).toggleClass(e.call(this,n,mt(this),t),t)}):this.each(function(){var t,i,o,a;if(r){i=0,o=w(this),a=xt(e);while(t=a[i++])o.hasClass(t)?o.removeClass(t):o.addClass(t)}else void 0!==e&&"boolean"!==n||((t=mt(this))&&J.set(this,"__className__",t),this.setAttribute&&this.setAttribute("class",t||!1===e?"":J.get(this,"__className__")||""))})},hasClass:function(e){var t,n,r=0;t=" "+e+" ";while(n=this[r++])if(1===n.nodeType&&(" "+vt(mt(n))+" ").indexOf(t)>-1)return!0;return!1}});var bt=/\r/g;w.fn.extend({val:function(e){var t,n,r,i=this[0];{if(arguments.length)return r=g(e),this.each(function(n){var i;1===this.nodeType&&(null==(i=r?e.call(this,n,w(this).val()):e)?i="":"number"==typeof i?i+="":Array.isArray(i)&&(i=w.map(i,function(e){return null==e?"":e+""})),(t=w.valHooks[this.type]||w.valHooks[this.nodeName.toLowerCase()])&&"set"in t&&void 0!==t.set(this,i,"value")||(this.value=i))});if(i)return(t=w.valHooks[i.type]||w.valHooks[i.nodeName.toLowerCase()])&&"get"in t&&void 0!==(n=t.get(i,"value"))?n:"string"==typeof(n=i.value)?n.replace(bt,""):null==n?"":n}}}),w.extend({valHooks:{option:{get:function(e){var t=w.find.attr(e,"value");return null!=t?t:vt(w.text(e))}},select:{get:function(e){var t,n,r,i=e.options,o=e.selectedIndex,a="select-one"===e.type,s=a?null:[],u=a?o+1:i.length;for(r=o<0?u:a?o:0;r-1)&&(n=!0);return n||(e.selectedIndex=-1),o}}}}),w.each(["radio","checkbox"],function(){w.valHooks[this]={set:function(e,t){if(Array.isArray(t))return e.checked=w.inArray(w(e).val(),t)>-1}},h.checkOn||(w.valHooks[this].get=function(e){return null===e.getAttribute("value")?"on":e.value})}),h.focusin="onfocusin"in e;var wt=/^(?:focusinfocus|focusoutblur)$/,Tt=function(e){e.stopPropagation()};w.extend(w.event,{trigger:function(t,n,i,o){var a,s,u,l,c,p,d,h,v=[i||r],m=f.call(t,"type")?t.type:t,x=f.call(t,"namespace")?t.namespace.split("."):[];if(s=h=u=i=i||r,3!==i.nodeType&&8!==i.nodeType&&!wt.test(m+w.event.triggered)&&(m.indexOf(".")>-1&&(m=(x=m.split(".")).shift(),x.sort()),c=m.indexOf(":")<0&&"on"+m,t=t[w.expando]?t:new w.Event(m,"object"==typeof t&&t),t.isTrigger=o?2:3,t.namespace=x.join("."),t.rnamespace=t.namespace?new RegExp("(^|\\.)"+x.join("\\.(?:.*\\.|)")+"(\\.|$)"):null,t.result=void 0,t.target||(t.target=i),n=null==n?[t]:w.makeArray(n,[t]),d=w.event.special[m]||{},o||!d.trigger||!1!==d.trigger.apply(i,n))){if(!o&&!d.noBubble&&!y(i)){for(l=d.delegateType||m,wt.test(l+m)||(s=s.parentNode);s;s=s.parentNode)v.push(s),u=s;u===(i.ownerDocument||r)&&v.push(u.defaultView||u.parentWindow||e)}a=0;while((s=v[a++])&&!t.isPropagationStopped())h=s,t.type=a>1?l:d.bindType||m,(p=(J.get(s,"events")||{})[t.type]&&J.get(s,"handle"))&&p.apply(s,n),(p=c&&s[c])&&p.apply&&Y(s)&&(t.result=p.apply(s,n),!1===t.result&&t.preventDefault());return t.type=m,o||t.isDefaultPrevented()||d._default&&!1!==d._default.apply(v.pop(),n)||!Y(i)||c&&g(i[m])&&!y(i)&&((u=i[c])&&(i[c]=null),w.event.triggered=m,t.isPropagationStopped()&&h.addEventListener(m,Tt),i[m](),t.isPropagationStopped()&&h.removeEventListener(m,Tt),w.event.triggered=void 0,u&&(i[c]=u)),t.result}},simulate:function(e,t,n){var r=w.extend(new w.Event,n,{type:e,isSimulated:!0});w.event.trigger(r,null,t)}}),w.fn.extend({trigger:function(e,t){return this.each(function(){w.event.trigger(e,t,this)})},triggerHandler:function(e,t){var n=this[0];if(n)return w.event.trigger(e,t,n,!0)}}),h.focusin||w.each({focus:"focusin",blur:"focusout"},function(e,t){var n=function(e){w.event.simulate(t,e.target,w.event.fix(e))};w.event.special[t]={setup:function(){var r=this.ownerDocument||this,i=J.access(r,t);i||r.addEventListener(e,n,!0),J.access(r,t,(i||0)+1)},teardown:function(){var r=this.ownerDocument||this,i=J.access(r,t)-1;i?J.access(r,t,i):(r.removeEventListener(e,n,!0),J.remove(r,t))}}});var Ct=e.location,Et=Date.now(),kt=/\?/;w.parseXML=function(t){var n;if(!t||"string"!=typeof t)return null;try{n=(new e.DOMParser).parseFromString(t,"text/xml")}catch(e){n=void 0}return n&&!n.getElementsByTagName("parsererror").length||w.error("Invalid XML: "+t),n};var St=/\[\]$/,Dt=/\r?\n/g,Nt=/^(?:submit|button|image|reset|file)$/i,At=/^(?:input|select|textarea|keygen)/i;function jt(e,t,n,r){var i;if(Array.isArray(t))w.each(t,function(t,i){n||St.test(e)?r(e,i):jt(e+"["+("object"==typeof i&&null!=i?t:"")+"]",i,n,r)});else if(n||"object"!==x(t))r(e,t);else for(i in t)jt(e+"["+i+"]",t[i],n,r)}w.param=function(e,t){var n,r=[],i=function(e,t){var n=g(t)?t():t;r[r.length]=encodeURIComponent(e)+"="+encodeURIComponent(null==n?"":n)};if(Array.isArray(e)||e.jquery&&!w.isPlainObject(e))w.each(e,function(){i(this.name,this.value)});else for(n in e)jt(n,e[n],t,i);return r.join("&")},w.fn.extend({serialize:function(){return w.param(this.serializeArray())},serializeArray:function(){return this.map(function(){var e=w.prop(this,"elements");return e?w.makeArray(e):this}).filter(function(){var e=this.type;return this.name&&!w(this).is(":disabled")&&At.test(this.nodeName)&&!Nt.test(e)&&(this.checked||!pe.test(e))}).map(function(e,t){var n=w(this).val();return null==n?null:Array.isArray(n)?w.map(n,function(e){return{name:t.name,value:e.replace(Dt,"\r\n")}}):{name:t.name,value:n.replace(Dt,"\r\n")}}).get()}});var qt=/%20/g,Lt=/#.*$/,Ht=/([?&])_=[^&]*/,Ot=/^(.*?):[ \t]*([^\r\n]*)$/gm,Pt=/^(?:about|app|app-storage|.+-extension|file|res|widget):$/,Mt=/^(?:GET|HEAD)$/,Rt=/^\/\//,It={},Wt={},$t="*/".concat("*"),Bt=r.createElement("a");Bt.href=Ct.href;function Ft(e){return function(t,n){"string"!=typeof t&&(n=t,t="*");var r,i=0,o=t.toLowerCase().match(M)||[];if(g(n))while(r=o[i++])"+"===r[0]?(r=r.slice(1)||"*",(e[r]=e[r]||[]).unshift(n)):(e[r]=e[r]||[]).push(n)}}function _t(e,t,n,r){var i={},o=e===Wt;function a(s){var u;return i[s]=!0,w.each(e[s]||[],function(e,s){var l=s(t,n,r);return"string"!=typeof l||o||i[l]?o?!(u=l):void 0:(t.dataTypes.unshift(l),a(l),!1)}),u}return a(t.dataTypes[0])||!i["*"]&&a("*")}function zt(e,t){var n,r,i=w.ajaxSettings.flatOptions||{};for(n in t)void 0!==t[n]&&((i[n]?e:r||(r={}))[n]=t[n]);return r&&w.extend(!0,e,r),e}function Xt(e,t,n){var r,i,o,a,s=e.contents,u=e.dataTypes;while("*"===u[0])u.shift(),void 0===r&&(r=e.mimeType||t.getResponseHeader("Content-Type"));if(r)for(i in s)if(s[i]&&s[i].test(r)){u.unshift(i);break}if(u[0]in n)o=u[0];else{for(i in n){if(!u[0]||e.converters[i+" "+u[0]]){o=i;break}a||(a=i)}o=o||a}if(o)return o!==u[0]&&u.unshift(o),n[o]}function Ut(e,t,n,r){var i,o,a,s,u,l={},c=e.dataTypes.slice();if(c[1])for(a in e.converters)l[a.toLowerCase()]=e.converters[a];o=c.shift();while(o)if(e.responseFields[o]&&(n[e.responseFields[o]]=t),!u&&r&&e.dataFilter&&(t=e.dataFilter(t,e.dataType)),u=o,o=c.shift())if("*"===o)o=u;else if("*"!==u&&u!==o){if(!(a=l[u+" "+o]||l["* "+o]))for(i in l)if((s=i.split(" "))[1]===o&&(a=l[u+" "+s[0]]||l["* "+s[0]])){!0===a?a=l[i]:!0!==l[i]&&(o=s[0],c.unshift(s[1]));break}if(!0!==a)if(a&&e["throws"])t=a(t);else try{t=a(t)}catch(e){return{state:"parsererror",error:a?e:"No conversion from "+u+" to "+o}}}return{state:"success",data:t}}w.extend({active:0,lastModified:{},etag:{},ajaxSettings:{url:Ct.href,type:"GET",isLocal:Pt.test(Ct.protocol),global:!0,processData:!0,async:!0,contentType:"application/x-www-form-urlencoded; charset=UTF-8",accepts:{"*":$t,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":w.parseXML},flatOptions:{url:!0,context:!0}},ajaxSetup:function(e,t){return t?zt(zt(e,w.ajaxSettings),t):zt(w.ajaxSettings,e)},ajaxPrefilter:Ft(It),ajaxTransport:Ft(Wt),ajax:function(t,n){"object"==typeof t&&(n=t,t=void 0),n=n||{};var i,o,a,s,u,l,c,f,p,d,h=w.ajaxSetup({},n),g=h.context||h,y=h.context&&(g.nodeType||g.jquery)?w(g):w.event,v=w.Deferred(),m=w.Callbacks("once memory"),x=h.statusCode||{},b={},T={},C="canceled",E={readyState:0,getResponseHeader:function(e){var t;if(c){if(!s){s={};while(t=Ot.exec(a))s[t[1].toLowerCase()]=t[2]}t=s[e.toLowerCase()]}return null==t?null:t},getAllResponseHeaders:function(){return c?a:null},setRequestHeader:function(e,t){return null==c&&(e=T[e.toLowerCase()]=T[e.toLowerCase()]||e,b[e]=t),this},overrideMimeType:function(e){return null==c&&(h.mimeType=e),this},statusCode:function(e){var t;if(e)if(c)E.always(e[E.status]);else for(t in e)x[t]=[x[t],e[t]];return this},abort:function(e){var t=e||C;return i&&i.abort(t),k(0,t),this}};if(v.promise(E),h.url=((t||h.url||Ct.href)+"").replace(Rt,Ct.protocol+"//"),h.type=n.method||n.type||h.method||h.type,h.dataTypes=(h.dataType||"*").toLowerCase().match(M)||[""],null==h.crossDomain){l=r.createElement("a");try{l.href=h.url,l.href=l.href,h.crossDomain=Bt.protocol+"//"+Bt.host!=l.protocol+"//"+l.host}catch(e){h.crossDomain=!0}}if(h.data&&h.processData&&"string"!=typeof h.data&&(h.data=w.param(h.data,h.traditional)),_t(It,h,n,E),c)return E;(f=w.event&&h.global)&&0==w.active++&&w.event.trigger("ajaxStart"),h.type=h.type.toUpperCase(),h.hasContent=!Mt.test(h.type),o=h.url.replace(Lt,""),h.hasContent?h.data&&h.processData&&0===(h.contentType||"").indexOf("application/x-www-form-urlencoded")&&(h.data=h.data.replace(qt,"+")):(d=h.url.slice(o.length),h.data&&(h.processData||"string"==typeof h.data)&&(o+=(kt.test(o)?"&":"?")+h.data,delete h.data),!1===h.cache&&(o=o.replace(Ht,"$1"),d=(kt.test(o)?"&":"?")+"_="+Et+++d),h.url=o+d),h.ifModified&&(w.lastModified[o]&&E.setRequestHeader("If-Modified-Since",w.lastModified[o]),w.etag[o]&&E.setRequestHeader("If-None-Match",w.etag[o])),(h.data&&h.hasContent&&!1!==h.contentType||n.contentType)&&E.setRequestHeader("Content-Type",h.contentType),E.setRequestHeader("Accept",h.dataTypes[0]&&h.accepts[h.dataTypes[0]]?h.accepts[h.dataTypes[0]]+("*"!==h.dataTypes[0]?", "+$t+"; q=0.01":""):h.accepts["*"]);for(p in h.headers)E.setRequestHeader(p,h.headers[p]);if(h.beforeSend&&(!1===h.beforeSend.call(g,E,h)||c))return E.abort();if(C="abort",m.add(h.complete),E.done(h.success),E.fail(h.error),i=_t(Wt,h,n,E)){if(E.readyState=1,f&&y.trigger("ajaxSend",[E,h]),c)return E;h.async&&h.timeout>0&&(u=e.setTimeout(function(){E.abort("timeout")},h.timeout));try{c=!1,i.send(b,k)}catch(e){if(c)throw e;k(-1,e)}}else k(-1,"No Transport");function k(t,n,r,s){var l,p,d,b,T,C=n;c||(c=!0,u&&e.clearTimeout(u),i=void 0,a=s||"",E.readyState=t>0?4:0,l=t>=200&&t<300||304===t,r&&(b=Xt(h,E,r)),b=Ut(h,b,E,l),l?(h.ifModified&&((T=E.getResponseHeader("Last-Modified"))&&(w.lastModified[o]=T),(T=E.getResponseHeader("etag"))&&(w.etag[o]=T)),204===t||"HEAD"===h.type?C="nocontent":304===t?C="notmodified":(C=b.state,p=b.data,l=!(d=b.error))):(d=C,!t&&C||(C="error",t<0&&(t=0))),E.status=t,E.statusText=(n||C)+"",l?v.resolveWith(g,[p,C,E]):v.rejectWith(g,[E,C,d]),E.statusCode(x),x=void 0,f&&y.trigger(l?"ajaxSuccess":"ajaxError",[E,h,l?p:d]),m.fireWith(g,[E,C]),f&&(y.trigger("ajaxComplete",[E,h]),--w.active||w.event.trigger("ajaxStop")))}return E},getJSON:function(e,t,n){return w.get(e,t,n,"json")},getScript:function(e,t){return w.get(e,void 0,t,"script")}}),w.each(["get","post"],function(e,t){w[t]=function(e,n,r,i){return g(n)&&(i=i||r,r=n,n=void 0),w.ajax(w.extend({url:e,type:t,dataType:i,data:n,success:r},w.isPlainObject(e)&&e))}}),w._evalUrl=function(e){return w.ajax({url:e,type:"GET",dataType:"script",cache:!0,async:!1,global:!1,"throws":!0})},w.fn.extend({wrapAll:function(e){var t;return this[0]&&(g(e)&&(e=e.call(this[0])),t=w(e,this[0].ownerDocument).eq(0).clone(!0),this[0].parentNode&&t.insertBefore(this[0]),t.map(function(){var e=this;while(e.firstElementChild)e=e.firstElementChild;return e}).append(this)),this},wrapInner:function(e){return g(e)?this.each(function(t){w(this).wrapInner(e.call(this,t))}):this.each(function(){var t=w(this),n=t.contents();n.length?n.wrapAll(e):t.append(e)})},wrap:function(e){var t=g(e);return this.each(function(n){w(this).wrapAll(t?e.call(this,n):e)})},unwrap:function(e){return this.parent(e).not("body").each(function(){w(this).replaceWith(this.childNodes)}),this}}),w.expr.pseudos.hidden=function(e){return!w.expr.pseudos.visible(e)},w.expr.pseudos.visible=function(e){return!!(e.offsetWidth||e.offsetHeight||e.getClientRects().length)},w.ajaxSettings.xhr=function(){try{return new e.XMLHttpRequest}catch(e){}};var Vt={0:200,1223:204},Gt=w.ajaxSettings.xhr();h.cors=!!Gt&&"withCredentials"in Gt,h.ajax=Gt=!!Gt,w.ajaxTransport(function(t){var n,r;if(h.cors||Gt&&!t.crossDomain)return{send:function(i,o){var a,s=t.xhr();if(s.open(t.type,t.url,t.async,t.username,t.password),t.xhrFields)for(a in t.xhrFields)s[a]=t.xhrFields[a];t.mimeType&&s.overrideMimeType&&s.overrideMimeType(t.mimeType),t.crossDomain||i["X-Requested-With"]||(i["X-Requested-With"]="XMLHttpRequest");for(a in i)s.setRequestHeader(a,i[a]);n=function(e){return function(){n&&(n=r=s.onload=s.onerror=s.onabort=s.ontimeout=s.onreadystatechange=null,"abort"===e?s.abort():"error"===e?"number"!=typeof s.status?o(0,"error"):o(s.status,s.statusText):o(Vt[s.status]||s.status,s.statusText,"text"!==(s.responseType||"text")||"string"!=typeof s.responseText?{binary:s.response}:{text:s.responseText},s.getAllResponseHeaders()))}},s.onload=n(),r=s.onerror=s.ontimeout=n("error"),void 0!==s.onabort?s.onabort=r:s.onreadystatechange=function(){4===s.readyState&&e.setTimeout(function(){n&&r()})},n=n("abort");try{s.send(t.hasContent&&t.data||null)}catch(e){if(n)throw e}},abort:function(){n&&n()}}}),w.ajaxPrefilter(function(e){e.crossDomain&&(e.contents.script=!1)}),w.ajaxSetup({accepts:{script:"text/javascript, application/javascript, application/ecmascript, application/x-ecmascript"},contents:{script:/\b(?:java|ecma)script\b/},converters:{"text script":function(e){return w.globalEval(e),e}}}),w.ajaxPrefilter("script",function(e){void 0===e.cache&&(e.cache=!1),e.crossDomain&&(e.type="GET")}),w.ajaxTransport("script",function(e){if(e.crossDomain){var t,n;return{send:function(i,o){t=w(""); + $this->initialized = true; + } + + $title = '-'; + if (isset($context['request'])) { + $request = $context['request']; + $controller = "{$this->dumper->dump($request['controller'], true, ['maxDepth' => 0])}"; + $title = sprintf('%s %s', $request['method'], $uri = $request['uri'], $uri); + $dedupIdentifier = $request['identifier']; + } elseif (isset($context['cli'])) { + $title = '$ '.$context['cli']['command_line']; + $dedupIdentifier = $context['cli']['identifier']; + } else { + $dedupIdentifier = uniqid('', true); + } + + $sourceDescription = ''; + if (isset($context['source'])) { + $source = $context['source']; + $projectDir = $source['project_dir'] ?? null; + $sourceDescription = sprintf('%s on line %d', $source['name'], $source['line']); + if (isset($source['file_link'])) { + $sourceDescription = sprintf('%s', $source['file_link'], $sourceDescription); + } + } + + $isoDate = $this->extractDate($context, 'c'); + $tags = array_filter([ + 'controller' => $controller ?? null, + 'project dir' => $projectDir ?? null, + ]); + + $output->writeln(<< +
                  +
                  +

                  $title

                  + +
                  + {$this->renderTags($tags)} +
                  +
                  +

                  + $sourceDescription +

                  + {$this->dumper->dump($data, true)} +
                  + +HTML + ); + } + + private function extractDate(array $context, string $format = 'r'): string + { + return date($format, $context['timestamp']); + } + + private function renderTags(array $tags): string + { + if (!$tags) { + return ''; + } + + $renderedTags = ''; + foreach ($tags as $key => $value) { + $renderedTags .= sprintf('
                • %s%s
                • ', $key, $value); + } + + return << +
                    + $renderedTags +
                  + +HTML; + } +} diff --git a/vendor/symfony/var-dumper/Command/ServerDumpCommand.php b/vendor/symfony/var-dumper/Command/ServerDumpCommand.php new file mode 100644 index 0000000..c8a61da --- /dev/null +++ b/vendor/symfony/var-dumper/Command/ServerDumpCommand.php @@ -0,0 +1,99 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +namespace Symfony\Component\VarDumper\Command; + +use Symfony\Component\Console\Command\Command; +use Symfony\Component\Console\Exception\InvalidArgumentException; +use Symfony\Component\Console\Input\InputInterface; +use Symfony\Component\Console\Input\InputOption; +use Symfony\Component\Console\Output\OutputInterface; +use Symfony\Component\Console\Style\SymfonyStyle; +use Symfony\Component\VarDumper\Cloner\Data; +use Symfony\Component\VarDumper\Command\Descriptor\CliDescriptor; +use Symfony\Component\VarDumper\Command\Descriptor\DumpDescriptorInterface; +use Symfony\Component\VarDumper\Command\Descriptor\HtmlDescriptor; +use Symfony\Component\VarDumper\Dumper\CliDumper; +use Symfony\Component\VarDumper\Dumper\HtmlDumper; +use Symfony\Component\VarDumper\Server\DumpServer; + +/** + * Starts a dump server to collect and output dumps on a single place with multiple formats support. + * + * @author Maxime Steinhausser + * + * @final + */ +class ServerDumpCommand extends Command +{ + protected static $defaultName = 'server:dump'; + + private $server; + + /** @var DumpDescriptorInterface[] */ + private $descriptors; + + public function __construct(DumpServer $server, array $descriptors = []) + { + $this->server = $server; + $this->descriptors = $descriptors + [ + 'cli' => new CliDescriptor(new CliDumper()), + 'html' => new HtmlDescriptor(new HtmlDumper()), + ]; + + parent::__construct(); + } + + protected function configure() + { + $availableFormats = implode(', ', array_keys($this->descriptors)); + + $this + ->addOption('format', null, InputOption::VALUE_REQUIRED, sprintf('The output format (%s)', $availableFormats), 'cli') + ->setDescription('Starts a dump server that collects and displays dumps in a single place') + ->setHelp(<<<'EOF' +%command.name% starts a dump server that collects and displays +dumps in a single place for debugging you application: + + php %command.full_name% + +You can consult dumped data in HTML format in your browser by providing the --format=html option +and redirecting the output to a file: + + php %command.full_name% --format="html" > dump.html + +EOF + ) + ; + } + + protected function execute(InputInterface $input, OutputInterface $output): int + { + $io = new SymfonyStyle($input, $output); + $format = $input->getOption('format'); + + if (!$descriptor = $this->descriptors[$format] ?? null) { + throw new InvalidArgumentException(sprintf('Unsupported format "%s".', $format)); + } + + $errorIo = $io->getErrorStyle(); + $errorIo->title('Symfony Var Dumper Server'); + + $this->server->start(); + + $errorIo->success(sprintf('Server listening on %s', $this->server->getHost())); + $errorIo->comment('Quit the server with CONTROL-C.'); + + $this->server->listen(function (Data $data, array $context, int $clientId) use ($descriptor, $io) { + $descriptor->describe($io, $data, $context, $clientId); + }); + } +} diff --git a/vendor/symfony/var-dumper/Dumper/AbstractDumper.php b/vendor/symfony/var-dumper/Dumper/AbstractDumper.php new file mode 100644 index 0000000..4079fd3 --- /dev/null +++ b/vendor/symfony/var-dumper/Dumper/AbstractDumper.php @@ -0,0 +1,212 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +namespace Symfony\Component\VarDumper\Dumper; + +use Symfony\Component\VarDumper\Cloner\Data; +use Symfony\Component\VarDumper\Cloner\DumperInterface; + +/** + * Abstract mechanism for dumping a Data object. + * + * @author Nicolas Grekas + */ +abstract class AbstractDumper implements DataDumperInterface, DumperInterface +{ + const DUMP_LIGHT_ARRAY = 1; + const DUMP_STRING_LENGTH = 2; + const DUMP_COMMA_SEPARATOR = 4; + const DUMP_TRAILING_COMMA = 8; + + public static $defaultOutput = 'php://output'; + + protected $line = ''; + protected $lineDumper; + protected $outputStream; + protected $decimalPoint; // This is locale dependent + protected $indentPad = ' '; + protected $flags; + + private $charset = ''; + + /** + * @param callable|resource|string|null $output A line dumper callable, an opened stream or an output path, defaults to static::$defaultOutput + * @param string|null $charset The default character encoding to use for non-UTF8 strings + * @param int $flags A bit field of static::DUMP_* constants to fine tune dumps representation + */ + public function __construct($output = null, string $charset = null, int $flags = 0) + { + $this->flags = $flags; + $this->setCharset($charset ?: ini_get('php.output_encoding') ?: ini_get('default_charset') ?: 'UTF-8'); + $this->decimalPoint = localeconv(); + $this->decimalPoint = $this->decimalPoint['decimal_point']; + $this->setOutput($output ?: static::$defaultOutput); + if (!$output && \is_string(static::$defaultOutput)) { + static::$defaultOutput = $this->outputStream; + } + } + + /** + * Sets the output destination of the dumps. + * + * @param callable|resource|string $output A line dumper callable, an opened stream or an output path + * + * @return callable|resource|string The previous output destination + */ + public function setOutput($output) + { + $prev = null !== $this->outputStream ? $this->outputStream : $this->lineDumper; + + if (\is_callable($output)) { + $this->outputStream = null; + $this->lineDumper = $output; + } else { + if (\is_string($output)) { + $output = fopen($output, 'wb'); + } + $this->outputStream = $output; + $this->lineDumper = [$this, 'echoLine']; + } + + return $prev; + } + + /** + * Sets the default character encoding to use for non-UTF8 strings. + * + * @param string $charset The default character encoding to use for non-UTF8 strings + * + * @return string The previous charset + */ + public function setCharset($charset) + { + $prev = $this->charset; + + $charset = strtoupper($charset); + $charset = null === $charset || 'UTF-8' === $charset || 'UTF8' === $charset ? 'CP1252' : $charset; + + $this->charset = $charset; + + return $prev; + } + + /** + * Sets the indentation pad string. + * + * @param string $pad A string that will be prepended to dumped lines, repeated by nesting level + * + * @return string The previous indent pad + */ + public function setIndentPad($pad) + { + $prev = $this->indentPad; + $this->indentPad = $pad; + + return $prev; + } + + /** + * Dumps a Data object. + * + * @param callable|resource|string|true|null $output A line dumper callable, an opened stream, an output path or true to return the dump + * + * @return string|null The dump as string when $output is true + */ + public function dump(Data $data, $output = null) + { + $this->decimalPoint = localeconv(); + $this->decimalPoint = $this->decimalPoint['decimal_point']; + + if ($locale = $this->flags & (self::DUMP_COMMA_SEPARATOR | self::DUMP_TRAILING_COMMA) ? setlocale(LC_NUMERIC, 0) : null) { + setlocale(LC_NUMERIC, 'C'); + } + + if ($returnDump = true === $output) { + $output = fopen('php://memory', 'r+b'); + } + if ($output) { + $prevOutput = $this->setOutput($output); + } + try { + $data->dump($this); + $this->dumpLine(-1); + + if ($returnDump) { + $result = stream_get_contents($output, -1, 0); + fclose($output); + + return $result; + } + } finally { + if ($output) { + $this->setOutput($prevOutput); + } + if ($locale) { + setlocale(LC_NUMERIC, $locale); + } + } + + return null; + } + + /** + * Dumps the current line. + * + * @param int $depth The recursive depth in the dumped structure for the line being dumped, + * or -1 to signal the end-of-dump to the line dumper callable + */ + protected function dumpLine($depth) + { + ($this->lineDumper)($this->line, $depth, $this->indentPad); + $this->line = ''; + } + + /** + * Generic line dumper callback. + * + * @param string $line The line to write + * @param int $depth The recursive depth in the dumped structure + * @param string $indentPad The line indent pad + */ + protected function echoLine($line, $depth, $indentPad) + { + if (-1 !== $depth) { + fwrite($this->outputStream, str_repeat($indentPad, $depth).$line."\n"); + } + } + + /** + * Converts a non-UTF-8 string to UTF-8. + * + * @param string|null $s The non-UTF-8 string to convert + * + * @return string|null The string converted to UTF-8 + */ + protected function utf8Encode($s) + { + if (null === $s || preg_match('//u', $s)) { + return $s; + } + + if (!\function_exists('iconv')) { + throw new \RuntimeException('Unable to convert a non-UTF-8 string to UTF-8: required function iconv() does not exist. You should install ext-iconv or symfony/polyfill-iconv.'); + } + + if (false !== $c = @iconv($this->charset, 'UTF-8', $s)) { + return $c; + } + if ('CP1252' !== $this->charset && false !== $c = @iconv('CP1252', 'UTF-8', $s)) { + return $c; + } + + return iconv('CP850', 'UTF-8', $s); + } +} diff --git a/vendor/symfony/var-dumper/Dumper/CliDumper.php b/vendor/symfony/var-dumper/Dumper/CliDumper.php new file mode 100644 index 0000000..b146fc8 --- /dev/null +++ b/vendor/symfony/var-dumper/Dumper/CliDumper.php @@ -0,0 +1,650 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +namespace Symfony\Component\VarDumper\Dumper; + +use Symfony\Component\VarDumper\Cloner\Cursor; +use Symfony\Component\VarDumper\Cloner\Stub; + +/** + * CliDumper dumps variables for command line output. + * + * @author Nicolas Grekas + */ +class CliDumper extends AbstractDumper +{ + public static $defaultColors; + public static $defaultOutput = 'php://stdout'; + + protected $colors; + protected $maxStringWidth = 0; + protected $styles = [ + // See http://en.wikipedia.org/wiki/ANSI_escape_code#graphics + 'default' => '0;38;5;208', + 'num' => '1;38;5;38', + 'const' => '1;38;5;208', + 'str' => '1;38;5;113', + 'note' => '38;5;38', + 'ref' => '38;5;247', + 'public' => '', + 'protected' => '', + 'private' => '', + 'meta' => '38;5;170', + 'key' => '38;5;113', + 'index' => '38;5;38', + ]; + + protected static $controlCharsRx = '/[\x00-\x1F\x7F]+/'; + protected static $controlCharsMap = [ + "\t" => '\t', + "\n" => '\n', + "\v" => '\v', + "\f" => '\f', + "\r" => '\r', + "\033" => '\e', + ]; + + protected $collapseNextHash = false; + protected $expandNextHash = false; + + private $displayOptions = [ + 'fileLinkFormat' => null, + ]; + + private $handlesHrefGracefully; + + /** + * {@inheritdoc} + */ + public function __construct($output = null, string $charset = null, int $flags = 0) + { + parent::__construct($output, $charset, $flags); + + if ('\\' === \DIRECTORY_SEPARATOR && !$this->isWindowsTrueColor()) { + // Use only the base 16 xterm colors when using ANSICON or standard Windows 10 CLI + $this->setStyles([ + 'default' => '31', + 'num' => '1;34', + 'const' => '1;31', + 'str' => '1;32', + 'note' => '34', + 'ref' => '1;30', + 'meta' => '35', + 'key' => '32', + 'index' => '34', + ]); + } + + $this->displayOptions['fileLinkFormat'] = ini_get('xdebug.file_link_format') ?: get_cfg_var('xdebug.file_link_format') ?: 'file://%f#L%l'; + } + + /** + * Enables/disables colored output. + * + * @param bool $colors + */ + public function setColors($colors) + { + $this->colors = (bool) $colors; + } + + /** + * Sets the maximum number of characters per line for dumped strings. + * + * @param int $maxStringWidth + */ + public function setMaxStringWidth($maxStringWidth) + { + $this->maxStringWidth = (int) $maxStringWidth; + } + + /** + * Configures styles. + * + * @param array $styles A map of style names to style definitions + */ + public function setStyles(array $styles) + { + $this->styles = $styles + $this->styles; + } + + /** + * Configures display options. + * + * @param array $displayOptions A map of display options to customize the behavior + */ + public function setDisplayOptions(array $displayOptions) + { + $this->displayOptions = $displayOptions + $this->displayOptions; + } + + /** + * {@inheritdoc} + */ + public function dumpScalar(Cursor $cursor, $type, $value) + { + $this->dumpKey($cursor); + + $style = 'const'; + $attr = $cursor->attr; + + switch ($type) { + case 'default': + $style = 'default'; + break; + + case 'integer': + $style = 'num'; + break; + + case 'double': + $style = 'num'; + + switch (true) { + case INF === $value: $value = 'INF'; break; + case -INF === $value: $value = '-INF'; break; + case is_nan($value): $value = 'NAN'; break; + default: + $value = (string) $value; + if (false === strpos($value, $this->decimalPoint)) { + $value .= $this->decimalPoint.'0'; + } + break; + } + break; + + case 'NULL': + $value = 'null'; + break; + + case 'boolean': + $value = $value ? 'true' : 'false'; + break; + + default: + $attr += ['value' => $this->utf8Encode($value)]; + $value = $this->utf8Encode($type); + break; + } + + $this->line .= $this->style($style, $value, $attr); + + $this->endValue($cursor); + } + + /** + * {@inheritdoc} + */ + public function dumpString(Cursor $cursor, $str, $bin, $cut) + { + $this->dumpKey($cursor); + $attr = $cursor->attr; + + if ($bin) { + $str = $this->utf8Encode($str); + } + if ('' === $str) { + $this->line .= '""'; + $this->endValue($cursor); + } else { + $attr += [ + 'length' => 0 <= $cut ? mb_strlen($str, 'UTF-8') + $cut : 0, + 'binary' => $bin, + ]; + $str = explode("\n", $str); + if (isset($str[1]) && !isset($str[2]) && !isset($str[1][0])) { + unset($str[1]); + $str[0] .= "\n"; + } + $m = \count($str) - 1; + $i = $lineCut = 0; + + if (self::DUMP_STRING_LENGTH & $this->flags) { + $this->line .= '('.$attr['length'].') '; + } + if ($bin) { + $this->line .= 'b'; + } + + if ($m) { + $this->line .= '"""'; + $this->dumpLine($cursor->depth); + } else { + $this->line .= '"'; + } + + foreach ($str as $str) { + if ($i < $m) { + $str .= "\n"; + } + if (0 < $this->maxStringWidth && $this->maxStringWidth < $len = mb_strlen($str, 'UTF-8')) { + $str = mb_substr($str, 0, $this->maxStringWidth, 'UTF-8'); + $lineCut = $len - $this->maxStringWidth; + } + if ($m && 0 < $cursor->depth) { + $this->line .= $this->indentPad; + } + if ('' !== $str) { + $this->line .= $this->style('str', $str, $attr); + } + if ($i++ == $m) { + if ($m) { + if ('' !== $str) { + $this->dumpLine($cursor->depth); + if (0 < $cursor->depth) { + $this->line .= $this->indentPad; + } + } + $this->line .= '"""'; + } else { + $this->line .= '"'; + } + if ($cut < 0) { + $this->line .= '…'; + $lineCut = 0; + } elseif ($cut) { + $lineCut += $cut; + } + } + if ($lineCut) { + $this->line .= '…'.$lineCut; + $lineCut = 0; + } + + if ($i > $m) { + $this->endValue($cursor); + } else { + $this->dumpLine($cursor->depth); + } + } + } + } + + /** + * {@inheritdoc} + */ + public function enterHash(Cursor $cursor, $type, $class, $hasChild) + { + $this->dumpKey($cursor); + $attr = $cursor->attr; + + if ($this->collapseNextHash) { + $cursor->skipChildren = true; + $this->collapseNextHash = $hasChild = false; + } + + $class = $this->utf8Encode($class); + if (Cursor::HASH_OBJECT === $type) { + $prefix = $class && 'stdClass' !== $class ? $this->style('note', $class, $attr).(empty($attr['cut_hash']) ? ' {' : '') : '{'; + } elseif (Cursor::HASH_RESOURCE === $type) { + $prefix = $this->style('note', $class.' resource', $attr).($hasChild ? ' {' : ' '); + } else { + $prefix = $class && !(self::DUMP_LIGHT_ARRAY & $this->flags) ? $this->style('note', 'array:'.$class, $attr).' [' : '['; + } + + if (($cursor->softRefCount || 0 < $cursor->softRefHandle) && empty($attr['cut_hash'])) { + $prefix .= $this->style('ref', (Cursor::HASH_RESOURCE === $type ? '@' : '#').(0 < $cursor->softRefHandle ? $cursor->softRefHandle : $cursor->softRefTo), ['count' => $cursor->softRefCount]); + } elseif ($cursor->hardRefTo && !$cursor->refIndex && $class) { + $prefix .= $this->style('ref', '&'.$cursor->hardRefTo, ['count' => $cursor->hardRefCount]); + } elseif (!$hasChild && Cursor::HASH_RESOURCE === $type) { + $prefix = substr($prefix, 0, -1); + } + + $this->line .= $prefix; + + if ($hasChild) { + $this->dumpLine($cursor->depth); + } + } + + /** + * {@inheritdoc} + */ + public function leaveHash(Cursor $cursor, $type, $class, $hasChild, $cut) + { + if (empty($cursor->attr['cut_hash'])) { + $this->dumpEllipsis($cursor, $hasChild, $cut); + $this->line .= Cursor::HASH_OBJECT === $type ? '}' : (Cursor::HASH_RESOURCE !== $type ? ']' : ($hasChild ? '}' : '')); + } + + $this->endValue($cursor); + } + + /** + * Dumps an ellipsis for cut children. + * + * @param bool $hasChild When the dump of the hash has child item + * @param int $cut The number of items the hash has been cut by + */ + protected function dumpEllipsis(Cursor $cursor, $hasChild, $cut) + { + if ($cut) { + $this->line .= ' …'; + if (0 < $cut) { + $this->line .= $cut; + } + if ($hasChild) { + $this->dumpLine($cursor->depth + 1); + } + } + } + + /** + * Dumps a key in a hash structure. + */ + protected function dumpKey(Cursor $cursor) + { + if (null !== $key = $cursor->hashKey) { + if ($cursor->hashKeyIsBinary) { + $key = $this->utf8Encode($key); + } + $attr = ['binary' => $cursor->hashKeyIsBinary]; + $bin = $cursor->hashKeyIsBinary ? 'b' : ''; + $style = 'key'; + switch ($cursor->hashType) { + default: + case Cursor::HASH_INDEXED: + if (self::DUMP_LIGHT_ARRAY & $this->flags) { + break; + } + $style = 'index'; + // no break + case Cursor::HASH_ASSOC: + if (\is_int($key)) { + $this->line .= $this->style($style, $key).' => '; + } else { + $this->line .= $bin.'"'.$this->style($style, $key).'" => '; + } + break; + + case Cursor::HASH_RESOURCE: + $key = "\0~\0".$key; + // no break + case Cursor::HASH_OBJECT: + if (!isset($key[0]) || "\0" !== $key[0]) { + $this->line .= '+'.$bin.$this->style('public', $key).': '; + } elseif (0 < strpos($key, "\0", 1)) { + $key = explode("\0", substr($key, 1), 2); + + switch ($key[0][0]) { + case '+': // User inserted keys + $attr['dynamic'] = true; + $this->line .= '+'.$bin.'"'.$this->style('public', $key[1], $attr).'": '; + break 2; + case '~': + $style = 'meta'; + if (isset($key[0][1])) { + parse_str(substr($key[0], 1), $attr); + $attr += ['binary' => $cursor->hashKeyIsBinary]; + } + break; + case '*': + $style = 'protected'; + $bin = '#'.$bin; + break; + default: + $attr['class'] = $key[0]; + $style = 'private'; + $bin = '-'.$bin; + break; + } + + if (isset($attr['collapse'])) { + if ($attr['collapse']) { + $this->collapseNextHash = true; + } else { + $this->expandNextHash = true; + } + } + + $this->line .= $bin.$this->style($style, $key[1], $attr).(isset($attr['separator']) ? $attr['separator'] : ': '); + } else { + // This case should not happen + $this->line .= '-'.$bin.'"'.$this->style('private', $key, ['class' => '']).'": '; + } + break; + } + + if ($cursor->hardRefTo) { + $this->line .= $this->style('ref', '&'.($cursor->hardRefCount ? $cursor->hardRefTo : ''), ['count' => $cursor->hardRefCount]).' '; + } + } + } + + /** + * Decorates a value with some style. + * + * @param string $style The type of style being applied + * @param string $value The value being styled + * @param array $attr Optional context information + * + * @return string The value with style decoration + */ + protected function style($style, $value, $attr = []) + { + if (null === $this->colors) { + $this->colors = $this->supportsColors(); + } + + if (null === $this->handlesHrefGracefully) { + $this->handlesHrefGracefully = 'JetBrains-JediTerm' !== getenv('TERMINAL_EMULATOR') && !getenv('KONSOLE_VERSION'); + } + + if (isset($attr['ellipsis'], $attr['ellipsis-type'])) { + $prefix = substr($value, 0, -$attr['ellipsis']); + if ('cli' === \PHP_SAPI && 'path' === $attr['ellipsis-type'] && isset($_SERVER[$pwd = '\\' === \DIRECTORY_SEPARATOR ? 'CD' : 'PWD']) && 0 === strpos($prefix, $_SERVER[$pwd])) { + $prefix = '.'.substr($prefix, \strlen($_SERVER[$pwd])); + } + if (!empty($attr['ellipsis-tail'])) { + $prefix .= substr($value, -$attr['ellipsis'], $attr['ellipsis-tail']); + $value = substr($value, -$attr['ellipsis'] + $attr['ellipsis-tail']); + } else { + $value = substr($value, -$attr['ellipsis']); + } + + $value = $this->style('default', $prefix).$this->style($style, $value); + + goto href; + } + + $map = static::$controlCharsMap; + $startCchr = $this->colors ? "\033[m\033[{$this->styles['default']}m" : ''; + $endCchr = $this->colors ? "\033[m\033[{$this->styles[$style]}m" : ''; + $value = preg_replace_callback(static::$controlCharsRx, function ($c) use ($map, $startCchr, $endCchr) { + $s = $startCchr; + $c = $c[$i = 0]; + do { + $s .= isset($map[$c[$i]]) ? $map[$c[$i]] : sprintf('\x%02X', \ord($c[$i])); + } while (isset($c[++$i])); + + return $s.$endCchr; + }, $value, -1, $cchrCount); + + if ($this->colors) { + if ($cchrCount && "\033" === $value[0]) { + $value = substr($value, \strlen($startCchr)); + } else { + $value = "\033[{$this->styles[$style]}m".$value; + } + if ($cchrCount && $endCchr === substr($value, -\strlen($endCchr))) { + $value = substr($value, 0, -\strlen($endCchr)); + } else { + $value .= "\033[{$this->styles['default']}m"; + } + } + + href: + if ($this->colors && $this->handlesHrefGracefully) { + if (isset($attr['file']) && $href = $this->getSourceLink($attr['file'], isset($attr['line']) ? $attr['line'] : 0)) { + if ('note' === $style) { + $value .= "\033]8;;{$href}\033\\^\033]8;;\033\\"; + } else { + $attr['href'] = $href; + } + } + if (isset($attr['href'])) { + $value = "\033]8;;{$attr['href']}\033\\{$value}\033]8;;\033\\"; + } + } elseif ($attr['if_links'] ?? false) { + return ''; + } + + return $value; + } + + /** + * @return bool Tells if the current output stream supports ANSI colors or not + */ + protected function supportsColors() + { + if ($this->outputStream !== static::$defaultOutput) { + return $this->hasColorSupport($this->outputStream); + } + if (null !== static::$defaultColors) { + return static::$defaultColors; + } + if (isset($_SERVER['argv'][1])) { + $colors = $_SERVER['argv']; + $i = \count($colors); + while (--$i > 0) { + if (isset($colors[$i][5])) { + switch ($colors[$i]) { + case '--ansi': + case '--color': + case '--color=yes': + case '--color=force': + case '--color=always': + return static::$defaultColors = true; + + case '--no-ansi': + case '--color=no': + case '--color=none': + case '--color=never': + return static::$defaultColors = false; + } + } + } + } + + $h = stream_get_meta_data($this->outputStream) + ['wrapper_type' => null]; + $h = 'Output' === $h['stream_type'] && 'PHP' === $h['wrapper_type'] ? fopen('php://stdout', 'wb') : $this->outputStream; + + return static::$defaultColors = $this->hasColorSupport($h); + } + + /** + * {@inheritdoc} + */ + protected function dumpLine($depth, $endOfValue = false) + { + if ($this->colors) { + $this->line = sprintf("\033[%sm%s\033[m", $this->styles['default'], $this->line); + } + parent::dumpLine($depth); + } + + protected function endValue(Cursor $cursor) + { + if (-1 === $cursor->hashType) { + return; + } + + if (Stub::ARRAY_INDEXED === $cursor->hashType || Stub::ARRAY_ASSOC === $cursor->hashType) { + if (self::DUMP_TRAILING_COMMA & $this->flags && 0 < $cursor->depth) { + $this->line .= ','; + } elseif (self::DUMP_COMMA_SEPARATOR & $this->flags && 1 < $cursor->hashLength - $cursor->hashIndex) { + $this->line .= ','; + } + } + + $this->dumpLine($cursor->depth, true); + } + + /** + * Returns true if the stream supports colorization. + * + * Reference: Composer\XdebugHandler\Process::supportsColor + * https://github.com/composer/xdebug-handler + * + * @param mixed $stream A CLI output stream + */ + private function hasColorSupport($stream): bool + { + if (!\is_resource($stream) || 'stream' !== get_resource_type($stream)) { + return false; + } + + // Follow https://no-color.org/ + if (isset($_SERVER['NO_COLOR']) || false !== getenv('NO_COLOR')) { + return false; + } + + if ('Hyper' === getenv('TERM_PROGRAM')) { + return true; + } + + if (\DIRECTORY_SEPARATOR === '\\') { + return (\function_exists('sapi_windows_vt100_support') + && @sapi_windows_vt100_support($stream)) + || false !== getenv('ANSICON') + || 'ON' === getenv('ConEmuANSI') + || 'xterm' === getenv('TERM'); + } + + if (\function_exists('stream_isatty')) { + return @stream_isatty($stream); + } + + if (\function_exists('posix_isatty')) { + return @posix_isatty($stream); + } + + $stat = @fstat($stream); + // Check if formatted mode is S_IFCHR + return $stat ? 0020000 === ($stat['mode'] & 0170000) : false; + } + + /** + * Returns true if the Windows terminal supports true color. + * + * Note that this does not check an output stream, but relies on environment + * variables from known implementations, or a PHP and Windows version that + * supports true color. + */ + private function isWindowsTrueColor(): bool + { + $result = 183 <= getenv('ANSICON_VER') + || 'ON' === getenv('ConEmuANSI') + || 'xterm' === getenv('TERM') + || 'Hyper' === getenv('TERM_PROGRAM'); + + if (!$result && \PHP_VERSION_ID >= 70200) { + $version = sprintf( + '%s.%s.%s', + PHP_WINDOWS_VERSION_MAJOR, + PHP_WINDOWS_VERSION_MINOR, + PHP_WINDOWS_VERSION_BUILD + ); + $result = $version >= '10.0.15063'; + } + + return $result; + } + + private function getSourceLink(string $file, int $line) + { + if ($fmt = $this->displayOptions['fileLinkFormat']) { + return \is_string($fmt) ? strtr($fmt, ['%f' => $file, '%l' => $line]) : ($fmt->format($file, $line) ?: 'file://'.$file.'#L'.$line); + } + + return false; + } +} diff --git a/vendor/symfony/var-dumper/Dumper/ContextProvider/CliContextProvider.php b/vendor/symfony/var-dumper/Dumper/ContextProvider/CliContextProvider.php new file mode 100644 index 0000000..e7f8ccf --- /dev/null +++ b/vendor/symfony/var-dumper/Dumper/ContextProvider/CliContextProvider.php @@ -0,0 +1,32 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +namespace Symfony\Component\VarDumper\Dumper\ContextProvider; + +/** + * Tries to provide context on CLI. + * + * @author Maxime Steinhausser + */ +final class CliContextProvider implements ContextProviderInterface +{ + public function getContext(): ?array + { + if ('cli' !== \PHP_SAPI) { + return null; + } + + return [ + 'command_line' => $commandLine = implode(' ', $_SERVER['argv']), + 'identifier' => hash('crc32b', $commandLine.$_SERVER['REQUEST_TIME_FLOAT']), + ]; + } +} diff --git a/vendor/symfony/var-dumper/Dumper/ContextProvider/ContextProviderInterface.php b/vendor/symfony/var-dumper/Dumper/ContextProvider/ContextProviderInterface.php new file mode 100644 index 0000000..38ef3b0 --- /dev/null +++ b/vendor/symfony/var-dumper/Dumper/ContextProvider/ContextProviderInterface.php @@ -0,0 +1,25 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +namespace Symfony\Component\VarDumper\Dumper\ContextProvider; + +/** + * Interface to provide contextual data about dump data clones sent to a server. + * + * @author Maxime Steinhausser + */ +interface ContextProviderInterface +{ + /** + * @return array|null Context data or null if unable to provide any context + */ + public function getContext(): ?array; +} diff --git a/vendor/symfony/var-dumper/Dumper/ContextProvider/RequestContextProvider.php b/vendor/symfony/var-dumper/Dumper/ContextProvider/RequestContextProvider.php new file mode 100644 index 0000000..3684a47 --- /dev/null +++ b/vendor/symfony/var-dumper/Dumper/ContextProvider/RequestContextProvider.php @@ -0,0 +1,51 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +namespace Symfony\Component\VarDumper\Dumper\ContextProvider; + +use Symfony\Component\HttpFoundation\RequestStack; +use Symfony\Component\VarDumper\Caster\ReflectionCaster; +use Symfony\Component\VarDumper\Cloner\VarCloner; + +/** + * Tries to provide context from a request. + * + * @author Maxime Steinhausser + */ +final class RequestContextProvider implements ContextProviderInterface +{ + private $requestStack; + private $cloner; + + public function __construct(RequestStack $requestStack) + { + $this->requestStack = $requestStack; + $this->cloner = new VarCloner(); + $this->cloner->setMaxItems(0); + $this->cloner->addCasters(ReflectionCaster::UNSET_CLOSURE_FILE_INFO); + } + + public function getContext(): ?array + { + if (null === $request = $this->requestStack->getCurrentRequest()) { + return null; + } + + $controller = $request->attributes->get('_controller'); + + return [ + 'uri' => $request->getUri(), + 'method' => $request->getMethod(), + 'controller' => $controller ? $this->cloner->cloneVar($controller) : $controller, + 'identifier' => spl_object_hash($request), + ]; + } +} diff --git a/vendor/symfony/var-dumper/Dumper/ContextProvider/SourceContextProvider.php b/vendor/symfony/var-dumper/Dumper/ContextProvider/SourceContextProvider.php new file mode 100644 index 0000000..6f4caba --- /dev/null +++ b/vendor/symfony/var-dumper/Dumper/ContextProvider/SourceContextProvider.php @@ -0,0 +1,126 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +namespace Symfony\Component\VarDumper\Dumper\ContextProvider; + +use Symfony\Component\HttpKernel\Debug\FileLinkFormatter; +use Symfony\Component\VarDumper\Cloner\VarCloner; +use Symfony\Component\VarDumper\Dumper\HtmlDumper; +use Symfony\Component\VarDumper\VarDumper; +use Twig\Template; + +/** + * Tries to provide context from sources (class name, file, line, code excerpt, ...). + * + * @author Nicolas Grekas + * @author Maxime Steinhausser + */ +final class SourceContextProvider implements ContextProviderInterface +{ + private $limit; + private $charset; + private $projectDir; + private $fileLinkFormatter; + + public function __construct(string $charset = null, string $projectDir = null, FileLinkFormatter $fileLinkFormatter = null, int $limit = 9) + { + $this->charset = $charset; + $this->projectDir = $projectDir; + $this->fileLinkFormatter = $fileLinkFormatter; + $this->limit = $limit; + } + + public function getContext(): ?array + { + $trace = debug_backtrace(DEBUG_BACKTRACE_PROVIDE_OBJECT | DEBUG_BACKTRACE_IGNORE_ARGS, $this->limit); + + $file = $trace[1]['file']; + $line = $trace[1]['line']; + $name = false; + $fileExcerpt = false; + + for ($i = 2; $i < $this->limit; ++$i) { + if (isset($trace[$i]['class'], $trace[$i]['function']) + && 'dump' === $trace[$i]['function'] + && VarDumper::class === $trace[$i]['class'] + ) { + $file = $trace[$i]['file'] ?? $file; + $line = $trace[$i]['line'] ?? $line; + + while (++$i < $this->limit) { + if (isset($trace[$i]['function'], $trace[$i]['file']) && empty($trace[$i]['class']) && 0 !== strpos($trace[$i]['function'], 'call_user_func')) { + $file = $trace[$i]['file']; + $line = $trace[$i]['line']; + + break; + } elseif (isset($trace[$i]['object']) && $trace[$i]['object'] instanceof Template) { + $template = $trace[$i]['object']; + $name = $template->getTemplateName(); + $src = method_exists($template, 'getSourceContext') ? $template->getSourceContext()->getCode() : (method_exists($template, 'getSource') ? $template->getSource() : false); + $info = $template->getDebugInfo(); + if (isset($info[$trace[$i - 1]['line']])) { + $line = $info[$trace[$i - 1]['line']]; + $file = method_exists($template, 'getSourceContext') ? $template->getSourceContext()->getPath() : null; + + if ($src) { + $src = explode("\n", $src); + $fileExcerpt = []; + + for ($i = max($line - 3, 1), $max = min($line + 3, \count($src)); $i <= $max; ++$i) { + $fileExcerpt[] = ''.$this->htmlEncode($src[$i - 1]).''; + } + + $fileExcerpt = '
                    '.implode("\n", $fileExcerpt).'
                  '; + } + } + break; + } + } + break; + } + } + + if (false === $name) { + $name = str_replace('\\', '/', $file); + $name = substr($name, strrpos($name, '/') + 1); + } + + $context = ['name' => $name, 'file' => $file, 'line' => $line]; + $context['file_excerpt'] = $fileExcerpt; + + if (null !== $this->projectDir) { + $context['project_dir'] = $this->projectDir; + if (0 === strpos($file, $this->projectDir)) { + $context['file_relative'] = ltrim(substr($file, \strlen($this->projectDir)), \DIRECTORY_SEPARATOR); + } + } + + if ($this->fileLinkFormatter && $fileLink = $this->fileLinkFormatter->format($context['file'], $context['line'])) { + $context['file_link'] = $fileLink; + } + + return $context; + } + + private function htmlEncode(string $s): string + { + $html = ''; + + $dumper = new HtmlDumper(function ($line) use (&$html) { $html .= $line; }, $this->charset); + $dumper->setDumpHeader(''); + $dumper->setDumpBoundaries('', ''); + + $cloner = new VarCloner(); + $dumper->dump($cloner->cloneVar($s)); + + return substr(strip_tags($html), 1, -1); + } +} diff --git a/vendor/symfony/var-dumper/Dumper/DataDumperInterface.php b/vendor/symfony/var-dumper/Dumper/DataDumperInterface.php new file mode 100644 index 0000000..b173bcc --- /dev/null +++ b/vendor/symfony/var-dumper/Dumper/DataDumperInterface.php @@ -0,0 +1,24 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +namespace Symfony\Component\VarDumper\Dumper; + +use Symfony\Component\VarDumper\Cloner\Data; + +/** + * DataDumperInterface for dumping Data objects. + * + * @author Nicolas Grekas + */ +interface DataDumperInterface +{ + public function dump(Data $data); +} diff --git a/vendor/symfony/var-dumper/Dumper/HtmlDumper.php b/vendor/symfony/var-dumper/Dumper/HtmlDumper.php new file mode 100644 index 0000000..e7a6e32 --- /dev/null +++ b/vendor/symfony/var-dumper/Dumper/HtmlDumper.php @@ -0,0 +1,1004 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +namespace Symfony\Component\VarDumper\Dumper; + +use Symfony\Component\VarDumper\Cloner\Cursor; +use Symfony\Component\VarDumper\Cloner\Data; + +/** + * HtmlDumper dumps variables as HTML. + * + * @author Nicolas Grekas + */ +class HtmlDumper extends CliDumper +{ + public static $defaultOutput = 'php://output'; + + protected static $themes = [ + 'dark' => [ + 'default' => 'background-color:#18171B; color:#FF8400; line-height:1.2em; font:12px Menlo, Monaco, Consolas, monospace; word-wrap: break-word; white-space: pre-wrap; position:relative; z-index:99999; word-break: break-all', + 'num' => 'font-weight:bold; color:#1299DA', + 'const' => 'font-weight:bold', + 'str' => 'font-weight:bold; color:#56DB3A', + 'note' => 'color:#1299DA', + 'ref' => 'color:#A0A0A0', + 'public' => 'color:#FFFFFF', + 'protected' => 'color:#FFFFFF', + 'private' => 'color:#FFFFFF', + 'meta' => 'color:#B729D9', + 'key' => 'color:#56DB3A', + 'index' => 'color:#1299DA', + 'ellipsis' => 'color:#FF8400', + 'ns' => 'user-select:none;', + ], + 'light' => [ + 'default' => 'background:none; color:#CC7832; line-height:1.2em; font:12px Menlo, Monaco, Consolas, monospace; word-wrap: break-word; white-space: pre-wrap; position:relative; z-index:99999; word-break: break-all', + 'num' => 'font-weight:bold; color:#1299DA', + 'const' => 'font-weight:bold', + 'str' => 'font-weight:bold; color:#629755;', + 'note' => 'color:#6897BB', + 'ref' => 'color:#6E6E6E', + 'public' => 'color:#262626', + 'protected' => 'color:#262626', + 'private' => 'color:#262626', + 'meta' => 'color:#B729D9', + 'key' => 'color:#789339', + 'index' => 'color:#1299DA', + 'ellipsis' => 'color:#CC7832', + 'ns' => 'user-select:none;', + ], + ]; + + protected $dumpHeader; + protected $dumpPrefix = '
                  ';
                  +    protected $dumpSuffix = '
                  '; + protected $dumpId = 'sf-dump'; + protected $colors = true; + protected $headerIsDumped = false; + protected $lastDepth = -1; + protected $styles; + + private $displayOptions = [ + 'maxDepth' => 1, + 'maxStringLength' => 160, + 'fileLinkFormat' => null, + ]; + private $extraDisplayOptions = []; + + /** + * {@inheritdoc} + */ + public function __construct($output = null, string $charset = null, int $flags = 0) + { + AbstractDumper::__construct($output, $charset, $flags); + $this->dumpId = 'sf-dump-'.mt_rand(); + $this->displayOptions['fileLinkFormat'] = ini_get('xdebug.file_link_format') ?: get_cfg_var('xdebug.file_link_format'); + $this->styles = static::$themes['dark'] ?? self::$themes['dark']; + } + + /** + * {@inheritdoc} + */ + public function setStyles(array $styles) + { + $this->headerIsDumped = false; + $this->styles = $styles + $this->styles; + } + + public function setTheme(string $themeName) + { + if (!isset(static::$themes[$themeName])) { + throw new \InvalidArgumentException(sprintf('Theme "%s" does not exist in class "%s".', $themeName, static::class)); + } + + $this->setStyles(static::$themes[$themeName]); + } + + /** + * Configures display options. + * + * @param array $displayOptions A map of display options to customize the behavior + */ + public function setDisplayOptions(array $displayOptions) + { + $this->headerIsDumped = false; + $this->displayOptions = $displayOptions + $this->displayOptions; + } + + /** + * Sets an HTML header that will be dumped once in the output stream. + * + * @param string $header An HTML string + */ + public function setDumpHeader($header) + { + $this->dumpHeader = $header; + } + + /** + * Sets an HTML prefix and suffix that will encapse every single dump. + * + * @param string $prefix The prepended HTML string + * @param string $suffix The appended HTML string + */ + public function setDumpBoundaries($prefix, $suffix) + { + $this->dumpPrefix = $prefix; + $this->dumpSuffix = $suffix; + } + + /** + * {@inheritdoc} + */ + public function dump(Data $data, $output = null, array $extraDisplayOptions = []) + { + $this->extraDisplayOptions = $extraDisplayOptions; + $result = parent::dump($data, $output); + $this->dumpId = 'sf-dump-'.mt_rand(); + + return $result; + } + + /** + * Dumps the HTML header. + */ + protected function getDumpHeader() + { + $this->headerIsDumped = null !== $this->outputStream ? $this->outputStream : $this->lineDumper; + + if (null !== $this->dumpHeader) { + return $this->dumpHeader; + } + + $line = str_replace('{$options}', json_encode($this->displayOptions, JSON_FORCE_OBJECT), <<<'EOHTML' +'.$this->dumpHeader; + } + + /** + * {@inheritdoc} + */ + public function dumpString(Cursor $cursor, $str, $bin, $cut) + { + if ('' === $str && isset($cursor->attr['img-data'], $cursor->attr['content-type'])) { + $this->dumpKey($cursor); + $this->line .= $this->style('default', $cursor->attr['img-size'] ?? '', []).' '; + $this->endValue($cursor); + $this->line .= $this->indentPad; + $this->line .= sprintf('', $cursor->attr['content-type'], base64_encode($cursor->attr['img-data'])); + $this->endValue($cursor); + } else { + parent::dumpString($cursor, $str, $bin, $cut); + } + } + + /** + * {@inheritdoc} + */ + public function enterHash(Cursor $cursor, $type, $class, $hasChild) + { + if (Cursor::HASH_OBJECT === $type) { + $cursor->attr['depth'] = $cursor->depth; + } + parent::enterHash($cursor, $type, $class, false); + + if ($cursor->skipChildren) { + $cursor->skipChildren = false; + $eol = ' class=sf-dump-compact>'; + } elseif ($this->expandNextHash) { + $this->expandNextHash = false; + $eol = ' class=sf-dump-expanded>'; + } else { + $eol = '>'; + } + + if ($hasChild) { + $this->line .= 'refIndex) { + $r = Cursor::HASH_OBJECT !== $type ? 1 - (Cursor::HASH_RESOURCE !== $type) : 2; + $r .= $r && 0 < $cursor->softRefHandle ? $cursor->softRefHandle : $cursor->refIndex; + + $this->line .= sprintf(' id=%s-ref%s', $this->dumpId, $r); + } + $this->line .= $eol; + $this->dumpLine($cursor->depth); + } + } + + /** + * {@inheritdoc} + */ + public function leaveHash(Cursor $cursor, $type, $class, $hasChild, $cut) + { + $this->dumpEllipsis($cursor, $hasChild, $cut); + if ($hasChild) { + $this->line .= ''; + } + parent::leaveHash($cursor, $type, $class, $hasChild, 0); + } + + /** + * {@inheritdoc} + */ + protected function style($style, $value, $attr = []) + { + if ('' === $value) { + return ''; + } + + $v = esc($value); + + if ('ref' === $style) { + if (empty($attr['count'])) { + return sprintf('%s', $v); + } + $r = ('#' !== $v[0] ? 1 - ('@' !== $v[0]) : 2).substr($value, 1); + + return sprintf('%s', $this->dumpId, $r, 1 + $attr['count'], $v); + } + + if ('const' === $style && isset($attr['value'])) { + $style .= sprintf(' title="%s"', esc(is_scalar($attr['value']) ? $attr['value'] : json_encode($attr['value']))); + } elseif ('public' === $style) { + $style .= sprintf(' title="%s"', empty($attr['dynamic']) ? 'Public property' : 'Runtime added dynamic property'); + } elseif ('str' === $style && 1 < $attr['length']) { + $style .= sprintf(' title="%d%s characters"', $attr['length'], $attr['binary'] ? ' binary or non-UTF-8' : ''); + } elseif ('note' === $style && 0 < ($attr['depth'] ?? 0) && false !== $c = strrpos($value, '\\')) { + $style .= ' title=""'; + $attr += [ + 'ellipsis' => \strlen($value) - $c, + 'ellipsis-type' => 'note', + 'ellipsis-tail' => 1, + ]; + } elseif ('protected' === $style) { + $style .= ' title="Protected property"'; + } elseif ('meta' === $style && isset($attr['title'])) { + $style .= sprintf(' title="%s"', esc($this->utf8Encode($attr['title']))); + } elseif ('private' === $style) { + $style .= sprintf(' title="Private property defined in class: `%s`"', esc($this->utf8Encode($attr['class']))); + } + $map = static::$controlCharsMap; + + if (isset($attr['ellipsis'])) { + $class = 'sf-dump-ellipsis'; + if (isset($attr['ellipsis-type'])) { + $class = sprintf('"%s sf-dump-ellipsis-%s"', $class, $attr['ellipsis-type']); + } + $label = esc(substr($value, -$attr['ellipsis'])); + $style = str_replace(' title="', " title=\"$v\n", $style); + $v = sprintf('%s', $class, substr($v, 0, -\strlen($label))); + + if (!empty($attr['ellipsis-tail'])) { + $tail = \strlen(esc(substr($value, -$attr['ellipsis'], $attr['ellipsis-tail']))); + $v .= sprintf('%s%s', $class, substr($label, 0, $tail), substr($label, $tail)); + } else { + $v .= $label; + } + } + + $v = "".preg_replace_callback(static::$controlCharsRx, function ($c) use ($map) { + $s = $b = ''; + }, $v).''; + + if (isset($attr['file']) && $href = $this->getSourceLink($attr['file'], isset($attr['line']) ? $attr['line'] : 0)) { + $attr['href'] = $href; + } + if (isset($attr['href'])) { + $target = isset($attr['file']) ? '' : ' target="_blank"'; + $v = sprintf('%s', esc($this->utf8Encode($attr['href'])), $target, $v); + } + if (isset($attr['lang'])) { + $v = sprintf('%s', esc($attr['lang']), $v); + } + + return $v; + } + + /** + * {@inheritdoc} + */ + protected function dumpLine($depth, $endOfValue = false) + { + if (-1 === $this->lastDepth) { + $this->line = sprintf($this->dumpPrefix, $this->dumpId, $this->indentPad).$this->line; + } + if ($this->headerIsDumped !== (null !== $this->outputStream ? $this->outputStream : $this->lineDumper)) { + $this->line = $this->getDumpHeader().$this->line; + } + + if (-1 === $depth) { + $args = ['"'.$this->dumpId.'"']; + if ($this->extraDisplayOptions) { + $args[] = json_encode($this->extraDisplayOptions, JSON_FORCE_OBJECT); + } + // Replace is for BC + $this->line .= sprintf(str_replace('"%s"', '%s', $this->dumpSuffix), implode(', ', $args)); + } + $this->lastDepth = $depth; + + $this->line = mb_convert_encoding($this->line, 'HTML-ENTITIES', 'UTF-8'); + + if (-1 === $depth) { + AbstractDumper::dumpLine(0); + } + AbstractDumper::dumpLine($depth); + } + + private function getSourceLink(string $file, int $line) + { + $options = $this->extraDisplayOptions + $this->displayOptions; + + if ($fmt = $options['fileLinkFormat']) { + return \is_string($fmt) ? strtr($fmt, ['%f' => $file, '%l' => $line]) : $fmt->format($file, $line); + } + + return false; + } +} + +function esc($str) +{ + return htmlspecialchars($str, ENT_QUOTES, 'UTF-8'); +} diff --git a/vendor/symfony/var-dumper/Dumper/ServerDumper.php b/vendor/symfony/var-dumper/Dumper/ServerDumper.php new file mode 100644 index 0000000..94795bf --- /dev/null +++ b/vendor/symfony/var-dumper/Dumper/ServerDumper.php @@ -0,0 +1,53 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +namespace Symfony\Component\VarDumper\Dumper; + +use Symfony\Component\VarDumper\Cloner\Data; +use Symfony\Component\VarDumper\Dumper\ContextProvider\ContextProviderInterface; +use Symfony\Component\VarDumper\Server\Connection; + +/** + * ServerDumper forwards serialized Data clones to a server. + * + * @author Maxime Steinhausser + */ +class ServerDumper implements DataDumperInterface +{ + private $connection; + private $wrappedDumper; + + /** + * @param string $host The server host + * @param DataDumperInterface|null $wrappedDumper A wrapped instance used whenever we failed contacting the server + * @param ContextProviderInterface[] $contextProviders Context providers indexed by context name + */ + public function __construct(string $host, DataDumperInterface $wrappedDumper = null, array $contextProviders = []) + { + $this->connection = new Connection($host, $contextProviders); + $this->wrappedDumper = $wrappedDumper; + } + + public function getContextProviders(): array + { + return $this->connection->getContextProviders(); + } + + /** + * {@inheritdoc} + */ + public function dump(Data $data) + { + if (!$this->connection->write($data) && $this->wrappedDumper) { + $this->wrappedDumper->dump($data); + } + } +} diff --git a/vendor/symfony/var-dumper/Exception/ThrowingCasterException.php b/vendor/symfony/var-dumper/Exception/ThrowingCasterException.php new file mode 100644 index 0000000..122f0d3 --- /dev/null +++ b/vendor/symfony/var-dumper/Exception/ThrowingCasterException.php @@ -0,0 +1,26 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +namespace Symfony\Component\VarDumper\Exception; + +/** + * @author Nicolas Grekas + */ +class ThrowingCasterException extends \Exception +{ + /** + * @param \Throwable $prev The exception thrown from the caster + */ + public function __construct(\Throwable $prev) + { + parent::__construct('Unexpected '.\get_class($prev).' thrown from a caster: '.$prev->getMessage(), 0, $prev); + } +} diff --git a/vendor/symfony/var-dumper/LICENSE b/vendor/symfony/var-dumper/LICENSE new file mode 100644 index 0000000..cf8b3eb --- /dev/null +++ b/vendor/symfony/var-dumper/LICENSE @@ -0,0 +1,19 @@ +Copyright (c) 2014-2019 Fabien Potencier + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is furnished +to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. diff --git a/vendor/symfony/var-dumper/README.md b/vendor/symfony/var-dumper/README.md new file mode 100644 index 0000000..339f73e --- /dev/null +++ b/vendor/symfony/var-dumper/README.md @@ -0,0 +1,15 @@ +VarDumper Component +=================== + +The VarDumper component provides mechanisms for walking through any arbitrary +PHP variable. It provides a better `dump()` function that you can use instead +of `var_dump`. + +Resources +--------- + + * [Documentation](https://symfony.com/doc/current/components/var_dumper/introduction.html) + * [Contributing](https://symfony.com/doc/current/contributing/index.html) + * [Report issues](https://github.com/symfony/symfony/issues) and + [send Pull Requests](https://github.com/symfony/symfony/pulls) + in the [main Symfony repository](https://github.com/symfony/symfony) diff --git a/vendor/symfony/var-dumper/Resources/bin/var-dump-server b/vendor/symfony/var-dumper/Resources/bin/var-dump-server new file mode 100644 index 0000000..98c813a --- /dev/null +++ b/vendor/symfony/var-dumper/Resources/bin/var-dump-server @@ -0,0 +1,63 @@ +#!/usr/bin/env php + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +/** + * Starts a dump server to collect and output dumps on a single place with multiple formats support. + * + * @author Maxime Steinhausser + */ + +use Psr\Log\LoggerInterface; +use Symfony\Component\Console\Application; +use Symfony\Component\Console\Input\ArgvInput; +use Symfony\Component\Console\Input\InputOption; +use Symfony\Component\Console\Logger\ConsoleLogger; +use Symfony\Component\Console\Output\ConsoleOutput; +use Symfony\Component\VarDumper\Command\ServerDumpCommand; +use Symfony\Component\VarDumper\Server\DumpServer; + +function includeIfExists(string $file): bool +{ + return file_exists($file) && include $file; +} + +if ( + !includeIfExists(__DIR__ . '/../../../../autoload.php') && + !includeIfExists(__DIR__ . '/../../vendor/autoload.php') && + !includeIfExists(__DIR__ . '/../../../../../../vendor/autoload.php') +) { + fwrite(STDERR, 'Install dependencies using Composer.'.PHP_EOL); + exit(1); +} + +if (!class_exists(Application::class)) { + fwrite(STDERR, 'You need the "symfony/console" component in order to run the VarDumper server.'.PHP_EOL); + exit(1); +} + +$input = new ArgvInput(); +$output = new ConsoleOutput(); +$defaultHost = '127.0.0.1:9912'; +$host = $input->getParameterOption(['--host'], $_SERVER['VAR_DUMPER_SERVER'] ?? $defaultHost, true); +$logger = interface_exists(LoggerInterface::class) ? new ConsoleLogger($output->getErrorOutput()) : null; + +$app = new Application(); + +$app->getDefinition()->addOption( + new InputOption('--host', null, InputOption::VALUE_REQUIRED, 'The address the server should listen to', $defaultHost) +); + +$app->add($command = new ServerDumpCommand(new DumpServer($host, $logger))) + ->getApplication() + ->setDefaultCommand($command->getName(), true) + ->run($input, $output) +; diff --git a/vendor/symfony/var-dumper/Resources/css/htmlDescriptor.css b/vendor/symfony/var-dumper/Resources/css/htmlDescriptor.css new file mode 100644 index 0000000..8f706d6 --- /dev/null +++ b/vendor/symfony/var-dumper/Resources/css/htmlDescriptor.css @@ -0,0 +1,130 @@ +body { + display: flex; + flex-direction: column-reverse; + justify-content: flex-end; + max-width: 1140px; + margin: auto; + padding: 15px; + word-wrap: break-word; + background-color: #F9F9F9; + color: #222; + font-family: Helvetica, Arial, sans-serif; + font-size: 14px; + line-height: 1.4; +} +p { + margin: 0; +} +a { + color: #218BC3; + text-decoration: none; +} +a:hover { + text-decoration: underline; +} +.text-small { + font-size: 12px !important; +} +article { + margin: 5px; + margin-bottom: 10px; +} +article > header > .row { + display: flex; + flex-direction: row; + align-items: baseline; + margin-bottom: 10px; +} +article > header > .row > .col { + flex: 1; + display: flex; + align-items: baseline; +} +article > header > .row > h2 { + font-size: 14px; + color: #222; + font-weight: normal; + font-family: "Lucida Console", monospace, sans-serif; + word-break: break-all; + margin: 20px 5px 0 0; + user-select: all; +} +article > header > .row > h2 > code { + white-space: nowrap; + user-select: none; + color: #cc2255; + background-color: #f7f7f9; + border: 1px solid #e1e1e8; + border-radius: 3px; + margin-right: 5px; + padding: 0 3px; +} +article > header > .row > time.col { + flex: 0; + text-align: right; + white-space: nowrap; + color: #999; + font-style: italic; +} +article > header ul.tags { + list-style: none; + padding: 0; + margin: 0; + font-size: 12px; +} +article > header ul.tags > li { + user-select: all; + margin-bottom: 2px; +} +article > header ul.tags > li > span.badge { + display: inline-block; + padding: .25em .4em; + margin-right: 5px; + border-radius: 4px; + background-color: #6c757d3b; + color: #524d4d; + font-size: 12px; + text-align: center; + font-weight: 700; + line-height: 1; + white-space: nowrap; + vertical-align: baseline; + user-select: none; +} +article > section.body { + border: 1px solid #d8d8d8; + background: #FFF; + padding: 10px; + border-radius: 3px; +} +pre.sf-dump { + border-radius: 3px; + margin-bottom: 0; +} +.hidden { + display: none !important; +} +.dumped-tag > .sf-dump { + display: inline-block; + margin: 0; + padding: 1px 5px; + line-height: 1.4; + vertical-align: top; + background-color: transparent; + user-select: auto; +} +.dumped-tag > pre.sf-dump, +.dumped-tag > .sf-dump-default { + color: #CC7832; + background: none; +} +.dumped-tag > .sf-dump .sf-dump-str { color: #629755; } +.dumped-tag > .sf-dump .sf-dump-private, +.dumped-tag > .sf-dump .sf-dump-protected, +.dumped-tag > .sf-dump .sf-dump-public { color: #262626; } +.dumped-tag > .sf-dump .sf-dump-note { color: #6897BB; } +.dumped-tag > .sf-dump .sf-dump-key { color: #789339; } +.dumped-tag > .sf-dump .sf-dump-ref { color: #6E6E6E; } +.dumped-tag > .sf-dump .sf-dump-ellipsis { color: #CC7832; max-width: 100em; } +.dumped-tag > .sf-dump .sf-dump-ellipsis-path { max-width: 5em; } +.dumped-tag > .sf-dump .sf-dump-ns { user-select: none; } diff --git a/vendor/symfony/var-dumper/Resources/functions/dump.php b/vendor/symfony/var-dumper/Resources/functions/dump.php new file mode 100644 index 0000000..e1543a8 --- /dev/null +++ b/vendor/symfony/var-dumper/Resources/functions/dump.php @@ -0,0 +1,43 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +use Symfony\Component\VarDumper\VarDumper; + +if (!function_exists('dump')) { + /** + * @author Nicolas Grekas + */ + function dump($var, ...$moreVars) + { + VarDumper::dump($var); + + foreach ($moreVars as $v) { + VarDumper::dump($v); + } + + if (1 < func_num_args()) { + return func_get_args(); + } + + return $var; + } +} + +if (!function_exists('dd')) { + function dd(...$vars) + { + foreach ($vars as $v) { + VarDumper::dump($v); + } + + die(1); + } +} diff --git a/vendor/symfony/var-dumper/Resources/js/htmlDescriptor.js b/vendor/symfony/var-dumper/Resources/js/htmlDescriptor.js new file mode 100644 index 0000000..63101e5 --- /dev/null +++ b/vendor/symfony/var-dumper/Resources/js/htmlDescriptor.js @@ -0,0 +1,10 @@ +document.addEventListener('DOMContentLoaded', function() { + let prev = null; + Array.from(document.getElementsByTagName('article')).reverse().forEach(function (article) { + const dedupId = article.dataset.dedupId; + if (dedupId === prev) { + article.getElementsByTagName('header')[0].classList.add('hidden'); + } + prev = dedupId; + }); +}); diff --git a/vendor/symfony/var-dumper/Server/Connection.php b/vendor/symfony/var-dumper/Server/Connection.php new file mode 100644 index 0000000..8b814cb --- /dev/null +++ b/vendor/symfony/var-dumper/Server/Connection.php @@ -0,0 +1,95 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +namespace Symfony\Component\VarDumper\Server; + +use Symfony\Component\VarDumper\Cloner\Data; +use Symfony\Component\VarDumper\Dumper\ContextProvider\ContextProviderInterface; + +/** + * Forwards serialized Data clones to a server. + * + * @author Maxime Steinhausser + */ +class Connection +{ + private $host; + private $contextProviders; + private $socket; + + /** + * @param string $host The server host + * @param ContextProviderInterface[] $contextProviders Context providers indexed by context name + */ + public function __construct(string $host, array $contextProviders = []) + { + if (false === strpos($host, '://')) { + $host = 'tcp://'.$host; + } + + $this->host = $host; + $this->contextProviders = $contextProviders; + } + + public function getContextProviders(): array + { + return $this->contextProviders; + } + + public function write(Data $data): bool + { + $socketIsFresh = !$this->socket; + if (!$this->socket = $this->socket ?: $this->createSocket()) { + return false; + } + + $context = ['timestamp' => microtime(true)]; + foreach ($this->contextProviders as $name => $provider) { + $context[$name] = $provider->getContext(); + } + $context = array_filter($context); + $encodedPayload = base64_encode(serialize([$data, $context]))."\n"; + + set_error_handler([self::class, 'nullErrorHandler']); + try { + if (-1 !== stream_socket_sendto($this->socket, $encodedPayload)) { + return true; + } + if (!$socketIsFresh) { + stream_socket_shutdown($this->socket, STREAM_SHUT_RDWR); + fclose($this->socket); + $this->socket = $this->createSocket(); + } + if (-1 !== stream_socket_sendto($this->socket, $encodedPayload)) { + return true; + } + } finally { + restore_error_handler(); + } + + return false; + } + + private static function nullErrorHandler($t, $m) + { + // no-op + } + + private function createSocket() + { + set_error_handler([self::class, 'nullErrorHandler']); + try { + return stream_socket_client($this->host, $errno, $errstr, 3, STREAM_CLIENT_CONNECT | STREAM_CLIENT_ASYNC_CONNECT); + } finally { + restore_error_handler(); + } + } +} diff --git a/vendor/symfony/var-dumper/Server/DumpServer.php b/vendor/symfony/var-dumper/Server/DumpServer.php new file mode 100644 index 0000000..ad920bd --- /dev/null +++ b/vendor/symfony/var-dumper/Server/DumpServer.php @@ -0,0 +1,107 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +namespace Symfony\Component\VarDumper\Server; + +use Psr\Log\LoggerInterface; +use Symfony\Component\VarDumper\Cloner\Data; +use Symfony\Component\VarDumper\Cloner\Stub; + +/** + * A server collecting Data clones sent by a ServerDumper. + * + * @author Maxime Steinhausser + * + * @final + */ +class DumpServer +{ + private $host; + private $socket; + private $logger; + + public function __construct(string $host, LoggerInterface $logger = null) + { + if (false === strpos($host, '://')) { + $host = 'tcp://'.$host; + } + + $this->host = $host; + $this->logger = $logger; + } + + public function start(): void + { + if (!$this->socket = stream_socket_server($this->host, $errno, $errstr)) { + throw new \RuntimeException(sprintf('Server start failed on "%s": %s %s.', $this->host, $errstr, $errno)); + } + } + + public function listen(callable $callback): void + { + if (null === $this->socket) { + $this->start(); + } + + foreach ($this->getMessages() as $clientId => $message) { + $payload = @unserialize(base64_decode($message), ['allowed_classes' => [Data::class, Stub::class]]); + + // Impossible to decode the message, give up. + if (false === $payload) { + if ($this->logger) { + $this->logger->warning('Unable to decode a message from {clientId} client.', ['clientId' => $clientId]); + } + + continue; + } + + if (!\is_array($payload) || \count($payload) < 2 || !$payload[0] instanceof Data || !\is_array($payload[1])) { + if ($this->logger) { + $this->logger->warning('Invalid payload from {clientId} client. Expected an array of two elements (Data $data, array $context)', ['clientId' => $clientId]); + } + + continue; + } + + list($data, $context) = $payload; + + $callback($data, $context, $clientId); + } + } + + public function getHost(): string + { + return $this->host; + } + + private function getMessages(): iterable + { + $sockets = [(int) $this->socket => $this->socket]; + $write = []; + + while (true) { + $read = $sockets; + stream_select($read, $write, $write, null); + + foreach ($read as $stream) { + if ($this->socket === $stream) { + $stream = stream_socket_accept($this->socket); + $sockets[(int) $stream] = $stream; + } elseif (feof($stream)) { + unset($sockets[(int) $stream]); + fclose($stream); + } else { + yield (int) $stream => fgets($stream); + } + } + } + } +} diff --git a/vendor/symfony/var-dumper/Test/VarDumperTestTrait.php b/vendor/symfony/var-dumper/Test/VarDumperTestTrait.php new file mode 100644 index 0000000..3d3d18e --- /dev/null +++ b/vendor/symfony/var-dumper/Test/VarDumperTestTrait.php @@ -0,0 +1,87 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +namespace Symfony\Component\VarDumper\Test; + +use Symfony\Component\VarDumper\Cloner\VarCloner; +use Symfony\Component\VarDumper\Dumper\CliDumper; + +/** + * @author Nicolas Grekas + */ +trait VarDumperTestTrait +{ + /** + * @internal + */ + private $varDumperConfig = [ + 'casters' => [], + 'flags' => null, + ]; + + protected function setUpVarDumper(array $casters, int $flags = null): void + { + $this->varDumperConfig['casters'] = $casters; + $this->varDumperConfig['flags'] = $flags; + } + + /** + * @after + */ + protected function tearDownVarDumper(): void + { + $this->varDumperConfig['casters'] = []; + $this->varDumperConfig['flags'] = null; + } + + public function assertDumpEquals($expected, $data, $filter = 0, $message = '') + { + $this->assertSame($this->prepareExpectation($expected, $filter), $this->getDump($data, null, $filter), $message); + } + + public function assertDumpMatchesFormat($expected, $data, $filter = 0, $message = '') + { + $this->assertStringMatchesFormat($this->prepareExpectation($expected, $filter), $this->getDump($data, null, $filter), $message); + } + + /** + * @return string|null + */ + protected function getDump($data, $key = null, $filter = 0) + { + if (null === $flags = $this->varDumperConfig['flags']) { + $flags = getenv('DUMP_LIGHT_ARRAY') ? CliDumper::DUMP_LIGHT_ARRAY : 0; + $flags |= getenv('DUMP_STRING_LENGTH') ? CliDumper::DUMP_STRING_LENGTH : 0; + $flags |= getenv('DUMP_COMMA_SEPARATOR') ? CliDumper::DUMP_COMMA_SEPARATOR : 0; + } + + $cloner = new VarCloner(); + $cloner->addCasters($this->varDumperConfig['casters']); + $cloner->setMaxItems(-1); + $dumper = new CliDumper(null, null, $flags); + $dumper->setColors(false); + $data = $cloner->cloneVar($data, $filter)->withRefHandles(false); + if (null !== $key && null === $data = $data->seek($key)) { + return null; + } + + return rtrim($dumper->dump($data, true)); + } + + private function prepareExpectation($expected, int $filter): string + { + if (!\is_string($expected)) { + $expected = $this->getDump($expected, null, $filter); + } + + return rtrim($expected); + } +} diff --git a/vendor/symfony/var-dumper/VarDumper.php b/vendor/symfony/var-dumper/VarDumper.php new file mode 100644 index 0000000..d336d5d --- /dev/null +++ b/vendor/symfony/var-dumper/VarDumper.php @@ -0,0 +1,60 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +namespace Symfony\Component\VarDumper; + +use Symfony\Component\VarDumper\Caster\ReflectionCaster; +use Symfony\Component\VarDumper\Cloner\VarCloner; +use Symfony\Component\VarDumper\Dumper\CliDumper; +use Symfony\Component\VarDumper\Dumper\ContextProvider\SourceContextProvider; +use Symfony\Component\VarDumper\Dumper\ContextualizedDumper; +use Symfony\Component\VarDumper\Dumper\HtmlDumper; + +// Load the global dump() function +require_once __DIR__.'/Resources/functions/dump.php'; + +/** + * @author Nicolas Grekas + */ +class VarDumper +{ + private static $handler; + + public static function dump($var) + { + if (null === self::$handler) { + $cloner = new VarCloner(); + $cloner->addCasters(ReflectionCaster::UNSET_CLOSURE_FILE_INFO); + + if (isset($_SERVER['VAR_DUMPER_FORMAT'])) { + $dumper = 'html' === $_SERVER['VAR_DUMPER_FORMAT'] ? new HtmlDumper() : new CliDumper(); + } else { + $dumper = \in_array(\PHP_SAPI, ['cli', 'phpdbg']) ? new CliDumper() : new HtmlDumper(); + } + + $dumper = new ContextualizedDumper($dumper, [new SourceContextProvider()]); + + self::$handler = function ($var) use ($cloner, $dumper) { + $dumper->dump($cloner->cloneVar($var)); + }; + } + + return (self::$handler)($var); + } + + public static function setHandler(callable $callable = null) + { + $prevHandler = self::$handler; + self::$handler = $callable; + + return $prevHandler; + } +} diff --git a/vendor/symfony/var-dumper/composer.json b/vendor/symfony/var-dumper/composer.json new file mode 100644 index 0000000..5225e8c --- /dev/null +++ b/vendor/symfony/var-dumper/composer.json @@ -0,0 +1,54 @@ +{ + "name": "symfony/var-dumper", + "type": "library", + "description": "Symfony mechanism for exploring and dumping PHP variables", + "keywords": ["dump", "debug"], + "homepage": "https://symfony.com", + "license": "MIT", + "authors": [ + { + "name": "Nicolas Grekas", + "email": "p@tchwork.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "require": { + "php": "^7.1.3", + "symfony/polyfill-mbstring": "~1.0", + "symfony/polyfill-php72": "~1.5" + }, + "require-dev": { + "ext-iconv": "*", + "symfony/console": "^3.4|^4.0|^5.0", + "symfony/process": "^4.4|^5.0", + "twig/twig": "^1.34|^2.4|^3.0" + }, + "conflict": { + "phpunit/phpunit": "<4.8.35|<5.4.3,>=5.0", + "symfony/console": "<3.4" + }, + "suggest": { + "ext-iconv": "To convert non-UTF-8 strings to UTF-8 (or symfony/polyfill-iconv in case ext-iconv cannot be used).", + "ext-intl": "To show region name in time zone dump", + "symfony/console": "To use the ServerDumpCommand and/or the bin/var-dump-server script" + }, + "autoload": { + "files": [ "Resources/functions/dump.php" ], + "psr-4": { "Symfony\\Component\\VarDumper\\": "" }, + "exclude-from-classmap": [ + "/Tests/" + ] + }, + "bin": [ + "Resources/bin/var-dump-server" + ], + "minimum-stability": "dev", + "extra": { + "branch-alias": { + "dev-master": "4.4-dev" + } + } +} diff --git a/vendor/topthink/framework/.gitignore b/vendor/topthink/framework/.gitignore new file mode 100644 index 0000000..b267fba --- /dev/null +++ b/vendor/topthink/framework/.gitignore @@ -0,0 +1,7 @@ +/vendor +composer.phar +composer.lock +.DS_Store +Thumbs.db +/.idea +/.vscode \ No newline at end of file diff --git a/vendor/topthink/framework/.travis.yml b/vendor/topthink/framework/.travis.yml new file mode 100644 index 0000000..73e6681 --- /dev/null +++ b/vendor/topthink/framework/.travis.yml @@ -0,0 +1,34 @@ +dist: xenial +language: php + +matrix: + fast_finish: true + include: + - php: 7.1 + - php: 7.2 + - php: 7.3 + +cache: + directories: + - $HOME/.composer/cache + +services: + - memcached + - redis-server + - mysql + +before_install: + - echo "extension = memcached.so" >> ~/.phpenv/versions/$(phpenv version-name)/etc/php.ini + - printf "\n" | pecl install -f redis + - travis_retry composer self-update + - mysql -e 'CREATE DATABASE test;' + +install: + - travis_retry composer update --prefer-dist --no-interaction --prefer-stable --no-suggest + +script: + - vendor/bin/phpunit --coverage-clover build/logs/coverage.xml + +after_script: + - travis_retry wget https://scrutinizer-ci.com/ocular.phar + - php ocular.phar code-coverage:upload --format=php-clover build/logs/coverage.xml \ No newline at end of file diff --git a/vendor/topthink/framework/CONTRIBUTING.md b/vendor/topthink/framework/CONTRIBUTING.md new file mode 100644 index 0000000..efa3ad9 --- /dev/null +++ b/vendor/topthink/framework/CONTRIBUTING.md @@ -0,0 +1,119 @@ +如何贡献我的源代码 +=== + +此文档介绍了 ThinkPHP 团队的组成以及运转机制,您提交的代码将给 ThinkPHP 项目带来什么好处,以及如何才能加入我们的行列。 + +## 通过 Github 贡献代码 + +ThinkPHP 目前使用 Git 来控制程序版本,如果你想为 ThinkPHP 贡献源代码,请先大致了解 Git 的使用方法。我们目前把项目托管在 GitHub 上,任何 GitHub 用户都可以向我们贡献代码。 + +参与的方式很简单,`fork`一份 ThinkPHP 的代码到你的仓库中,修改后提交,并向我们发起`pull request`申请,我们会及时对代码进行审查并处理你的申请并。审查通过后,你的代码将被`merge`进我们的仓库中,这样你就会自动出现在贡献者名单里了,非常方便。 + +我们希望你贡献的代码符合: + +* ThinkPHP 的编码规范 +* 适当的注释,能让其他人读懂 +* 遵循 Apache2 开源协议 + +**如果想要了解更多细节或有任何疑问,请继续阅读下面的内容** + +### 注意事项 + +* 本项目代码格式化标准选用 [**PSR-2**](http://www.kancloud.cn/thinkphp/php-fig-psr/3141); +* 类名和类文件名遵循 [**PSR-4**](http://www.kancloud.cn/thinkphp/php-fig-psr/3144); +* 对于 Issues 的处理,请使用诸如 `fix #xxx(Issue ID)` 的 commit title 直接关闭 issue。 +* 系统会自动在 PHP 7.1 ~ 7.3 上测试修改,请确保你的修改符合 PHP 7.1 ~ 7.3 的语法规范; +* 管理员不会合并造成 CI faild 的修改,若出现 CI faild 请检查自己的源代码或修改相应的[单元测试文件](tests); + +## GitHub Issue + +GitHub 提供了 Issue 功能,该功能可以用于: + +* 提出 bug +* 提出功能改进 +* 反馈使用体验 + +该功能不应该用于: + + * 提出修改意见(涉及代码署名和修订追溯问题) + * 不友善的言论 + +## 快速修改 + +**GitHub 提供了快速编辑文件的功能** + +1. 登录 GitHub 帐号; +2. 浏览项目文件,找到要进行修改的文件; +3. 点击右上角铅笔图标进行修改; +4. 填写 `Commit changes` 相关内容(Title 必填); +5. 提交修改,等待 CI 验证和管理员合并。 + +**若您需要一次提交大量修改,请继续阅读下面的内容** + +## 完整流程 + +1. `fork`本项目; +2. 克隆(`clone`)你 `fork` 的项目到本地; +3. 新建分支(`branch`)并检出(`checkout`)新分支; +4. 添加本项目到你的本地 git 仓库作为上游(`upstream`); +5. 进行修改,若你的修改包含方法或函数的增减,请记得修改[单元测试文件](tests); +6. 变基(衍合 `rebase`)你的分支到上游 master 分支; +7. `push` 你的本地仓库到 GitHub; +8. 提交 `pull request`; +9. 等待 CI 验证(若不通过则重复 5~7,GitHub 会自动更新你的 `pull request`); +10. 等待管理员处理,并及时 `rebase` 你的分支到上游 master 分支(若上游 master 分支有修改)。 + +*若有必要,可以 `git push -f` 强行推送 rebase 后的分支到自己的 `fork`* + +*绝对不可以使用 `git push -f` 强行推送修改到上游* + +### 注意事项 + +* 若对上述流程有任何不清楚的地方,请查阅 GIT 教程,如 [这个](http://backlogtool.com/git-guide/cn/); +* 对于代码**不同方面**的修改,请在自己 `fork` 的项目中**创建不同的分支**(原因参见`完整流程`第9条备注部分); +* 变基及交互式变基操作参见 [Git 交互式变基](http://pakchoi.me/2015/03/17/git-interactive-rebase/) + +## 推荐资源 + +### 开发环境 + +* XAMPP for Windows 5.5.x +* WampServer (for Windows) +* upupw Apache PHP5.4 ( for Windows) + +或自行安装 + +- Apache / Nginx +- PHP 7.1 ~ 7.3 +- MySQL / MariaDB + +*Windows 用户推荐添加 PHP bin 目录到 PATH,方便使用 composer* + +*Linux 用户自行配置环境, Mac 用户推荐使用内置 Apache 配合 Homebrew 安装 PHP 和 MariaDB* + +### 编辑器 + +Sublime Text 3 + phpfmt 插件 + +phpfmt 插件参数 + +```json +{ + "autocomplete": true, + "enable_auto_align": true, + "format_on_save": true, + "indent_with_space": true, + "psr1_naming": false, + "psr2": true, + "version": 4 +} +``` + +或其他 编辑器 / IDE 配合 PSR2 自动格式化工具 + +### Git GUI + +* SourceTree +* GitHub Desktop + +或其他 Git 图形界面客户端 diff --git a/vendor/topthink/framework/LICENSE.txt b/vendor/topthink/framework/LICENSE.txt new file mode 100644 index 0000000..4e910bb --- /dev/null +++ b/vendor/topthink/framework/LICENSE.txt @@ -0,0 +1,32 @@ + +ThinkPHP遵循Apache2开源协议发布,并提供免费使用。 +版权所有Copyright © 2006-2019 by ThinkPHP (http://thinkphp.cn) +All rights reserved。 +ThinkPHP® 商标和著作权所有者为上海顶想信息科技有限公司。 + +Apache Licence是著名的非盈利开源组织Apache采用的协议。 +该协议和BSD类似,鼓励代码共享和尊重原作者的著作权, +允许代码修改,再作为开源或商业软件发布。需要满足 +的条件: +1. 需要给代码的用户一份Apache Licence ; +2. 如果你修改了代码,需要在被修改的文件中说明; +3. 在延伸的代码中(修改和有源代码衍生的代码中)需要 +带有原来代码中的协议,商标,专利声明和其他原来作者规 +定需要包含的说明; +4. 如果再发布的产品中包含一个Notice文件,则在Notice文 +件中需要带有本协议内容。你可以在Notice中增加自己的 +许可,但不可以表现为对Apache Licence构成更改。 +具体的协议参考:http://www.apache.org/licenses/LICENSE-2.0 + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS +FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE +COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, +INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, +BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; +LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER +CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT +LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN +ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE +POSSIBILITY OF SUCH DAMAGE. diff --git a/vendor/topthink/framework/README.md b/vendor/topthink/framework/README.md new file mode 100644 index 0000000..8c856b4 --- /dev/null +++ b/vendor/topthink/framework/README.md @@ -0,0 +1,86 @@ +![](https://box.kancloud.cn/5a0aaa69a5ff42657b5c4715f3d49221) + +ThinkPHP 6.0 +=============== + +[![Build Status](https://travis-ci.org/top-think/framework.svg?branch=6.0)](https://travis-ci.org/top-think/framework) +[![Scrutinizer Code Quality](https://scrutinizer-ci.com/g/top-think/framework/badges/quality-score.png?b=6.0)](https://scrutinizer-ci.com/g/top-think/framework/?branch=6.0) +[![Code Coverage](https://scrutinizer-ci.com/g/top-think/framework/badges/coverage.png?b=6.0)](https://scrutinizer-ci.com/g/top-think/framework/?branch=6.0) +[![Total Downloads](https://poser.pugx.org/topthink/framework/downloads)](https://packagist.org/packages/topthink/framework) +[![Latest Stable Version](https://poser.pugx.org/topthink/framework/v/stable)](https://packagist.org/packages/topthink/framework) +[![PHP Version](https://img.shields.io/badge/php-%3E%3D7.1-8892BF.svg)](http://www.php.net/) +[![License](https://poser.pugx.org/topthink/framework/license)](https://packagist.org/packages/topthink/framework) + +ThinkPHP6.0底层架构采用PHP7.1改写和进一步优化。 + +## 主要新特性 + +* 采用`PHP7`强类型(严格模式) +* 支持更多的`PSR`规范 +* 原生多应用支持 +* 系统服务注入支持 +* ORM作为独立组件使用 +* 增加Filesystem +* 全新的事件系统 +* 模板引擎分离出核心 +* 内部功能中间件化 +* SESSION机制改进 +* 日志多通道支持 +* 规范扩展接口 +* 更强大的控制台 +* 对Swoole以及协程支持改进 +* 对IDE更加友好 +* 统一和精简大量用法 + + +> ThinkPHP6.0的运行环境要求PHP7.1+。 + +## 安装 + +~~~ +composer create-project topthink/think tp +~~~ + +启动服务 + +~~~ +cd tp +php think run +~~~ + +然后就可以在浏览器中访问 + +~~~ +http://localhost:8000 +~~~ + +如果需要更新框架使用 +~~~ +composer update topthink/framework +~~~ + +## 文档 + +[完全开发手册](https://www.kancloud.cn/manual/thinkphp6_0/content) + +## 命名规范 + +`ThinkPHP6`遵循PSR-2命名规范和PSR-4自动加载规范。 + +## 参与开发 + +请参阅 [ThinkPHP核心框架包](https://github.com/top-think/framework)。 + +## 版权信息 + +ThinkPHP遵循Apache2开源协议发布,并提供免费使用。 + +本项目包含的第三方源码和二进制文件之版权信息另行标注。 + +版权所有Copyright © 2006-2019 by ThinkPHP (http://thinkphp.cn) + +All rights reserved。 + +ThinkPHP® 商标和著作权所有者为上海顶想信息科技有限公司。 + +更多细节参阅 [LICENSE.txt](LICENSE.txt) diff --git a/vendor/topthink/framework/composer.json b/vendor/topthink/framework/composer.json new file mode 100644 index 0000000..017b3d9 --- /dev/null +++ b/vendor/topthink/framework/composer.json @@ -0,0 +1,55 @@ +{ + "name": "topthink/framework", + "description": "The ThinkPHP Framework.", + "keywords": [ + "framework", + "thinkphp", + "ORM" + ], + "homepage": "http://thinkphp.cn/", + "license": "Apache-2.0", + "authors": [ + { + "name": "liu21st", + "email": "liu21st@gmail.com" + }, + { + "name": "yunwuxin", + "email": "448901948@qq.com" + } + ], + "require": { + "php": ">=7.1.0", + "ext-json": "*", + "ext-mbstring": "*", + "league/flysystem": "^1.0", + "league/flysystem-cached-adapter": "^1.0", + "opis/closure": "^3.1", + "psr/log": "~1.0", + "psr/container": "~1.0", + "psr/simple-cache": "^1.0", + "topthink/think-orm": "^2.0", + "topthink/think-helper": "^3.1.1" + }, + "require-dev": { + "mikey179/vfsstream": "^1.6", + "mockery/mockery": "^1.2", + "phpunit/phpunit": "^7.0" + }, + "autoload": { + "files": [], + "psr-4": { + "think\\": "src/think/" + } + }, + "autoload-dev": { + "psr-4": { + "think\\tests\\": "src/tests/" + } + }, + "minimum-stability": "dev", + "prefer-stable": true, + "config": { + "sort-packages": true + } +} diff --git a/vendor/topthink/framework/logo.png b/vendor/topthink/framework/logo.png new file mode 100644 index 0000000000000000000000000000000000000000..25fd0593688de5c9f4cd321da1a72ab9566fe331 GIT binary patch literal 6995 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 literal 0 HcmV?d00001 diff --git a/vendor/topthink/framework/phpunit.xml.dist b/vendor/topthink/framework/phpunit.xml.dist new file mode 100644 index 0000000..e20a133 --- /dev/null +++ b/vendor/topthink/framework/phpunit.xml.dist @@ -0,0 +1,25 @@ + + + + + ./tests + + + + + ./src/think + + + diff --git a/vendor/topthink/framework/src/helper.php b/vendor/topthink/framework/src/helper.php new file mode 100644 index 0000000..d1ba047 --- /dev/null +++ b/vendor/topthink/framework/src/helper.php @@ -0,0 +1,663 @@ + +// +---------------------------------------------------------------------- +declare (strict_types = 1); + +//------------------------ +// ThinkPHP 助手函数 +//------------------------- + +use think\App; +use think\Container; +use think\exception\HttpException; +use think\exception\HttpResponseException; +use think\facade\Cache; +use think\facade\Config; +use think\facade\Cookie; +use think\facade\Env; +use think\facade\Event; +use think\facade\Lang; +use think\facade\Log; +use think\facade\Request; +use think\facade\Route; +use think\facade\Session; +use think\Response; +use think\response\File; +use think\response\Json; +use think\response\Jsonp; +use think\response\Redirect; +use think\response\View; +use think\response\Xml; +use think\route\Url as UrlBuild; +use think\Validate; + +if (!function_exists('abort')) { + /** + * 抛出HTTP异常 + * @param integer|Response $code 状态码 或者 Response对象实例 + * @param string $message 错误信息 + * @param array $header 参数 + */ + function abort($code, string $message = '', array $header = []) + { + if ($code instanceof Response) { + throw new HttpResponseException($code); + } else { + throw new HttpException($code, $message, null, $header); + } + } +} + +if (!function_exists('app')) { + /** + * 快速获取容器中的实例 支持依赖注入 + * @param string $name 类名或标识 默认获取当前应用实例 + * @param array $args 参数 + * @param bool $newInstance 是否每次创建新的实例 + * @return object|App + */ + function app(string $name = '', array $args = [], bool $newInstance = false) + { + return Container::getInstance()->make($name ?: App::class, $args, $newInstance); + } +} + +if (!function_exists('bind')) { + /** + * 绑定一个类到容器 + * @param string|array $abstract 类标识、接口(支持批量绑定) + * @param mixed $concrete 要绑定的类、闭包或者实例 + * @return Container + */ + function bind($abstract, $concrete = null) + { + return Container::getInstance()->bind($abstract, $concrete); + } +} + +if (!function_exists('cache')) { + /** + * 缓存管理 + * @param string $name 缓存名称 + * @param mixed $value 缓存值 + * @param mixed $options 缓存参数 + * @param string $tag 缓存标签 + * @return mixed + */ + function cache(string $name = null, $value = '', $options = null, $tag = null) + { + if (is_null($name)) { + return app('cache'); + } + + if ('' === $value) { + // 获取缓存 + return 0 === strpos($name, '?') ? Cache::has(substr($name, 1)) : Cache::get($name); + } elseif (is_null($value)) { + // 删除缓存 + return Cache::delete($name); + } + + // 缓存数据 + if (is_array($options)) { + $expire = $options['expire'] ?? null; //修复查询缓存无法设置过期时间 + } else { + $expire = $options; + } + + if (is_null($tag)) { + return Cache::set($name, $value, $expire); + } else { + return Cache::tag($tag)->set($name, $value, $expire); + } + } +} + +if (!function_exists('config')) { + /** + * 获取和设置配置参数 + * @param string|array $name 参数名 + * @param mixed $value 参数值 + * @return mixed + */ + function config($name = '', $value = null) + { + if (is_array($name)) { + return Config::set($name, $value); + } + + return 0 === strpos($name, '?') ? Config::has(substr($name, 1)) : Config::get($name, $value); + } +} + +if (!function_exists('cookie')) { + /** + * Cookie管理 + * @param string $name cookie名称 + * @param mixed $value cookie值 + * @param mixed $option 参数 + * @return mixed + */ + function cookie(string $name, $value = '', $option = null) + { + if (is_null($value)) { + // 删除 + Cookie::delete($name); + } elseif ('' === $value) { + // 获取 + return 0 === strpos($name, '?') ? Cookie::has(substr($name, 1)) : Cookie::get($name); + } else { + // 设置 + return Cookie::set($name, $value, $option); + } + } +} + +if (!function_exists('download')) { + /** + * 获取\think\response\Download对象实例 + * @param string $filename 要下载的文件 + * @param string $name 显示文件名 + * @param bool $content 是否为内容 + * @param int $expire 有效期(秒) + * @return \think\response\File + */ + function download(string $filename, string $name = '', bool $content = false, int $expire = 180): File + { + return Response::create($filename, 'file')->name($name)->isContent($content)->expire($expire); + } +} + +if (!function_exists('dump')) { + /** + * 浏览器友好的变量输出 + * @param mixed $vars 要输出的变量 + * @return void + */ + function dump(...$vars) + { + ob_start(); + var_dump(...$vars); + + $output = ob_get_clean(); + $output = preg_replace('/\]\=\>\n(\s+)/m', '] => ', $output); + + if (PHP_SAPI == 'cli') { + $output = PHP_EOL . $output . PHP_EOL; + } else { + if (!extension_loaded('xdebug')) { + $output = htmlspecialchars($output, ENT_SUBSTITUTE); + } + $output = '
                  ' . $output . '
                  '; + } + + echo $output; + } +} + +if (!function_exists('env')) { + /** + * 获取环境变量值 + * @access public + * @param string $name 环境变量名(支持二级 .号分割) + * @param string $default 默认值 + * @return mixed + */ + function env(string $name = null, $default = null) + { + return Env::get($name, $default); + } +} + +if (!function_exists('event')) { + /** + * 触发事件 + * @param mixed $event 事件名(或者类名) + * @param mixed $args 参数 + * @return mixed + */ + function event($event, $args = null) + { + return Event::trigger($event, $args); + } +} + +if (!function_exists('halt')) { + /** + * 调试变量并且中断输出 + * @param mixed $vars 调试变量或者信息 + */ + function halt(...$vars) + { + dump(...$vars); + + throw new HttpResponseException(Response::create()); + } +} + +if (!function_exists('input')) { + /** + * 获取输入数据 支持默认值和过滤 + * @param string $key 获取的变量名 + * @param mixed $default 默认值 + * @param string $filter 过滤方法 + * @return mixed + */ + function input(string $key = '', $default = null, $filter = '') + { + if (0 === strpos($key, '?')) { + $key = substr($key, 1); + $has = true; + } + + if ($pos = strpos($key, '.')) { + // 指定参数来源 + $method = substr($key, 0, $pos); + if (in_array($method, ['get', 'post', 'put', 'patch', 'delete', 'route', 'param', 'request', 'session', 'cookie', 'server', 'env', 'path', 'file'])) { + $key = substr($key, $pos + 1); + if ('server' == $method && is_null($default)) { + $default = ''; + } + } else { + $method = 'param'; + } + } else { + // 默认为自动判断 + $method = 'param'; + } + + return isset($has) ? + request()->has($key, $method) : + request()->$method($key, $default, $filter); + } +} + +if (!function_exists('invoke')) { + /** + * 调用反射实例化对象或者执行方法 支持依赖注入 + * @param mixed $call 类名或者callable + * @param array $args 参数 + * @return mixed + */ + function invoke($call, array $args = []) + { + if (is_callable($call)) { + return Container::getInstance()->invoke($call, $args); + } + + return Container::getInstance()->invokeClass($call, $args); + } +} + +if (!function_exists('json')) { + /** + * 获取\think\response\Json对象实例 + * @param mixed $data 返回的数据 + * @param int $code 状态码 + * @param array $header 头部 + * @param array $options 参数 + * @return \think\response\Json + */ + function json($data = [], $code = 200, $header = [], $options = []): Json + { + return Response::create($data, 'json', $code)->header($header)->options($options); + } +} + +if (!function_exists('jsonp')) { + /** + * 获取\think\response\Jsonp对象实例 + * @param mixed $data 返回的数据 + * @param int $code 状态码 + * @param array $header 头部 + * @param array $options 参数 + * @return \think\response\Jsonp + */ + function jsonp($data = [], $code = 200, $header = [], $options = []): Jsonp + { + return Response::create($data, 'jsonp', $code)->header($header)->options($options); + } +} + +if (!function_exists('lang')) { + /** + * 获取语言变量值 + * @param string $name 语言变量名 + * @param array $vars 动态变量值 + * @param string $lang 语言 + * @return mixed + */ + function lang(string $name, array $vars = [], string $lang = '') + { + return Lang::get($name, $vars, $lang); + } +} + +if (!function_exists('parse_name')) { + /** + * 字符串命名风格转换 + * type 0 将Java风格转换为C的风格 1 将C风格转换为Java的风格 + * @param string $name 字符串 + * @param int $type 转换类型 + * @param bool $ucfirst 首字母是否大写(驼峰规则) + * @return string + */ + function parse_name(string $name, int $type = 0, bool $ucfirst = true): string + { + if ($type) { + $name = preg_replace_callback('/_([a-zA-Z])/', function ($match) { + return strtoupper($match[1]); + }, $name); + + return $ucfirst ? ucfirst($name) : lcfirst($name); + } + + return strtolower(trim(preg_replace("/[A-Z]/", "_\\0", $name), "_")); + } +} + +if (!function_exists('redirect')) { + /** + * 获取\think\response\Redirect对象实例 + * @param string $url 重定向地址 + * @param int $code 状态码 + * @return \think\response\Redirect + */ + function redirect(string $url = '', int $code = 302): Redirect + { + return Response::create($url, 'redirect', $code); + } +} + +if (!function_exists('request')) { + /** + * 获取当前Request对象实例 + * @return Request + */ + function request(): \think\Request + { + return app('request'); + } +} + +if (!function_exists('response')) { + /** + * 创建普通 Response 对象实例 + * @param mixed $data 输出数据 + * @param int|string $code 状态码 + * @param array $header 头信息 + * @param string $type + * @return Response + */ + function response($data = '', $code = 200, $header = [], $type = 'html'): Response + { + return Response::create($data, $type, $code)->header($header); + } +} + +if (!function_exists('session')) { + /** + * Session管理 + * @param string $name session名称 + * @param mixed $value session值 + * @return mixed + */ + function session($name = '', $value = '') + { + if (is_null($name)) { + // 清除 + Session::clear(); + } elseif ('' === $name) { + return Session::all(); + } elseif (is_null($value)) { + // 删除 + Session::delete($name); + } elseif ('' === $value) { + // 判断或获取 + return 0 === strpos($name, '?') ? Session::has(substr($name, 1)) : Session::get($name); + } else { + // 设置 + Session::set($name, $value); + } + } +} + +if (!function_exists('token')) { + /** + * 获取Token令牌 + * @param string $name 令牌名称 + * @param mixed $type 令牌生成方法 + * @return string + */ + function token(string $name = '__token__', string $type = 'md5'): string + { + return Request::buildToken($name, $type); + } +} + +if (!function_exists('token_field')) { + /** + * 生成令牌隐藏表单 + * @param string $name 令牌名称 + * @param mixed $type 令牌生成方法 + * @return string + */ + function token_field(string $name = '__token__', string $type = 'md5'): string + { + $token = Request::buildToken($name, $type); + + return ''; + } +} + +if (!function_exists('token_meta')) { + /** + * 生成令牌meta + * @param string $name 令牌名称 + * @param mixed $type 令牌生成方法 + * @return string + */ + function token_meta(string $name = '__token__', string $type = 'md5'): string + { + $token = Request::buildToken($name, $type); + + return ''; + } +} + +if (!function_exists('trace')) { + /** + * 记录日志信息 + * @param mixed $log log信息 支持字符串和数组 + * @param string $level 日志级别 + * @return array|void + */ + function trace($log = '[think]', string $level = 'log') + { + if ('[think]' === $log) { + return Log::getLog(); + } + + Log::record($log, $level); + } +} + +if (!function_exists('url')) { + /** + * Url生成 + * @param string $url 路由地址 + * @param array $vars 变量 + * @param bool|string $suffix 生成的URL后缀 + * @param bool|string $domain 域名 + * @return UrlBuild + */ + function url(string $url = '', array $vars = [], $suffix = true, $domain = false): UrlBuild + { + return Route::buildUrl($url, $vars)->suffix($suffix)->domain($domain); + } +} + +if (!function_exists('validate')) { + /** + * 生成验证对象 + * @param string|array $validate 验证器类名或者验证规则数组 + * @param array $message 错误提示信息 + * @param bool $batch 是否批量验证 + * @param bool $failException 是否抛出异常 + * @return Validate + */ + function validate($validate = '', array $message = [], bool $batch = false, bool $failException = true): Validate + { + if (is_array($validate) || '' === $validate) { + $v = new Validate(); + if (is_array($validate)) { + $v->rule($validate); + } + } else { + if (strpos($validate, '.')) { + // 支持场景 + [$validate, $scene] = explode('.', $validate); + } + + $class = false !== strpos($validate, '\\') ? $validate : app()->parseClass('validate', $validate); + + $v = new $class(); + + if (!empty($scene)) { + $v->scene($scene); + } + } + + return $v->message($message)->batch($batch)->failException($failException); + } +} + +if (!function_exists('view')) { + /** + * 渲染模板输出 + * @param string $template 模板文件 + * @param array $vars 模板变量 + * @param int $code 状态码 + * @param callable $filter 内容过滤 + * @return \think\response\View + */ + function view(string $template = '', $vars = [], $code = 200, $filter = null): View + { + return Response::create($template, 'view', $code)->assign($vars)->filter($filter); + } +} + +if (!function_exists('display')) { + /** + * 渲染模板输出 + * @param string $content 渲染内容 + * @param array $vars 模板变量 + * @param int $code 状态码 + * @param callable $filter 内容过滤 + * @return \think\response\View + */ + function display(string $content, $vars = [], $code = 200, $filter = null): View + { + return Response::create($content, 'view', $code)->isContent(true)->assign($vars)->filter($filter); + } +} + +if (!function_exists('xml')) { + /** + * 获取\think\response\Xml对象实例 + * @param mixed $data 返回的数据 + * @param int $code 状态码 + * @param array $header 头部 + * @param array $options 参数 + * @return \think\response\Xml + */ + function xml($data = [], $code = 200, $header = [], $options = []): Xml + { + return Response::create($data, 'xml', $code)->header($header)->options($options); + } +} + +if (!function_exists('app_path')) { + /** + * 获取当前应用目录 + * + * @param string $path + * @return string + */ + function app_path($path = '') + { + return app()->getAppPath() . ($path ? $path . DIRECTORY_SEPARATOR : $path); + } +} + +if (!function_exists('base_path')) { + /** + * 获取应用基础目录 + * + * @param string $path + * @return string + */ + function base_path($path = '') + { + return app()->getBasePath() . ($path ? $path . DIRECTORY_SEPARATOR : $path); + } +} + +if (!function_exists('config_path')) { + /** + * 获取应用配置目录 + * + * @param string $path + * @return string + */ + function config_path($path = '') + { + return app()->getConfigPath() . ($path ? $path . DIRECTORY_SEPARATOR : $path); + } +} + +if (!function_exists('public_path')) { + /** + * 获取web根目录 + * + * @param string $path + * @return string + */ + function public_path($path = '') + { + return app()->getRootPath() . ($path ? ltrim($path, DIRECTORY_SEPARATOR) . DIRECTORY_SEPARATOR : $path); + } +} + +if (!function_exists('runtime_path')) { + /** + * 获取应用运行时目录 + * + * @param string $path + * @return string + */ + function runtime_path($path = '') + { + return app()->getRuntimePath() . ($path ? $path . DIRECTORY_SEPARATOR : $path); + } +} + +if (!function_exists('root_path')) { + /** + * 获取项目根目录 + * + * @param string $path + * @return string + */ + function root_path($path = '') + { + return app()->getRootPath() . ($path ? $path . DIRECTORY_SEPARATOR : $path); + } +} diff --git a/vendor/topthink/framework/src/lang/zh-cn.php b/vendor/topthink/framework/src/lang/zh-cn.php new file mode 100644 index 0000000..83d8a1e --- /dev/null +++ b/vendor/topthink/framework/src/lang/zh-cn.php @@ -0,0 +1,148 @@ + +// +---------------------------------------------------------------------- + +// 核心中文语言包 +return [ + // 系统错误提示 + 'Undefined variable' => '未定义变量', + 'Undefined index' => '未定义数组索引', + 'Undefined offset' => '未定义数组下标', + 'Parse error' => '语法解析错误', + 'Type error' => '类型错误', + 'Fatal error' => '致命错误', + 'syntax error' => '语法错误', + + // 框架核心错误提示 + 'dispatch type not support' => '不支持的调度类型', + 'method param miss' => '方法参数错误', + 'method not exists' => '方法不存在', + 'function not exists' => '函数不存在', + 'app not exists' => '应用不存在', + 'controller not exists' => '控制器不存在', + 'class not exists' => '类不存在', + 'property not exists' => '类的属性不存在', + 'template not exists' => '模板文件不存在', + 'illegal controller name' => '非法的控制器名称', + 'illegal action name' => '非法的操作名称', + 'url suffix deny' => '禁止的URL后缀访问', + 'Undefined cache config' => '缓存配置未定义', + 'Route Not Found' => '当前访问路由未定义或不匹配', + 'Undefined db config' => '数据库配置未定义', + 'Undefined log config' => '日志配置未定义', + 'Undefined db type' => '未定义数据库类型', + 'variable type error' => '变量类型错误', + 'PSR-4 error' => 'PSR-4 规范错误', + 'not support type' => '不支持的分页索引字段类型', + 'not support total' => '简洁模式下不能获取数据总数', + 'not support last' => '简洁模式下不能获取最后一页', + 'error session handler' => '错误的SESSION处理器类', + 'not allow php tag' => '模板不允许使用PHP语法', + 'not support' => '不支持', + 'database config error' => '数据库配置信息错误', + 'redisd master' => 'Redisd 主服务器错误', + 'redisd slave' => 'Redisd 从服务器错误', + 'must run at sae' => '必须在SAE运行', + 'memcache init error' => '未开通Memcache服务,请在SAE管理平台初始化Memcache服务', + 'KVDB init error' => '没有初始化KVDB,请在SAE管理平台初始化KVDB服务', + 'fields not exists' => '数据表字段不存在', + 'where express error' => '查询表达式错误', + 'no data to update' => '没有任何数据需要更新', + 'miss data to insert' => '缺少需要写入的数据', + 'miss complex primary data' => '缺少复合主键数据', + 'miss update condition' => '缺少更新条件', + 'model data Not Found' => '模型数据不存在', + 'table data not Found' => '表数据不存在', + 'delete without condition' => '没有条件不会执行删除操作', + 'miss relation data' => '缺少关联表数据', + 'tag attr must' => '模板标签属性必须', + 'tag error' => '模板标签错误', + 'cache write error' => '缓存写入失败', + 'sae mc write error' => 'SAE mc 写入错误', + 'route name not exists' => '路由标识不存在(或参数不够)', + 'invalid request' => '非法请求', + 'bind attr has exists' => '模型的属性已经存在', + 'relation data not exists' => '关联数据不存在', + 'relation not support' => '关联不支持', + 'chunk not support order' => 'Chunk不支持调用order方法', + 'route pattern error' => '路由变量规则定义错误', + 'route behavior will not support' => '路由行为废弃(使用中间件替代)', + 'closure not support cache(true)' => '使用闭包查询不支持cache(true),请指定缓存Key', + + // 上传错误信息 + 'unknown upload error' => '未知上传错误!', + 'file write error' => '文件写入失败!', + 'upload temp dir not found' => '找不到临时文件夹!', + 'no file to uploaded' => '没有文件被上传!', + 'only the portion of file is uploaded' => '文件只有部分被上传!', + 'upload File size exceeds the maximum value' => '上传文件大小超过了最大值!', + 'upload write error' => '文件上传保存错误!', + 'has the same filename: {:filename}' => '存在同名文件:{:filename}', + 'upload illegal files' => '非法上传文件', + 'illegal image files' => '非法图片文件', + 'extensions to upload is not allowed' => '上传文件后缀不允许', + 'mimetype to upload is not allowed' => '上传文件MIME类型不允许!', + 'filesize not match' => '上传文件大小不符!', + 'directory {:path} creation failed' => '目录 {:path} 创建失败!', + + 'The middleware must return Response instance' => '中间件方法必须返回Response对象实例', + 'The queue was exhausted, with no response returned' => '中间件队列为空', + // Validate Error Message + ':attribute require' => ':attribute不能为空', + ':attribute must' => ':attribute必须', + ':attribute must be numeric' => ':attribute必须是数字', + ':attribute must be integer' => ':attribute必须是整数', + ':attribute must be float' => ':attribute必须是浮点数', + ':attribute must be bool' => ':attribute必须是布尔值', + ':attribute not a valid email address' => ':attribute格式不符', + ':attribute not a valid mobile' => ':attribute格式不符', + ':attribute must be a array' => ':attribute必须是数组', + ':attribute must be yes,on or 1' => ':attribute必须是yes、on或者1', + ':attribute not a valid datetime' => ':attribute不是一个有效的日期或时间格式', + ':attribute not a valid file' => ':attribute不是有效的上传文件', + ':attribute not a valid image' => ':attribute不是有效的图像文件', + ':attribute must be alpha' => ':attribute只能是字母', + ':attribute must be alpha-numeric' => ':attribute只能是字母和数字', + ':attribute must be alpha-numeric, dash, underscore' => ':attribute只能是字母、数字和下划线_及破折号-', + ':attribute not a valid domain or ip' => ':attribute不是有效的域名或者IP', + ':attribute must be chinese' => ':attribute只能是汉字', + ':attribute must be chinese or alpha' => ':attribute只能是汉字、字母', + ':attribute must be chinese,alpha-numeric' => ':attribute只能是汉字、字母和数字', + ':attribute must be chinese,alpha-numeric,underscore, dash' => ':attribute只能是汉字、字母、数字和下划线_及破折号-', + ':attribute not a valid url' => ':attribute不是有效的URL地址', + ':attribute not a valid ip' => ':attribute不是有效的IP地址', + ':attribute must be dateFormat of :rule' => ':attribute必须使用日期格式 :rule', + ':attribute must be in :rule' => ':attribute必须在 :rule 范围内', + ':attribute be notin :rule' => ':attribute不能在 :rule 范围内', + ':attribute must between :1 - :2' => ':attribute只能在 :1 - :2 之间', + ':attribute not between :1 - :2' => ':attribute不能在 :1 - :2 之间', + 'size of :attribute must be :rule' => ':attribute长度不符合要求 :rule', + 'max size of :attribute must be :rule' => ':attribute长度不能超过 :rule', + 'min size of :attribute must be :rule' => ':attribute长度不能小于 :rule', + ':attribute cannot be less than :rule' => ':attribute日期不能小于 :rule', + ':attribute cannot exceed :rule' => ':attribute日期不能超过 :rule', + ':attribute not within :rule' => '不在有效期内 :rule', + 'access IP is not allowed' => '不允许的IP访问', + 'access IP denied' => '禁止的IP访问', + ':attribute out of accord with :2' => ':attribute和确认字段:2不一致', + ':attribute cannot be same with :2' => ':attribute和比较字段:2不能相同', + ':attribute must greater than or equal :rule' => ':attribute必须大于等于 :rule', + ':attribute must greater than :rule' => ':attribute必须大于 :rule', + ':attribute must less than or equal :rule' => ':attribute必须小于等于 :rule', + ':attribute must less than :rule' => ':attribute必须小于 :rule', + ':attribute must equal :rule' => ':attribute必须等于 :rule', + ':attribute has exists' => ':attribute已存在', + ':attribute not conform to the rules' => ':attribute不符合指定规则', + 'invalid Request method' => '无效的请求类型', + 'invalid token' => '令牌数据无效', + 'not conform to the rules' => '规则错误', + + 'record has update' => '记录已经被更新了', +]; diff --git a/vendor/topthink/framework/src/think/App.php b/vendor/topthink/framework/src/think/App.php new file mode 100644 index 0000000..7bc271c --- /dev/null +++ b/vendor/topthink/framework/src/think/App.php @@ -0,0 +1,610 @@ + +// +---------------------------------------------------------------------- +declare (strict_types = 1); + +namespace think; + +use think\event\AppInit; +use think\helper\Str; +use think\initializer\BootService; +use think\initializer\Error; +use think\initializer\RegisterService; + +/** + * App 基础类 + * @property Route $route + * @property Config $config + * @property Cache $cache + * @property Request $request + * @property Http $http + * @property Console $console + * @property Env $env + * @property Event $event + * @property Middleware $middleware + * @property Log $log + * @property Lang $lang + * @property Db $db + * @property Cookie $cookie + * @property Session $session + * @property Validate $validate + * @property Filesystem $filesystem + */ +class App extends Container +{ + const VERSION = '6.0.1'; + + /** + * 应用调试模式 + * @var bool + */ + protected $appDebug = false; + + /** + * 应用开始时间 + * @var float + */ + protected $beginTime; + + /** + * 应用内存初始占用 + * @var integer + */ + protected $beginMem; + + /** + * 当前应用类库命名空间 + * @var string + */ + protected $namespace = 'app'; + + /** + * 应用根目录 + * @var string + */ + protected $rootPath = ''; + + /** + * 框架目录 + * @var string + */ + protected $thinkPath = ''; + + /** + * 应用目录 + * @var string + */ + protected $appPath = ''; + + /** + * Runtime目录 + * @var string + */ + protected $runtimePath = ''; + + /** + * 路由定义目录 + * @var string + */ + protected $routePath = ''; + + /** + * 配置后缀 + * @var string + */ + protected $configExt = '.php'; + + /** + * 应用初始化器 + * @var array + */ + protected $initializers = [ + Error::class, + RegisterService::class, + BootService::class, + ]; + + /** + * 注册的系统服务 + * @var array + */ + protected $services = []; + + /** + * 初始化 + * @var bool + */ + protected $initialized = false; + + /** + * 容器绑定标识 + * @var array + */ + protected $bind = [ + 'app' => App::class, + 'cache' => Cache::class, + 'config' => Config::class, + 'console' => Console::class, + 'cookie' => Cookie::class, + 'db' => Db::class, + 'env' => Env::class, + 'event' => Event::class, + 'http' => Http::class, + 'lang' => Lang::class, + 'log' => Log::class, + 'middleware' => Middleware::class, + 'request' => Request::class, + 'response' => Response::class, + 'route' => Route::class, + 'session' => Session::class, + 'validate' => Validate::class, + 'view' => View::class, + 'filesystem' => Filesystem::class, + 'think\DbManager' => Db::class, + 'think\LogManager' => Log::class, + 'think\CacheManager' => Cache::class, + + // 接口依赖注入 + 'Psr\Log\LoggerInterface' => Log::class, + ]; + + /** + * 架构方法 + * @access public + * @param string $rootPath 应用根目录 + */ + public function __construct(string $rootPath = '') + { + $this->thinkPath = dirname(__DIR__) . DIRECTORY_SEPARATOR; + $this->rootPath = $rootPath ? rtrim($rootPath, DIRECTORY_SEPARATOR) . DIRECTORY_SEPARATOR : $this->getDefaultRootPath(); + $this->appPath = $this->rootPath . 'app' . DIRECTORY_SEPARATOR; + $this->runtimePath = $this->rootPath . 'runtime' . DIRECTORY_SEPARATOR; + + if (is_file($this->appPath . 'provider.php')) { + $this->bind(include $this->appPath . 'provider.php'); + } + + static::setInstance($this); + + $this->instance('app', $this); + $this->instance('think\Container', $this); + } + + /** + * 注册服务 + * @access public + * @param Service|string $service 服务 + * @param bool $force 强制重新注册 + * @return Service|null + */ + public function register($service, bool $force = false) + { + $registered = $this->getService($service); + + if ($registered && !$force) { + return $registered; + } + + if (is_string($service)) { + $service = new $service($this); + } + + if (method_exists($service, 'register')) { + $service->register(); + } + + if (property_exists($service, 'bind')) { + $this->bind($service->bind); + } + + $this->services[] = $service; + } + + /** + * 执行服务 + * @access public + * @param Service $service 服务 + * @return mixed + */ + public function bootService($service) + { + if (method_exists($service, 'boot')) { + return $this->invoke([$service, 'boot']); + } + } + + /** + * 获取服务 + * @param string|Service $service + * @return Service|null + */ + public function getService($service) + { + $name = is_string($service) ? $service : get_class($service); + return array_values(array_filter($this->services, function ($value) use ($name) { + return $value instanceof $name; + }, ARRAY_FILTER_USE_BOTH))[0] ?? null; + } + + /** + * 开启应用调试模式 + * @access public + * @param bool $debug 开启应用调试模式 + * @return $this + */ + public function debug(bool $debug = true) + { + $this->appDebug = $debug; + return $this; + } + + /** + * 是否为调试模式 + * @access public + * @return bool + */ + public function isDebug(): bool + { + return $this->appDebug; + } + + /** + * 设置应用命名空间 + * @access public + * @param string $namespace 应用命名空间 + * @return $this + */ + public function setNamespace(string $namespace) + { + $this->namespace = $namespace; + return $this; + } + + /** + * 获取应用类库命名空间 + * @access public + * @return string + */ + public function getNamespace(): string + { + return $this->namespace; + } + + /** + * 获取框架版本 + * @access public + * @return string + */ + public function version(): string + { + return static::VERSION; + } + + /** + * 获取应用根目录 + * @access public + * @return string + */ + public function getRootPath(): string + { + return $this->rootPath; + } + + /** + * 获取应用基础目录 + * @access public + * @return string + */ + public function getBasePath(): string + { + return $this->rootPath . 'app' . DIRECTORY_SEPARATOR; + } + + /** + * 获取当前应用目录 + * @access public + * @return string + */ + public function getAppPath(): string + { + return $this->appPath; + } + + /** + * 设置应用目录 + * @param string $path 应用目录 + */ + public function setAppPath(string $path) + { + $this->appPath = $path; + } + + /** + * 获取应用运行时目录 + * @access public + * @return string + */ + public function getRuntimePath(): string + { + return $this->runtimePath; + } + + /** + * 设置runtime目录 + * @param string $path 定义目录 + */ + public function setRuntimePath(string $path): void + { + $this->runtimePath = $path; + } + + /** + * 获取核心框架目录 + * @access public + * @return string + */ + public function getThinkPath(): string + { + return $this->thinkPath; + } + + /** + * 获取应用配置目录 + * @access public + * @return string + */ + public function getConfigPath(): string + { + return $this->rootPath . 'config' . DIRECTORY_SEPARATOR; + } + + /** + * 获取配置后缀 + * @access public + * @return string + */ + public function getConfigExt(): string + { + return $this->configExt; + } + + /** + * 获取应用开启时间 + * @access public + * @return float + */ + public function getBeginTime(): float + { + return $this->beginTime; + } + + /** + * 获取应用初始内存占用 + * @access public + * @return integer + */ + public function getBeginMem(): int + { + return $this->beginMem; + } + + /** + * 初始化应用 + * @access public + * @return $this + */ + public function initialize() + { + $this->initialized = true; + + $this->beginTime = microtime(true); + $this->beginMem = memory_get_usage(); + + // 加载环境变量 + if (is_file($this->rootPath . '.env')) { + $this->env->load($this->rootPath . '.env'); + } + + $this->configExt = $this->env->get('config_ext', '.php'); + + $this->debugModeInit(); + + // 加载全局初始化文件 + $this->load(); + + // 加载框架默认语言包 + $langSet = $this->lang->defaultLangSet(); + + $this->lang->load($this->thinkPath . 'lang' . DIRECTORY_SEPARATOR . $langSet . '.php'); + + // 加载应用默认语言包 + $this->loadLangPack($langSet); + + // 监听AppInit + $this->event->trigger(AppInit::class); + + date_default_timezone_set($this->config->get('app.default_timezone', 'Asia/Shanghai')); + + // 初始化 + foreach ($this->initializers as $initializer) { + $this->make($initializer)->init($this); + } + + return $this; + } + + /** + * 是否初始化过 + * @return bool + */ + public function initialized() + { + return $this->initialized; + } + + /** + * 加载语言包 + * @param string $langset 语言 + * @return void + */ + public function loadLangPack($langset) + { + if (empty($langset)) { + return; + } + + // 加载系统语言包 + $files = glob($this->appPath . 'lang' . DIRECTORY_SEPARATOR . $langset . '.*'); + $this->lang->load($files); + + // 加载扩展(自定义)语言包 + $list = $this->config->get('lang.extend_list', []); + + if (isset($list[$langset])) { + $this->lang->load($list[$langset]); + } + } + + /** + * 引导应用 + * @access public + * @return void + */ + public function boot(): void + { + array_walk($this->services, function ($service) { + $this->bootService($service); + }); + } + + /** + * 加载应用文件和配置 + * @access protected + * @return void + */ + protected function load(): void + { + $appPath = $this->getAppPath(); + + if (is_file($appPath . 'common.php')) { + include_once $appPath . 'common.php'; + } + + include_once $this->thinkPath . 'helper.php'; + + $configPath = $this->getConfigPath(); + + $files = []; + + if (is_dir($configPath)) { + $files = glob($configPath . '*' . $this->configExt); + } + + foreach ($files as $file) { + $this->config->load($file, pathinfo($file, PATHINFO_FILENAME)); + } + + if (is_file($appPath . 'event.php')) { + $this->loadEvent(include $appPath . 'event.php'); + } + + if (is_file($appPath . 'service.php')) { + $services = include $appPath . 'service.php'; + foreach ($services as $service) { + $this->register($service); + } + } + } + + /** + * 调试模式设置 + * @access protected + * @return void + */ + protected function debugModeInit(): void + { + // 应用调试模式 + if (!$this->appDebug) { + $this->appDebug = $this->env->get('app_debug') ? true : false; + ini_set('display_errors', 'Off'); + } + + if (!$this->runningInConsole()) { + //重新申请一块比较大的buffer + if (ob_get_level() > 0) { + $output = ob_get_clean(); + } + ob_start(); + if (!empty($output)) { + echo $output; + } + } + } + + /** + * 注册应用事件 + * @access protected + * @param array $event 事件数据 + * @return void + */ + public function loadEvent(array $event): void + { + if (isset($event['bind'])) { + $this->event->bind($event['bind']); + } + + if (isset($event['listen'])) { + $this->event->listenEvents($event['listen']); + } + + if (isset($event['subscribe'])) { + $this->event->subscribe($event['subscribe']); + } + } + + /** + * 解析应用类的类名 + * @access public + * @param string $layer 层名 controller model ... + * @param string $name 类名 + * @return string + */ + public function parseClass(string $layer, string $name): string + { + $name = str_replace(['/', '.'], '\\', $name); + $array = explode('\\', $name); + $class = Str::studly(array_pop($array)); + $path = $array ? implode('\\', $array) . '\\' : ''; + + return $this->namespace . '\\' . $layer . '\\' . $path . $class; + } + + /** + * 是否运行在命令行下 + * @return bool + */ + public function runningInConsole() + { + return php_sapi_name() === 'cli' || php_sapi_name() === 'phpdbg'; + } + + /** + * 获取应用根目录 + * @access protected + * @return string + */ + protected function getDefaultRootPath(): string + { + $path = dirname(dirname(dirname(dirname($this->thinkPath)))); + + return $path . DIRECTORY_SEPARATOR; + } + +} diff --git a/vendor/topthink/framework/src/think/Cache.php b/vendor/topthink/framework/src/think/Cache.php new file mode 100644 index 0000000..4bc99c2 --- /dev/null +++ b/vendor/topthink/framework/src/think/Cache.php @@ -0,0 +1,197 @@ + +// +---------------------------------------------------------------------- +declare (strict_types = 1); + +namespace think; + +use Psr\SimpleCache\CacheInterface; +use think\cache\Driver; +use think\cache\TagSet; +use think\exception\InvalidArgumentException; +use think\helper\Arr; + +/** + * 缓存管理类 + * @mixin Driver + * @mixin \think\cache\driver\File + */ +class Cache extends Manager implements CacheInterface +{ + + protected $namespace = '\\think\\cache\\driver\\'; + + /** + * 默认驱动 + * @return string|null + */ + public function getDefaultDriver() + { + return $this->getConfig('default'); + } + + /** + * 获取缓存配置 + * @access public + * @param null|string $name 名称 + * @param mixed $default 默认值 + * @return mixed + */ + public function getConfig(string $name = null, $default = null) + { + if (!is_null($name)) { + return $this->app->config->get('cache.' . $name, $default); + } + + return $this->app->config->get('cache'); + } + + /** + * 获取驱动配置 + * @param string $store + * @param string $name + * @param null $default + * @return array + */ + public function getStoreConfig(string $store, string $name = null, $default = null) + { + if ($config = $this->getConfig("stores.{$store}")) { + return Arr::get($config, $name, $default); + } + + throw new \InvalidArgumentException("Store [$store] not found."); + } + + protected function resolveType(string $name) + { + return $this->getStoreConfig($name, 'type', 'file'); + } + + protected function resolveConfig(string $name) + { + return $this->getStoreConfig($name); + } + + /** + * 连接或者切换缓存 + * @access public + * @param string $name 连接配置名 + * @return Driver + */ + public function store(string $name = null) + { + return $this->driver($name); + } + + /** + * 清空缓冲池 + * @access public + * @return bool + */ + public function clear(): bool + { + return $this->store()->clear(); + } + + /** + * 读取缓存 + * @access public + * @param string $key 缓存变量名 + * @param mixed $default 默认值 + * @return mixed + */ + public function get($key, $default = null) + { + return $this->store()->get($key, $default); + } + + /** + * 写入缓存 + * @access public + * @param string $key 缓存变量名 + * @param mixed $value 存储数据 + * @param int|\DateTime $ttl 有效时间 0为永久 + * @return bool + */ + public function set($key, $value, $ttl = null): bool + { + return $this->store()->set($key, $value, $ttl); + } + + /** + * 删除缓存 + * @access public + * @param string $key 缓存变量名 + * @return bool + */ + public function delete($key): bool + { + return $this->store()->delete($key); + } + + /** + * 读取缓存 + * @access public + * @param iterable $keys 缓存变量名 + * @param mixed $default 默认值 + * @return iterable + * @throws InvalidArgumentException + */ + public function getMultiple($keys, $default = null): iterable + { + return $this->store()->getMultiple($keys, $default); + } + + /** + * 写入缓存 + * @access public + * @param iterable $values 缓存数据 + * @param null|int|\DateInterval $ttl 有效时间 0为永久 + * @return bool + */ + public function setMultiple($values, $ttl = null): bool + { + return $this->store()->setMultiple($values, $ttl); + } + + /** + * 删除缓存 + * @access public + * @param iterable $keys 缓存变量名 + * @return bool + * @throws InvalidArgumentException + */ + public function deleteMultiple($keys): bool + { + return $this->store()->deleteMultiple($keys); + } + + /** + * 判断缓存是否存在 + * @access public + * @param string $key 缓存变量名 + * @return bool + */ + public function has($key): bool + { + return $this->store()->has($key); + } + + /** + * 缓存标签 + * @access public + * @param string|array $name 标签名 + * @return TagSet + */ + public function tag($name): TagSet + { + return $this->store()->tag($name); + } +} diff --git a/vendor/topthink/framework/src/think/Config.php b/vendor/topthink/framework/src/think/Config.php new file mode 100644 index 0000000..78933ad --- /dev/null +++ b/vendor/topthink/framework/src/think/Config.php @@ -0,0 +1,193 @@ + +// +---------------------------------------------------------------------- +declare (strict_types = 1); + +namespace think; + +/** + * 配置管理类 + * @package think + */ +class Config +{ + /** + * 配置参数 + * @var array + */ + protected $config = []; + + /** + * 配置文件目录 + * @var string + */ + protected $path; + + /** + * 配置文件后缀 + * @var string + */ + protected $ext; + + /** + * 构造方法 + * @access public + */ + public function __construct(string $path = null, string $ext = '.php') + { + $this->path = $path ?: ''; + $this->ext = $ext; + } + + public static function __make(App $app) + { + $path = $app->getConfigPath(); + $ext = $app->getConfigExt(); + + return new static($path, $ext); + } + + /** + * 加载配置文件(多种格式) + * @access public + * @param string $file 配置文件名 + * @param string $name 一级配置名 + * @return array + */ + public function load(string $file, string $name = ''): array + { + if (is_file($file)) { + $filename = $file; + } elseif (is_file($this->path . $file . $this->ext)) { + $filename = $this->path . $file . $this->ext; + } + + if (isset($filename)) { + return $this->parse($filename, $name); + } + + return $this->config; + } + + /** + * 解析配置文件 + * @access public + * @param string $file 配置文件名 + * @param string $name 一级配置名 + * @return array + */ + protected function parse(string $file, string $name): array + { + $type = pathinfo($file, PATHINFO_EXTENSION); + $config = []; + switch ($type) { + case 'php': + $config = include $file; + break; + case 'yml': + case 'yaml': + if (function_exists('yaml_parse_file')) { + $config = yaml_parse_file($file); + } + break; + case 'ini': + $config = parse_ini_file($file, true, INI_SCANNER_TYPED) ?: []; + break; + case 'json': + $config = json_decode(file_get_contents($file), true); + break; + } + + return is_array($config) ? $this->set($config, strtolower($name)) : []; + } + + /** + * 检测配置是否存在 + * @access public + * @param string $name 配置参数名(支持多级配置 .号分割) + * @return bool + */ + public function has(string $name): bool + { + return !is_null($this->get($name)); + } + + /** + * 获取一级配置 + * @access protected + * @param string $name 一级配置名 + * @return array + */ + protected function pull(string $name): array + { + $name = strtolower($name); + + return $this->config[$name] ?? []; + } + + /** + * 获取配置参数 为空则获取所有配置 + * @access public + * @param string $name 配置参数名(支持多级配置 .号分割) + * @param mixed $default 默认值 + * @return mixed + */ + public function get(string $name = null, $default = null) + { + // 无参数时获取所有 + if (empty($name)) { + return $this->config; + } + + if (false === strpos($name, '.')) { + return $this->pull($name); + } + + $name = explode('.', $name); + $name[0] = strtolower($name[0]); + $config = $this->config; + + // 按.拆分成多维数组进行判断 + foreach ($name as $val) { + if (isset($config[$val])) { + $config = $config[$val]; + } else { + return $default; + } + } + + return $config; + } + + /** + * 设置配置参数 name为数组则为批量设置 + * @access public + * @param array $config 配置参数 + * @param string $name 配置名 + * @return array + */ + public function set(array $config, string $name = null): array + { + if (!empty($name)) { + if (isset($this->config[$name])) { + $result = array_merge($this->config[$name], $config); + } else { + $result = $config; + } + + $this->config[$name] = $result; + } else { + $result = $this->config = array_merge($this->config, array_change_key_case($config)); + } + + return $result; + } + +} diff --git a/vendor/topthink/framework/src/think/Console.php b/vendor/topthink/framework/src/think/Console.php new file mode 100644 index 0000000..a1398d5 --- /dev/null +++ b/vendor/topthink/framework/src/think/Console.php @@ -0,0 +1,732 @@ + +// +---------------------------------------------------------------------- +declare (strict_types = 1); + +namespace think; + +use Closure; +use InvalidArgumentException; +use LogicException; +use think\console\Command; +use think\console\command\Clear; +use think\console\command\Help; +use think\console\command\Help as HelpCommand; +use think\console\command\Lists; +use think\console\command\make\Command as MakeCommand; +use think\console\command\make\Controller; +use think\console\command\make\Event; +use think\console\command\make\Listener; +use think\console\command\make\Middleware; +use think\console\command\make\Model; +use think\console\command\make\Service; +use think\console\command\make\Subscribe; +use think\console\command\make\Validate; +use think\console\command\optimize\Route; +use think\console\command\optimize\Schema; +use think\console\command\RouteList; +use think\console\command\RunServer; +use think\console\command\ServiceDiscover; +use think\console\command\VendorPublish; +use think\console\command\Version; +use think\console\Input; +use think\console\input\Argument as InputArgument; +use think\console\input\Definition as InputDefinition; +use think\console\input\Option as InputOption; +use think\console\Output; +use think\console\output\driver\Buffer; + +/** + * 控制台应用管理类 + */ +class Console +{ + + protected $app; + + /** @var Command[] */ + protected $commands = []; + + protected $wantHelps = false; + + protected $catchExceptions = true; + protected $autoExit = true; + protected $definition; + protected $defaultCommand = 'list'; + + protected $defaultCommands = [ + 'help' => Help::class, + 'list' => Lists::class, + 'clear' => Clear::class, + 'make:command' => MakeCommand::class, + 'make:controller' => Controller::class, + 'make:model' => Model::class, + 'make:middleware' => Middleware::class, + 'make:validate' => Validate::class, + 'make:event' => Event::class, + 'make:listener' => Listener::class, + 'make:service' => Service::class, + 'make:subscribe' => Subscribe::class, + 'optimize:route' => Route::class, + 'optimize:schema' => Schema::class, + 'run' => RunServer::class, + 'version' => Version::class, + 'route:list' => RouteList::class, + 'service:discover' => ServiceDiscover::class, + 'vendor:publish' => VendorPublish::class, + ]; + + /** + * 启动器 + * @var array + */ + protected static $startCallbacks = []; + + public function __construct(App $app) + { + $this->app = $app; + + if (!$this->app->initialized()) { + $this->app->initialize(); + } + + $this->definition = $this->getDefaultInputDefinition(); + + //加载指令 + $this->loadCommands(); + + $this->start(); + } + + /** + * 添加初始化器 + * @param Closure $callback + */ + public static function starting(Closure $callback): void + { + static::$startCallbacks[] = $callback; + } + + /** + * 清空启动器 + */ + public static function flushStartCallbacks(): void + { + static::$startCallbacks = []; + } + + /** + * 设置执行用户 + * @param $user + */ + public static function setUser(string $user): void + { + if (extension_loaded('posix')) { + $user = posix_getpwnam($user); + + if (!empty($user)) { + posix_setgid($user['gid']); + posix_setuid($user['uid']); + } + } + } + + /** + * 启动 + */ + protected function start(): void + { + foreach (static::$startCallbacks as $callback) { + $callback($this); + } + } + + /** + * 加载指令 + * @access protected + */ + protected function loadCommands(): void + { + $commands = $this->app->config->get('console.commands', []); + $commands = array_merge($this->defaultCommands, $commands); + + $this->addCommands($commands); + } + + /** + * @access public + * @param string $command + * @param array $parameters + * @param string $driver + * @return Output|Buffer + */ + public function call(string $command, array $parameters = [], string $driver = 'buffer') + { + array_unshift($parameters, $command); + + $input = new Input($parameters); + $output = new Output($driver); + + $this->setCatchExceptions(false); + $this->find($command)->run($input, $output); + + return $output; + } + + /** + * 执行当前的指令 + * @access public + * @return int + * @throws \Exception + * @api + */ + public function run() + { + $input = new Input(); + $output = new Output(); + + $this->configureIO($input, $output); + + try { + $exitCode = $this->doRun($input, $output); + } catch (\Exception $e) { + if (!$this->catchExceptions) { + throw $e; + } + + $output->renderException($e); + + $exitCode = $e->getCode(); + if (is_numeric($exitCode)) { + $exitCode = (int) $exitCode; + if (0 === $exitCode) { + $exitCode = 1; + } + } else { + $exitCode = 1; + } + } + + if ($this->autoExit) { + if ($exitCode > 255) { + $exitCode = 255; + } + + exit($exitCode); + } + + return $exitCode; + } + + /** + * 执行指令 + * @access public + * @param Input $input + * @param Output $output + * @return int + */ + public function doRun(Input $input, Output $output) + { + if (true === $input->hasParameterOption(['--version', '-V'])) { + $output->writeln($this->getLongVersion()); + + return 0; + } + + $name = $this->getCommandName($input); + + if (true === $input->hasParameterOption(['--help', '-h'])) { + if (!$name) { + $name = 'help'; + $input = new Input(['help']); + } else { + $this->wantHelps = true; + } + } + + if (!$name) { + $name = $this->defaultCommand; + $input = new Input([$this->defaultCommand]); + } + + $command = $this->find($name); + + return $this->doRunCommand($command, $input, $output); + } + + /** + * 设置输入参数定义 + * @access public + * @param InputDefinition $definition + */ + public function setDefinition(InputDefinition $definition): void + { + $this->definition = $definition; + } + + /** + * 获取输入参数定义 + * @access public + * @return InputDefinition The InputDefinition instance + */ + public function getDefinition(): InputDefinition + { + return $this->definition; + } + + /** + * Gets the help message. + * @access public + * @return string A help message. + */ + public function getHelp(): string + { + return $this->getLongVersion(); + } + + /** + * 是否捕获异常 + * @access public + * @param bool $boolean + * @api + */ + public function setCatchExceptions(bool $boolean): void + { + $this->catchExceptions = $boolean; + } + + /** + * 是否自动退出 + * @access public + * @param bool $boolean + * @api + */ + public function setAutoExit(bool $boolean): void + { + $this->autoExit = $boolean; + } + + /** + * 获取完整的版本号 + * @access public + * @return string + */ + public function getLongVersion(): string + { + if ($this->app->version()) { + return sprintf('version %s', $this->app->version()); + } + + return 'Console Tool'; + } + + /** + * 添加指令集 + * @access public + * @param array $commands + */ + public function addCommands(array $commands): void + { + foreach ($commands as $key => $command) { + if (is_subclass_of($command, Command::class)) { + // 注册指令 + $this->addCommand($command, is_numeric($key) ? '' : $key); + } + } + } + + /** + * 添加一个指令 + * @access public + * @param string|Command $command 指令对象或者指令类名 + * @param string $name 指令名 留空则自动获取 + * @return Command|void + */ + public function addCommand($command, string $name = '') + { + if ($name) { + $this->commands[$name] = $command; + return; + } + + if (is_string($command)) { + $command = $this->app->invokeClass($command); + } + + $command->setConsole($this); + + if (!$command->isEnabled()) { + $command->setConsole(null); + return; + } + + $command->setApp($this->app); + + if (null === $command->getDefinition()) { + throw new LogicException(sprintf('Command class "%s" is not correctly initialized. You probably forgot to call the parent constructor.', get_class($command))); + } + + $this->commands[$command->getName()] = $command; + + foreach ($command->getAliases() as $alias) { + $this->commands[$alias] = $command; + } + + return $command; + } + + /** + * 获取指令 + * @access public + * @param string $name 指令名称 + * @return Command + * @throws InvalidArgumentException + */ + public function getCommand(string $name): Command + { + if (!isset($this->commands[$name])) { + throw new InvalidArgumentException(sprintf('The command "%s" does not exist.', $name)); + } + + $command = $this->commands[$name]; + + if (is_string($command)) { + $command = $this->app->invokeClass($command); + /** @var Command $command */ + $command->setConsole($this); + $command->setApp($this->app); + } + + if ($this->wantHelps) { + $this->wantHelps = false; + + /** @var HelpCommand $helpCommand */ + $helpCommand = $this->getCommand('help'); + $helpCommand->setCommand($command); + + return $helpCommand; + } + + return $command; + } + + /** + * 某个指令是否存在 + * @access public + * @param string $name 指令名称 + * @return bool + */ + public function hasCommand(string $name): bool + { + return isset($this->commands[$name]); + } + + /** + * 获取所有的命名空间 + * @access public + * @return array + */ + public function getNamespaces(): array + { + $namespaces = []; + foreach ($this->commands as $key => $command) { + if (is_string($command)) { + $namespaces = array_merge($namespaces, $this->extractAllNamespaces($key)); + } else { + $namespaces = array_merge($namespaces, $this->extractAllNamespaces($command->getName())); + + foreach ($command->getAliases() as $alias) { + $namespaces = array_merge($namespaces, $this->extractAllNamespaces($alias)); + } + } + } + + return array_values(array_unique(array_filter($namespaces))); + } + + /** + * 查找注册命名空间中的名称或缩写。 + * @access public + * @param string $namespace + * @return string + * @throws InvalidArgumentException + */ + public function findNamespace(string $namespace): string + { + $allNamespaces = $this->getNamespaces(); + $expr = preg_replace_callback('{([^:]+|)}', function ($matches) { + return preg_quote($matches[1]) . '[^:]*'; + }, $namespace); + $namespaces = preg_grep('{^' . $expr . '}', $allNamespaces); + + if (empty($namespaces)) { + $message = sprintf('There are no commands defined in the "%s" namespace.', $namespace); + + if ($alternatives = $this->findAlternatives($namespace, $allNamespaces)) { + if (1 == count($alternatives)) { + $message .= "\n\nDid you mean this?\n "; + } else { + $message .= "\n\nDid you mean one of these?\n "; + } + + $message .= implode("\n ", $alternatives); + } + + throw new InvalidArgumentException($message); + } + + $exact = in_array($namespace, $namespaces, true); + if (count($namespaces) > 1 && !$exact) { + throw new InvalidArgumentException(sprintf('The namespace "%s" is ambiguous (%s).', $namespace, $this->getAbbreviationSuggestions(array_values($namespaces)))); + } + + return $exact ? $namespace : reset($namespaces); + } + + /** + * 查找指令 + * @access public + * @param string $name 名称或者别名 + * @return Command + * @throws InvalidArgumentException + */ + public function find(string $name): Command + { + $allCommands = array_keys($this->commands); + + $expr = preg_replace_callback('{([^:]+|)}', function ($matches) { + return preg_quote($matches[1]) . '[^:]*'; + }, $name); + + $commands = preg_grep('{^' . $expr . '}', $allCommands); + + if (empty($commands) || count(preg_grep('{^' . $expr . '$}', $commands)) < 1) { + if (false !== $pos = strrpos($name, ':')) { + $this->findNamespace(substr($name, 0, $pos)); + } + + $message = sprintf('Command "%s" is not defined.', $name); + + if ($alternatives = $this->findAlternatives($name, $allCommands)) { + if (1 == count($alternatives)) { + $message .= "\n\nDid you mean this?\n "; + } else { + $message .= "\n\nDid you mean one of these?\n "; + } + $message .= implode("\n ", $alternatives); + } + + throw new InvalidArgumentException($message); + } + + $exact = in_array($name, $commands, true); + if (count($commands) > 1 && !$exact) { + $suggestions = $this->getAbbreviationSuggestions(array_values($commands)); + + throw new InvalidArgumentException(sprintf('Command "%s" is ambiguous (%s).', $name, $suggestions)); + } + + return $this->getCommand($exact ? $name : reset($commands)); + } + + /** + * 获取所有的指令 + * @access public + * @param string $namespace 命名空间 + * @return Command[] + * @api + */ + public function all(string $namespace = null): array + { + if (null === $namespace) { + return $this->commands; + } + + $commands = []; + foreach ($this->commands as $name => $command) { + if ($this->extractNamespace($name, substr_count($namespace, ':') + 1) === $namespace) { + $commands[$name] = $command; + } + } + + return $commands; + } + + /** + * 配置基于用户的参数和选项的输入和输出实例。 + * @access protected + * @param Input $input 输入实例 + * @param Output $output 输出实例 + */ + protected function configureIO(Input $input, Output $output): void + { + if (true === $input->hasParameterOption(['--ansi'])) { + $output->setDecorated(true); + } elseif (true === $input->hasParameterOption(['--no-ansi'])) { + $output->setDecorated(false); + } + + if (true === $input->hasParameterOption(['--no-interaction', '-n'])) { + $input->setInteractive(false); + } + + if (true === $input->hasParameterOption(['--quiet', '-q'])) { + $output->setVerbosity(Output::VERBOSITY_QUIET); + } elseif ($input->hasParameterOption('-vvv') || $input->hasParameterOption('--verbose=3') || $input->getParameterOption('--verbose') === 3) { + $output->setVerbosity(Output::VERBOSITY_DEBUG); + } elseif ($input->hasParameterOption('-vv') || $input->hasParameterOption('--verbose=2') || $input->getParameterOption('--verbose') === 2) { + $output->setVerbosity(Output::VERBOSITY_VERY_VERBOSE); + } elseif ($input->hasParameterOption('-v') || $input->hasParameterOption('--verbose=1') || $input->hasParameterOption('--verbose') || $input->getParameterOption('--verbose')) { + $output->setVerbosity(Output::VERBOSITY_VERBOSE); + } + } + + /** + * 执行指令 + * @access protected + * @param Command $command 指令实例 + * @param Input $input 输入实例 + * @param Output $output 输出实例 + * @return int + * @throws \Exception + */ + protected function doRunCommand(Command $command, Input $input, Output $output) + { + return $command->run($input, $output); + } + + /** + * 获取指令的基础名称 + * @access protected + * @param Input $input + * @return string + */ + protected function getCommandName(Input $input): string + { + return $input->getFirstArgument() ?: ''; + } + + /** + * 获取默认输入定义 + * @access protected + * @return InputDefinition + */ + protected function getDefaultInputDefinition(): InputDefinition + { + return new InputDefinition([ + new InputArgument('command', InputArgument::REQUIRED, 'The command to execute'), + new InputOption('--help', '-h', InputOption::VALUE_NONE, 'Display this help message'), + new InputOption('--version', '-V', InputOption::VALUE_NONE, 'Display this console version'), + new InputOption('--quiet', '-q', InputOption::VALUE_NONE, 'Do not output any message'), + new InputOption('--verbose', '-v|vv|vvv', InputOption::VALUE_NONE, 'Increase the verbosity of messages: 1 for normal output, 2 for more verbose output and 3 for debug'), + new InputOption('--ansi', '', InputOption::VALUE_NONE, 'Force ANSI output'), + new InputOption('--no-ansi', '', InputOption::VALUE_NONE, 'Disable ANSI output'), + new InputOption('--no-interaction', '-n', InputOption::VALUE_NONE, 'Do not ask any interactive question'), + ]); + } + + /** + * 获取可能的建议 + * @access private + * @param array $abbrevs + * @return string + */ + private function getAbbreviationSuggestions(array $abbrevs): string + { + return sprintf('%s, %s%s', $abbrevs[0], $abbrevs[1], count($abbrevs) > 2 ? sprintf(' and %d more', count($abbrevs) - 2) : ''); + } + + /** + * 返回命名空间部分 + * @access public + * @param string $name 指令 + * @param int $limit 部分的命名空间的最大数量 + * @return string + */ + public function extractNamespace(string $name, int $limit = 0): string + { + $parts = explode(':', $name); + array_pop($parts); + + return implode(':', 0 === $limit ? $parts : array_slice($parts, 0, $limit)); + } + + /** + * 查找可替代的建议 + * @access private + * @param string $name + * @param array|\Traversable $collection + * @return array + */ + private function findAlternatives(string $name, $collection): array + { + $threshold = 1e3; + $alternatives = []; + + $collectionParts = []; + foreach ($collection as $item) { + $collectionParts[$item] = explode(':', $item); + } + + foreach (explode(':', $name) as $i => $subname) { + foreach ($collectionParts as $collectionName => $parts) { + $exists = isset($alternatives[$collectionName]); + if (!isset($parts[$i]) && $exists) { + $alternatives[$collectionName] += $threshold; + continue; + } elseif (!isset($parts[$i])) { + continue; + } + + $lev = levenshtein($subname, $parts[$i]); + if ($lev <= strlen($subname) / 3 || '' !== $subname && false !== strpos($parts[$i], $subname)) { + $alternatives[$collectionName] = $exists ? $alternatives[$collectionName] + $lev : $lev; + } elseif ($exists) { + $alternatives[$collectionName] += $threshold; + } + } + } + + foreach ($collection as $item) { + $lev = levenshtein($name, $item); + if ($lev <= strlen($name) / 3 || false !== strpos($item, $name)) { + $alternatives[$item] = isset($alternatives[$item]) ? $alternatives[$item] - $lev : $lev; + } + } + + $alternatives = array_filter($alternatives, function ($lev) use ($threshold) { + return $lev < 2 * $threshold; + }); + asort($alternatives); + + return array_keys($alternatives); + } + + /** + * 返回所有的命名空间 + * @access private + * @param string $name + * @return array + */ + private function extractAllNamespaces(string $name): array + { + $parts = explode(':', $name, -1); + $namespaces = []; + + foreach ($parts as $part) { + if (count($namespaces)) { + $namespaces[] = end($namespaces) . ':' . $part; + } else { + $namespaces[] = $part; + } + } + + return $namespaces; + } + +} diff --git a/vendor/topthink/framework/src/think/Container.php b/vendor/topthink/framework/src/think/Container.php new file mode 100644 index 0000000..215524f --- /dev/null +++ b/vendor/topthink/framework/src/think/Container.php @@ -0,0 +1,551 @@ + +// +---------------------------------------------------------------------- +declare (strict_types = 1); + +namespace think; + +use ArrayAccess; +use ArrayIterator; +use Closure; +use Countable; +use InvalidArgumentException; +use IteratorAggregate; +use Psr\Container\ContainerInterface; +use ReflectionClass; +use ReflectionException; +use ReflectionFunction; +use ReflectionFunctionAbstract; +use ReflectionMethod; +use think\exception\ClassNotFoundException; +use think\exception\FuncNotFoundException; +use think\helper\Str; + +/** + * 容器管理类 支持PSR-11 + */ +class Container implements ContainerInterface, ArrayAccess, IteratorAggregate, Countable +{ + /** + * 容器对象实例 + * @var Container|Closure + */ + protected static $instance; + + /** + * 容器中的对象实例 + * @var array + */ + protected $instances = []; + + /** + * 容器绑定标识 + * @var array + */ + protected $bind = []; + + /** + * 容器回调 + * @var array + */ + protected $invokeCallback = []; + + /** + * 获取当前容器的实例(单例) + * @access public + * @return static + */ + public static function getInstance() + { + if (is_null(static::$instance)) { + static::$instance = new static; + } + + if (static::$instance instanceof Closure) { + return (static::$instance)(); + } + + return static::$instance; + } + + /** + * 设置当前容器的实例 + * @access public + * @param object|Closure $instance + * @return void + */ + public static function setInstance($instance): void + { + static::$instance = $instance; + } + + /** + * 注册一个容器对象回调 + * + * @param string|Closure $abstract + * @param Closure|null $callback + * @return void + */ + public function resolving($abstract, Closure $callback = null): void + { + if ($abstract instanceof Closure) { + $this->invokeCallback['*'][] = $abstract; + return; + } + + $abstract = $this->getAlias($abstract); + + $this->invokeCallback[$abstract][] = $callback; + } + + /** + * 获取容器中的对象实例 不存在则创建 + * @access public + * @param string $abstract 类名或者标识 + * @param array|true $vars 变量 + * @param bool $newInstance 是否每次创建新的实例 + * @return object + */ + public static function pull(string $abstract, array $vars = [], bool $newInstance = false) + { + return static::getInstance()->make($abstract, $vars, $newInstance); + } + + /** + * 获取容器中的对象实例 + * @access public + * @param string $abstract 类名或者标识 + * @return object + */ + public function get($abstract) + { + if ($this->has($abstract)) { + return $this->make($abstract); + } + + throw new ClassNotFoundException('class not exists: ' . $abstract, $abstract); + } + + /** + * 绑定一个类、闭包、实例、接口实现到容器 + * @access public + * @param string|array $abstract 类标识、接口 + * @param mixed $concrete 要绑定的类、闭包或者实例 + * @return $this + */ + public function bind($abstract, $concrete = null) + { + if (is_array($abstract)) { + foreach ($abstract as $key => $val) { + $this->bind($key, $val); + } + } elseif ($concrete instanceof Closure) { + $this->bind[$abstract] = $concrete; + } elseif (is_object($concrete)) { + $this->instance($abstract, $concrete); + } else { + $abstract = $this->getAlias($abstract); + + $this->bind[$abstract] = $concrete; + } + + return $this; + } + + /** + * 根据别名获取真实类名 + * @param string $abstract + * @return string + */ + public function getAlias(string $abstract): string + { + if (isset($this->bind[$abstract])) { + $bind = $this->bind[$abstract]; + + if (is_string($bind)) { + return $this->getAlias($bind); + } + } + + return $abstract; + } + + /** + * 绑定一个类实例到容器 + * @access public + * @param string $abstract 类名或者标识 + * @param object $instance 类的实例 + * @return $this + */ + public function instance(string $abstract, $instance) + { + $abstract = $this->getAlias($abstract); + + $this->instances[$abstract] = $instance; + + return $this; + } + + /** + * 判断容器中是否存在类及标识 + * @access public + * @param string $abstract 类名或者标识 + * @return bool + */ + public function bound(string $abstract): bool + { + return isset($this->bind[$abstract]) || isset($this->instances[$abstract]); + } + + /** + * 判断容器中是否存在类及标识 + * @access public + * @param string $name 类名或者标识 + * @return bool + */ + public function has($name): bool + { + return $this->bound($name); + } + + /** + * 判断容器中是否存在对象实例 + * @access public + * @param string $abstract 类名或者标识 + * @return bool + */ + public function exists(string $abstract): bool + { + $abstract = $this->getAlias($abstract); + + return isset($this->instances[$abstract]); + } + + /** + * 创建类的实例 已经存在则直接获取 + * @access public + * @param string $abstract 类名或者标识 + * @param array $vars 变量 + * @param bool $newInstance 是否每次创建新的实例 + * @return mixed + */ + public function make(string $abstract, array $vars = [], bool $newInstance = false) + { + $abstract = $this->getAlias($abstract); + + if (isset($this->instances[$abstract]) && !$newInstance) { + return $this->instances[$abstract]; + } + + if (isset($this->bind[$abstract]) && $this->bind[$abstract] instanceof Closure) { + $object = $this->invokeFunction($this->bind[$abstract], $vars); + } else { + $object = $this->invokeClass($abstract, $vars); + } + + if (!$newInstance) { + $this->instances[$abstract] = $object; + } + + return $object; + } + + /** + * 删除容器中的对象实例 + * @access public + * @param string $name 类名或者标识 + * @return void + */ + public function delete($name) + { + $name = $this->getAlias($name); + + if (isset($this->instances[$name])) { + unset($this->instances[$name]); + } + } + + /** + * 执行函数或者闭包方法 支持参数调用 + * @access public + * @param string|Closure $function 函数或者闭包 + * @param array $vars 参数 + * @return mixed + */ + public function invokeFunction($function, array $vars = []) + { + try { + $reflect = new ReflectionFunction($function); + } catch (ReflectionException $e) { + throw new FuncNotFoundException("function not exists: {$function}()", $function, $e); + } + + $args = $this->bindParams($reflect, $vars); + + return $function(...$args); + } + + /** + * 调用反射执行类的方法 支持参数绑定 + * @access public + * @param mixed $method 方法 + * @param array $vars 参数 + * @param bool $accessible 设置是否可访问 + * @return mixed + */ + public function invokeMethod($method, array $vars = [], bool $accessible = false) + { + if (is_array($method)) { + [$class, $method] = $method; + + $class = is_object($class) ? $class : $this->invokeClass($class); + } else { + // 静态方法 + [$class, $method] = explode('::', $method); + } + + try { + $reflect = new ReflectionMethod($class, $method); + } catch (ReflectionException $e) { + $class = is_object($class) ? get_class($class) : $class; + throw new FuncNotFoundException('method not exists: ' . $class . '::' . $method . '()', "{$class}::{$method}", $e); + } + + $args = $this->bindParams($reflect, $vars); + + if ($accessible) { + $reflect->setAccessible($accessible); + } + + return $reflect->invokeArgs(is_object($class) ? $class : null, $args); + } + + /** + * 调用反射执行类的方法 支持参数绑定 + * @access public + * @param object $instance 对象实例 + * @param mixed $reflect 反射类 + * @param array $vars 参数 + * @return mixed + */ + public function invokeReflectMethod($instance, $reflect, array $vars = []) + { + $args = $this->bindParams($reflect, $vars); + + return $reflect->invokeArgs($instance, $args); + } + + /** + * 调用反射执行callable 支持参数绑定 + * @access public + * @param mixed $callable + * @param array $vars 参数 + * @param bool $accessible 设置是否可访问 + * @return mixed + */ + public function invoke($callable, array $vars = [], bool $accessible = false) + { + if ($callable instanceof Closure) { + return $this->invokeFunction($callable, $vars); + } elseif (is_string($callable) && false === strpos($callable, '::')) { + return $this->invokeFunction($callable, $vars); + } else { + return $this->invokeMethod($callable, $vars, $accessible); + } + } + + /** + * 调用反射执行类的实例化 支持依赖注入 + * @access public + * @param string $class 类名 + * @param array $vars 参数 + * @return mixed + */ + public function invokeClass(string $class, array $vars = []) + { + try { + $reflect = new ReflectionClass($class); + } catch (ReflectionException $e) { + throw new ClassNotFoundException('class not exists: ' . $class, $class, $e); + } + + if ($reflect->hasMethod('__make')) { + $method = $reflect->getMethod('__make'); + if ($method->isPublic() && $method->isStatic()) { + $args = $this->bindParams($method, $vars); + return $method->invokeArgs(null, $args); + } + } + + $constructor = $reflect->getConstructor(); + + $args = $constructor ? $this->bindParams($constructor, $vars) : []; + + $object = $reflect->newInstanceArgs($args); + + $this->invokeAfter($class, $object); + + return $object; + } + + /** + * 执行invokeClass回调 + * @access protected + * @param string $class 对象类名 + * @param object $object 容器对象实例 + * @return void + */ + protected function invokeAfter(string $class, $object): void + { + if (isset($this->invokeCallback['*'])) { + foreach ($this->invokeCallback['*'] as $callback) { + $callback($object, $this); + } + } + + if (isset($this->invokeCallback[$class])) { + foreach ($this->invokeCallback[$class] as $callback) { + $callback($object, $this); + } + } + } + + /** + * 绑定参数 + * @access protected + * @param ReflectionFunctionAbstract $reflect 反射类 + * @param array $vars 参数 + * @return array + */ + protected function bindParams(ReflectionFunctionAbstract $reflect, array $vars = []): array + { + if ($reflect->getNumberOfParameters() == 0) { + return []; + } + + // 判断数组类型 数字数组时按顺序绑定参数 + reset($vars); + $type = key($vars) === 0 ? 1 : 0; + $params = $reflect->getParameters(); + $args = []; + + foreach ($params as $param) { + $name = $param->getName(); + $lowerName = Str::snake($name); + $class = $param->getClass(); + + if ($class) { + $args[] = $this->getObjectParam($class->getName(), $vars); + } elseif (1 == $type && !empty($vars)) { + $args[] = array_shift($vars); + } elseif (0 == $type && isset($vars[$name])) { + $args[] = $vars[$name]; + } elseif (0 == $type && isset($vars[$lowerName])) { + $args[] = $vars[$lowerName]; + } elseif ($param->isDefaultValueAvailable()) { + $args[] = $param->getDefaultValue(); + } else { + throw new InvalidArgumentException('method param miss:' . $name); + } + } + + return $args; + } + + /** + * 创建工厂对象实例 + * @param string $name 工厂类名 + * @param string $namespace 默认命名空间 + * @param array $args + * @return mixed + * @deprecated + * @access public + */ + public static function factory(string $name, string $namespace = '', ...$args) + { + $class = false !== strpos($name, '\\') ? $name : $namespace . ucwords($name); + + return Container::getInstance()->invokeClass($class, $args); + } + + /** + * 获取对象类型的参数值 + * @access protected + * @param string $className 类名 + * @param array $vars 参数 + * @return mixed + */ + protected function getObjectParam(string $className, array &$vars) + { + $array = $vars; + $value = array_shift($array); + + if ($value instanceof $className) { + $result = $value; + array_shift($vars); + } else { + $result = $this->make($className); + } + + return $result; + } + + public function __set($name, $value) + { + $this->bind($name, $value); + } + + public function __get($name) + { + return $this->get($name); + } + + public function __isset($name): bool + { + return $this->exists($name); + } + + public function __unset($name) + { + $this->delete($name); + } + + public function offsetExists($key) + { + return $this->exists($key); + } + + public function offsetGet($key) + { + return $this->make($key); + } + + public function offsetSet($key, $value) + { + $this->bind($key, $value); + } + + public function offsetUnset($key) + { + $this->delete($key); + } + + //Countable + public function count() + { + return count($this->instances); + } + + //IteratorAggregate + public function getIterator() + { + return new ArrayIterator($this->instances); + } +} diff --git a/vendor/topthink/framework/src/think/Cookie.php b/vendor/topthink/framework/src/think/Cookie.php new file mode 100644 index 0000000..6eb85b6 --- /dev/null +++ b/vendor/topthink/framework/src/think/Cookie.php @@ -0,0 +1,230 @@ + +// +---------------------------------------------------------------------- +declare (strict_types = 1); + +namespace think; + +use DateTimeInterface; + +/** + * Cookie管理类 + * @package think + */ +class Cookie +{ + /** + * 配置参数 + * @var array + */ + protected $config = [ + // cookie 保存时间 + 'expire' => 0, + // cookie 保存路径 + 'path' => '/', + // cookie 有效域名 + 'domain' => '', + // cookie 启用安全传输 + 'secure' => false, + // httponly设置 + 'httponly' => false, + // samesite 设置,支持 'strict' 'lax' + 'samesite' => '', + ]; + + /** + * Cookie写入数据 + * @var array + */ + protected $cookie = []; + + /** + * 当前Request对象 + * @var Request + */ + protected $request; + + /** + * 构造方法 + * @access public + */ + public function __construct(Request $request, array $config = []) + { + $this->request = $request; + $this->config = array_merge($this->config, array_change_key_case($config)); + } + + public static function __make(Request $request, Config $config) + { + return new static($request, $config->get('cookie')); + } + + /** + * 获取cookie + * @access public + * @param mixed $name 数据名称 + * @param string $default 默认值 + * @return mixed + */ + public function get(string $name = '', $default = null) + { + return $this->request->cookie($name, $default); + } + + /** + * 是否存在Cookie参数 + * @access public + * @param string $name 变量名 + * @return bool + */ + public function has(string $name): bool + { + return $this->request->has($name, 'cookie'); + } + + /** + * Cookie 设置 + * + * @access public + * @param string $name cookie名称 + * @param string $value cookie值 + * @param mixed $option 可选参数 + * @return void + */ + public function set(string $name, string $value, $option = null): void + { + // 参数设置(会覆盖黙认设置) + if (!is_null($option)) { + if (is_numeric($option) || $option instanceof DateTimeInterface) { + $option = ['expire' => $option]; + } + + $config = array_merge($this->config, array_change_key_case($option)); + } else { + $config = $this->config; + } + + if ($config['expire'] instanceof DateTimeInterface) { + $expire = $config['expire']->getTimestamp(); + } else { + $expire = !empty($config['expire']) ? time() + intval($config['expire']) : 0; + } + + $this->setCookie($name, $value, $expire, $config); + } + + /** + * Cookie 保存 + * + * @access public + * @param string $name cookie名称 + * @param string $value cookie值 + * @param int $expire 有效期 + * @param array $option 可选参数 + * @return void + */ + protected function setCookie(string $name, string $value, int $expire, array $option = []): void + { + $this->cookie[$name] = [$value, $expire, $option]; + } + + /** + * 永久保存Cookie数据 + * @access public + * @param string $name cookie名称 + * @param string $value cookie值 + * @param mixed $option 可选参数 可能会是 null|integer|string + * @return void + */ + public function forever(string $name, string $value = '', $option = null): void + { + if (is_null($option) || is_numeric($option)) { + $option = []; + } + + $option['expire'] = 315360000; + + $this->set($name, $value, $option); + } + + /** + * Cookie删除 + * @access public + * @param string $name cookie名称 + * @return void + */ + public function delete(string $name): void + { + $this->setCookie($name, '', time() - 3600, $this->config); + } + + /** + * 获取cookie保存数据 + * @access public + * @return array + */ + public function getCookie(): array + { + return $this->cookie; + } + + /** + * 保存Cookie + * @access public + * @return void + */ + public function save(): void + { + foreach ($this->cookie as $name => $val) { + [$value, $expire, $option] = $val; + + $this->saveCookie( + $name, + $value, + $expire, + $option['path'], + $option['domain'], + $option['secure'] ? true : false, + $option['httponly'] ? true : false, + $option['samesite'] + ); + } + } + + /** + * 保存Cookie + * @access public + * @param string $name cookie名称 + * @param string $value cookie值 + * @param int $expire cookie过期时间 + * @param string $path 有效的服务器路径 + * @param string $domain 有效域名/子域名 + * @param bool $secure 是否仅仅通过HTTPS + * @param bool $httponly 仅可通过HTTP访问 + * @param string $samesite 防止CSRF攻击和用户追踪 + * @return void + */ + protected function saveCookie(string $name, string $value, int $expire, string $path, string $domain, bool $secure, bool $httponly, string $samesite): void + { + if (version_compare(PHP_VERSION, '7.3.0', '>=')) { + setcookie($name, $value, [ + 'expires' => $expire, + 'path' => $path, + 'domain' => $domain, + 'secure' => $secure, + 'httponly' => $httponly, + 'samesite' => $samesite, + ]); + } else { + setcookie($name, $value, $expire, $path, $domain, $secure, $httponly); + } + } + +} diff --git a/vendor/topthink/framework/src/think/Db.php b/vendor/topthink/framework/src/think/Db.php new file mode 100644 index 0000000..06b7ff2 --- /dev/null +++ b/vendor/topthink/framework/src/think/Db.php @@ -0,0 +1,114 @@ + +// +---------------------------------------------------------------------- +declare (strict_types = 1); + +namespace think; + +/** + * 数据库管理类 + * @package think + */ +class Db extends DbManager +{ + /** + * @param Event $event + * @param Config $config + * @param Log $log + * @param Cache $cache + * @return Db + * @codeCoverageIgnore + */ + public static function __make(Event $event, Config $config, Log $log, Cache $cache) + { + $db = new static(); + $db->setConfig($config); + $db->setEvent($event); + $db->setLog($log); + $db->setCache($cache); + $db->triggerSql(); + + return $db; + } + + /** + * 注入模型对象 + * @access public + * @return void + */ + protected function modelMaker() + { + } + + /** + * 设置配置对象 + * @access public + * @param Config $config 配置对象 + * @return void + */ + public function setConfig($config): void + { + $this->config = $config; + } + + /** + * 获取配置参数 + * @access public + * @param string $name 配置参数 + * @param mixed $default 默认值 + * @return mixed + */ + public function getConfig(string $name = '', $default = null) + { + if ('' !== $name) { + return $this->config->get('database.' . $name, $default); + } + + return $this->config->get('database', []); + } + + /** + * 设置Event对象 + * @param Event $event + */ + public function setEvent(Event $event): void + { + $this->event = $event; + } + + /** + * 注册回调方法 + * @access public + * @param string $event 事件名 + * @param callable $callback 回调方法 + * @return void + */ + public function event(string $event, callable $callback): void + { + if ($this->event) { + $this->event->listen('db.' . $event, $callback); + } + } + + /** + * 触发事件 + * @access public + * @param string $event 事件名 + * @param mixed $params 传入参数 + * @param bool $once + * @return mixed + */ + public function trigger(string $event, $params = null, bool $once = false) + { + if ($this->event) { + return $this->event->trigger('db.' . $event, $params, $once); + } + } +} diff --git a/vendor/topthink/framework/src/think/Env.php b/vendor/topthink/framework/src/think/Env.php new file mode 100644 index 0000000..05228aa --- /dev/null +++ b/vendor/topthink/framework/src/think/Env.php @@ -0,0 +1,181 @@ + +// +---------------------------------------------------------------------- +declare (strict_types = 1); + +namespace think; + +use ArrayAccess; + +/** + * Env管理类 + * @package think + */ +class Env implements ArrayAccess +{ + /** + * 环境变量数据 + * @var array + */ + protected $data = []; + + public function __construct() + { + $this->data = $_ENV; + } + + /** + * 读取环境变量定义文件 + * @access public + * @param string $file 环境变量定义文件 + * @return void + */ + public function load(string $file): void + { + $env = parse_ini_file($file, true) ?: []; + $this->set($env); + } + + /** + * 获取环境变量值 + * @access public + * @param string $name 环境变量名 + * @param mixed $default 默认值 + * @return mixed + */ + public function get(string $name = null, $default = null) + { + if (is_null($name)) { + return $this->data; + } + + $name = strtoupper(str_replace('.', '_', $name)); + + if (isset($this->data[$name])) { + return $this->data[$name]; + } + + return $this->getEnv($name, $default); + } + + protected function getEnv(string $name, $default = null) + { + $result = getenv('PHP_' . $name); + + if (false === $result) { + return $default; + } + + if ('false' === $result) { + $result = false; + } elseif ('true' === $result) { + $result = true; + } + + if (!isset($this->data[$name])) { + $this->data[$name] = $result; + } + + return $result; + } + + /** + * 设置环境变量值 + * @access public + * @param string|array $env 环境变量 + * @param mixed $value 值 + * @return void + */ + public function set($env, $value = null): void + { + if (is_array($env)) { + $env = array_change_key_case($env, CASE_UPPER); + + foreach ($env as $key => $val) { + if (is_array($val)) { + foreach ($val as $k => $v) { + $this->data[$key . '_' . strtoupper($k)] = $v; + } + } else { + $this->data[$key] = $val; + } + } + } else { + $name = strtoupper(str_replace('.', '_', $env)); + + $this->data[$name] = $value; + } + } + + /** + * 检测是否存在环境变量 + * @access public + * @param string $name 参数名 + * @return bool + */ + public function has(string $name): bool + { + return !is_null($this->get($name)); + } + + /** + * 设置环境变量 + * @access public + * @param string $name 参数名 + * @param mixed $value 值 + */ + public function __set(string $name, $value): void + { + $this->set($name, $value); + } + + /** + * 获取环境变量 + * @access public + * @param string $name 参数名 + * @return mixed + */ + public function __get(string $name) + { + return $this->get($name); + } + + /** + * 检测是否存在环境变量 + * @access public + * @param string $name 参数名 + * @return bool + */ + public function __isset(string $name): bool + { + return $this->has($name); + } + + // ArrayAccess + public function offsetSet($name, $value): void + { + $this->set($name, $value); + } + + public function offsetExists($name): bool + { + return $this->__isset($name); + } + + public function offsetUnset($name) + { + throw new Exception('not support: unset'); + } + + public function offsetGet($name) + { + return $this->get($name); + } +} diff --git a/vendor/topthink/framework/src/think/Event.php b/vendor/topthink/framework/src/think/Event.php new file mode 100644 index 0000000..ecb9912 --- /dev/null +++ b/vendor/topthink/framework/src/think/Event.php @@ -0,0 +1,301 @@ + +// +---------------------------------------------------------------------- +declare (strict_types = 1); + +namespace think; + +use ReflectionClass; +use ReflectionMethod; + +/** + * 事件管理类 + * @package think + */ +class Event +{ + /** + * 监听者 + * @var array + */ + protected $listener = []; + + /** + * 事件别名 + * @var array + */ + protected $bind = [ + 'AppInit' => event\AppInit::class, + 'HttpRun' => event\HttpRun::class, + 'HttpEnd' => event\HttpEnd::class, + 'RouteLoaded' => event\RouteLoaded::class, + 'LogWrite' => event\LogWrite::class, + ]; + + /** + * 是否需要事件响应 + * @var bool + */ + protected $withEvent = true; + + /** + * 应用对象 + * @var App + */ + protected $app; + + public function __construct(App $app) + { + $this->app = $app; + } + + /** + * 设置是否开启事件响应 + * @access protected + * @param bool $event 是否需要事件响应 + * @return $this + */ + public function withEvent(bool $event) + { + $this->withEvent = $event; + return $this; + } + + /** + * 批量注册事件监听 + * @access public + * @param array $events 事件定义 + * @return $this + */ + public function listenEvents(array $events) + { + if (!$this->withEvent) { + return $this; + } + + foreach ($events as $event => $listeners) { + if (isset($this->bind[$event])) { + $event = $this->bind[$event]; + } + + $this->listener[$event] = array_merge($this->listener[$event] ?? [], $listeners); + } + + return $this; + } + + /** + * 注册事件监听 + * @access public + * @param string $event 事件名称 + * @param mixed $listener 监听操作(或者类名) + * @param bool $first 是否优先执行 + * @return $this + */ + public function listen(string $event, $listener, bool $first = false) + { + if (!$this->withEvent) { + return $this; + } + + if (isset($this->bind[$event])) { + $event = $this->bind[$event]; + } + + if ($first && isset($this->listener[$event])) { + array_unshift($this->listener[$event], $listener); + } else { + $this->listener[$event][] = $listener; + } + + return $this; + } + + /** + * 是否存在事件监听 + * @access public + * @param string $event 事件名称 + * @return bool + */ + public function hasListener(string $event): bool + { + if (isset($this->bind[$event])) { + $event = $this->bind[$event]; + } + + return isset($this->listener[$event]); + } + + /** + * 移除事件监听 + * @access public + * @param string $event 事件名称 + * @return void + */ + public function remove(string $event): void + { + if (isset($this->bind[$event])) { + $event = $this->bind[$event]; + } + + unset($this->listener[$event]); + } + + /** + * 指定事件别名标识 便于调用 + * @access public + * @param array $events 事件别名 + * @return $this + */ + public function bind(array $events) + { + $this->bind = array_merge($this->bind, $events); + + return $this; + } + + /** + * 注册事件订阅者 + * @access public + * @param mixed $subscriber 订阅者 + * @return $this + */ + public function subscribe($subscriber) + { + if (!$this->withEvent) { + return $this; + } + + $subscribers = (array) $subscriber; + + foreach ($subscribers as $subscriber) { + if (is_string($subscriber)) { + $subscriber = $this->app->make($subscriber); + } + + if (method_exists($subscriber, 'subscribe')) { + // 手动订阅 + $subscriber->subscribe($this); + } else { + // 智能订阅 + $this->observe($subscriber); + } + } + + return $this; + } + + /** + * 自动注册事件观察者 + * @access public + * @param string|object $observer 观察者 + * @param null|string $prefix 事件名前缀 + * @return $this + */ + public function observe($observer, string $prefix = '') + { + if (!$this->withEvent) { + return $this; + } + + if (is_string($observer)) { + $observer = $this->app->make($observer); + } + + $reflect = new ReflectionClass($observer); + $methods = $reflect->getMethods(ReflectionMethod::IS_PUBLIC); + + if (empty($prefix) && $reflect->hasProperty('eventPrefix')) { + $reflectProperty = $reflect->getProperty('eventPrefix'); + $reflectProperty->setAccessible(true); + $prefix = $reflectProperty->getValue($observer); + } + + foreach ($methods as $method) { + $name = $method->getName(); + if (0 === strpos($name, 'on')) { + $this->listen($prefix . substr($name, 2), [$observer, $name]); + } + } + + return $this; + } + + /** + * 触发事件 + * @access public + * @param string|object $event 事件名称 + * @param mixed $params 传入参数 + * @param bool $once 只获取一个有效返回值 + * @return mixed + */ + public function trigger($event, $params = null, bool $once = false) + { + if (!$this->withEvent) { + return; + } + + if (is_object($event)) { + $params = $event; + $event = get_class($event); + } + + if (isset($this->bind[$event])) { + $event = $this->bind[$event]; + } + + $result = []; + $listeners = $this->listener[$event] ?? []; + $listeners = array_unique($listeners, SORT_REGULAR); + + foreach ($listeners as $key => $listener) { + $result[$key] = $this->dispatch($listener, $params); + + if (false === $result[$key] || (!is_null($result[$key]) && $once)) { + break; + } + } + + return $once ? end($result) : $result; + } + + /** + * 触发事件(只获取一个有效返回值) + * @param $event + * @param null $params + * @return mixed + */ + public function until($event, $params = null) + { + return $this->trigger($event, $params, true); + } + + /** + * 执行事件调度 + * @access protected + * @param mixed $event 事件方法 + * @param mixed $params 参数 + * @return mixed + */ + protected function dispatch($event, $params = null) + { + if (!is_string($event)) { + $call = $event; + } elseif (strpos($event, '::')) { + $call = $event; + } else { + $obj = $this->app->make($event); + $call = [$obj, 'handle']; + } + + return $this->app->invoke($call, [$params]); + } + +} diff --git a/vendor/topthink/framework/src/think/Exception.php b/vendor/topthink/framework/src/think/Exception.php new file mode 100644 index 0000000..468e29d --- /dev/null +++ b/vendor/topthink/framework/src/think/Exception.php @@ -0,0 +1,60 @@ + +// +---------------------------------------------------------------------- +declare (strict_types = 1); + +namespace think; + +/** + * 异常基础类 + * @package think + */ +class Exception extends \Exception +{ + /** + * 保存异常页面显示的额外Debug数据 + * @var array + */ + protected $data = []; + + /** + * 设置异常额外的Debug数据 + * 数据将会显示为下面的格式 + * + * Exception Data + * -------------------------------------------------- + * Label 1 + * key1 value1 + * key2 value2 + * Label 2 + * key1 value1 + * key2 value2 + * + * @access protected + * @param string $label 数据分类,用于异常页面显示 + * @param array $data 需要显示的数据,必须为关联数组 + */ + final protected function setData(string $label, array $data) + { + $this->data[$label] = $data; + } + + /** + * 获取异常额外Debug数据 + * 主要用于输出到异常页面便于调试 + * @access public + * @return array 由setData设置的Debug数据 + */ + final public function getData() + { + return $this->data; + } + +} diff --git a/vendor/topthink/framework/src/think/Facade.php b/vendor/topthink/framework/src/think/Facade.php new file mode 100644 index 0000000..7921298 --- /dev/null +++ b/vendor/topthink/framework/src/think/Facade.php @@ -0,0 +1,98 @@ + +// +---------------------------------------------------------------------- +namespace think; + +/** + * Facade管理类 + */ +class Facade +{ + /** + * 始终创建新的对象实例 + * @var bool + */ + protected static $alwaysNewInstance; + + /** + * 创建Facade实例 + * @static + * @access protected + * @param string $class 类名或标识 + * @param array $args 变量 + * @param bool $newInstance 是否每次创建新的实例 + * @return object + */ + protected static function createFacade(string $class = '', array $args = [], bool $newInstance = false) + { + $class = $class ?: static::class; + + $facadeClass = static::getFacadeClass(); + + if ($facadeClass) { + $class = $facadeClass; + } + + if (static::$alwaysNewInstance) { + $newInstance = true; + } + + return Container::getInstance()->make($class, $args, $newInstance); + } + + /** + * 获取当前Facade对应类名 + * @access protected + * @return string + */ + protected static function getFacadeClass() + {} + + /** + * 带参数实例化当前Facade类 + * @access public + * @return object + */ + public static function instance(...$args) + { + if (__CLASS__ != static::class) { + return self::createFacade('', $args); + } + } + + /** + * 调用类的实例 + * @access public + * @param string $class 类名或者标识 + * @param array|true $args 变量 + * @param bool $newInstance 是否每次创建新的实例 + * @return object + */ + public static function make(string $class, $args = [], $newInstance = false) + { + if (__CLASS__ != static::class) { + return self::__callStatic('make', func_get_args()); + } + + if (true === $args) { + // 总是创建新的实例化对象 + $newInstance = true; + $args = []; + } + + return self::createFacade($class, $args, $newInstance); + } + + // 调用实际类的方法 + public static function __callStatic($method, $params) + { + return call_user_func_array([static::createFacade(), $method], $params); + } +} diff --git a/vendor/topthink/framework/src/think/File.php b/vendor/topthink/framework/src/think/File.php new file mode 100644 index 0000000..cb4cca0 --- /dev/null +++ b/vendor/topthink/framework/src/think/File.php @@ -0,0 +1,187 @@ + +// +---------------------------------------------------------------------- +declare (strict_types = 1); + +namespace think; + +use SplFileInfo; +use think\exception\FileException; + +/** + * 文件上传类 + * @package think + */ +class File extends SplFileInfo +{ + + /** + * 文件hash规则 + * @var array + */ + protected $hash = []; + + protected $hashName; + + public function __construct(string $path, bool $checkPath = true) + { + if ($checkPath && !is_file($path)) { + throw new FileException(sprintf('The file "%s" does not exist', $path)); + } + + parent::__construct($path); + } + + /** + * 获取文件的哈希散列值 + * @access public + * @param string $type + * @return string + */ + public function hash(string $type = 'sha1'): string + { + if (!isset($this->hash[$type])) { + $this->hash[$type] = hash_file($type, $this->getPathname()); + } + + return $this->hash[$type]; + } + + /** + * 获取文件的MD5值 + * @access public + * @return string + */ + public function md5(): string + { + return $this->hash('md5'); + } + + /** + * 获取文件的SHA1值 + * @access public + * @return string + */ + public function sha1(): string + { + return $this->hash('sha1'); + } + + /** + * 获取文件类型信息 + * @access public + * @return string + */ + public function getMime(): string + { + $finfo = finfo_open(FILEINFO_MIME_TYPE); + + return finfo_file($finfo, $this->getPathname()); + } + + /** + * 移动文件 + * @access public + * @param string $directory 保存路径 + * @param string|null $name 保存的文件名 + * @return File + */ + public function move(string $directory, string $name = null): File + { + $target = $this->getTargetFile($directory, $name); + + set_error_handler(function ($type, $msg) use (&$error) { + $error = $msg; + }); + $renamed = rename($this->getPathname(), (string) $target); + restore_error_handler(); + if (!$renamed) { + throw new FileException(sprintf('Could not move the file "%s" to "%s" (%s)', $this->getPathname(), $target, strip_tags($error))); + } + + @chmod((string) $target, 0666 & ~umask()); + + return $target; + } + + /** + * 实例化一个新文件 + * @param string $directory + * @param null|string $name + * @return File + */ + protected function getTargetFile(string $directory, string $name = null): File + { + if (!is_dir($directory)) { + if (false === @mkdir($directory, 0777, true) && !is_dir($directory)) { + throw new FileException(sprintf('Unable to create the "%s" directory', $directory)); + } + } elseif (!is_writable($directory)) { + throw new FileException(sprintf('Unable to write in the "%s" directory', $directory)); + } + + $target = rtrim($directory, '/\\') . \DIRECTORY_SEPARATOR . (null === $name ? $this->getBasename() : $this->getName($name)); + + return new self($target, false); + } + + /** + * 获取文件名 + * @param string $name + * @return string + */ + protected function getName(string $name): string + { + $originalName = str_replace('\\', '/', $name); + $pos = strrpos($originalName, '/'); + $originalName = false === $pos ? $originalName : substr($originalName, $pos + 1); + + return $originalName; + } + + /** + * 文件扩展名 + * @return string + */ + public function extension(): string + { + return $this->getExtension(); + } + + /** + * 自动生成文件名 + * @access protected + * @param string|\Closure $rule + * @return string + */ + public function hashName($rule = 'date'): string + { + if (!$this->hashName) { + if ($rule instanceof \Closure) { + $this->hashName = call_user_func_array($rule, [$this]); + } else { + switch (true) { + case in_array($rule, hash_algos()): + $hash = $this->hash($rule); + $this->hashName = substr($hash, 0, 2) . DIRECTORY_SEPARATOR . substr($hash, 2); + break; + case is_callable($rule): + $this->hashName = call_user_func($rule); + break; + default: + $this->hashName = date('Ymd') . DIRECTORY_SEPARATOR . md5((string) microtime(true)); + break; + } + } + } + + return $this->hashName . '.' . $this->extension(); + } +} diff --git a/vendor/topthink/framework/src/think/Filesystem.php b/vendor/topthink/framework/src/think/Filesystem.php new file mode 100644 index 0000000..a443f74 --- /dev/null +++ b/vendor/topthink/framework/src/think/Filesystem.php @@ -0,0 +1,89 @@ + +// +---------------------------------------------------------------------- +declare (strict_types = 1); + +namespace think; + +use InvalidArgumentException; +use think\filesystem\Driver; +use think\filesystem\driver\Local; +use think\helper\Arr; + +/** + * Class Filesystem + * @package think + * @mixin Driver + * @mixin Local + */ +class Filesystem extends Manager +{ + protected $namespace = '\\think\\filesystem\\driver\\'; + + /** + * @param null|string $name + * @return Driver + */ + public function disk(string $name = null): Driver + { + return $this->driver($name); + } + + protected function resolveType(string $name) + { + return $this->getDiskConfig($name, 'type', 'local'); + } + + protected function resolveConfig(string $name) + { + return $this->getDiskConfig($name); + } + + /** + * 获取缓存配置 + * @access public + * @param null|string $name 名称 + * @param mixed $default 默认值 + * @return mixed + */ + public function getConfig(string $name = null, $default = null) + { + if (!is_null($name)) { + return $this->app->config->get('filesystem.' . $name, $default); + } + + return $this->app->config->get('filesystem'); + } + + /** + * 获取磁盘配置 + * @param string $disk + * @param null $name + * @param null $default + * @return array + */ + public function getDiskConfig($disk, $name = null, $default = null) + { + if ($config = $this->getConfig("disks.{$disk}")) { + return Arr::get($config, $name, $default); + } + + throw new InvalidArgumentException("Disk [$disk] not found."); + } + + /** + * 默认驱动 + * @return string|null + */ + public function getDefaultDriver() + { + return $this->getConfig('default'); + } +} diff --git a/vendor/topthink/framework/src/think/Http.php b/vendor/topthink/framework/src/think/Http.php new file mode 100644 index 0000000..a78b8b4 --- /dev/null +++ b/vendor/topthink/framework/src/think/Http.php @@ -0,0 +1,285 @@ + +// +---------------------------------------------------------------------- +declare (strict_types = 1); + +namespace think; + +use think\event\HttpEnd; +use think\event\HttpRun; +use think\event\RouteLoaded; +use think\exception\Handle; +use Throwable; + +/** + * Web应用管理类 + * @package think + */ +class Http +{ + + /** + * @var App + */ + protected $app; + + /** + * 应用名称 + * @var string + */ + protected $name; + + /** + * 应用路径 + * @var string + */ + protected $path; + + /** + * 是否绑定应用 + * @var bool + */ + protected $isBind = false; + + public function __construct(App $app) + { + $this->app = $app; + + $this->routePath = $this->app->getRootPath() . 'route' . DIRECTORY_SEPARATOR; + } + + /** + * 设置应用名称 + * @access public + * @param string $name 应用名称 + * @return $this + */ + public function name(string $name) + { + $this->name = $name; + return $this; + } + + /** + * 获取应用名称 + * @access public + * @return string + */ + public function getName(): string + { + return $this->name ?: ''; + } + + /** + * 设置应用目录 + * @access public + * @param string $path 应用目录 + * @return $this + */ + public function path(string $path) + { + if (substr($path, -1) != DIRECTORY_SEPARATOR) { + $path .= DIRECTORY_SEPARATOR; + } + + $this->path = $path; + return $this; + } + + /** + * 获取应用路径 + * @access public + * @return string + */ + public function getPath(): string + { + return $this->path ?: ''; + } + + /** + * 获取路由目录 + * @access public + * @return string + */ + public function getRoutePath(): string + { + return $this->routePath; + } + + /** + * 设置路由目录 + * @access public + * @param string $path 路由定义目录 + * @return string + */ + public function setRoutePath(string $path): void + { + $this->routePath = $path; + } + + /** + * 设置应用绑定 + * @access public + * @param bool $bind 是否绑定 + * @return $this + */ + public function setBind(bool $bind = true) + { + $this->isBind = $bind; + return $this; + } + + /** + * 是否绑定应用 + * @access public + * @return bool + */ + public function isBind(): bool + { + return $this->isBind; + } + + /** + * 执行应用程序 + * @access public + * @param Request|null $request + * @return Response + */ + public function run(Request $request = null): Response + { + //自动创建request对象 + $request = $request ?? $this->app->make('request', [], true); + $this->app->instance('request', $request); + + try { + $response = $this->runWithRequest($request); + } catch (Throwable $e) { + $this->reportException($e); + + $response = $this->renderException($request, $e); + } + + return $response; + } + + /** + * 初始化 + */ + protected function initialize() + { + if (!$this->app->initialized()) { + $this->app->initialize(); + } + } + + /** + * 执行应用程序 + * @param Request $request + * @return mixed + */ + protected function runWithRequest(Request $request) + { + $this->initialize(); + + // 加载全局中间件 + $this->loadMiddleware(); + + // 设置开启事件机制 + $this->app->event->withEvent($this->app->config->get('app.with_event', true)); + + // 监听HttpRun + $this->app->event->trigger(HttpRun::class); + + return $this->app->middleware->pipeline() + ->send($request) + ->then(function ($request) { + return $this->dispatchToRoute($request); + }); + } + + protected function dispatchToRoute($request) + { + $withRoute = $this->app->config->get('app.with_route', true) ? function () { + $this->loadRoutes(); + } : null; + + return $this->app->route->dispatch($request, $withRoute); + } + + /** + * 加载全局中间件 + */ + protected function loadMiddleware(): void + { + if (is_file($this->app->getBasePath() . 'middleware.php')) { + $this->app->middleware->import(include $this->app->getBasePath() . 'middleware.php'); + } + } + + /** + * 加载路由 + * @access protected + * @return void + */ + protected function loadRoutes(): void + { + // 加载路由定义 + $routePath = $this->getRoutePath(); + + if (is_dir($routePath)) { + $files = glob($routePath . '*.php'); + foreach ($files as $file) { + include $file; + } + } + + $this->app->event->trigger(RouteLoaded::class); + } + + /** + * Report the exception to the exception handler. + * + * @param Throwable $e + * @return void + */ + protected function reportException(Throwable $e) + { + $this->app->make(Handle::class)->report($e); + } + + /** + * Render the exception to a response. + * + * @param Request $request + * @param Throwable $e + * @return Response + */ + protected function renderException($request, Throwable $e) + { + return $this->app->make(Handle::class)->render($request, $e); + } + + /** + * HttpEnd + * @param Response $response + * @return void + */ + public function end(Response $response): void + { + $this->app->event->trigger(HttpEnd::class, $response); + + //执行中间件 + $this->app->middleware->end($response); + + // 写入日志 + $this->app->log->save(); + } + +} diff --git a/vendor/topthink/framework/src/think/Lang.php b/vendor/topthink/framework/src/think/Lang.php new file mode 100644 index 0000000..aed43fd --- /dev/null +++ b/vendor/topthink/framework/src/think/Lang.php @@ -0,0 +1,277 @@ + +// +---------------------------------------------------------------------- +declare (strict_types = 1); + +namespace think; + +/** + * 多语言管理类 + * @package think + */ +class Lang +{ + /** + * 配置参数 + * @var array + */ + protected $config = [ + // 默认语言 + 'default_lang' => 'zh-cn', + // 允许的语言列表 + 'allow_lang_list' => [], + // 是否使用Cookie记录 + 'use_cookie' => true, + // 扩展语言包 + 'extend_list' => [], + // 多语言cookie变量 + 'cookie_var' => 'think_lang', + // 多语言自动侦测变量名 + 'detect_var' => 'lang', + // Accept-Language转义为对应语言包名称 + 'accept_language' => [ + 'zh-hans-cn' => 'zh-cn', + ], + // 是否支持语言分组 + 'allow_group' => false, + ]; + + /** + * 多语言信息 + * @var array + */ + private $lang = []; + + /** + * 当前语言 + * @var string + */ + private $range = 'zh-cn'; + + /** + * 构造方法 + * @access public + * @param array $config + */ + public function __construct(array $config = []) + { + $this->config = array_merge($this->config, array_change_key_case($config)); + $this->range = $this->config['default_lang']; + } + + public static function __make(Config $config) + { + return new static($config->get('lang')); + } + + /** + * 设置当前语言 + * @access public + * @param string $lang 语言 + * @return void + */ + public function setLangSet(string $lang): void + { + $this->range = $lang; + } + + /** + * 获取当前语言 + * @access public + * @return string + */ + public function getLangSet(): string + { + return $this->range; + } + + /** + * 获取默认语言 + * @access public + * @return string + */ + public function defaultLangSet() + { + return $this->config['default_lang']; + } + + /** + * 加载语言定义(不区分大小写) + * @access public + * @param string|array $file 语言文件 + * @param string $range 语言作用域 + * @return array + */ + public function load($file, $range = ''): array + { + $range = $range ?: $this->range; + if (!isset($this->lang[$range])) { + $this->lang[$range] = []; + } + + $lang = []; + + foreach ((array) $file as $_file) { + if (is_file($_file)) { + $result = $this->parse($_file); + $lang = array_change_key_case($result) + $lang; + } + } + + if (!empty($lang)) { + $this->lang[$range] = $lang + $this->lang[$range]; + } + + return $this->lang[$range]; + } + + /** + * 解析语言文件 + * @access protected + * @param string $file 语言文件名 + * @return array + */ + protected function parse(string $file): array + { + $type = pathinfo($file, PATHINFO_EXTENSION); + + switch ($type) { + case 'php': + $result = include $file; + break; + case 'yml': + case 'yaml': + if (function_exists('yaml_parse_file')) { + $result = yaml_parse_file($file); + } + break; + } + + return isset($result) && is_array($result) ? $result : []; + } + + /** + * 判断是否存在语言定义(不区分大小写) + * @access public + * @param string|null $name 语言变量 + * @param string $range 语言作用域 + * @return bool + */ + public function has(string $name, string $range = ''): bool + { + $range = $range ?: $this->range; + + if ($this->config['allow_group'] && strpos($name, '.')) { + [$name1, $name2] = explode('.', $name, 2); + return isset($this->lang[$range][strtolower($name1)][$name2]); + } + + return isset($this->lang[$range][strtolower($name)]); + } + + /** + * 获取语言定义(不区分大小写) + * @access public + * @param string|null $name 语言变量 + * @param array $vars 变量替换 + * @param string $range 语言作用域 + * @return mixed + */ + public function get(string $name = null, array $vars = [], string $range = '') + { + $range = $range ?: $this->range; + + // 空参数返回所有定义 + if (is_null($name)) { + return $this->lang[$range] ?? []; + } + + if ($this->config['allow_group'] && strpos($name, '.')) { + [$name1, $name2] = explode('.', $name, 2); + + $value = $this->lang[$range][strtolower($name1)][$name2] ?? $name; + } else { + $value = $this->lang[$range][strtolower($name)] ?? $name; + } + + // 变量解析 + if (!empty($vars) && is_array($vars)) { + /** + * Notes: + * 为了检测的方便,数字索引的判断仅仅是参数数组的第一个元素的key为数字0 + * 数字索引采用的是系统的 sprintf 函数替换,用法请参考 sprintf 函数 + */ + if (key($vars) === 0) { + // 数字索引解析 + array_unshift($vars, $value); + $value = call_user_func_array('sprintf', $vars); + } else { + // 关联索引解析 + $replace = array_keys($vars); + foreach ($replace as &$v) { + $v = "{:{$v}}"; + } + $value = str_replace($replace, $vars, $value); + } + } + + return $value; + } + + /** + * 自动侦测设置获取语言选择 + * @access public + * @param Request $request + * @return string + */ + public function detect(Request $request): string + { + // 自动侦测设置获取语言选择 + $langSet = ''; + + if ($request->get($this->config['detect_var'])) { + // url中设置了语言变量 + $langSet = strtolower($request->get($this->config['detect_var'])); + } elseif ($request->cookie($this->config['cookie_var'])) { + // Cookie中设置了语言变量 + $langSet = strtolower($request->cookie($this->config['cookie_var'])); + } elseif ($request->server('HTTP_ACCEPT_LANGUAGE')) { + // 自动侦测浏览器语言 + $match = preg_match('/^([a-z\d\-]+)/i', $request->server('HTTP_ACCEPT_LANGUAGE'), $matches); + if ($match) { + $langSet = strtolower($matches[1]); + if (isset($this->config['accept_language'][$langSet])) { + $langSet = $this->config['accept_language'][$langSet]; + } + } + } + + if (empty($this->config['allow_lang_list']) || in_array($langSet, $this->config['allow_lang_list'])) { + // 合法的语言 + $this->range = $langSet; + } + + return $this->range; + } + + /** + * 保存当前语言到Cookie + * @access public + * @param Cookie $cookie Cookie对象 + * @return void + */ + public function saveToCookie(Cookie $cookie) + { + if ($this->config['use_cookie']) { + $cookie->set($this->config['cookie_var'], $this->range); + } + } + +} diff --git a/vendor/topthink/framework/src/think/Log.php b/vendor/topthink/framework/src/think/Log.php new file mode 100644 index 0000000..e9031c7 --- /dev/null +++ b/vendor/topthink/framework/src/think/Log.php @@ -0,0 +1,342 @@ + +// +---------------------------------------------------------------------- +declare (strict_types = 1); + +namespace think; + +use InvalidArgumentException; +use Psr\Log\LoggerInterface; +use think\event\LogWrite; +use think\helper\Arr; +use think\log\Channel; +use think\log\ChannelSet; + +/** + * 日志管理类 + * @package think + * @mixin Channel + */ +class Log extends Manager implements LoggerInterface +{ + const EMERGENCY = 'emergency'; + const ALERT = 'alert'; + const CRITICAL = 'critical'; + const ERROR = 'error'; + const WARNING = 'warning'; + const NOTICE = 'notice'; + const INFO = 'info'; + const DEBUG = 'debug'; + const SQL = 'sql'; + + protected $namespace = '\\think\\log\\driver\\'; + + /** + * 默认驱动 + * @return string|null + */ + public function getDefaultDriver() + { + return $this->getConfig('default'); + } + + /** + * 获取日志配置 + * @access public + * @param null|string $name 名称 + * @param mixed $default 默认值 + * @return mixed + */ + public function getConfig(string $name = null, $default = null) + { + if (!is_null($name)) { + return $this->app->config->get('log.' . $name, $default); + } + + return $this->app->config->get('log'); + } + + /** + * 获取渠道配置 + * @param string $channel + * @param null $name + * @param null $default + * @return array + */ + public function getChannelConfig($channel, $name = null, $default = null) + { + if ($config = $this->getConfig("channels.{$channel}")) { + return Arr::get($config, $name, $default); + } + + throw new InvalidArgumentException("Channel [$channel] not found."); + } + + /** + * driver()的别名 + * @param string|array $name 渠道名 + * @return Channel|ChannelSet + */ + public function channel($name = null) + { + if (is_array($name)) { + return new ChannelSet($this, $name); + } + + return $this->driver($name); + } + + protected function resolveType(string $name) + { + return $this->getChannelConfig($name, 'type', 'file'); + } + + public function createDriver(string $name) + { + $driver = parent::createDriver($name); + + $lazy = !$this->getChannelConfig($name, "realtime_write", false) && !$this->app->runningInConsole(); + $allow = array_merge($this->getConfig("level", []), $this->getChannelConfig($name, "level", [])); + + return new Channel($name, $driver, $allow, $lazy, $this->app->event); + } + + protected function resolveConfig(string $name) + { + return $this->getChannelConfig($name); + } + + /** + * 清空日志信息 + * @access public + * @param string|array $channel 日志通道名 + * @return $this + */ + public function clear($channel = '*') + { + if ('*' == $channel) { + $channel = array_keys($this->drivers); + } + + $this->channel($channel)->clear(); + + return $this; + } + + /** + * 关闭本次请求日志写入 + * @access public + * @param string|array $channel 日志通道名 + * @return $this + */ + public function close($channel = '*') + { + if ('*' == $channel) { + $channel = array_keys($this->drivers); + } + + $this->channel($channel)->close(); + + return $this; + } + + /** + * 获取日志信息 + * @access public + * @param string $channel 日志通道名 + * @return array + */ + public function getLog(string $channel = null): array + { + return $this->channel($channel)->getLog(); + } + + /** + * 保存日志信息 + * @access public + * @return bool + */ + public function save(): bool + { + /** @var Channel $channel */ + foreach ($this->drivers as $channel) { + $channel->save(); + } + + return true; + } + + /** + * 记录日志信息 + * @access public + * @param mixed $msg 日志信息 + * @param string $type 日志级别 + * @param array $context 替换内容 + * @param bool $lazy + * @return $this + */ + public function record($msg, string $type = 'info', array $context = [], bool $lazy = true) + { + $channel = $this->getConfig('type_channel.' . $type); + + $this->channel($channel)->record($msg, $type, $context, $lazy); + + return $this; + } + + /** + * 实时写入日志信息 + * @access public + * @param mixed $msg 调试信息 + * @param string $type 日志级别 + * @param array $context 替换内容 + * @return $this + */ + public function write($msg, string $type = 'info', array $context = []) + { + return $this->record($msg, $type, $context, false); + } + + /** + * 注册日志写入事件监听 + * @param $listener + * @return Event + */ + public function listen($listener) + { + return $this->app->event->listen(LogWrite::class, $listener); + } + + /** + * 记录日志信息 + * @access public + * @param string $level 日志级别 + * @param mixed $message 日志信息 + * @param array $context 替换内容 + * @return void + */ + public function log($level, $message, array $context = []): void + { + $this->record($message, $level, $context); + } + + /** + * 记录emergency信息 + * @access public + * @param mixed $message 日志信息 + * @param array $context 替换内容 + * @return void + */ + public function emergency($message, array $context = []): void + { + $this->log(__FUNCTION__, $message, $context); + } + + /** + * 记录警报信息 + * @access public + * @param mixed $message 日志信息 + * @param array $context 替换内容 + * @return void + */ + public function alert($message, array $context = []): void + { + $this->log(__FUNCTION__, $message, $context); + } + + /** + * 记录紧急情况 + * @access public + * @param mixed $message 日志信息 + * @param array $context 替换内容 + * @return void + */ + public function critical($message, array $context = []): void + { + $this->log(__FUNCTION__, $message, $context); + } + + /** + * 记录错误信息 + * @access public + * @param mixed $message 日志信息 + * @param array $context 替换内容 + * @return void + */ + public function error($message, array $context = []): void + { + $this->log(__FUNCTION__, $message, $context); + } + + /** + * 记录warning信息 + * @access public + * @param mixed $message 日志信息 + * @param array $context 替换内容 + * @return void + */ + public function warning($message, array $context = []): void + { + $this->log(__FUNCTION__, $message, $context); + } + + /** + * 记录notice信息 + * @access public + * @param mixed $message 日志信息 + * @param array $context 替换内容 + * @return void + */ + public function notice($message, array $context = []): void + { + $this->log(__FUNCTION__, $message, $context); + } + + /** + * 记录一般信息 + * @access public + * @param mixed $message 日志信息 + * @param array $context 替换内容 + * @return void + */ + public function info($message, array $context = []): void + { + $this->log(__FUNCTION__, $message, $context); + } + + /** + * 记录调试信息 + * @access public + * @param mixed $message 日志信息 + * @param array $context 替换内容 + * @return void + */ + public function debug($message, array $context = []): void + { + $this->log(__FUNCTION__, $message, $context); + } + + /** + * 记录sql信息 + * @access public + * @param mixed $message 日志信息 + * @param array $context 替换内容 + * @return void + */ + public function sql($message, array $context = []): void + { + $this->log(__FUNCTION__, $message, $context); + } + + public function __call($method, $parameters) + { + $this->log($method, ...$parameters); + } +} diff --git a/vendor/topthink/framework/src/think/Manager.php b/vendor/topthink/framework/src/think/Manager.php new file mode 100644 index 0000000..7845e46 --- /dev/null +++ b/vendor/topthink/framework/src/think/Manager.php @@ -0,0 +1,176 @@ + +// +---------------------------------------------------------------------- +declare (strict_types = 1); + +namespace think; + +use InvalidArgumentException; +use think\helper\Str; + +abstract class Manager +{ + /** @var App */ + protected $app; + + /** + * 驱动 + * @var array + */ + protected $drivers = []; + + /** + * 驱动的命名空间 + * @var string + */ + protected $namespace = null; + + public function __construct(App $app) + { + $this->app = $app; + } + + /** + * 获取驱动实例 + * @param null|string $name + * @return mixed + */ + protected function driver(string $name = null) + { + $name = $name ?: $this->getDefaultDriver(); + + if (is_null($name)) { + throw new InvalidArgumentException(sprintf( + 'Unable to resolve NULL driver for [%s].', static::class + )); + } + + return $this->drivers[$name] = $this->getDriver($name); + } + + /** + * 获取驱动实例 + * @param string $name + * @return mixed + */ + protected function getDriver(string $name) + { + return $this->drivers[$name] ?? $this->createDriver($name); + } + + /** + * 获取驱动类型 + * @param string $name + * @return mixed + */ + protected function resolveType(string $name) + { + return $name; + } + + /** + * 获取驱动配置 + * @param string $name + * @return mixed + */ + protected function resolveConfig(string $name) + { + return $name; + } + + /** + * 获取驱动类 + * @param string $type + * @return string + */ + protected function resolveClass(string $type): string + { + if ($this->namespace || false !== strpos($type, '\\')) { + $class = false !== strpos($type, '\\') ? $type : $this->namespace . Str::studly($type); + + if (class_exists($class)) { + return $class; + } + } + + throw new InvalidArgumentException("Driver [$type] not supported."); + } + + /** + * 获取驱动参数 + * @param $name + * @return array + */ + protected function resolveParams($name): array + { + $config = $this->resolveConfig($name); + return [$config]; + } + + /** + * 创建驱动 + * + * @param string $name + * @return mixed + * + */ + protected function createDriver(string $name) + { + $type = $this->resolveType($name); + + $method = 'create' . Str::studly($type) . 'Driver'; + + $params = $this->resolveParams($name); + + if (method_exists($this, $method)) { + return $this->$method(...$params); + } + + $class = $this->resolveClass($type); + + return $this->app->invokeClass($class, $params); + } + + /** + * 移除一个驱动实例 + * + * @param array|string|null $name + * @return $this + */ + public function forgetDriver($name = null) + { + $name = $name ?? $this->getDefaultDriver(); + + foreach ((array) $name as $cacheName) { + if (isset($this->drivers[$cacheName])) { + unset($this->drivers[$cacheName]); + } + } + + return $this; + } + + /** + * 默认驱动 + * @return string|null + */ + abstract public function getDefaultDriver(); + + /** + * 动态调用 + * @param string $method + * @param array $parameters + * @return mixed + */ + public function __call($method, $parameters) + { + return $this->driver()->$method(...$parameters); + } +} diff --git a/vendor/topthink/framework/src/think/Middleware.php b/vendor/topthink/framework/src/think/Middleware.php new file mode 100644 index 0000000..0a277a1 --- /dev/null +++ b/vendor/topthink/framework/src/think/Middleware.php @@ -0,0 +1,259 @@ + +// +---------------------------------------------------------------------- +declare (strict_types = 1); + +namespace think; + +use Closure; +use InvalidArgumentException; +use LogicException; +use think\exception\Handle; +use Throwable; + +/** + * 中间件管理类 + * @package think + */ +class Middleware +{ + /** + * 中间件执行队列 + * @var array + */ + protected $queue = []; + + /** + * 应用对象 + * @var App + */ + protected $app; + + public function __construct(App $app) + { + $this->app = $app; + } + + /** + * 导入中间件 + * @access public + * @param array $middlewares + * @param string $type 中间件类型 + * @return void + */ + public function import(array $middlewares = [], string $type = 'global'): void + { + foreach ($middlewares as $middleware) { + $this->add($middleware, $type); + } + } + + /** + * 注册中间件 + * @access public + * @param mixed $middleware + * @param string $type 中间件类型 + * @return void + */ + public function add($middleware, string $type = 'global'): void + { + $middleware = $this->buildMiddleware($middleware, $type); + + if ($middleware) { + $this->queue[$type][] = $middleware; + $this->queue[$type] = array_unique($this->queue[$type], SORT_REGULAR); + } + } + + /** + * 注册路由中间件 + * @access public + * @param mixed $middleware + * @return void + */ + public function route($middleware): void + { + $this->add($middleware, 'route'); + } + + /** + * 注册控制器中间件 + * @access public + * @param mixed $middleware + * @return void + */ + public function controller($middleware): void + { + $this->add($middleware, 'controller'); + } + + /** + * 注册中间件到开始位置 + * @access public + * @param mixed $middleware + * @param string $type 中间件类型 + */ + public function unshift($middleware, string $type = 'global') + { + $middleware = $this->buildMiddleware($middleware, $type); + + if (!empty($middleware)) { + if (!isset($this->queue[$type])) { + $this->queue[$type] = []; + } + + array_unshift($this->queue[$type], $middleware); + } + } + + /** + * 获取注册的中间件 + * @access public + * @param string $type 中间件类型 + * @return array + */ + public function all(string $type = 'global'): array + { + return $this->queue[$type] ?? []; + } + + /** + * 调度管道 + * @access public + * @param string $type 中间件类型 + * @return Pipeline + */ + public function pipeline(string $type = 'global') + { + return (new Pipeline()) + ->through(array_map(function ($middleware) { + return function ($request, $next) use ($middleware) { + [$call, $param] = $middleware; + if (is_array($call) && is_string($call[0])) { + $call = [$this->app->make($call[0]), $call[1]]; + } + $response = call_user_func($call, $request, $next, $param); + + if (!$response instanceof Response) { + throw new LogicException('The middleware must return Response instance'); + } + return $response; + }; + }, $this->sortMiddleware($this->queue[$type] ?? []))) + ->whenException([$this, 'handleException']); + } + + /** + * 结束调度 + * @param Response $response + */ + public function end(Response $response) + { + foreach ($this->queue as $queue) { + foreach ($queue as $middleware) { + [$call] = $middleware; + if (is_array($call) && is_string($call[0])) { + $instance = $this->app->make($call[0]); + if (method_exists($instance, 'end')) { + $instance->end($response); + } + } + } + } + } + + /** + * 异常处理 + * @param Request $passable + * @param Throwable $e + * @return Response + */ + public function handleException($passable, Throwable $e) + { + /** @var Handle $handler */ + $handler = $this->app->make(Handle::class); + + $handler->report($e); + + $response = $handler->render($passable, $e); + + return $response; + } + + /** + * 解析中间件 + * @access protected + * @param mixed $middleware + * @param string $type 中间件类型 + * @return array + */ + protected function buildMiddleware($middleware, string $type): array + { + if (is_array($middleware)) { + [$middleware, $param] = $middleware; + } + + if ($middleware instanceof Closure) { + return [$middleware, $param ?? null]; + } + + if (!is_string($middleware)) { + throw new InvalidArgumentException('The middleware is invalid'); + } + + //中间件别名检查 + $alias = $this->app->config->get('middleware.alias', []); + + if (isset($alias[$middleware])) { + $middleware = $alias[$middleware]; + } + + if (is_array($middleware)) { + $this->import($middleware, $type); + return []; + } + + return [[$middleware, 'handle'], $param ?? null]; + } + + /** + * 中间件排序 + * @param array $middlewares + * @return array + */ + protected function sortMiddleware(array $middlewares) + { + $priority = $this->app->config->get('middleware.priority', []); + uasort($middlewares, function ($a, $b) use ($priority) { + $aPriority = $this->getMiddlewarePriority($priority, $a); + $bPriority = $this->getMiddlewarePriority($priority, $b); + return $bPriority - $aPriority; + }); + + return $middlewares; + } + + /** + * 获取中间件优先级 + * @param $priority + * @param $middleware + * @return int + */ + protected function getMiddlewarePriority($priority, $middleware) + { + [$call] = $middleware; + if (is_array($call) && is_string($call[0])) { + $index = array_search($call[0], array_reverse($priority)); + return false === $index ? -1 : $index; + } + return -1; + } + +} diff --git a/vendor/topthink/framework/src/think/Pipeline.php b/vendor/topthink/framework/src/think/Pipeline.php new file mode 100644 index 0000000..24c5122 --- /dev/null +++ b/vendor/topthink/framework/src/think/Pipeline.php @@ -0,0 +1,106 @@ + +// +---------------------------------------------------------------------- +namespace think; + +use Closure; +use Exception; +use Throwable; + +class Pipeline +{ + protected $passable; + + protected $pipes = []; + + protected $exceptionHandler; + + /** + * 初始数据 + * @param $passable + * @return $this + */ + public function send($passable) + { + $this->passable = $passable; + return $this; + } + + /** + * 调用栈 + * @param $pipes + * @return $this + */ + public function through($pipes) + { + $this->pipes = is_array($pipes) ? $pipes : func_get_args(); + return $this; + } + + /** + * 执行 + * @param Closure $destination + * @return mixed + */ + public function then(Closure $destination) + { + $pipeline = array_reduce( + array_reverse($this->pipes), + $this->carry(), + function ($passable) use ($destination) { + try { + return $destination($passable); + } catch (Throwable | Exception $e) { + return $this->handleException($passable, $e); + } + }); + + return $pipeline($this->passable); + } + + /** + * 设置异常处理器 + * @param callable $handler + * @return $this + */ + public function whenException($handler) + { + $this->exceptionHandler = $handler; + return $this; + } + + protected function carry() + { + return function ($stack, $pipe) { + return function ($passable) use ($stack, $pipe) { + try { + return $pipe($passable, $stack); + } catch (Throwable | Exception $e) { + return $this->handleException($passable, $e); + } + }; + }; + } + + /** + * 异常处理 + * @param $passable + * @param $e + * @return mixed + */ + protected function handleException($passable, Throwable $e) + { + if ($this->exceptionHandler) { + return call_user_func($this->exceptionHandler, $passable, $e); + } + throw $e; + } + +} diff --git a/vendor/topthink/framework/src/think/Request.php b/vendor/topthink/framework/src/think/Request.php new file mode 100644 index 0000000..5f8a481 --- /dev/null +++ b/vendor/topthink/framework/src/think/Request.php @@ -0,0 +1,2123 @@ + +// +---------------------------------------------------------------------- +declare (strict_types = 1); + +namespace think; + +use think\file\UploadedFile; +use think\route\Rule; + +/** + * 请求管理类 + * @package think + */ +class Request +{ + /** + * 兼容PATH_INFO获取 + * @var array + */ + protected $pathinfoFetch = ['ORIG_PATH_INFO', 'REDIRECT_PATH_INFO', 'REDIRECT_URL']; + + /** + * PATHINFO变量名 用于兼容模式 + * @var string + */ + protected $varPathinfo = 's'; + + /** + * 请求类型 + * @var string + */ + protected $varMethod = '_method'; + + /** + * 表单ajax伪装变量 + * @var string + */ + protected $varAjax = '_ajax'; + + /** + * 表单pjax伪装变量 + * @var string + */ + protected $varPjax = '_pjax'; + + /** + * 域名根 + * @var string + */ + protected $rootDomain = ''; + + /** + * HTTPS代理标识 + * @var string + */ + protected $httpsAgentName = ''; + + /** + * 前端代理服务器IP + * @var array + */ + protected $proxyServerIp = []; + + /** + * 前端代理服务器真实IP头 + * @var array + */ + protected $proxyServerIpHeader = ['HTTP_X_REAL_IP', 'HTTP_X_FORWARDED_FOR', 'HTTP_CLIENT_IP', 'HTTP_X_CLIENT_IP', 'HTTP_X_CLUSTER_CLIENT_IP']; + + /** + * 请求类型 + * @var string + */ + protected $method; + + /** + * 域名(含协议及端口) + * @var string + */ + protected $domain; + + /** + * HOST(含端口) + * @var string + */ + protected $host; + + /** + * 子域名 + * @var string + */ + protected $subDomain; + + /** + * 泛域名 + * @var string + */ + protected $panDomain; + + /** + * 当前URL地址 + * @var string + */ + protected $url; + + /** + * 基础URL + * @var string + */ + protected $baseUrl; + + /** + * 当前执行的文件 + * @var string + */ + protected $baseFile; + + /** + * 访问的ROOT地址 + * @var string + */ + protected $root; + + /** + * pathinfo + * @var string + */ + protected $pathinfo; + + /** + * pathinfo(不含后缀) + * @var string + */ + protected $path; + + /** + * 当前请求的IP地址 + * @var string + */ + protected $realIP; + + /** + * 当前控制器名 + * @var string + */ + protected $controller; + + /** + * 当前操作名 + * @var string + */ + protected $action; + + /** + * 当前请求参数 + * @var array + */ + protected $param = []; + + /** + * 当前GET参数 + * @var array + */ + protected $get = []; + + /** + * 当前POST参数 + * @var array + */ + protected $post = []; + + /** + * 当前REQUEST参数 + * @var array + */ + protected $request = []; + + /** + * 当前路由对象 + * @var Rule + */ + protected $rule; + + /** + * 当前ROUTE参数 + * @var array + */ + protected $route = []; + + /** + * 中间件传递的参数 + * @var array + */ + protected $middleware = []; + + /** + * 当前PUT参数 + * @var array + */ + protected $put; + + /** + * SESSION对象 + * @var Session + */ + protected $session; + + /** + * COOKIE数据 + * @var array + */ + protected $cookie = []; + + /** + * ENV对象 + * @var Env + */ + protected $env; + + /** + * 当前SERVER参数 + * @var array + */ + protected $server = []; + + /** + * 当前FILE参数 + * @var array + */ + protected $file = []; + + /** + * 当前HEADER参数 + * @var array + */ + protected $header = []; + + /** + * 资源类型定义 + * @var array + */ + protected $mimeType = [ + 'xml' => 'application/xml,text/xml,application/x-xml', + 'json' => 'application/json,text/x-json,application/jsonrequest,text/json', + 'js' => 'text/javascript,application/javascript,application/x-javascript', + 'css' => 'text/css', + 'rss' => 'application/rss+xml', + 'yaml' => 'application/x-yaml,text/yaml', + 'atom' => 'application/atom+xml', + 'pdf' => 'application/pdf', + 'text' => 'text/plain', + 'image' => 'image/png,image/jpg,image/jpeg,image/pjpeg,image/gif,image/webp,image/*', + 'csv' => 'text/csv', + 'html' => 'text/html,application/xhtml+xml,*/*', + ]; + + /** + * 当前请求内容 + * @var string + */ + protected $content; + + /** + * 全局过滤规则 + * @var array + */ + protected $filter; + + /** + * php://input内容 + * @var string + */ + // php://input + protected $input; + + /** + * 请求安全Key + * @var string + */ + protected $secureKey; + + /** + * 是否合并Param + * @var bool + */ + protected $mergeParam = false; + + /** + * 架构函数 + * @access public + */ + public function __construct() + { + // 保存 php://input + $this->input = file_get_contents('php://input'); + } + + public static function __make(App $app) + { + $request = new static(); + + if (function_exists('apache_request_headers') && $result = apache_request_headers()) { + $header = $result; + } else { + $header = []; + $server = $_SERVER; + foreach ($server as $key => $val) { + if (0 === strpos($key, 'HTTP_')) { + $key = str_replace('_', '-', strtolower(substr($key, 5))); + $header[$key] = $val; + } + } + if (isset($server['CONTENT_TYPE'])) { + $header['content-type'] = $server['CONTENT_TYPE']; + } + if (isset($server['CONTENT_LENGTH'])) { + $header['content-length'] = $server['CONTENT_LENGTH']; + } + } + + $request->header = array_change_key_case($header); + + $request->server = $_SERVER; + $request->env = $app->env; + $request->get = $_GET; + $request->post = $_POST ?: $request->getInputData($request->input); + $request->put = $request->getInputData($request->input); + $request->request = $_REQUEST; + $request->cookie = $_COOKIE; + $request->file = $_FILES ?? []; + + return $request; + } + + /** + * 设置当前包含协议的域名 + * @access public + * @param string $domain 域名 + * @return $this + */ + public function setDomain(string $domain) + { + $this->domain = $domain; + return $this; + } + + /** + * 获取当前包含协议的域名 + * @access public + * @param bool $port 是否需要去除端口号 + * @return string + */ + public function domain(bool $port = false): string + { + return $this->scheme() . '://' . $this->host($port); + } + + /** + * 获取当前根域名 + * @access public + * @return string + */ + public function rootDomain(): string + { + $root = $this->rootDomain; + + if (!$root) { + $item = explode('.', $this->host()); + $count = count($item); + $root = $count > 1 ? $item[$count - 2] . '.' . $item[$count - 1] : $item[0]; + } + + return $root; + } + + /** + * 设置当前泛域名的值 + * @access public + * @param string $domain 域名 + * @return $this + */ + public function setSubDomain(string $domain) + { + $this->subDomain = $domain; + return $this; + } + + /** + * 获取当前子域名 + * @access public + * @return string + */ + public function subDomain(): string + { + if (is_null($this->subDomain)) { + // 获取当前主域名 + $rootDomain = $this->rootDomain(); + + if ($rootDomain) { + $this->subDomain = rtrim(stristr($this->host(), $rootDomain, true), '.'); + } else { + $this->subDomain = ''; + } + } + + return $this->subDomain; + } + + /** + * 设置当前泛域名的值 + * @access public + * @param string $domain 域名 + * @return $this + */ + public function setPanDomain(string $domain) + { + $this->panDomain = $domain; + return $this; + } + + /** + * 获取当前泛域名的值 + * @access public + * @return string + */ + public function panDomain(): string + { + return $this->panDomain ?: ''; + } + + /** + * 设置当前完整URL 包括QUERY_STRING + * @access public + * @param string $url URL地址 + * @return $this + */ + public function setUrl(string $url) + { + $this->url = $url; + return $this; + } + + /** + * 获取当前完整URL 包括QUERY_STRING + * @access public + * @param bool $complete 是否包含完整域名 + * @return string + */ + public function url(bool $complete = false): string + { + if ($this->url) { + $url = $this->url; + } elseif ($this->server('HTTP_X_REWRITE_URL')) { + $url = $this->server('HTTP_X_REWRITE_URL'); + } elseif ($this->server('REQUEST_URI')) { + $url = $this->server('REQUEST_URI'); + } elseif ($this->server('ORIG_PATH_INFO')) { + $url = $this->server('ORIG_PATH_INFO') . (!empty($this->server('QUERY_STRING')) ? '?' . $this->server('QUERY_STRING') : ''); + } elseif (isset($_SERVER['argv'][1])) { + $url = $_SERVER['argv'][1]; + } else { + $url = ''; + } + + return $complete ? $this->domain() . $url : $url; + } + + /** + * 设置当前URL 不含QUERY_STRING + * @access public + * @param string $url URL地址 + * @return $this + */ + public function setBaseUrl(string $url) + { + $this->baseUrl = $url; + return $this; + } + + /** + * 获取当前URL 不含QUERY_STRING + * @access public + * @param bool $complete 是否包含完整域名 + * @return string + */ + public function baseUrl(bool $complete = false): string + { + if (!$this->baseUrl) { + $str = $this->url(); + $this->baseUrl = strpos($str, '?') ? strstr($str, '?', true) : $str; + } + + return $complete ? $this->domain() . $this->baseUrl : $this->baseUrl; + } + + /** + * 获取当前执行的文件 SCRIPT_NAME + * @access public + * @param bool $complete 是否包含完整域名 + * @return string + */ + public function baseFile(bool $complete = false): string + { + if (!$this->baseFile) { + $url = ''; + if (!$this->isCli()) { + $script_name = basename($this->server('SCRIPT_FILENAME')); + if (basename($this->server('SCRIPT_NAME')) === $script_name) { + $url = $this->server('SCRIPT_NAME'); + } elseif (basename($this->server('PHP_SELF')) === $script_name) { + $url = $this->server('PHP_SELF'); + } elseif (basename($this->server('ORIG_SCRIPT_NAME')) === $script_name) { + $url = $this->server('ORIG_SCRIPT_NAME'); + } elseif (($pos = strpos($this->server('PHP_SELF'), '/' . $script_name)) !== false) { + $url = substr($this->server('SCRIPT_NAME'), 0, $pos) . '/' . $script_name; + } elseif ($this->server('DOCUMENT_ROOT') && strpos($this->server('SCRIPT_FILENAME'), $this->server('DOCUMENT_ROOT')) === 0) { + $url = str_replace('\\', '/', str_replace($this->server('DOCUMENT_ROOT'), '', $this->server('SCRIPT_FILENAME'))); + } + } + $this->baseFile = $url; + } + + return $complete ? $this->domain() . $this->baseFile : $this->baseFile; + } + + /** + * 设置URL访问根地址 + * @access public + * @param string $url URL地址 + * @return $this + */ + public function setRoot(string $url) + { + $this->root = $url; + return $this; + } + + /** + * 获取URL访问根地址 + * @access public + * @param bool $complete 是否包含完整域名 + * @return string + */ + public function root(bool $complete = false): string + { + if (!$this->root) { + $file = $this->baseFile(); + if ($file && 0 !== strpos($this->url(), $file)) { + $file = str_replace('\\', '/', dirname($file)); + } + $this->root = rtrim($file, '/'); + } + + return $complete ? $this->domain() . $this->root : $this->root; + } + + /** + * 获取URL访问根目录 + * @access public + * @return string + */ + public function rootUrl(): string + { + $base = $this->root(); + $root = strpos($base, '.') ? ltrim(dirname($base), DIRECTORY_SEPARATOR) : $base; + + if ('' != $root) { + $root = '/' . ltrim($root, '/'); + } + + return $root; + } + + /** + * 设置当前请求的pathinfo + * @access public + * @param string $pathinfo + * @return $this + */ + public function setPathinfo(string $pathinfo) + { + $this->pathinfo = $pathinfo; + return $this; + } + + /** + * 获取当前请求URL的pathinfo信息(含URL后缀) + * @access public + * @return string + */ + public function pathinfo(): string + { + if (is_null($this->pathinfo)) { + if (isset($_GET[$this->varPathinfo])) { + // 判断URL里面是否有兼容模式参数 + $pathinfo = $_GET[$this->varPathinfo]; + unset($_GET[$this->varPathinfo]); + unset($this->get[$this->varPathinfo]); + } elseif ($this->server('PATH_INFO')) { + $pathinfo = $this->server('PATH_INFO'); + } elseif (false !== strpos(PHP_SAPI, 'cli')) { + $pathinfo = strpos($this->server('REQUEST_URI'), '?') ? strstr($this->server('REQUEST_URI'), '?', true) : $this->server('REQUEST_URI'); + } + + // 分析PATHINFO信息 + if (!isset($pathinfo)) { + foreach ($this->pathinfoFetch as $type) { + if ($this->server($type)) { + $pathinfo = (0 === strpos($this->server($type), $this->server('SCRIPT_NAME'))) ? + substr($this->server($type), strlen($this->server('SCRIPT_NAME'))) : $this->server($type); + break; + } + } + } + + if (!empty($pathinfo)) { + unset($this->get[$pathinfo], $this->request[$pathinfo]); + } + + $this->pathinfo = empty($pathinfo) || '/' == $pathinfo ? '' : ltrim($pathinfo, '/'); + } + + return $this->pathinfo; + } + + /** + * 当前URL的访问后缀 + * @access public + * @return string + */ + public function ext(): string + { + return pathinfo($this->pathinfo(), PATHINFO_EXTENSION); + } + + /** + * 获取当前请求的时间 + * @access public + * @param bool $float 是否使用浮点类型 + * @return integer|float + */ + public function time(bool $float = false) + { + return $float ? $this->server('REQUEST_TIME_FLOAT') : $this->server('REQUEST_TIME'); + } + + /** + * 当前请求的资源类型 + * @access public + * @return string + */ + public function type(): string + { + $accept = $this->server('HTTP_ACCEPT'); + + if (empty($accept)) { + return ''; + } + + foreach ($this->mimeType as $key => $val) { + $array = explode(',', $val); + foreach ($array as $k => $v) { + if (stristr($accept, $v)) { + return $key; + } + } + } + + return ''; + } + + /** + * 设置资源类型 + * @access public + * @param string|array $type 资源类型名 + * @param string $val 资源类型 + * @return void + */ + public function mimeType($type, $val = ''): void + { + if (is_array($type)) { + $this->mimeType = array_merge($this->mimeType, $type); + } else { + $this->mimeType[$type] = $val; + } + } + + /** + * 设置请求类型 + * @access public + * @param string $method 请求类型 + * @return $this + */ + public function setMethod(string $method) + { + $this->method = strtoupper($method); + return $this; + } + + /** + * 当前的请求类型 + * @access public + * @param bool $origin 是否获取原始请求类型 + * @return string + */ + public function method(bool $origin = false): string + { + if ($origin) { + // 获取原始请求类型 + return $this->server('REQUEST_METHOD') ?: 'GET'; + } elseif (!$this->method) { + if (isset($this->post[$this->varMethod])) { + $method = strtolower($this->post[$this->varMethod]); + if (in_array($method, ['get', 'post', 'put', 'patch', 'delete'])) { + $this->method = strtoupper($method); + $this->{$method} = $this->post; + } else { + $this->method = 'POST'; + } + unset($this->post[$this->varMethod]); + } elseif ($this->server('HTTP_X_HTTP_METHOD_OVERRIDE')) { + $this->method = strtoupper($this->server('HTTP_X_HTTP_METHOD_OVERRIDE')); + } else { + $this->method = $this->server('REQUEST_METHOD') ?: 'GET'; + } + } + + return $this->method; + } + + /** + * 是否为GET请求 + * @access public + * @return bool + */ + public function isGet(): bool + { + return $this->method() == 'GET'; + } + + /** + * 是否为POST请求 + * @access public + * @return bool + */ + public function isPost(): bool + { + return $this->method() == 'POST'; + } + + /** + * 是否为PUT请求 + * @access public + * @return bool + */ + public function isPut(): bool + { + return $this->method() == 'PUT'; + } + + /** + * 是否为DELTE请求 + * @access public + * @return bool + */ + public function isDelete(): bool + { + return $this->method() == 'DELETE'; + } + + /** + * 是否为HEAD请求 + * @access public + * @return bool + */ + public function isHead(): bool + { + return $this->method() == 'HEAD'; + } + + /** + * 是否为PATCH请求 + * @access public + * @return bool + */ + public function isPatch(): bool + { + return $this->method() == 'PATCH'; + } + + /** + * 是否为OPTIONS请求 + * @access public + * @return bool + */ + public function isOptions(): bool + { + return $this->method() == 'OPTIONS'; + } + + /** + * 是否为cli + * @access public + * @return bool + */ + public function isCli(): bool + { + return PHP_SAPI == 'cli'; + } + + /** + * 是否为cgi + * @access public + * @return bool + */ + public function isCgi(): bool + { + return strpos(PHP_SAPI, 'cgi') === 0; + } + + /** + * 获取当前请求的参数 + * @access public + * @param string|array $name 变量名 + * @param mixed $default 默认值 + * @param string|array $filter 过滤方法 + * @return mixed + */ + public function param($name = '', $default = null, $filter = '') + { + if (empty($this->mergeParam)) { + $method = $this->method(true); + + // 自动获取请求变量 + switch ($method) { + case 'POST': + $vars = $this->post(false); + break; + case 'PUT': + case 'DELETE': + case 'PATCH': + $vars = $this->put(false); + break; + default: + $vars = []; + } + + // 当前请求参数和URL地址中的参数合并 + $this->param = array_merge($this->param, $this->get(false), $vars, $this->route(false)); + + $this->mergeParam = true; + } + + if (is_array($name)) { + return $this->only($name, $this->param, $filter); + } + + return $this->input($this->param, $name, $default, $filter); + } + + /** + * 设置路由变量 + * @access public + * @param Rule $rule 路由对象 + * @return $this + */ + public function setRule(Rule $rule) + { + $this->rule = $rule; + return $this; + } + + /** + * 获取当前路由对象 + * @access public + * @return Rule|null + */ + public function rule() + { + return $this->rule; + } + + /** + * 设置路由变量 + * @access public + * @param array $route 路由变量 + * @return $this + */ + public function setRoute(array $route) + { + $this->route = array_merge($this->route, $route); + return $this; + } + + /** + * 获取路由参数 + * @access public + * @param string|array $name 变量名 + * @param mixed $default 默认值 + * @param string|array $filter 过滤方法 + * @return mixed + */ + public function route($name = '', $default = null, $filter = '') + { + if (is_array($name)) { + return $this->only($name, $this->route, $filter); + } + + return $this->input($this->route, $name, $default, $filter); + } + + /** + * 获取GET参数 + * @access public + * @param string|array $name 变量名 + * @param mixed $default 默认值 + * @param string|array $filter 过滤方法 + * @return mixed + */ + public function get($name = '', $default = null, $filter = '') + { + if (is_array($name)) { + return $this->only($name, $this->get, $filter); + } + + return $this->input($this->get, $name, $default, $filter); + } + + /** + * 获取中间件传递的参数 + * @access public + * @param mixed $name 变量名 + * @param mixed $default 默认值 + * @return mixed + */ + public function middleware($name, $default = null) + { + return $this->middleware[$name] ?? $default; + } + + /** + * 获取POST参数 + * @access public + * @param string|array $name 变量名 + * @param mixed $default 默认值 + * @param string|array $filter 过滤方法 + * @return mixed + */ + public function post($name = '', $default = null, $filter = '') + { + if (is_array($name)) { + return $this->only($name, $this->post, $filter); + } + + return $this->input($this->post, $name, $default, $filter); + } + + /** + * 获取PUT参数 + * @access public + * @param string|array $name 变量名 + * @param mixed $default 默认值 + * @param string|array $filter 过滤方法 + * @return mixed + */ + public function put($name = '', $default = null, $filter = '') + { + if (is_array($name)) { + return $this->only($name, $this->put, $filter); + } + + return $this->input($this->put, $name, $default, $filter); + } + + protected function getInputData($content): array + { + if (false !== strpos($this->contentType(), 'json')) { + return (array) json_decode($content, true); + } elseif (strpos($content, '=')) { + parse_str($content, $data); + return $data; + } + + return []; + } + + /** + * 设置获取DELETE参数 + * @access public + * @param mixed $name 变量名 + * @param mixed $default 默认值 + * @param string|array $filter 过滤方法 + * @return mixed + */ + public function delete($name = '', $default = null, $filter = '') + { + return $this->put($name, $default, $filter); + } + + /** + * 设置获取PATCH参数 + * @access public + * @param mixed $name 变量名 + * @param mixed $default 默认值 + * @param string|array $filter 过滤方法 + * @return mixed + */ + public function patch($name = '', $default = null, $filter = '') + { + return $this->put($name, $default, $filter); + } + + /** + * 获取request变量 + * @access public + * @param string|array $name 数据名称 + * @param mixed $default 默认值 + * @param string|array $filter 过滤方法 + * @return mixed + */ + public function request($name = '', $default = null, $filter = '') + { + if (is_array($name)) { + return $this->only($name, $this->request, $filter); + } + + return $this->input($this->request, $name, $default, $filter); + } + + /** + * 获取环境变量 + * @access public + * @param string $name 数据名称 + * @param string $default 默认值 + * @return mixed + */ + public function env(string $name = '', string $default = null) + { + if (empty($name)) { + return $this->env->get(); + } else { + $name = strtoupper($name); + } + + return $this->env->get($name, $default); + } + + /** + * 获取session数据 + * @access public + * @param string $name 数据名称 + * @param string $default 默认值 + * @return mixed + */ + public function session(string $name = '', $default = null) + { + if ('' === $name) { + return $this->session->all(); + } + return $this->session->get($name, $default); + } + + /** + * 获取cookie参数 + * @access public + * @param mixed $name 数据名称 + * @param string $default 默认值 + * @param string|array $filter 过滤方法 + * @return mixed + */ + public function cookie(string $name = '', $default = null, $filter = '') + { + if (!empty($name)) { + $data = $this->getData($this->cookie, $name, $default); + } else { + $data = $this->cookie; + } + + // 解析过滤器 + $filter = $this->getFilter($filter, $default); + + if (is_array($data)) { + array_walk_recursive($data, [$this, 'filterValue'], $filter); + } else { + $this->filterValue($data, $name, $filter); + } + + return $data; + } + + /** + * 获取server参数 + * @access public + * @param string $name 数据名称 + * @param string $default 默认值 + * @return mixed + */ + public function server(string $name = '', string $default = '') + { + if (empty($name)) { + return $this->server; + } else { + $name = strtoupper($name); + } + + return $this->server[$name] ?? $default; + } + + /** + * 获取上传的文件信息 + * @access public + * @param string $name 名称 + * @return null|array|UploadedFile + */ + public function file(string $name = '') + { + $files = $this->file; + if (!empty($files)) { + + if (strpos($name, '.')) { + [$name, $sub] = explode('.', $name); + } + + // 处理上传文件 + $array = $this->dealUploadFile($files, $name); + + if ('' === $name) { + // 获取全部文件 + return $array; + } elseif (isset($sub) && isset($array[$name][$sub])) { + return $array[$name][$sub]; + } elseif (isset($array[$name])) { + return $array[$name]; + } + } + } + + protected function dealUploadFile(array $files, string $name): array + { + $array = []; + foreach ($files as $key => $file) { + if (is_array($file['name'])) { + $item = []; + $keys = array_keys($file); + $count = count($file['name']); + + for ($i = 0; $i < $count; $i++) { + if ($file['error'][$i] > 0) { + if ($name == $key) { + $this->throwUploadFileError($file['error'][$i]); + } else { + continue; + } + } + + $temp['key'] = $key; + + foreach ($keys as $_key) { + $temp[$_key] = $file[$_key][$i]; + } + + $item[] = new UploadedFile($temp['tmp_name'], $temp['name'], $temp['type'], $temp['error']); + } + + $array[$key] = $item; + } else { + if ($file instanceof File) { + $array[$key] = $file; + } else { + if ($file['error'] > 0) { + if ($key == $name) { + $this->throwUploadFileError($file['error']); + } else { + continue; + } + } + + $array[$key] = new UploadedFile($file['tmp_name'], $file['name'], $file['type'], $file['error']); + } + } + } + + return $array; + } + + protected function throwUploadFileError($error) + { + static $fileUploadErrors = [ + 1 => 'upload File size exceeds the maximum value', + 2 => 'upload File size exceeds the maximum value', + 3 => 'only the portion of file is uploaded', + 4 => 'no file to uploaded', + 6 => 'upload temp dir not found', + 7 => 'file write error', + ]; + + $msg = $fileUploadErrors[$error]; + throw new Exception($msg, $error); + } + + /** + * 设置或者获取当前的Header + * @access public + * @param string $name header名称 + * @param string $default 默认值 + * @return string|array + */ + public function header(string $name = '', string $default = null) + { + if ('' === $name) { + return $this->header; + } + + $name = str_replace('_', '-', strtolower($name)); + + return $this->header[$name] ?? $default; + } + + /** + * 获取变量 支持过滤和默认值 + * @access public + * @param array $data 数据源 + * @param string|false $name 字段名 + * @param mixed $default 默认值 + * @param string|array $filter 过滤函数 + * @return mixed + */ + public function input(array $data = [], $name = '', $default = null, $filter = '') + { + if (false === $name) { + // 获取原始数据 + return $data; + } + + $name = (string) $name; + if ('' != $name) { + // 解析name + if (strpos($name, '/')) { + [$name, $type] = explode('/', $name); + } + + $data = $this->getData($data, $name); + + if (is_null($data)) { + return $default; + } + + if (is_object($data)) { + return $data; + } + } + + $data = $this->filterData($data, $filter, $name, $default); + + if (isset($type) && $data !== $default) { + // 强制类型转换 + $this->typeCast($data, $type); + } + + return $data; + } + + protected function filterData($data, $filter, $name, $default) + { + // 解析过滤器 + $filter = $this->getFilter($filter, $default); + + if (is_array($data)) { + array_walk_recursive($data, [$this, 'filterValue'], $filter); + } else { + $this->filterValue($data, $name, $filter); + } + + return $data; + } + + /** + * 强制类型转换 + * @access public + * @param mixed $data + * @param string $type + * @return mixed + */ + private function typeCast(&$data, string $type) + { + switch (strtolower($type)) { + // 数组 + case 'a': + $data = (array) $data; + break; + // 数字 + case 'd': + $data = (int) $data; + break; + // 浮点 + case 'f': + $data = (float) $data; + break; + // 布尔 + case 'b': + $data = (boolean) $data; + break; + // 字符串 + case 's': + if (is_scalar($data)) { + $data = (string) $data; + } else { + throw new \InvalidArgumentException('variable type error:' . gettype($data)); + } + break; + } + } + + /** + * 获取数据 + * @access public + * @param array $data 数据源 + * @param string $name 字段名 + * @param mixed $default 默认值 + * @return mixed + */ + protected function getData(array $data, string $name, $default = null) + { + foreach (explode('.', $name) as $val) { + if (isset($data[$val])) { + $data = $data[$val]; + } else { + return $default; + } + } + + return $data; + } + + /** + * 设置或获取当前的过滤规则 + * @access public + * @param mixed $filter 过滤规则 + * @return mixed + */ + public function filter($filter = null) + { + if (is_null($filter)) { + return $this->filter; + } + + $this->filter = $filter; + + return $this; + } + + protected function getFilter($filter, $default): array + { + if (is_null($filter)) { + $filter = []; + } else { + $filter = $filter ?: $this->filter; + if (is_string($filter) && false === strpos($filter, '/')) { + $filter = explode(',', $filter); + } else { + $filter = (array) $filter; + } + } + + $filter[] = $default; + + return $filter; + } + + /** + * 递归过滤给定的值 + * @access public + * @param mixed $value 键值 + * @param mixed $key 键名 + * @param array $filters 过滤方法+默认值 + * @return mixed + */ + public function filterValue(&$value, $key, $filters) + { + $default = array_pop($filters); + + foreach ($filters as $filter) { + if (is_callable($filter)) { + // 调用函数或者方法过滤 + $value = call_user_func($filter, $value); + } elseif (is_scalar($value)) { + if (is_string($filter) && false !== strpos($filter, '/')) { + // 正则过滤 + if (!preg_match($filter, $value)) { + // 匹配不成功返回默认值 + $value = $default; + break; + } + } elseif (!empty($filter)) { + // filter函数不存在时, 则使用filter_var进行过滤 + // filter为非整形值时, 调用filter_id取得过滤id + $value = filter_var($value, is_int($filter) ? $filter : filter_id($filter)); + if (false === $value) { + $value = $default; + break; + } + } + } + } + + return $value; + } + + /** + * 是否存在某个请求参数 + * @access public + * @param string $name 变量名 + * @param string $type 变量类型 + * @param bool $checkEmpty 是否检测空值 + * @return bool + */ + public function has(string $name, string $type = 'param', bool $checkEmpty = false): bool + { + if (!in_array($type, ['param', 'get', 'post', 'put', 'patch', 'route', 'delete', 'cookie', 'session', 'env', 'request', 'server', 'header', 'file'])) { + return false; + } + + $param = empty($this->$type) ? $this->$type() : $this->$type; + + if (is_object($param)) { + return $param->has($name); + } + + // 按.拆分成多维数组进行判断 + foreach (explode('.', $name) as $val) { + if (isset($param[$val])) { + $param = $param[$val]; + } else { + return false; + } + } + + return ($checkEmpty && '' === $param) ? false : true; + } + + /** + * 获取指定的参数 + * @access public + * @param array $name 变量名 + * @param mixed $data 数据或者变量类型 + * @param string|array $filter 过滤方法 + * @return array + */ + public function only(array $name, $data = 'param', $filter = ''): array + { + $data = is_array($data) ? $data : $this->$data(); + + $item = []; + foreach ($name as $key => $val) { + + if (is_int($key)) { + $default = null; + $key = $val; + if (!isset($data[$key])) { + continue; + } + } else { + $default = $val; + } + + $item[$key] = $this->filterData($data[$key] ?? $default, $filter, $key, $default); + } + + return $item; + } + + /** + * 排除指定参数获取 + * @access public + * @param array $name 变量名 + * @param string $type 变量类型 + * @return mixed + */ + public function except(array $name, string $type = 'param'): array + { + $param = $this->$type(); + + foreach ($name as $key) { + if (isset($param[$key])) { + unset($param[$key]); + } + } + + return $param; + } + + /** + * 当前是否ssl + * @access public + * @return bool + */ + public function isSsl(): bool + { + if ($this->server('HTTPS') && ('1' == $this->server('HTTPS') || 'on' == strtolower($this->server('HTTPS')))) { + return true; + } elseif ('https' == $this->server('REQUEST_SCHEME')) { + return true; + } elseif ('443' == $this->server('SERVER_PORT')) { + return true; + } elseif ('https' == $this->server('HTTP_X_FORWARDED_PROTO')) { + return true; + } elseif ($this->httpsAgentName && $this->server($this->httpsAgentName)) { + return true; + } + + return false; + } + + /** + * 当前是否JSON请求 + * @access public + * @return bool + */ + public function isJson(): bool + { + $acceptType = $this->type(); + + return false !== strpos($acceptType, 'json'); + } + + /** + * 当前是否Ajax请求 + * @access public + * @param bool $ajax true 获取原始ajax请求 + * @return bool + */ + public function isAjax(bool $ajax = false): bool + { + $value = $this->server('HTTP_X_REQUESTED_WITH'); + $result = $value && 'xmlhttprequest' == strtolower($value) ? true : false; + + if (true === $ajax) { + return $result; + } + + return $this->param($this->varAjax) ? true : $result; + } + + /** + * 当前是否Pjax请求 + * @access public + * @param bool $pjax true 获取原始pjax请求 + * @return bool + */ + public function isPjax(bool $pjax = false): bool + { + $result = !empty($this->server('HTTP_X_PJAX')) ? true : false; + + if (true === $pjax) { + return $result; + } + + return $this->param($this->varPjax) ? true : $result; + } + + /** + * 获取客户端IP地址 + * @access public + * @return string + */ + public function ip(): string + { + if (!empty($this->realIP)) { + return $this->realIP; + } + + $this->realIP = $this->server('REMOTE_ADDR', ''); + + // 如果指定了前端代理服务器IP以及其会发送的IP头 + // 则尝试获取前端代理服务器发送过来的真实IP + $proxyIp = $this->proxyServerIp; + $proxyIpHeader = $this->proxyServerIpHeader; + + if (count($proxyIp) > 0 && count($proxyIpHeader) > 0) { + // 从指定的HTTP头中依次尝试获取IP地址 + // 直到获取到一个合法的IP地址 + foreach ($proxyIpHeader as $header) { + $tempIP = $this->server($header); + + if (empty($tempIP)) { + continue; + } + + $tempIP = trim(explode(',', $tempIP)[0]); + + if (!$this->isValidIP($tempIP)) { + $tempIP = null; + } else { + break; + } + } + + // tempIP不为空,说明获取到了一个IP地址 + // 这时我们检查 REMOTE_ADDR 是不是指定的前端代理服务器之一 + // 如果是的话说明该 IP头 是由前端代理服务器设置的 + // 否则则是伪装的 + if (!empty($tempIP)) { + $realIPBin = $this->ip2bin($this->realIP); + + foreach ($proxyIp as $ip) { + $serverIPElements = explode('/', $ip); + $serverIP = $serverIPElements[0]; + $serverIPPrefix = $serverIPElements[1] ?? 128; + $serverIPBin = $this->ip2bin($serverIP); + + // IP类型不符 + if (strlen($realIPBin) !== strlen($serverIPBin)) { + continue; + } + + if (strncmp($realIPBin, $serverIPBin, (int) $serverIPPrefix) === 0) { + $this->realIP = $tempIP; + break; + } + } + } + } + + if (!$this->isValidIP($this->realIP)) { + $this->realIP = '0.0.0.0'; + } + + return $this->realIP; + } + + /** + * 检测是否是合法的IP地址 + * + * @param string $ip IP地址 + * @param string $type IP地址类型 (ipv4, ipv6) + * + * @return boolean + */ + public function isValidIP(string $ip, string $type = ''): bool + { + switch (strtolower($type)) { + case 'ipv4': + $flag = FILTER_FLAG_IPV4; + break; + case 'ipv6': + $flag = FILTER_FLAG_IPV6; + break; + default: + $flag = null; + break; + } + + return boolval(filter_var($ip, FILTER_VALIDATE_IP, $flag)); + } + + /** + * 将IP地址转换为二进制字符串 + * + * @param string $ip + * + * @return string + */ + public function ip2bin(string $ip): string + { + if ($this->isValidIP($ip, 'ipv6')) { + $IPHex = str_split(bin2hex(inet_pton($ip)), 4); + foreach ($IPHex as $key => $value) { + $IPHex[$key] = intval($value, 16); + } + $IPBin = vsprintf('%016b%016b%016b%016b%016b%016b%016b%016b', $IPHex); + } else { + $IPHex = str_split(bin2hex(inet_pton($ip)), 2); + foreach ($IPHex as $key => $value) { + $IPHex[$key] = intval($value, 16); + } + $IPBin = vsprintf('%08b%08b%08b%08b', $IPHex); + } + + return $IPBin; + } + + /** + * 检测是否使用手机访问 + * @access public + * @return bool + */ + public function isMobile(): bool + { + if ($this->server('HTTP_VIA') && stristr($this->server('HTTP_VIA'), "wap")) { + return true; + } elseif ($this->server('HTTP_ACCEPT') && strpos(strtoupper($this->server('HTTP_ACCEPT')), "VND.WAP.WML")) { + return true; + } elseif ($this->server('HTTP_X_WAP_PROFILE') || $this->server('HTTP_PROFILE')) { + return true; + } elseif ($this->server('HTTP_USER_AGENT') && preg_match('/(blackberry|configuration\/cldc|hp |hp-|htc |htc_|htc-|iemobile|kindle|midp|mmp|motorola|mobile|nokia|opera mini|opera |Googlebot-Mobile|YahooSeeker\/M1A1-R2D2|android|iphone|ipod|mobi|palm|palmos|pocket|portalmmm|ppc;|smartphone|sonyericsson|sqh|spv|symbian|treo|up.browser|up.link|vodafone|windows ce|xda |xda_)/i', $this->server('HTTP_USER_AGENT'))) { + return true; + } + + return false; + } + + /** + * 当前URL地址中的scheme参数 + * @access public + * @return string + */ + public function scheme(): string + { + return $this->isSsl() ? 'https' : 'http'; + } + + /** + * 当前请求URL地址中的query参数 + * @access public + * @return string + */ + public function query(): string + { + return $this->server('QUERY_STRING', ''); + } + + /** + * 设置当前请求的host(包含端口) + * @access public + * @param string $host 主机名(含端口) + * @return $this + */ + public function setHost(string $host) + { + $this->host = $host; + + return $this; + } + + /** + * 当前请求的host + * @access public + * @param bool $strict true 仅仅获取HOST + * @return string + */ + public function host(bool $strict = false): string + { + if ($this->host) { + $host = $this->host; + } else { + $host = strval($this->server('HTTP_X_REAL_HOST') ?: $this->server('HTTP_HOST')); + } + + return true === $strict && strpos($host, ':') ? strstr($host, ':', true) : $host; + } + + /** + * 当前请求URL地址中的port参数 + * @access public + * @return int + */ + public function port(): int + { + return (int) $this->server('SERVER_PORT', ''); + } + + /** + * 当前请求 SERVER_PROTOCOL + * @access public + * @return string + */ + public function protocol(): string + { + return $this->server('SERVER_PROTOCOL', ''); + } + + /** + * 当前请求 REMOTE_PORT + * @access public + * @return int + */ + public function remotePort(): int + { + return (int) $this->server('REMOTE_PORT', ''); + } + + /** + * 当前请求 HTTP_CONTENT_TYPE + * @access public + * @return string + */ + public function contentType(): string + { + $contentType = $this->header('Content-Type'); + + if ($contentType) { + if (strpos($contentType, ';')) { + [$type] = explode(';', $contentType); + } else { + $type = $contentType; + } + return trim($type); + } + + return ''; + } + + /** + * 获取当前请求的安全Key + * @access public + * @return string + */ + public function secureKey(): string + { + if (is_null($this->secureKey)) { + $this->secureKey = uniqid('', true); + } + + return $this->secureKey; + } + + /** + * 设置当前的控制器名 + * @access public + * @param string $controller 控制器名 + * @return $this + */ + public function setController(string $controller) + { + $this->controller = $controller; + return $this; + } + + /** + * 设置当前的操作名 + * @access public + * @param string $action 操作名 + * @return $this + */ + public function setAction(string $action) + { + $this->action = $action; + return $this; + } + + /** + * 获取当前的控制器名 + * @access public + * @param bool $convert 转换为小写 + * @return string + */ + public function controller(bool $convert = false): string + { + $name = $this->controller ?: ''; + return $convert ? strtolower($name) : $name; + } + + /** + * 获取当前的操作名 + * @access public + * @param bool $convert 转换为小写 + * @return string + */ + public function action(bool $convert = false): string + { + $name = $this->action ?: ''; + return $convert ? strtolower($name) : $name; + } + + /** + * 设置或者获取当前请求的content + * @access public + * @return string + */ + public function getContent(): string + { + if (is_null($this->content)) { + $this->content = $this->input; + } + + return $this->content; + } + + /** + * 获取当前请求的php://input + * @access public + * @return string + */ + public function getInput(): string + { + return $this->input; + } + + /** + * 生成请求令牌 + * @access public + * @param string $name 令牌名称 + * @param mixed $type 令牌生成方法 + * @return string + */ + public function buildToken(string $name = '__token__', $type = 'md5'): string + { + $type = is_callable($type) ? $type : 'md5'; + $token = call_user_func($type, $this->server('REQUEST_TIME_FLOAT')); + + $this->session->set($name, $token); + + return $token; + } + + /** + * 检查请求令牌 + * @access public + * @param string $token 令牌名称 + * @param array $data 表单数据 + * @return bool + */ + public function checkToken(string $token = '__token__', array $data = []): bool + { + if (in_array($this->method(), ['GET', 'HEAD', 'OPTIONS'], true)) { + return true; + } + + if (!$this->session->has($token)) { + // 令牌数据无效 + return false; + } + + // Header验证 + if ($this->header('X-CSRF-TOKEN') && $this->session->get($token) === $this->header('X-CSRF-TOKEN')) { + // 防止重复提交 + $this->session->delete($token); // 验证完成销毁session + return true; + } + + if (empty($data)) { + $data = $this->post(); + } + + // 令牌验证 + if (isset($data[$token]) && $this->session->get($token) === $data[$token]) { + // 防止重复提交 + $this->session->delete($token); // 验证完成销毁session + return true; + } + + // 开启TOKEN重置 + $this->session->delete($token); + return false; + } + + /** + * 设置在中间件传递的数据 + * @access public + * @param array $middleware 数据 + * @return $this + */ + public function withMiddleware(array $middleware) + { + $this->middleware = array_merge($this->middleware, $middleware); + return $this; + } + + /** + * 设置GET数据 + * @access public + * @param array $get 数据 + * @return $this + */ + public function withGet(array $get) + { + $this->get = $get; + return $this; + } + + /** + * 设置POST数据 + * @access public + * @param array $post 数据 + * @return $this + */ + public function withPost(array $post) + { + $this->post = $post; + return $this; + } + + /** + * 设置COOKIE数据 + * @access public + * @param array $cookie 数据 + * @return $this + */ + public function withCookie(array $cookie) + { + $this->cookie = $cookie; + return $this; + } + + /** + * 设置SESSION数据 + * @access public + * @param Session $session 数据 + * @return $this + */ + public function withSession(Session $session) + { + $this->session = $session; + return $this; + } + + /** + * 设置SERVER数据 + * @access public + * @param array $server 数据 + * @return $this + */ + public function withServer(array $server) + { + $this->server = array_change_key_case($server, CASE_UPPER); + return $this; + } + + /** + * 设置HEADER数据 + * @access public + * @param array $header 数据 + * @return $this + */ + public function withHeader(array $header) + { + $this->header = array_change_key_case($header); + return $this; + } + + /** + * 设置ENV数据 + * @access public + * @param Env $env 数据 + * @return $this + */ + public function withEnv(Env $env) + { + $this->env = $env; + return $this; + } + + /** + * 设置php://input数据 + * @access public + * @param string $input RAW数据 + * @return $this + */ + public function withInput(string $input) + { + $this->input = $input; + if (!empty($input)) { + $this->post = $this->getInputData($input); + $this->put = $this->getInputData($input); + } + return $this; + } + + /** + * 设置文件上传数据 + * @access public + * @param array $files 上传信息 + * @return $this + */ + public function withFiles(array $files) + { + $this->file = $files; + return $this; + } + + /** + * 设置ROUTE变量 + * @access public + * @param array $route 数据 + * @return $this + */ + public function withRoute(array $route) + { + $this->route = $route; + return $this; + } + + /** + * 设置中间传递数据 + * @access public + * @param string $name 参数名 + * @param mixed $value 值 + */ + public function __set(string $name, $value) + { + $this->middleware[$name] = $value; + } + + /** + * 获取中间传递数据的值 + * @access public + * @param string $name 名称 + * @return mixed + */ + public function __get(string $name) + { + return $this->middleware($name); + } + + /** + * 检测中间传递数据的值 + * @access public + * @param string $name 名称 + * @return boolean + */ + public function __isset(string $name): bool + { + return isset($this->middleware[$name]); + } +} diff --git a/vendor/topthink/framework/src/think/Response.php b/vendor/topthink/framework/src/think/Response.php new file mode 100644 index 0000000..556696a --- /dev/null +++ b/vendor/topthink/framework/src/think/Response.php @@ -0,0 +1,410 @@ + +// +---------------------------------------------------------------------- +declare (strict_types = 1); + +namespace think; + +/** + * 响应输出基础类 + * @package think + */ +abstract class Response +{ + /** + * 原始数据 + * @var mixed + */ + protected $data; + + /** + * 当前contentType + * @var string + */ + protected $contentType = 'text/html'; + + /** + * 字符集 + * @var string + */ + protected $charset = 'utf-8'; + + /** + * 状态码 + * @var integer + */ + protected $code = 200; + + /** + * 是否允许请求缓存 + * @var bool + */ + protected $allowCache = true; + + /** + * 输出参数 + * @var array + */ + protected $options = []; + + /** + * header参数 + * @var array + */ + protected $header = []; + + /** + * 输出内容 + * @var string + */ + protected $content = null; + + /** + * Cookie对象 + * @var Cookie + */ + protected $cookie; + + /** + * Session对象 + * @var Session + */ + protected $session; + + /** + * 初始化 + * @access protected + * @param mixed $data 输出数据 + * @param int $code 状态码 + */ + protected function init($data = '', int $code = 200) + { + $this->data($data); + $this->code = $code; + + $this->contentType($this->contentType, $this->charset); + } + + /** + * 创建Response对象 + * @access public + * @param mixed $data 输出数据 + * @param string $type 输出类型 + * @param int $code 状态码 + * @return Response + */ + public static function create($data = '', string $type = 'html', int $code = 200): Response + { + $class = false !== strpos($type, '\\') ? $type : '\\think\\response\\' . ucfirst(strtolower($type)); + + return Container::getInstance()->invokeClass($class, [$data, $code]); + } + + /** + * 设置Session对象 + * @access public + * @param Session $session Session对象 + * @return $this + */ + public function setSession(Session $session) + { + $this->session = $session; + return $this; + } + + /** + * 发送数据到客户端 + * @access public + * @return void + * @throws \InvalidArgumentException + */ + public function send(): void + { + // 处理输出数据 + $data = $this->getContent(); + + if (!headers_sent() && !empty($this->header)) { + // 发送状态码 + http_response_code($this->code); + // 发送头部信息 + foreach ($this->header as $name => $val) { + header($name . (!is_null($val) ? ':' . $val : '')); + } + } + if ($this->cookie) { + $this->cookie->save(); + } + + $this->sendData($data); + + if (function_exists('fastcgi_finish_request')) { + // 提高页面响应 + fastcgi_finish_request(); + } + } + + /** + * 处理数据 + * @access protected + * @param mixed $data 要处理的数据 + * @return mixed + */ + protected function output($data) + { + return $data; + } + + /** + * 输出数据 + * @access protected + * @param string $data 要处理的数据 + * @return void + */ + protected function sendData(string $data): void + { + echo $data; + } + + /** + * 输出的参数 + * @access public + * @param mixed $options 输出参数 + * @return $this + */ + public function options(array $options = []) + { + $this->options = array_merge($this->options, $options); + + return $this; + } + + /** + * 输出数据设置 + * @access public + * @param mixed $data 输出数据 + * @return $this + */ + public function data($data) + { + $this->data = $data; + + return $this; + } + + /** + * 是否允许请求缓存 + * @access public + * @param bool $cache 允许请求缓存 + * @return $this + */ + public function allowCache(bool $cache) + { + $this->allowCache = $cache; + + return $this; + } + + /** + * 是否允许请求缓存 + * @access public + * @return $this + */ + public function isAllowCache() + { + return $this->allowCache; + } + + /** + * 设置Cookie + * @access public + * @param string $name cookie名称 + * @param string $value cookie值 + * @param mixed $option 可选参数 + * @return $this + */ + public function cookie(string $name, string $value, $option = null) + { + $this->cookie->set($name, $value, $option); + + return $this; + } + + /** + * 设置响应头 + * @access public + * @param array $header 参数 + * @return $this + */ + public function header(array $header = []) + { + $this->header = array_merge($this->header, $header); + + return $this; + } + + /** + * 设置页面输出内容 + * @access public + * @param mixed $content + * @return $this + */ + public function content($content) + { + if (null !== $content && !is_string($content) && !is_numeric($content) && !is_callable([ + $content, + '__toString', + ]) + ) { + throw new \InvalidArgumentException(sprintf('variable type error: %s', gettype($content))); + } + + $this->content = (string) $content; + + return $this; + } + + /** + * 发送HTTP状态 + * @access public + * @param integer $code 状态码 + * @return $this + */ + public function code(int $code) + { + $this->code = $code; + + return $this; + } + + /** + * LastModified + * @access public + * @param string $time + * @return $this + */ + public function lastModified(string $time) + { + $this->header['Last-Modified'] = $time; + + return $this; + } + + /** + * Expires + * @access public + * @param string $time + * @return $this + */ + public function expires(string $time) + { + $this->header['Expires'] = $time; + + return $this; + } + + /** + * ETag + * @access public + * @param string $eTag + * @return $this + */ + public function eTag(string $eTag) + { + $this->header['ETag'] = $eTag; + + return $this; + } + + /** + * 页面缓存控制 + * @access public + * @param string $cache 状态码 + * @return $this + */ + public function cacheControl(string $cache) + { + $this->header['Cache-control'] = $cache; + + return $this; + } + + /** + * 页面输出类型 + * @access public + * @param string $contentType 输出类型 + * @param string $charset 输出编码 + * @return $this + */ + public function contentType(string $contentType, string $charset = 'utf-8') + { + $this->header['Content-Type'] = $contentType . '; charset=' . $charset; + + return $this; + } + + /** + * 获取头部信息 + * @access public + * @param string $name 头部名称 + * @return mixed + */ + public function getHeader(string $name = '') + { + if (!empty($name)) { + return $this->header[$name] ?? null; + } + + return $this->header; + } + + /** + * 获取原始数据 + * @access public + * @return mixed + */ + public function getData() + { + return $this->data; + } + + /** + * 获取输出数据 + * @access public + * @return string + */ + public function getContent(): string + { + if (null == $this->content) { + $content = $this->output($this->data); + + if (null !== $content && !is_string($content) && !is_numeric($content) && !is_callable([ + $content, + '__toString', + ]) + ) { + throw new \InvalidArgumentException(sprintf('variable type error: %s', gettype($content))); + } + + $this->content = (string) $content; + } + + return $this->content; + } + + /** + * 获取状态码 + * @access public + * @return integer + */ + public function getCode(): int + { + return $this->code; + } +} diff --git a/vendor/topthink/framework/src/think/Route.php b/vendor/topthink/framework/src/think/Route.php new file mode 100644 index 0000000..6bf7c80 --- /dev/null +++ b/vendor/topthink/framework/src/think/Route.php @@ -0,0 +1,894 @@ + +// +---------------------------------------------------------------------- +declare (strict_types = 1); + +namespace think; + +use Closure; +use think\exception\RouteNotFoundException; +use think\route\Dispatch; +use think\route\dispatch\Url as UrlDispatch; +use think\route\Domain; +use think\route\Resource; +use think\route\Rule; +use think\route\RuleGroup; +use think\route\RuleItem; +use think\route\RuleName; +use think\route\Url as UrlBuild; + +/** + * 路由管理类 + * @package think + */ +class Route +{ + /** + * REST定义 + * @var array + */ + protected $rest = [ + 'index' => ['get', '', 'index'], + 'create' => ['get', '/create', 'create'], + 'edit' => ['get', '//edit', 'edit'], + 'read' => ['get', '/', 'read'], + 'save' => ['post', '', 'save'], + 'update' => ['put', '/', 'update'], + 'delete' => ['delete', '/', 'delete'], + ]; + + /** + * 配置参数 + * @var array + */ + protected $config = [ + // pathinfo分隔符 + 'pathinfo_depr' => '/', + // 是否开启路由延迟解析 + 'url_lazy_route' => false, + // 是否强制使用路由 + 'url_route_must' => false, + // 合并路由规则 + 'route_rule_merge' => false, + // 路由是否完全匹配 + 'route_complete_match' => false, + // 去除斜杠 + 'remove_slash' => false, + // 使用注解路由 + 'route_annotation' => false, + // 默认的路由变量规则 + 'default_route_pattern' => '[\w\.]+', + // URL伪静态后缀 + 'url_html_suffix' => 'html', + // 访问控制器层名称 + 'controller_layer' => 'controller', + // 空控制器名 + 'empty_controller' => 'Error', + // 是否使用控制器后缀 + 'controller_suffix' => false, + // 默认控制器名 + 'default_controller' => 'Index', + // 默认操作名 + 'default_action' => 'index', + // 操作方法后缀 + 'action_suffix' => '', + // 非路由变量是否使用普通参数方式(用于URL生成) + 'url_common_param' => true, + ]; + + /** + * 当前应用 + * @var App + */ + protected $app; + + /** + * 请求对象 + * @var Request + */ + protected $request; + + /** + * @var RuleName + */ + protected $ruleName; + + /** + * 当前HOST + * @var string + */ + protected $host; + + /** + * 当前分组对象 + * @var RuleGroup + */ + protected $group; + + /** + * 路由绑定 + * @var array + */ + protected $bind = []; + + /** + * 域名对象 + * @var array + */ + protected $domains = []; + + /** + * 跨域路由规则 + * @var RuleGroup + */ + protected $cross; + + /** + * 路由是否延迟解析 + * @var bool + */ + protected $lazy = true; + + /** + * 路由是否测试模式 + * @var bool + */ + protected $isTest = false; + + /** + * (分组)路由规则是否合并解析 + * @var bool + */ + protected $mergeRuleRegex = false; + + /** + * 是否去除URL最后的斜线 + * @var bool + */ + protected $removeSlash = false; + + public function __construct(App $app) + { + $this->app = $app; + $this->ruleName = new RuleName(); + $this->setDefaultDomain(); + + if (is_file($this->app->getRuntimePath() . 'route.php')) { + // 读取路由映射文件 + $this->import(include $this->app->getRuntimePath() . 'route.php'); + } + } + + protected function init() + { + $this->config = array_merge($this->config, $this->app->config->get('route')); + + if (!empty($this->config['middleware'])) { + $this->app->middleware->import($this->config['middleware'], 'route'); + } + + $this->lazy($this->config['url_lazy_route']); + $this->mergeRuleRegex = $this->config['route_rule_merge']; + $this->removeSlash = $this->config['remove_slash']; + + $this->group->removeSlash($this->removeSlash); + } + + public function config(string $name = null) + { + if (is_null($name)) { + return $this->config; + } + + return $this->config[$name] ?? null; + } + + /** + * 设置路由域名及分组(包括资源路由)是否延迟解析 + * @access public + * @param bool $lazy 路由是否延迟解析 + * @return $this + */ + public function lazy(bool $lazy = true) + { + $this->lazy = $lazy; + return $this; + } + + /** + * 设置路由为测试模式 + * @access public + * @param bool $test 路由是否测试模式 + * @return void + */ + public function setTestMode(bool $test): void + { + $this->isTest = $test; + } + + /** + * 检查路由是否为测试模式 + * @access public + * @return bool + */ + public function isTest(): bool + { + return $this->isTest; + } + + /** + * 设置路由域名及分组(包括资源路由)是否合并解析 + * @access public + * @param bool $merge 路由是否合并解析 + * @return $this + */ + public function mergeRuleRegex(bool $merge = true) + { + $this->mergeRuleRegex = $merge; + $this->group->mergeRuleRegex($merge); + + return $this; + } + + /** + * 初始化默认域名 + * @access protected + * @return void + */ + protected function setDefaultDomain(): void + { + // 注册默认域名 + $domain = new Domain($this); + + $this->domains['-'] = $domain; + + // 默认分组 + $this->group = $domain; + } + + /** + * 设置当前分组 + * @access public + * @param RuleGroup $group 域名 + * @return void + */ + public function setGroup(RuleGroup $group): void + { + $this->group = $group; + } + + /** + * 获取指定标识的路由分组 不指定则获取当前分组 + * @access public + * @param string $name 分组标识 + * @return RuleGroup + */ + public function getGroup(string $name = null) + { + return $name ? $this->ruleName->getGroup($name) : $this->group; + } + + /** + * 注册变量规则 + * @access public + * @param array $pattern 变量规则 + * @return $this + */ + public function pattern(array $pattern) + { + $this->group->pattern($pattern); + + return $this; + } + + /** + * 注册路由参数 + * @access public + * @param array $option 参数 + * @return $this + */ + public function option(array $option) + { + $this->group->option($option); + + return $this; + } + + /** + * 注册域名路由 + * @access public + * @param string|array $name 子域名 + * @param mixed $rule 路由规则 + * @return Domain + */ + public function domain($name, $rule = null): Domain + { + // 支持多个域名使用相同路由规则 + $domainName = is_array($name) ? array_shift($name) : $name; + + if (!isset($this->domains[$domainName])) { + $domain = (new Domain($this, $domainName, $rule)) + ->lazy($this->lazy) + ->removeSlash($this->removeSlash) + ->mergeRuleRegex($this->mergeRuleRegex); + + $this->domains[$domainName] = $domain; + } else { + $domain = $this->domains[$domainName]; + $domain->parseGroupRule($rule); + } + + if (is_array($name) && !empty($name)) { + foreach ($name as $item) { + $this->domains[$item] = $domainName; + } + } + + // 返回域名对象 + return $domain; + } + + /** + * 获取域名 + * @access public + * @return array + */ + public function getDomains(): array + { + return $this->domains; + } + + /** + * 获取RuleName对象 + * @access public + * @return RuleName + */ + public function getRuleName(): RuleName + { + return $this->ruleName; + } + + /** + * 设置路由绑定 + * @access public + * @param string $bind 绑定信息 + * @param string $domain 域名 + * @return $this + */ + public function bind(string $bind, string $domain = null) + { + $domain = is_null($domain) ? '-' : $domain; + + $this->bind[$domain] = $bind; + + return $this; + } + + /** + * 读取路由绑定信息 + * @access public + * @return array + */ + public function getBind(): array + { + return $this->bind; + } + + /** + * 读取路由绑定 + * @access public + * @param string $domain 域名 + * @return string|null + */ + public function getDomainBind(string $domain = null) + { + if (is_null($domain)) { + $domain = $this->host; + } elseif (false === strpos($domain, '.') && $this->request) { + $domain .= '.' . $this->request->rootDomain(); + } + + if ($this->request) { + $subDomain = $this->request->subDomain(); + + if (strpos($subDomain, '.')) { + $name = '*' . strstr($subDomain, '.'); + } + } + + if (isset($this->bind[$domain])) { + $result = $this->bind[$domain]; + } elseif (isset($name) && isset($this->bind[$name])) { + $result = $this->bind[$name]; + } elseif (!empty($subDomain) && isset($this->bind['*'])) { + $result = $this->bind['*']; + } else { + $result = null; + } + + return $result; + } + + /** + * 读取路由标识 + * @access public + * @param string $name 路由标识 + * @param string $domain 域名 + * @param string $method 请求类型 + * @return RuleItem[] + */ + public function getName(string $name = null, string $domain = null, string $method = '*'): array + { + return $this->ruleName->getName($name, $domain, $method); + } + + /** + * 批量导入路由标识 + * @access public + * @param array $name 路由标识 + * @return $this + */ + public function import(array $name): void + { + $this->ruleName->import($name); + } + + /** + * 注册路由标识 + * @access public + * @param string $name 路由标识 + * @param RuleItem $ruleItem 路由规则 + * @param bool $first 是否优先 + * @return void + */ + public function setName(string $name, RuleItem $ruleItem, bool $first = false): void + { + $this->ruleName->setName($name, $ruleItem, $first); + } + + /** + * 保存路由规则 + * @access public + * @param string $rule 路由规则 + * @param RuleItem $ruleItem RuleItem对象 + * @return void + */ + public function setRule(string $rule, RuleItem $ruleItem = null): void + { + $this->ruleName->setRule($rule, $ruleItem); + } + + /** + * 读取路由 + * @access public + * @param string $rule 路由规则 + * @return RuleItem[] + */ + public function getRule(string $rule): array + { + return $this->ruleName->getRule($rule); + } + + /** + * 读取路由列表 + * @access public + * @return array + */ + public function getRuleList(): array + { + return $this->ruleName->getRuleList(); + } + + /** + * 清空路由规则 + * @access public + * @return void + */ + public function clear(): void + { + $this->ruleName->clear(); + + if ($this->group) { + $this->group->clear(); + } + } + + /** + * 注册路由规则 + * @access public + * @param string $rule 路由规则 + * @param mixed $route 路由地址 + * @param string $method 请求类型 + * @return RuleItem + */ + public function rule(string $rule, $route = null, string $method = '*'): RuleItem + { + return $this->group->addRule($rule, $route, $method); + } + + /** + * 设置跨域有效路由规则 + * @access public + * @param Rule $rule 路由规则 + * @param string $method 请求类型 + * @return $this + */ + public function setCrossDomainRule(Rule $rule, string $method = '*') + { + if (!isset($this->cross)) { + $this->cross = (new RuleGroup($this))->mergeRuleRegex($this->mergeRuleRegex); + } + + $this->cross->addRuleItem($rule, $method); + + return $this; + } + + /** + * 注册路由分组 + * @access public + * @param string|\Closure $name 分组名称或者参数 + * @param mixed $route 分组路由 + * @return RuleGroup + */ + public function group($name, $route = null): RuleGroup + { + if ($name instanceof Closure) { + $route = $name; + $name = ''; + } + + return (new RuleGroup($this, $this->group, $name, $route)) + ->lazy($this->lazy) + ->removeSlash($this->removeSlash) + ->mergeRuleRegex($this->mergeRuleRegex); + } + + /** + * 注册路由 + * @access public + * @param string $rule 路由规则 + * @param mixed $route 路由地址 + * @return RuleItem + */ + public function any(string $rule, $route): RuleItem + { + return $this->rule($rule, $route, '*'); + } + + /** + * 注册GET路由 + * @access public + * @param string $rule 路由规则 + * @param mixed $route 路由地址 + * @return RuleItem + */ + public function get(string $rule, $route): RuleItem + { + return $this->rule($rule, $route, 'GET'); + } + + /** + * 注册POST路由 + * @access public + * @param string $rule 路由规则 + * @param mixed $route 路由地址 + * @return RuleItem + */ + public function post(string $rule, $route): RuleItem + { + return $this->rule($rule, $route, 'POST'); + } + + /** + * 注册PUT路由 + * @access public + * @param string $rule 路由规则 + * @param mixed $route 路由地址 + * @return RuleItem + */ + public function put(string $rule, $route): RuleItem + { + return $this->rule($rule, $route, 'PUT'); + } + + /** + * 注册DELETE路由 + * @access public + * @param string $rule 路由规则 + * @param mixed $route 路由地址 + * @return RuleItem + */ + public function delete(string $rule, $route): RuleItem + { + return $this->rule($rule, $route, 'DELETE'); + } + + /** + * 注册PATCH路由 + * @access public + * @param string $rule 路由规则 + * @param mixed $route 路由地址 + * @return RuleItem + */ + public function patch(string $rule, $route): RuleItem + { + return $this->rule($rule, $route, 'PATCH'); + } + + /** + * 注册OPTIONS路由 + * @access public + * @param string $rule 路由规则 + * @param mixed $route 路由地址 + * @return RuleItem + */ + public function options(string $rule, $route): RuleItem + { + return $this->rule($rule, $route, 'OPTIONS'); + } + + /** + * 注册资源路由 + * @access public + * @param string $rule 路由规则 + * @param string $route 路由地址 + * @return Resource + */ + public function resource(string $rule, string $route): Resource + { + return (new Resource($this, $this->group, $rule, $route, $this->rest)) + ->lazy($this->lazy); + } + + /** + * 注册视图路由 + * @access public + * @param string $rule 路由规则 + * @param string $template 路由模板地址 + * @param array $vars 模板变量 + * @return RuleItem + */ + public function view(string $rule, string $template = '', array $vars = []): RuleItem + { + return $this->rule($rule, $template, 'GET')->view($vars); + } + + /** + * 注册重定向路由 + * @access public + * @param string $rule 路由规则 + * @param string $route 路由地址 + * @param int $status 状态码 + * @return RuleItem + */ + public function redirect(string $rule, string $route = '', int $status = 301): RuleItem + { + return $this->rule($rule, $route, '*')->redirect()->status($status); + } + + /** + * rest方法定义和修改 + * @access public + * @param string|array $name 方法名称 + * @param array|bool $resource 资源 + * @return $this + */ + public function rest($name, $resource = []) + { + if (is_array($name)) { + $this->rest = $resource ? $name : array_merge($this->rest, $name); + } else { + $this->rest[$name] = $resource; + } + + return $this; + } + + /** + * 获取rest方法定义的参数 + * @access public + * @param string $name 方法名称 + * @return array|null + */ + public function getRest(string $name = null) + { + if (is_null($name)) { + return $this->rest; + } + + return $this->rest[$name] ?? null; + } + + /** + * 注册未匹配路由规则后的处理 + * @access public + * @param string|Closure $route 路由地址 + * @param string $method 请求类型 + * @return RuleItem + */ + public function miss($route, string $method = '*'): RuleItem + { + return $this->group->miss($route, $method); + } + + /** + * 路由调度 + * @param Request $request + * @param Closure $withRoute + * @return Response + */ + public function dispatch(Request $request, $withRoute = null) + { + $this->request = $request; + $this->host = $this->request->host(true); + $this->init(); + + if ($withRoute) { + //加载路由 + $withRoute(); + $dispatch = $this->check(); + } else { + $dispatch = $this->url($this->path()); + } + + $dispatch->init($this->app); + + return $this->app->middleware->pipeline('route') + ->send($request) + ->then(function () use ($dispatch) { + return $dispatch->run(); + }); + } + + /** + * 检测URL路由 + * @access public + * @return Dispatch + * @throws RouteNotFoundException + */ + public function check(): Dispatch + { + // 自动检测域名路由 + $url = str_replace($this->config['pathinfo_depr'], '|', $this->path()); + + $completeMatch = $this->config['route_complete_match']; + + $result = $this->checkDomain()->check($this->request, $url, $completeMatch); + + if (false === $result && !empty($this->cross)) { + // 检测跨域路由 + $result = $this->cross->check($this->request, $url, $completeMatch); + } + + if (false !== $result) { + return $result; + } elseif ($this->config['url_route_must']) { + throw new RouteNotFoundException(); + } + + return $this->url($url); + } + + /** + * 获取当前请求URL的pathinfo信息(不含URL后缀) + * @access protected + * @return string + */ + protected function path(): string + { + $suffix = $this->config['url_html_suffix']; + $pathinfo = $this->request->pathinfo(); + + if (false === $suffix) { + // 禁止伪静态访问 + $path = $pathinfo; + } elseif ($suffix) { + // 去除正常的URL后缀 + $path = preg_replace('/\.(' . ltrim($suffix, '.') . ')$/i', '', $pathinfo); + } else { + // 允许任何后缀访问 + $path = preg_replace('/\.' . $this->request->ext() . '$/i', '', $pathinfo); + } + + return $path; + } + + /** + * 默认URL解析 + * @access public + * @param string $url URL地址 + * @return Dispatch + */ + public function url(string $url): UrlDispatch + { + return new UrlDispatch($this->request, $this->group, $url); + } + + /** + * 检测域名的路由规则 + * @access protected + * @return Domain + */ + protected function checkDomain(): Domain + { + $item = false; + + if (count($this->domains) > 1) { + // 获取当前子域名 + $subDomain = $this->request->subDomain(); + + $domain = $subDomain ? explode('.', $subDomain) : []; + $domain2 = $domain ? array_pop($domain) : ''; + + if ($domain) { + // 存在三级域名 + $domain3 = array_pop($domain); + } + + if (isset($this->domains[$this->host])) { + // 子域名配置 + $item = $this->domains[$this->host]; + } elseif (isset($this->domains[$subDomain])) { + $item = $this->domains[$subDomain]; + } elseif (isset($this->domains['*.' . $domain2]) && !empty($domain3)) { + // 泛三级域名 + $item = $this->domains['*.' . $domain2]; + $panDomain = $domain3; + } elseif (isset($this->domains['*']) && !empty($domain2)) { + // 泛二级域名 + if ('www' != $domain2) { + $item = $this->domains['*']; + $panDomain = $domain2; + } + } + + if (isset($panDomain)) { + // 保存当前泛域名 + $this->request->setPanDomain($panDomain); + } + } + + if (false === $item) { + // 检测全局域名规则 + $item = $this->domains['-']; + } + + if (is_string($item)) { + $item = $this->domains[$item]; + } + + return $item; + } + + /** + * URL生成 支持路由反射 + * @access public + * @param string $url 路由地址 + * @param array $vars 参数 ['a'=>'val1', 'b'=>'val2'] + * @return UrlBuild + */ + public function buildUrl(string $url = '', array $vars = []): UrlBuild + { + return $this->app->make(UrlBuild::class, [$this, $this->app, $url, $vars], true); + } + + /** + * 设置全局的路由分组参数 + * @access public + * @param string $method 方法名 + * @param array $args 调用参数 + * @return RuleGroup + */ + public function __call($method, $args) + { + return call_user_func_array([$this->group, $method], $args); + } +} diff --git a/vendor/topthink/framework/src/think/Service.php b/vendor/topthink/framework/src/think/Service.php new file mode 100644 index 0000000..68c6789 --- /dev/null +++ b/vendor/topthink/framework/src/think/Service.php @@ -0,0 +1,66 @@ + +// +---------------------------------------------------------------------- +declare (strict_types = 1); + +namespace think; + +use Closure; +use think\event\RouteLoaded; + +/** + * 系统服务基础类 + * @method void register() + * @method void boot() + */ +abstract class Service +{ + protected $app; + + public function __construct(App $app) + { + $this->app = $app; + } + + /** + * 加载路由 + * @access protected + * @param string $path 路由路径 + */ + protected function loadRoutesFrom($path) + { + $this->registerRoutes(function () use ($path) { + include $path; + }); + } + + /** + * 注册路由 + * @param Closure $closure + */ + protected function registerRoutes(Closure $closure) + { + $this->app->event->listen(RouteLoaded::class, $closure); + } + + /** + * 添加指令 + * @access protected + * @param array|string $commands 指令 + */ + protected function commands($commands) + { + $commands = is_array($commands) ? $commands : func_get_args(); + + Console::starting(function (Console $console) use ($commands) { + $console->addCommands($commands); + }); + } +} diff --git a/vendor/topthink/framework/src/think/Session.php b/vendor/topthink/framework/src/think/Session.php new file mode 100644 index 0000000..c344f0b --- /dev/null +++ b/vendor/topthink/framework/src/think/Session.php @@ -0,0 +1,65 @@ + +// +---------------------------------------------------------------------- +declare (strict_types = 1); + +namespace think; + +use think\helper\Arr; +use think\session\Store; + +/** + * Session管理类 + * @package think + * @mixin Store + */ +class Session extends Manager +{ + protected $namespace = '\\think\\session\\driver\\'; + + protected function createDriver(string $name) + { + $handler = parent::createDriver($name); + + return new Store($this->getConfig('name') ?: 'PHPSESSID', $handler, $this->getConfig('serialize')); + } + + /** + * 获取Session配置 + * @access public + * @param null|string $name 名称 + * @param mixed $default 默认值 + * @return mixed + */ + public function getConfig(string $name = null, $default = null) + { + if (!is_null($name)) { + return $this->app->config->get('session.' . $name, $default); + } + + return $this->app->config->get('session'); + } + + protected function resolveConfig(string $name) + { + $config = $this->app->config->get('session', []); + Arr::forget($config, 'type'); + return $config; + } + + /** + * 默认驱动 + * @return string|null + */ + public function getDefaultDriver() + { + return $this->app->config->get('session.type', 'file'); + } +} diff --git a/vendor/topthink/framework/src/think/Validate.php b/vendor/topthink/framework/src/think/Validate.php new file mode 100644 index 0000000..a81c4d3 --- /dev/null +++ b/vendor/topthink/framework/src/think/Validate.php @@ -0,0 +1,1677 @@ + +// +---------------------------------------------------------------------- +declare (strict_types = 1); + +namespace think; + +use Closure; +use think\exception\ValidateException; +use think\helper\Str; +use think\validate\ValidateRule; + +/** + * 数据验证类 + * @package think + */ +class Validate +{ + /** + * 自定义验证类型 + * @var array + */ + protected $type = []; + + /** + * 验证类型别名 + * @var array + */ + protected $alias = [ + '>' => 'gt', '>=' => 'egt', '<' => 'lt', '<=' => 'elt', '=' => 'eq', 'same' => 'eq', + ]; + + /** + * 当前验证规则 + * @var array + */ + protected $rule = []; + + /** + * 验证提示信息 + * @var array + */ + protected $message = []; + + /** + * 验证字段描述 + * @var array + */ + protected $field = []; + + /** + * 默认规则提示 + * @var array + */ + protected $typeMsg = [ + 'require' => ':attribute require', + 'must' => ':attribute must', + 'number' => ':attribute must be numeric', + 'integer' => ':attribute must be integer', + 'float' => ':attribute must be float', + 'boolean' => ':attribute must be bool', + 'email' => ':attribute not a valid email address', + 'mobile' => ':attribute not a valid mobile', + 'array' => ':attribute must be a array', + 'accepted' => ':attribute must be yes,on or 1', + 'date' => ':attribute not a valid datetime', + 'file' => ':attribute not a valid file', + 'image' => ':attribute not a valid image', + 'alpha' => ':attribute must be alpha', + 'alphaNum' => ':attribute must be alpha-numeric', + 'alphaDash' => ':attribute must be alpha-numeric, dash, underscore', + 'activeUrl' => ':attribute not a valid domain or ip', + 'chs' => ':attribute must be chinese', + 'chsAlpha' => ':attribute must be chinese or alpha', + 'chsAlphaNum' => ':attribute must be chinese,alpha-numeric', + 'chsDash' => ':attribute must be chinese,alpha-numeric,underscore, dash', + 'url' => ':attribute not a valid url', + 'ip' => ':attribute not a valid ip', + 'dateFormat' => ':attribute must be dateFormat of :rule', + 'in' => ':attribute must be in :rule', + 'notIn' => ':attribute be notin :rule', + 'between' => ':attribute must between :1 - :2', + 'notBetween' => ':attribute not between :1 - :2', + 'length' => 'size of :attribute must be :rule', + 'max' => 'max size of :attribute must be :rule', + 'min' => 'min size of :attribute must be :rule', + 'after' => ':attribute cannot be less than :rule', + 'before' => ':attribute cannot exceed :rule', + 'expire' => ':attribute not within :rule', + 'allowIp' => 'access IP is not allowed', + 'denyIp' => 'access IP denied', + 'confirm' => ':attribute out of accord with :2', + 'different' => ':attribute cannot be same with :2', + 'egt' => ':attribute must greater than or equal :rule', + 'gt' => ':attribute must greater than :rule', + 'elt' => ':attribute must less than or equal :rule', + 'lt' => ':attribute must less than :rule', + 'eq' => ':attribute must equal :rule', + 'unique' => ':attribute has exists', + 'regex' => ':attribute not conform to the rules', + 'method' => 'invalid Request method', + 'token' => 'invalid token', + 'fileSize' => 'filesize not match', + 'fileExt' => 'extensions to upload is not allowed', + 'fileMime' => 'mimetype to upload is not allowed', + ]; + + /** + * 当前验证场景 + * @var string + */ + protected $currentScene; + + /** + * 内置正则验证规则 + * @var array + */ + protected $defaultRegex = [ + 'alpha' => '/^[A-Za-z]+$/', + 'alphaNum' => '/^[A-Za-z0-9]+$/', + 'alphaDash' => '/^[A-Za-z0-9\-\_]+$/', + 'chs' => '/^[\x{4e00}-\x{9fa5}]+$/u', + 'chsAlpha' => '/^[\x{4e00}-\x{9fa5}a-zA-Z]+$/u', + 'chsAlphaNum' => '/^[\x{4e00}-\x{9fa5}a-zA-Z0-9]+$/u', + 'chsDash' => '/^[\x{4e00}-\x{9fa5}a-zA-Z0-9\_\-]+$/u', + 'mobile' => '/^1[3-9]\d{9}$/', + 'idCard' => '/(^[1-9]\d{5}(18|19|([23]\d))\d{2}((0[1-9])|(10|11|12))(([0-2][1-9])|10|20|30|31)\d{3}[0-9Xx]$)|(^[1-9]\d{5}\d{2}((0[1-9])|(10|11|12))(([0-2][1-9])|10|20|30|31)\d{2}$)/', + 'zip' => '/\d{6}/', + ]; + + /** + * Filter_var 规则 + * @var array + */ + protected $filter = [ + 'email' => FILTER_VALIDATE_EMAIL, + 'ip' => [FILTER_VALIDATE_IP, FILTER_FLAG_IPV4 | FILTER_FLAG_IPV6], + 'integer' => FILTER_VALIDATE_INT, + 'url' => FILTER_VALIDATE_URL, + 'macAddr' => FILTER_VALIDATE_MAC, + 'float' => FILTER_VALIDATE_FLOAT, + ]; + + /** + * 验证场景定义 + * @var array + */ + protected $scene = []; + + /** + * 验证失败错误信息 + * @var string|array + */ + protected $error = []; + + /** + * 是否批量验证 + * @var bool + */ + protected $batch = false; + + /** + * 验证失败是否抛出异常 + * @var bool + */ + protected $failException = false; + + /** + * 场景需要验证的规则 + * @var array + */ + protected $only = []; + + /** + * 场景需要移除的验证规则 + * @var array + */ + protected $remove = []; + + /** + * 场景需要追加的验证规则 + * @var array + */ + protected $append = []; + + /** + * 验证正则定义 + * @var array + */ + protected $regex = []; + + /** + * Db对象 + * @var Db + */ + protected $db; + + /** + * 语言对象 + * @var Lang + */ + protected $lang; + + /** + * 请求对象 + * @var Request + */ + protected $request; + + /** + * @var Closure[] + */ + protected static $maker = []; + + /** + * 构造方法 + * @access public + */ + public function __construct() + { + if (!empty(static::$maker)) { + foreach (static::$maker as $maker) { + call_user_func($maker, $this); + } + } + } + + /** + * 设置服务注入 + * @access public + * @param Closure $maker + * @return void + */ + public static function maker(Closure $maker) + { + static::$maker[] = $maker; + } + + /** + * 设置Lang对象 + * @access public + * @param Lang $lang Lang对象 + * @return void + */ + public function setLang(Lang $lang) + { + $this->lang = $lang; + } + + /** + * 设置Db对象 + * @access public + * @param Db $db Db对象 + * @return void + */ + public function setDb(Db $db) + { + $this->db = $db; + } + + /** + * 设置Request对象 + * @access public + * @param Request $request Request对象 + * @return void + */ + public function setRequest(Request $request) + { + $this->request = $request; + } + + /** + * 添加字段验证规则 + * @access protected + * @param string|array $name 字段名称或者规则数组 + * @param mixed $rule 验证规则或者字段描述信息 + * @return $this + */ + public function rule($name, $rule = '') + { + if (is_array($name)) { + $this->rule = $name + $this->rule; + if (is_array($rule)) { + $this->field = array_merge($this->field, $rule); + } + } else { + $this->rule[$name] = $rule; + } + + return $this; + } + + /** + * 注册验证(类型)规则 + * @access public + * @param string $type 验证规则类型 + * @param callable $callback callback方法(或闭包) + * @param string $message 验证失败提示信息 + * @return $this + */ + public function extend(string $type, callable $callback = null, string $message = null) + { + $this->type[$type] = $callback; + + if ($message) { + $this->typeMsg[$type] = $message; + } + + return $this; + } + + /** + * 设置验证规则的默认提示信息 + * @access public + * @param string|array $type 验证规则类型名称或者数组 + * @param string $msg 验证提示信息 + * @return void + */ + public function setTypeMsg($type, string $msg = null): void + { + if (is_array($type)) { + $this->typeMsg = array_merge($this->typeMsg, $type); + } else { + $this->typeMsg[$type] = $msg; + } + } + + /** + * 设置提示信息 + * @access public + * @param array $message 错误信息 + * @return Validate + */ + public function message(array $message) + { + $this->message = array_merge($this->message, $message); + + return $this; + } + + /** + * 设置验证场景 + * @access public + * @param string $name 场景名 + * @return $this + */ + public function scene(string $name) + { + // 设置当前场景 + $this->currentScene = $name; + + return $this; + } + + /** + * 判断是否存在某个验证场景 + * @access public + * @param string $name 场景名 + * @return bool + */ + public function hasScene(string $name): bool + { + return isset($this->scene[$name]) || method_exists($this, 'scene' . $name); + } + + /** + * 设置批量验证 + * @access public + * @param bool $batch 是否批量验证 + * @return $this + */ + public function batch(bool $batch = true) + { + $this->batch = $batch; + + return $this; + } + + /** + * 设置验证失败后是否抛出异常 + * @access protected + * @param bool $fail 是否抛出异常 + * @return $this + */ + public function failException(bool $fail = true) + { + $this->failException = $fail; + + return $this; + } + + /** + * 指定需要验证的字段列表 + * @access public + * @param array $fields 字段名 + * @return $this + */ + public function only(array $fields) + { + $this->only = $fields; + + return $this; + } + + /** + * 移除某个字段的验证规则 + * @access public + * @param string|array $field 字段名 + * @param mixed $rule 验证规则 true 移除所有规则 + * @return $this + */ + public function remove($field, $rule = null) + { + if (is_array($field)) { + foreach ($field as $key => $rule) { + if (is_int($key)) { + $this->remove($rule); + } else { + $this->remove($key, $rule); + } + } + } else { + if (is_string($rule)) { + $rule = explode('|', $rule); + } + + $this->remove[$field] = $rule; + } + + return $this; + } + + /** + * 追加某个字段的验证规则 + * @access public + * @param string|array $field 字段名 + * @param mixed $rule 验证规则 + * @return $this + */ + public function append($field, $rule = null) + { + if (is_array($field)) { + foreach ($field as $key => $rule) { + $this->append($key, $rule); + } + } else { + if (is_string($rule)) { + $rule = explode('|', $rule); + } + + $this->append[$field] = $rule; + } + + return $this; + } + + /** + * 数据自动验证 + * @access public + * @param array $data 数据 + * @param array $rules 验证规则 + * @return bool + */ + public function check(array $data, array $rules = []): bool + { + $this->error = []; + + if (empty($rules)) { + // 读取验证规则 + $rules = $this->rule; + } + + if ($this->currentScene) { + $this->getScene($this->currentScene); + } + + foreach ($this->append as $key => $rule) { + if (!isset($rules[$key])) { + $rules[$key] = $rule; + } + } + + foreach ($rules as $key => $rule) { + // field => 'rule1|rule2...' field => ['rule1','rule2',...] + if (strpos($key, '|')) { + // 字段|描述 用于指定属性名称 + [$key, $title] = explode('|', $key); + } else { + $title = $this->field[$key] ?? $key; + } + + // 场景检测 + if (!empty($this->only) && !in_array($key, $this->only)) { + continue; + } + + // 获取数据 支持二维数组 + $value = $this->getDataValue($data, $key); + + // 字段验证 + if ($rule instanceof Closure) { + $result = call_user_func_array($rule, [$value, $data]); + } elseif ($rule instanceof ValidateRule) { + // 验证因子 + $result = $this->checkItem($key, $value, $rule->getRule(), $data, $rule->getTitle() ?: $title, $rule->getMsg()); + } else { + $result = $this->checkItem($key, $value, $rule, $data, $title); + } + + if (true !== $result) { + // 没有返回true 则表示验证失败 + if (!empty($this->batch)) { + // 批量验证 + $this->error[$key] = $result; + } elseif ($this->failException) { + throw new ValidateException($result); + } else { + $this->error = $result; + return false; + } + } + } + + if (!empty($this->error)) { + if ($this->failException) { + throw new ValidateException($this->error); + } + return false; + } + + return true; + } + + /** + * 根据验证规则验证数据 + * @access public + * @param mixed $value 字段值 + * @param mixed $rules 验证规则 + * @return bool + */ + public function checkRule($value, $rules): bool + { + if ($rules instanceof Closure) { + return call_user_func_array($rules, [$value]); + } elseif ($rules instanceof ValidateRule) { + $rules = $rules->getRule(); + } elseif (is_string($rules)) { + $rules = explode('|', $rules); + } + + foreach ($rules as $key => $rule) { + if ($rule instanceof Closure) { + $result = call_user_func_array($rule, [$value]); + } else { + // 判断验证类型 + [$type, $rule] = $this->getValidateType($key, $rule); + + $callback = $this->type[$type] ?? [$this, $type]; + + $result = call_user_func_array($callback, [$value, $rule]); + } + + if (true !== $result) { + if ($this->failException) { + throw new ValidateException($result); + } + + return $result; + } + } + + return true; + } + + /** + * 验证单个字段规则 + * @access protected + * @param string $field 字段名 + * @param mixed $value 字段值 + * @param mixed $rules 验证规则 + * @param array $data 数据 + * @param string $title 字段描述 + * @param array $msg 提示信息 + * @return mixed + */ + protected function checkItem(string $field, $value, $rules, $data, string $title = '', array $msg = []) + { + if (isset($this->remove[$field]) && true === $this->remove[$field] && empty($this->append[$field])) { + // 字段已经移除 无需验证 + return true; + } + + // 支持多规则验证 require|in:a,b,c|... 或者 ['require','in'=>'a,b,c',...] + if (is_string($rules)) { + $rules = explode('|', $rules); + } + + if (isset($this->append[$field])) { + // 追加额外的验证规则 + $rules = array_unique(array_merge($rules, $this->append[$field]), SORT_REGULAR); + } + + $i = 0; + foreach ($rules as $key => $rule) { + if ($rule instanceof Closure) { + $result = call_user_func_array($rule, [$value, $data]); + $info = is_numeric($key) ? '' : $key; + } else { + // 判断验证类型 + [$type, $rule, $info] = $this->getValidateType($key, $rule); + + if (isset($this->append[$field]) && in_array($info, $this->append[$field])) { + + } elseif (isset($this->remove[$field]) && in_array($info, $this->remove[$field])) { + // 规则已经移除 + $i++; + continue; + } + + if (isset($this->type[$type])) { + $result = call_user_func_array($this->type[$type], [$value, $rule, $data, $field, $title]); + } elseif ('must' == $info || 0 === strpos($info, 'require') || (!is_null($value) && '' !== $value)) { + $result = call_user_func_array([$this, $type], [$value, $rule, $data, $field, $title]); + } else { + $result = true; + } + } + + if (false === $result) { + // 验证失败 返回错误信息 + if (!empty($msg[$i])) { + $message = $msg[$i]; + if (is_string($message) && strpos($message, '{%') === 0) { + $message = $this->lang->get(substr($message, 2, -1)); + } + } else { + $message = $this->getRuleMsg($field, $title, $info, $rule); + } + + return $message; + } elseif (true !== $result) { + // 返回自定义错误信息 + if (is_string($result) && false !== strpos($result, ':')) { + $result = str_replace(':attribute', $title, $result); + + if (strpos($result, ':rule') && is_scalar($rule)) { + $result = str_replace(':rule', (string) $rule, $result); + } + } + + return $result; + } + $i++; + } + + return $result; + } + + /** + * 获取当前验证类型及规则 + * @access public + * @param mixed $key + * @param mixed $rule + * @return array + */ + protected function getValidateType($key, $rule): array + { + // 判断验证类型 + if (!is_numeric($key)) { + if (isset($this->alias[$key])) { + // 判断别名 + $key = $this->alias[$key]; + } + return [$key, $rule, $key]; + } + + if (strpos($rule, ':')) { + [$type, $rule] = explode(':', $rule, 2); + if (isset($this->alias[$type])) { + // 判断别名 + $type = $this->alias[$type]; + } + $info = $type; + } elseif (method_exists($this, $rule)) { + $type = $rule; + $info = $rule; + $rule = ''; + } else { + $type = 'is'; + $info = $rule; + } + + return [$type, $rule, $info]; + } + + /** + * 验证是否和某个字段的值一致 + * @access public + * @param mixed $value 字段值 + * @param mixed $rule 验证规则 + * @param array $data 数据 + * @param string $field 字段名 + * @return bool + */ + public function confirm($value, $rule, array $data = [], string $field = ''): bool + { + if ('' == $rule) { + if (strpos($field, '_confirm')) { + $rule = strstr($field, '_confirm', true); + } else { + $rule = $field . '_confirm'; + } + } + + return $this->getDataValue($data, $rule) === $value; + } + + /** + * 验证是否和某个字段的值是否不同 + * @access public + * @param mixed $value 字段值 + * @param mixed $rule 验证规则 + * @param array $data 数据 + * @return bool + */ + public function different($value, $rule, array $data = []): bool + { + return $this->getDataValue($data, $rule) != $value; + } + + /** + * 验证是否大于等于某个值 + * @access public + * @param mixed $value 字段值 + * @param mixed $rule 验证规则 + * @param array $data 数据 + * @return bool + */ + public function egt($value, $rule, array $data = []): bool + { + return $value >= $this->getDataValue($data, $rule); + } + + /** + * 验证是否大于某个值 + * @access public + * @param mixed $value 字段值 + * @param mixed $rule 验证规则 + * @param array $data 数据 + * @return bool + */ + public function gt($value, $rule, array $data = []): bool + { + return $value > $this->getDataValue($data, $rule); + } + + /** + * 验证是否小于等于某个值 + * @access public + * @param mixed $value 字段值 + * @param mixed $rule 验证规则 + * @param array $data 数据 + * @return bool + */ + public function elt($value, $rule, array $data = []): bool + { + return $value <= $this->getDataValue($data, $rule); + } + + /** + * 验证是否小于某个值 + * @access public + * @param mixed $value 字段值 + * @param mixed $rule 验证规则 + * @param array $data 数据 + * @return bool + */ + public function lt($value, $rule, array $data = []): bool + { + return $value < $this->getDataValue($data, $rule); + } + + /** + * 验证是否等于某个值 + * @access public + * @param mixed $value 字段值 + * @param mixed $rule 验证规则 + * @return bool + */ + public function eq($value, $rule): bool + { + return $value == $rule; + } + + /** + * 必须验证 + * @access public + * @param mixed $value 字段值 + * @param mixed $rule 验证规则 + * @return bool + */ + public function must($value, $rule = null): bool + { + return !empty($value) || '0' == $value; + } + + /** + * 验证字段值是否为有效格式 + * @access public + * @param mixed $value 字段值 + * @param string $rule 验证规则 + * @param array $data 数据 + * @return bool + */ + public function is($value, string $rule, array $data = []): bool + { + switch (Str::camel($rule)) { + case 'require': + // 必须 + $result = !empty($value) || '0' == $value; + break; + case 'accepted': + // 接受 + $result = in_array($value, ['1', 'on', 'yes']); + break; + case 'date': + // 是否是一个有效日期 + $result = false !== strtotime($value); + break; + case 'activeUrl': + // 是否为有效的网址 + $result = checkdnsrr($value); + break; + case 'boolean': + case 'bool': + // 是否为布尔值 + $result = in_array($value, [true, false, 0, 1, '0', '1'], true); + break; + case 'number': + $result = ctype_digit((string) $value); + break; + case 'alphaNum': + $result = ctype_alnum($value); + break; + case 'array': + // 是否为数组 + $result = is_array($value); + break; + case 'file': + $result = $value instanceof File; + break; + case 'image': + $result = $value instanceof File && in_array($this->getImageType($value->getRealPath()), [1, 2, 3, 6]); + break; + case 'token': + $result = $this->token($value, '__token__', $data); + break; + default: + if (isset($this->type[$rule])) { + // 注册的验证规则 + $result = call_user_func_array($this->type[$rule], [$value]); + } elseif (function_exists('ctype_' . $rule)) { + // ctype验证规则 + $ctypeFun = 'ctype_' . $rule; + $result = $ctypeFun($value); + } elseif (isset($this->filter[$rule])) { + // Filter_var验证规则 + $result = $this->filter($value, $this->filter[$rule]); + } else { + // 正则验证 + $result = $this->regex($value, $rule); + } + } + + return $result; + } + + // 判断图像类型 + protected function getImageType($image) + { + if (function_exists('exif_imagetype')) { + return exif_imagetype($image); + } + + try { + $info = getimagesize($image); + return $info ? $info[2] : false; + } catch (\Exception $e) { + return false; + } + } + + /** + * 验证表单令牌 + * @access public + * @param mixed $value 字段值 + * @param mixed $rule 验证规则 + * @param array $data 数据 + * @return bool + */ + public function token($value, string $rule, array $data): bool + { + $rule = !empty($rule) ? $rule : '__token__'; + return $this->request->checkToken($rule, $data); + } + + /** + * 验证是否为合格的域名或者IP 支持A,MX,NS,SOA,PTR,CNAME,AAAA,A6, SRV,NAPTR,TXT 或者 ANY类型 + * @access public + * @param mixed $value 字段值 + * @param mixed $rule 验证规则 + * @return bool + */ + public function activeUrl(string $value, string $rule = 'MX'): bool + { + if (!in_array($rule, ['A', 'MX', 'NS', 'SOA', 'PTR', 'CNAME', 'AAAA', 'A6', 'SRV', 'NAPTR', 'TXT', 'ANY'])) { + $rule = 'MX'; + } + + return checkdnsrr($value, $rule); + } + + /** + * 验证是否有效IP + * @access public + * @param mixed $value 字段值 + * @param mixed $rule 验证规则 ipv4 ipv6 + * @return bool + */ + public function ip($value, string $rule = 'ipv4'): bool + { + if (!in_array($rule, ['ipv4', 'ipv6'])) { + $rule = 'ipv4'; + } + + return $this->filter($value, [FILTER_VALIDATE_IP, 'ipv6' == $rule ? FILTER_FLAG_IPV6 : FILTER_FLAG_IPV4]); + } + + /** + * 检测上传文件后缀 + * @access public + * @param File $file + * @param array|string $ext 允许后缀 + * @return bool + */ + protected function checkExt(File $file, $ext): bool + { + if (is_string($ext)) { + $ext = explode(',', $ext); + } + + return in_array(strtolower($file->extension()), $ext); + } + + /** + * 检测上传文件大小 + * @access public + * @param File $file + * @param integer $size 最大大小 + * @return bool + */ + protected function checkSize(File $file, $size): bool + { + return $file->getSize() <= (int) $size; + } + + /** + * 检测上传文件类型 + * @access public + * @param File $file + * @param array|string $mime 允许类型 + * @return bool + */ + protected function checkMime(File $file, $mime): bool + { + if (is_string($mime)) { + $mime = explode(',', $mime); + } + + return in_array(strtolower($file->getMime()), $mime); + } + + /** + * 验证上传文件后缀 + * @access public + * @param mixed $file 上传文件 + * @param mixed $rule 验证规则 + * @return bool + */ + public function fileExt($file, $rule): bool + { + if (is_array($file)) { + foreach ($file as $item) { + if (!($item instanceof File) || !$this->checkExt($item, $rule)) { + return false; + } + } + return true; + } elseif ($file instanceof File) { + return $this->checkExt($file, $rule); + } + + return false; + } + + /** + * 验证上传文件类型 + * @access public + * @param mixed $file 上传文件 + * @param mixed $rule 验证规则 + * @return bool + */ + public function fileMime($file, $rule): bool + { + if (is_array($file)) { + foreach ($file as $item) { + if (!($item instanceof File) || !$this->checkMime($item, $rule)) { + return false; + } + } + return true; + } elseif ($file instanceof File) { + return $this->checkMime($file, $rule); + } + + return false; + } + + /** + * 验证上传文件大小 + * @access public + * @param mixed $file 上传文件 + * @param mixed $rule 验证规则 + * @return bool + */ + public function fileSize($file, $rule): bool + { + if (is_array($file)) { + foreach ($file as $item) { + if (!($item instanceof File) || !$this->checkSize($item, $rule)) { + return false; + } + } + return true; + } elseif ($file instanceof File) { + return $this->checkSize($file, $rule); + } + + return false; + } + + /** + * 验证图片的宽高及类型 + * @access public + * @param mixed $file 上传文件 + * @param mixed $rule 验证规则 + * @return bool + */ + public function image($file, $rule): bool + { + if (!($file instanceof File)) { + return false; + } + + if ($rule) { + $rule = explode(',', $rule); + + [$width, $height, $type] = getimagesize($file->getRealPath()); + + if (isset($rule[2])) { + $imageType = strtolower($rule[2]); + + if ('jpg' == $imageType) { + $imageType = 'jpeg'; + } + + if (image_type_to_extension($type, false) != $imageType) { + return false; + } + } + + [$w, $h] = $rule; + + return $w == $width && $h == $height; + } + + return in_array($this->getImageType($file->getRealPath()), [1, 2, 3, 6]); + } + + /** + * 验证时间和日期是否符合指定格式 + * @access public + * @param mixed $value 字段值 + * @param mixed $rule 验证规则 + * @return bool + */ + public function dateFormat($value, $rule): bool + { + $info = date_parse_from_format($rule, $value); + return 0 == $info['warning_count'] && 0 == $info['error_count']; + } + + /** + * 验证是否唯一 + * @access public + * @param mixed $value 字段值 + * @param mixed $rule 验证规则 格式:数据表,字段名,排除ID,主键名 + * @param array $data 数据 + * @param string $field 验证字段名 + * @return bool + */ + public function unique($value, $rule, array $data = [], string $field = ''): bool + { + if (is_string($rule)) { + $rule = explode(',', $rule); + } + + if (false !== strpos($rule[0], '\\')) { + // 指定模型类 + $db = new $rule[0]; + } else { + $db = $this->db->name($rule[0]); + } + + $key = $rule[1] ?? $field; + $map = []; + + if (strpos($key, '^')) { + // 支持多个字段验证 + $fields = explode('^', $key); + foreach ($fields as $key) { + if (isset($data[$key])) { + $map[] = [$key, '=', $data[$key]]; + } + } + } elseif (isset($data[$field])) { + $map[] = [$key, '=', $data[$field]]; + } else { + $map = []; + } + + $pk = !empty($rule[3]) ? $rule[3] : $db->getPk(); + + if (is_string($pk)) { + if (isset($rule[2])) { + $map[] = [$pk, '<>', $rule[2]]; + } elseif (isset($data[$pk])) { + $map[] = [$pk, '<>', $data[$pk]]; + } + } + + if ($db->where($map)->field($pk)->find()) { + return false; + } + + return true; + } + + /** + * 使用filter_var方式验证 + * @access public + * @param mixed $value 字段值 + * @param mixed $rule 验证规则 + * @return bool + */ + public function filter($value, $rule): bool + { + if (is_string($rule) && strpos($rule, ',')) { + [$rule, $param] = explode(',', $rule); + } elseif (is_array($rule)) { + $param = $rule[1] ?? null; + $rule = $rule[0]; + } else { + $param = null; + } + + return false !== filter_var($value, is_int($rule) ? $rule : filter_id($rule), $param); + } + + /** + * 验证某个字段等于某个值的时候必须 + * @access public + * @param mixed $value 字段值 + * @param mixed $rule 验证规则 + * @param array $data 数据 + * @return bool + */ + public function requireIf($value, $rule, array $data = []): bool + { + [$field, $val] = explode(',', $rule); + + if ($this->getDataValue($data, $field) == $val) { + return !empty($value) || '0' == $value; + } + + return true; + } + + /** + * 通过回调方法验证某个字段是否必须 + * @access public + * @param mixed $value 字段值 + * @param mixed $rule 验证规则 + * @param array $data 数据 + * @return bool + */ + public function requireCallback($value, $rule, array $data = []): bool + { + $result = call_user_func_array([$this, $rule], [$value, $data]); + + if ($result) { + return !empty($value) || '0' == $value; + } + + return true; + } + + /** + * 验证某个字段有值的情况下必须 + * @access public + * @param mixed $value 字段值 + * @param mixed $rule 验证规则 + * @param array $data 数据 + * @return bool + */ + public function requireWith($value, $rule, array $data = []): bool + { + $val = $this->getDataValue($data, $rule); + + if (!empty($val)) { + return !empty($value) || '0' == $value; + } + + return true; + } + + /** + * 验证某个字段没有值的情况下必须 + * @access public + * @param mixed $value 字段值 + * @param mixed $rule 验证规则 + * @param array $data 数据 + * @return bool + */ + public function requireWithout($value, $rule, array $data = []): bool + { + $val = $this->getDataValue($data, $rule); + + if (empty($val)) { + return !empty($value) || '0' == $value; + } + + return true; + } + + /** + * 验证是否在范围内 + * @access public + * @param mixed $value 字段值 + * @param mixed $rule 验证规则 + * @return bool + */ + public function in($value, $rule): bool + { + return in_array($value, is_array($rule) ? $rule : explode(',', $rule)); + } + + /** + * 验证是否不在某个范围 + * @access public + * @param mixed $value 字段值 + * @param mixed $rule 验证规则 + * @return bool + */ + public function notIn($value, $rule): bool + { + return !in_array($value, is_array($rule) ? $rule : explode(',', $rule)); + } + + /** + * between验证数据 + * @access public + * @param mixed $value 字段值 + * @param mixed $rule 验证规则 + * @return bool + */ + public function between($value, $rule): bool + { + if (is_string($rule)) { + $rule = explode(',', $rule); + } + [$min, $max] = $rule; + + return $value >= $min && $value <= $max; + } + + /** + * 使用notbetween验证数据 + * @access public + * @param mixed $value 字段值 + * @param mixed $rule 验证规则 + * @return bool + */ + public function notBetween($value, $rule): bool + { + if (is_string($rule)) { + $rule = explode(',', $rule); + } + [$min, $max] = $rule; + + return $value < $min || $value > $max; + } + + /** + * 验证数据长度 + * @access public + * @param mixed $value 字段值 + * @param mixed $rule 验证规则 + * @return bool + */ + public function length($value, $rule): bool + { + if (is_array($value)) { + $length = count($value); + } elseif ($value instanceof File) { + $length = $value->getSize(); + } else { + $length = mb_strlen((string) $value); + } + + if (is_string($rule) && strpos($rule, ',')) { + // 长度区间 + [$min, $max] = explode(',', $rule); + return $length >= $min && $length <= $max; + } + + // 指定长度 + return $length == $rule; + } + + /** + * 验证数据最大长度 + * @access public + * @param mixed $value 字段值 + * @param mixed $rule 验证规则 + * @return bool + */ + public function max($value, $rule): bool + { + if (is_array($value)) { + $length = count($value); + } elseif ($value instanceof File) { + $length = $value->getSize(); + } else { + $length = mb_strlen((string) $value); + } + + return $length <= $rule; + } + + /** + * 验证数据最小长度 + * @access public + * @param mixed $value 字段值 + * @param mixed $rule 验证规则 + * @return bool + */ + public function min($value, $rule): bool + { + if (is_array($value)) { + $length = count($value); + } elseif ($value instanceof File) { + $length = $value->getSize(); + } else { + $length = mb_strlen((string) $value); + } + + return $length >= $rule; + } + + /** + * 验证日期 + * @access public + * @param mixed $value 字段值 + * @param mixed $rule 验证规则 + * @param array $data 数据 + * @return bool + */ + public function after($value, $rule, array $data = []): bool + { + return strtotime($value) >= strtotime($rule); + } + + /** + * 验证日期 + * @access public + * @param mixed $value 字段值 + * @param mixed $rule 验证规则 + * @param array $data 数据 + * @return bool + */ + public function before($value, $rule, array $data = []): bool + { + return strtotime($value) <= strtotime($rule); + } + + /** + * 验证日期 + * @access public + * @param mixed $value 字段值 + * @param mixed $rule 验证规则 + * @param array $data 数据 + * @return bool + */ + public function afterWith($value, $rule, array $data = []): bool + { + $rule = $this->getDataValue($data, $rule); + return !is_null($rule) && strtotime($value) >= strtotime($rule); + } + + /** + * 验证日期 + * @access public + * @param mixed $value 字段值 + * @param mixed $rule 验证规则 + * @param array $data 数据 + * @return bool + */ + public function beforeWith($value, $rule, array $data = []): bool + { + $rule = $this->getDataValue($data, $rule); + return !is_null($rule) && strtotime($value) <= strtotime($rule); + } + + /** + * 验证有效期 + * @access public + * @param mixed $value 字段值 + * @param mixed $rule 验证规则 + * @return bool + */ + public function expire($value, $rule): bool + { + if (is_string($rule)) { + $rule = explode(',', $rule); + } + + [$start, $end] = $rule; + + if (!is_numeric($start)) { + $start = strtotime($start); + } + + if (!is_numeric($end)) { + $end = strtotime($end); + } + + return time() >= $start && time() <= $end; + } + + /** + * 验证IP许可 + * @access public + * @param mixed $value 字段值 + * @param mixed $rule 验证规则 + * @return bool + */ + public function allowIp($value, $rule): bool + { + return in_array($value, is_array($rule) ? $rule : explode(',', $rule)); + } + + /** + * 验证IP禁用 + * @access public + * @param mixed $value 字段值 + * @param mixed $rule 验证规则 + * @return bool + */ + public function denyIp($value, $rule): bool + { + return !in_array($value, is_array($rule) ? $rule : explode(',', $rule)); + } + + /** + * 使用正则验证数据 + * @access public + * @param mixed $value 字段值 + * @param mixed $rule 验证规则 正则规则或者预定义正则名 + * @return bool + */ + public function regex($value, $rule): bool + { + if (isset($this->regex[$rule])) { + $rule = $this->regex[$rule]; + } elseif (isset($this->defaultRegex[$rule])) { + $rule = $this->defaultRegex[$rule]; + } + + if (is_string($rule) && 0 !== strpos($rule, '/') && !preg_match('/\/[imsU]{0,4}$/', $rule)) { + // 不是正则表达式则两端补上/ + $rule = '/^' . $rule . '$/'; + } + + return is_scalar($value) && 1 === preg_match($rule, (string) $value); + } + + /** + * 获取错误信息 + * @return array|string + */ + public function getError() + { + return $this->error; + } + + /** + * 获取数据值 + * @access protected + * @param array $data 数据 + * @param string $key 数据标识 支持二维 + * @return mixed + */ + protected function getDataValue(array $data, $key) + { + if (is_numeric($key)) { + $value = $key; + } elseif (is_string($key) && strpos($key, '.')) { + // 支持多维数组验证 + foreach (explode('.', $key) as $key) { + if (!isset($data[$key])) { + $value = null; + break; + } + $value = $data = $data[$key]; + } + } else { + $value = $data[$key] ?? null; + } + + return $value; + } + + /** + * 获取验证规则的错误提示信息 + * @access protected + * @param string $attribute 字段英文名 + * @param string $title 字段描述名 + * @param string $type 验证规则名称 + * @param mixed $rule 验证规则数据 + * @return string|array + */ + protected function getRuleMsg(string $attribute, string $title, string $type, $rule) + { + if (isset($this->message[$attribute . '.' . $type])) { + $msg = $this->message[$attribute . '.' . $type]; + } elseif (isset($this->message[$attribute][$type])) { + $msg = $this->message[$attribute][$type]; + } elseif (isset($this->message[$attribute])) { + $msg = $this->message[$attribute]; + } elseif (isset($this->typeMsg[$type])) { + $msg = $this->typeMsg[$type]; + } elseif (0 === strpos($type, 'require')) { + $msg = $this->typeMsg['require']; + } else { + $msg = $title . $this->lang->get('not conform to the rules'); + } + + if (is_array($msg)) { + return $this->errorMsgIsArray($msg, $rule, $title); + } + + return $this->parseErrorMsg($msg, $rule, $title); + } + + /** + * 获取验证规则的错误提示信息 + * @access protected + * @param string $msg 错误信息 + * @param mixed $rule 验证规则数据 + * @param string $title 字段描述名 + * @return string + */ + protected function parseErrorMsg(string $msg, $rule, string $title) + { + if (0 === strpos($msg, '{%')) { + $msg = $this->lang->get(substr($msg, 2, -1)); + } elseif ($this->lang->has($msg)) { + $msg = $this->lang->get($msg); + } + + if (is_array($msg)) { + return $this->errorMsgIsArray($msg, $rule, $title); + } + + if (is_scalar($rule) && false !== strpos($msg, ':')) { + // 变量替换 + if (is_string($rule) && strpos($rule, ',')) { + $array = array_pad(explode(',', $rule), 3, ''); + } else { + $array = array_pad([], 3, ''); + } + + $msg = str_replace( + [':attribute', ':1', ':2', ':3'], + [$title, $array[0], $array[1], $array[2]], + $msg); + + if (strpos($msg, ':rule')) { + $msg = str_replace(':rule', (string) $rule, $msg); + } + } + + return $msg; + } + + /** + * 错误信息数组处理 + * @access protected + * @param array $msg 错误信息 + * @param mixed $rule 验证规则数据 + * @param string $title 字段描述名 + * @return array + */ + protected function errorMsgIsArray(array $msg, $rule, string $title) + { + foreach ($msg as $key => $val) { + if (is_string($val)) { + $msg[$key] = $this->parseErrorMsg($val, $rule, $title); + } + } + return $msg; + } + + /** + * 获取数据验证的场景 + * @access protected + * @param string $scene 验证场景 + * @return void + */ + protected function getScene(string $scene): void + { + $this->only = $this->append = $this->remove = []; + + if (method_exists($this, 'scene' . $scene)) { + call_user_func([$this, 'scene' . $scene]); + } elseif (isset($this->scene[$scene])) { + // 如果设置了验证适用场景 + $this->only = $this->scene[$scene]; + } + } + + /** + * 动态方法 直接调用is方法进行验证 + * @access public + * @param string $method 方法名 + * @param array $args 调用参数 + * @return bool + */ + public function __call($method, $args) + { + if ('is' == strtolower(substr($method, 0, 2))) { + $method = substr($method, 2); + } + + array_push($args, lcfirst($method)); + + return call_user_func_array([$this, 'is'], $args); + } +} diff --git a/vendor/topthink/framework/src/think/View.php b/vendor/topthink/framework/src/think/View.php new file mode 100644 index 0000000..c2e7368 --- /dev/null +++ b/vendor/topthink/framework/src/think/View.php @@ -0,0 +1,187 @@ + +// +---------------------------------------------------------------------- +declare (strict_types = 1); + +namespace think; + +use think\helper\Arr; + +/** + * 视图类 + * @package think + */ +class View extends Manager +{ + + protected $namespace = '\\think\\view\\driver\\'; + + /** + * 模板变量 + * @var array + */ + protected $data = []; + + /** + * 内容过滤 + * @var mixed + */ + protected $filter; + + /** + * 获取模板引擎 + * @access public + * @param string $type 模板引擎类型 + * @return $this + */ + public function engine(string $type = null) + { + return $this->driver($type); + } + + /** + * 模板变量赋值 + * @access public + * @param string|array $name 模板变量 + * @param mixed $value 变量值 + * @return $this + */ + public function assign($name, $value = null) + { + if (is_array($name)) { + $this->data = array_merge($this->data, $name); + } else { + $this->data[$name] = $value; + } + + return $this; + } + + /** + * 视图过滤 + * @access public + * @param Callable $filter 过滤方法或闭包 + * @return $this + */ + public function filter(callable $filter = null) + { + $this->filter = $filter; + return $this; + } + + /** + * 解析和获取模板内容 用于输出 + * @access public + * @param string $template 模板文件名或者内容 + * @param array $vars 模板变量 + * @return string + * @throws \Exception + */ + public function fetch(string $template = '', array $vars = []): string + { + return $this->getContent(function () use ($vars, $template) { + $this->engine()->fetch($template, array_merge($this->data, $vars)); + }); + } + + /** + * 渲染内容输出 + * @access public + * @param string $content 内容 + * @param array $vars 模板变量 + * @return string + */ + public function display(string $content, array $vars = []): string + { + return $this->getContent(function () use ($vars, $content) { + $this->engine()->display($content, array_merge($this->data, $vars)); + }); + } + + /** + * 获取模板引擎渲染内容 + * @param $callback + * @return string + * @throws \Exception + */ + protected function getContent($callback): string + { + // 页面缓存 + ob_start(); + ob_implicit_flush(0); + + // 渲染输出 + try { + $callback(); + } catch (\Exception $e) { + ob_end_clean(); + throw $e; + } + + // 获取并清空缓存 + $content = ob_get_clean(); + + if ($this->filter) { + $content = call_user_func_array($this->filter, [$content]); + } + + return $content; + } + + /** + * 模板变量赋值 + * @access public + * @param string $name 变量名 + * @param mixed $value 变量值 + */ + public function __set($name, $value) + { + $this->data[$name] = $value; + } + + /** + * 取得模板显示变量的值 + * @access protected + * @param string $name 模板变量 + * @return mixed + */ + public function __get($name) + { + return $this->data[$name]; + } + + /** + * 检测模板变量是否设置 + * @access public + * @param string $name 模板变量名 + * @return bool + */ + public function __isset($name) + { + return isset($this->data[$name]); + } + + protected function resolveConfig(string $name) + { + $config = $this->app->config->get('view', []); + Arr::forget($config, 'type'); + return $config; + } + + /** + * 默认驱动 + * @return string|null + */ + public function getDefaultDriver() + { + return $this->app->config->get('view.type', 'php'); + } + +} diff --git a/vendor/topthink/framework/src/think/cache/Driver.php b/vendor/topthink/framework/src/think/cache/Driver.php new file mode 100644 index 0000000..f4198b4 --- /dev/null +++ b/vendor/topthink/framework/src/think/cache/Driver.php @@ -0,0 +1,347 @@ + +// +---------------------------------------------------------------------- +declare (strict_types = 1); + +namespace think\cache; + +use Closure; +use DateInterval; +use DateTime; +use DateTimeInterface; +use Exception; +use Psr\SimpleCache\CacheInterface; +use think\Container; +use think\contract\CacheHandlerInterface; +use think\exception\InvalidArgumentException; +use throwable; + +/** + * 缓存基础类 + */ +abstract class Driver implements CacheInterface, CacheHandlerInterface +{ + /** + * 驱动句柄 + * @var object + */ + protected $handler = null; + + /** + * 缓存读取次数 + * @var integer + */ + protected $readTimes = 0; + + /** + * 缓存写入次数 + * @var integer + */ + protected $writeTimes = 0; + + /** + * 缓存参数 + * @var array + */ + protected $options = []; + + /** + * 缓存标签 + * @var array + */ + protected $tag = []; + + /** + * 获取有效期 + * @access protected + * @param integer|DateTimeInterface|DateInterval $expire 有效期 + * @return int + */ + protected function getExpireTime($expire): int + { + if ($expire instanceof DateTimeInterface) { + $expire = $expire->getTimestamp() - time(); + } elseif ($expire instanceof DateInterval) { + $expire = DateTime::createFromFormat('U', (string) time()) + ->add($expire) + ->format('U') - time(); + } + + return (int) $expire; + } + + /** + * 获取实际的缓存标识 + * @access public + * @param string $name 缓存名 + * @return string + */ + public function getCacheKey(string $name): string + { + return $this->options['prefix'] . $name; + } + + /** + * 读取缓存并删除 + * @access public + * @param string $name 缓存变量名 + * @return mixed + */ + public function pull(string $name) + { + $result = $this->get($name, false); + + if ($result) { + $this->delete($name); + return $result; + } + } + + /** + * 追加(数组)缓存 + * @access public + * @param string $name 缓存变量名 + * @param mixed $value 存储数据 + * @return void + */ + public function push(string $name, $value): void + { + $item = $this->get($name, []); + + if (!is_array($item)) { + throw new InvalidArgumentException('only array cache can be push'); + } + + $item[] = $value; + + if (count($item) > 1000) { + array_shift($item); + } + + $item = array_unique($item); + + $this->set($name, $item); + } + + /** + * 如果不存在则写入缓存 + * @access public + * @param string $name 缓存变量名 + * @param mixed $value 存储数据 + * @param int $expire 有效时间 0为永久 + * @return mixed + */ + public function remember(string $name, $value, $expire = null) + { + if ($this->has($name)) { + return $this->get($name); + } + + $time = time(); + + while ($time + 5 > time() && $this->has($name . '_lock')) { + // 存在锁定则等待 + usleep(200000); + } + + try { + // 锁定 + $this->set($name . '_lock', true); + + if ($value instanceof Closure) { + // 获取缓存数据 + $value = Container::getInstance()->invokeFunction($value); + } + + // 缓存数据 + $this->set($name, $value, $expire); + + // 解锁 + $this->delete($name . '_lock'); + } catch (Exception | throwable $e) { + $this->delete($name . '_lock'); + throw $e; + } + + return $value; + } + + /** + * 缓存标签 + * @access public + * @param string|array $name 标签名 + * @return TagSet + */ + public function tag($name): TagSet + { + $name = (array) $name; + $key = implode('-', $name); + + if (!isset($this->tag[$key])) { + $name = array_map(function ($val) { + return $this->getTagKey($val); + }, $name); + $this->tag[$key] = new TagSet($name, $this); + } + + return $this->tag[$key]; + } + + /** + * 获取标签包含的缓存标识 + * @access public + * @param string $tag 标签标识 + * @return array + */ + public function getTagItems(string $tag): array + { + return $this->get($tag, []); + } + + /** + * 获取实际标签名 + * @access public + * @param string $tag 标签名 + * @return string + */ + public function getTagKey(string $tag): string + { + return $this->options['tag_prefix'] . md5($tag); + } + + /** + * 序列化数据 + * @access protected + * @param mixed $data 缓存数据 + * @return string + */ + protected function serialize($data): string + { + if (is_numeric($data)) { + return (string) $data; + } + + $serialize = $this->options['serialize'][0] ?? "serialize"; + + return $serialize($data); + } + + /** + * 反序列化数据 + * @access protected + * @param string $data 缓存数据 + * @return mixed + */ + protected function unserialize(string $data) + { + if (is_numeric($data)) { + return $data; + } + + $unserialize = $this->options['serialize'][1] ?? "unserialize"; + + return $unserialize($data); + } + + /** + * 返回句柄对象,可执行其它高级方法 + * + * @access public + * @return object + */ + public function handler() + { + return $this->handler; + } + + /** + * 返回缓存读取次数 + * @access public + * @return int + */ + public function getReadTimes(): int + { + return $this->readTimes; + } + + /** + * 返回缓存写入次数 + * @access public + * @return int + */ + public function getWriteTimes(): int + { + return $this->writeTimes; + } + + /** + * 读取缓存 + * @access public + * @param iterable $keys 缓存变量名 + * @param mixed $default 默认值 + * @return iterable + * @throws InvalidArgumentException + */ + public function getMultiple($keys, $default = null): iterable + { + $result = []; + + foreach ($keys as $key) { + $result[$key] = $this->get($key, $default); + } + + return $result; + } + + /** + * 写入缓存 + * @access public + * @param iterable $values 缓存数据 + * @param null|int|\DateInterval $ttl 有效时间 0为永久 + * @return bool + */ + public function setMultiple($values, $ttl = null): bool + { + foreach ($values as $key => $val) { + $result = $this->set($key, $val, $ttl); + + if (false === $result) { + return false; + } + } + + return true; + } + + /** + * 删除缓存 + * @access public + * @param iterable $keys 缓存变量名 + * @return bool + * @throws InvalidArgumentException + */ + public function deleteMultiple($keys): bool + { + foreach ($keys as $key) { + $result = $this->delete($key); + + if (false === $result) { + return false; + } + } + + return true; + } + + public function __call($method, $args) + { + return call_user_func_array([$this->handler, $method], $args); + } +} diff --git a/vendor/topthink/framework/src/think/cache/TagSet.php b/vendor/topthink/framework/src/think/cache/TagSet.php new file mode 100644 index 0000000..d890c49 --- /dev/null +++ b/vendor/topthink/framework/src/think/cache/TagSet.php @@ -0,0 +1,130 @@ + +// +---------------------------------------------------------------------- +declare (strict_types = 1); + +namespace think\cache; + +/** + * 标签集合 + */ +class TagSet +{ + /** + * 标签的缓存Key + * @var array + */ + protected $tag; + + /** + * 缓存句柄 + * @var Driver + */ + protected $handler; + + /** + * 架构函数 + * @access public + * @param array $tag 缓存标签 + * @param Driver $cache 缓存对象 + */ + public function __construct(array $tag, Driver $cache) + { + $this->tag = $tag; + $this->handler = $cache; + } + + /** + * 写入缓存 + * @access public + * @param string $name 缓存变量名 + * @param mixed $value 存储数据 + * @param integer|\DateTime $expire 有效时间(秒) + * @return bool + */ + public function set(string $name, $value, $expire = null): bool + { + $this->handler->set($name, $value, $expire); + + $this->append($name); + + return true; + } + + /** + * 追加缓存标识到标签 + * @access public + * @param string $name 缓存变量名 + * @return void + */ + public function append(string $name): void + { + $name = $this->handler->getCacheKey($name); + + foreach ($this->tag as $tag) { + $this->handler->push($tag, $name); + } + } + + /** + * 写入缓存 + * @access public + * @param iterable $values 缓存数据 + * @param null|int|\DateInterval $ttl 有效时间 0为永久 + * @return bool + */ + public function setMultiple($values, $ttl = null): bool + { + foreach ($values as $key => $val) { + $result = $this->set($key, $val, $ttl); + + if (false === $result) { + return false; + } + } + + return true; + } + + /** + * 如果不存在则写入缓存 + * @access public + * @param string $name 缓存变量名 + * @param mixed $value 存储数据 + * @param int $expire 有效时间 0为永久 + * @return mixed + */ + public function remember(string $name, $value, $expire = null) + { + $result = $this->handler->remember($name, $value, $expire); + + $this->append($name); + + return $result; + } + + /** + * 清除缓存 + * @access public + * @return bool + */ + public function clear(): bool + { + // 指定标签清除 + foreach ($this->tag as $tag) { + $names = $this->handler->getTagItems($tag); + + $this->handler->clearTag($names); + $this->handler->delete($tag); + } + + return true; + } +} diff --git a/vendor/topthink/framework/src/think/cache/driver/File.php b/vendor/topthink/framework/src/think/cache/driver/File.php new file mode 100644 index 0000000..f0122f5 --- /dev/null +++ b/vendor/topthink/framework/src/think/cache/driver/File.php @@ -0,0 +1,304 @@ + +// +---------------------------------------------------------------------- +declare (strict_types = 1); + +namespace think\cache\driver; + +use FilesystemIterator; +use think\App; +use think\cache\Driver; + +/** + * 文件缓存类 + */ +class File extends Driver +{ + /** + * 配置参数 + * @var array + */ + protected $options = [ + 'expire' => 0, + 'cache_subdir' => true, + 'prefix' => '', + 'path' => '', + 'hash_type' => 'md5', + 'data_compress' => false, + 'tag_prefix' => 'tag:', + 'serialize' => [], + ]; + + /** + * 架构函数 + * @param App $app + * @param array $options 参数 + */ + public function __construct(App $app, array $options = []) + { + if (!empty($options)) { + $this->options = array_merge($this->options, $options); + } + + if (empty($this->options['path'])) { + $this->options['path'] = $app->getRuntimePath() . 'cache'; + } + + if (substr($this->options['path'], -1) != DIRECTORY_SEPARATOR) { + $this->options['path'] .= DIRECTORY_SEPARATOR; + } + } + + /** + * 取得变量的存储文件名 + * @access public + * @param string $name 缓存变量名 + * @return string + */ + public function getCacheKey(string $name): string + { + $name = hash($this->options['hash_type'], $name); + + if ($this->options['cache_subdir']) { + // 使用子目录 + $name = substr($name, 0, 2) . DIRECTORY_SEPARATOR . substr($name, 2); + } + + if ($this->options['prefix']) { + $name = $this->options['prefix'] . DIRECTORY_SEPARATOR . $name; + } + + return $this->options['path'] . $name . '.php'; + } + + /** + * 获取缓存数据 + * @param string $name 缓存标识名 + * @return array|null + */ + protected function getRaw(string $name) + { + $filename = $this->getCacheKey($name); + + if (!is_file($filename)) { + return; + } + + $content = @file_get_contents($filename); + + if (false !== $content) { + $expire = (int) substr($content, 8, 12); + if (0 != $expire && time() - $expire > filemtime($filename)) { + //缓存过期删除缓存文件 + $this->unlink($filename); + return; + } + + $content = substr($content, 32); + + if ($this->options['data_compress'] && function_exists('gzcompress')) { + //启用数据压缩 + $content = gzuncompress($content); + } + + return ['content' => $content, 'expire' => $expire]; + } + } + + /** + * 判断缓存是否存在 + * @access public + * @param string $name 缓存变量名 + * @return bool + */ + public function has($name): bool + { + return $this->getRaw($name) !== null; + } + + /** + * 读取缓存 + * @access public + * @param string $name 缓存变量名 + * @param mixed $default 默认值 + * @return mixed + */ + public function get($name, $default = null) + { + $this->readTimes++; + + $raw = $this->getRaw($name); + + return is_null($raw) ? $default : $this->unserialize($raw['content']); + } + + /** + * 写入缓存 + * @access public + * @param string $name 缓存变量名 + * @param mixed $value 存储数据 + * @param int|\DateTime $expire 有效时间 0为永久 + * @return bool + */ + public function set($name, $value, $expire = null): bool + { + $this->writeTimes++; + + if (is_null($expire)) { + $expire = $this->options['expire']; + } + + $expire = $this->getExpireTime($expire); + $filename = $this->getCacheKey($name); + + $dir = dirname($filename); + + if (!is_dir($dir)) { + try { + mkdir($dir, 0755, true); + } catch (\Exception $e) { + // 创建失败 + } + } + + $data = $this->serialize($value); + + if ($this->options['data_compress'] && function_exists('gzcompress')) { + //数据压缩 + $data = gzcompress($data, 3); + } + + $data = "\n" . $data; + $result = file_put_contents($filename, $data); + + if ($result) { + clearstatcache(); + return true; + } + + return false; + } + + /** + * 自增缓存(针对数值缓存) + * @access public + * @param string $name 缓存变量名 + * @param int $step 步长 + * @return false|int + */ + public function inc(string $name, int $step = 1) + { + if ($raw = $this->getRaw($name)) { + $value = $this->unserialize($raw['content']) + $step; + $expire = $raw['expire']; + } else { + $value = $step; + $expire = 0; + } + + return $this->set($name, $value, $expire) ? $value : false; + } + + /** + * 自减缓存(针对数值缓存) + * @access public + * @param string $name 缓存变量名 + * @param int $step 步长 + * @return false|int + */ + public function dec(string $name, int $step = 1) + { + return $this->inc($name, -$step); + } + + /** + * 删除缓存 + * @access public + * @param string $name 缓存变量名 + * @return bool + */ + public function delete($name): bool + { + $this->writeTimes++; + + return $this->unlink($this->getCacheKey($name)); + } + + /** + * 清除缓存 + * @access public + * @return bool + */ + public function clear(): bool + { + $this->writeTimes++; + + $dirname = $this->options['path'] . $this->options['prefix']; + + $this->rmdir($dirname); + + return true; + } + + /** + * 删除缓存标签 + * @access public + * @param array $keys 缓存标识列表 + * @return void + */ + public function clearTag(array $keys): void + { + foreach ($keys as $key) { + $this->unlink($key); + } + } + + /** + * 判断文件是否存在后,删除 + * @access private + * @param string $path + * @return bool + */ + private function unlink(string $path): bool + { + try { + return is_file($path) && unlink($path); + } catch (\Exception $e) { + return false; + } + } + + /** + * 删除文件夹 + * @param $dirname + * @return bool + */ + private function rmdir($dirname) + { + if (!is_dir($dirname)) { + return false; + } + + $items = new FilesystemIterator($dirname); + + foreach ($items as $item) { + if ($item->isDir() && !$item->isLink()) { + $this->rmdir($item->getPathname()); + } else { + $this->unlink($item->getPathname()); + } + } + + @rmdir($dirname); + + return true; + } + +} diff --git a/vendor/topthink/framework/src/think/cache/driver/Memcache.php b/vendor/topthink/framework/src/think/cache/driver/Memcache.php new file mode 100644 index 0000000..81b988f --- /dev/null +++ b/vendor/topthink/framework/src/think/cache/driver/Memcache.php @@ -0,0 +1,209 @@ + +// +---------------------------------------------------------------------- +declare (strict_types = 1); + +namespace think\cache\driver; + +use think\cache\Driver; + +/** + * Memcache缓存类 + */ +class Memcache extends Driver +{ + /** + * 配置参数 + * @var array + */ + protected $options = [ + 'host' => '127.0.0.1', + 'port' => 11211, + 'expire' => 0, + 'timeout' => 0, // 超时时间(单位:毫秒) + 'persistent' => true, + 'prefix' => '', + 'tag_prefix' => 'tag:', + 'serialize' => [], + ]; + + /** + * 架构函数 + * @access public + * @param array $options 缓存参数 + * @throws \BadFunctionCallException + */ + public function __construct(array $options = []) + { + if (!extension_loaded('memcache')) { + throw new \BadFunctionCallException('not support: memcache'); + } + + if (!empty($options)) { + $this->options = array_merge($this->options, $options); + } + + $this->handler = new \Memcache; + + // 支持集群 + $hosts = (array) $this->options['host']; + $ports = (array) $this->options['port']; + + if (empty($ports[0])) { + $ports[0] = 11211; + } + + // 建立连接 + foreach ($hosts as $i => $host) { + $port = $ports[$i] ?? $ports[0]; + $this->options['timeout'] > 0 ? + $this->handler->addServer($host, (int) $port, $this->options['persistent'], 1, (int) $this->options['timeout']) : + $this->handler->addServer($host, (int) $port, $this->options['persistent'], 1); + } + } + + /** + * 判断缓存 + * @access public + * @param string $name 缓存变量名 + * @return bool + */ + public function has($name): bool + { + $key = $this->getCacheKey($name); + + return false !== $this->handler->get($key); + } + + /** + * 读取缓存 + * @access public + * @param string $name 缓存变量名 + * @param mixed $default 默认值 + * @return mixed + */ + public function get($name, $default = null) + { + $this->readTimes++; + + $result = $this->handler->get($this->getCacheKey($name)); + + return false !== $result ? $this->unserialize($result) : $default; + } + + /** + * 写入缓存 + * @access public + * @param string $name 缓存变量名 + * @param mixed $value 存储数据 + * @param int|\DateTime $expire 有效时间(秒) + * @return bool + */ + public function set($name, $value, $expire = null): bool + { + $this->writeTimes++; + + if (is_null($expire)) { + $expire = $this->options['expire']; + } + + $key = $this->getCacheKey($name); + $expire = $this->getExpireTime($expire); + $value = $this->serialize($value); + + if ($this->handler->set($key, $value, 0, $expire)) { + return true; + } + + return false; + } + + /** + * 自增缓存(针对数值缓存) + * @access public + * @param string $name 缓存变量名 + * @param int $step 步长 + * @return false|int + */ + public function inc(string $name, int $step = 1) + { + $this->writeTimes++; + + $key = $this->getCacheKey($name); + + if ($this->handler->get($key)) { + return $this->handler->increment($key, $step); + } + + return $this->handler->set($key, $step); + } + + /** + * 自减缓存(针对数值缓存) + * @access public + * @param string $name 缓存变量名 + * @param int $step 步长 + * @return false|int + */ + public function dec(string $name, int $step = 1) + { + $this->writeTimes++; + + $key = $this->getCacheKey($name); + $value = $this->handler->get($key) - $step; + $res = $this->handler->set($key, $value); + + return !$res ? false : $value; + } + + /** + * 删除缓存 + * @access public + * @param string $name 缓存变量名 + * @param bool|false $ttl + * @return bool + */ + public function delete($name, $ttl = false): bool + { + $this->writeTimes++; + + $key = $this->getCacheKey($name); + + return false === $ttl ? + $this->handler->delete($key) : + $this->handler->delete($key, $ttl); + } + + /** + * 清除缓存 + * @access public + * @return bool + */ + public function clear(): bool + { + $this->writeTimes++; + + return $this->handler->flush(); + } + + /** + * 删除缓存标签 + * @access public + * @param array $keys 缓存标识列表 + * @return void + */ + public function clearTag(array $keys): void + { + foreach ($keys as $key) { + $this->handler->delete($key); + } + } + +} diff --git a/vendor/topthink/framework/src/think/cache/driver/Memcached.php b/vendor/topthink/framework/src/think/cache/driver/Memcached.php new file mode 100644 index 0000000..e6c5606 --- /dev/null +++ b/vendor/topthink/framework/src/think/cache/driver/Memcached.php @@ -0,0 +1,221 @@ + +// +---------------------------------------------------------------------- +declare (strict_types = 1); + +namespace think\cache\driver; + +use think\cache\Driver; + +/** + * Memcached缓存类 + */ +class Memcached extends Driver +{ + /** + * 配置参数 + * @var array + */ + protected $options = [ + 'host' => '127.0.0.1', + 'port' => 11211, + 'expire' => 0, + 'timeout' => 0, // 超时时间(单位:毫秒) + 'prefix' => '', + 'username' => '', //账号 + 'password' => '', //密码 + 'option' => [], + 'tag_prefix' => 'tag:', + 'serialize' => [], + ]; + + /** + * 架构函数 + * @access public + * @param array $options 缓存参数 + */ + public function __construct(array $options = []) + { + if (!extension_loaded('memcached')) { + throw new \BadFunctionCallException('not support: memcached'); + } + + if (!empty($options)) { + $this->options = array_merge($this->options, $options); + } + + $this->handler = new \Memcached; + + if (!empty($this->options['option'])) { + $this->handler->setOptions($this->options['option']); + } + + // 设置连接超时时间(单位:毫秒) + if ($this->options['timeout'] > 0) { + $this->handler->setOption(\Memcached::OPT_CONNECT_TIMEOUT, $this->options['timeout']); + } + + // 支持集群 + $hosts = (array) $this->options['host']; + $ports = (array) $this->options['port']; + if (empty($ports[0])) { + $ports[0] = 11211; + } + + // 建立连接 + $servers = []; + foreach ($hosts as $i => $host) { + $servers[] = [$host, $ports[$i] ?? $ports[0], 1]; + } + + $this->handler->addServers($servers); + + if ('' != $this->options['username']) { + $this->handler->setOption(\Memcached::OPT_BINARY_PROTOCOL, true); + $this->handler->setSaslAuthData($this->options['username'], $this->options['password']); + } + } + + /** + * 判断缓存 + * @access public + * @param string $name 缓存变量名 + * @return bool + */ + public function has($name): bool + { + $key = $this->getCacheKey($name); + + return $this->handler->get($key) ? true : false; + } + + /** + * 读取缓存 + * @access public + * @param string $name 缓存变量名 + * @param mixed $default 默认值 + * @return mixed + */ + public function get($name, $default = null) + { + $this->readTimes++; + + $result = $this->handler->get($this->getCacheKey($name)); + + return false !== $result ? $this->unserialize($result) : $default; + } + + /** + * 写入缓存 + * @access public + * @param string $name 缓存变量名 + * @param mixed $value 存储数据 + * @param integer|\DateTime $expire 有效时间(秒) + * @return bool + */ + public function set($name, $value, $expire = null): bool + { + $this->writeTimes++; + + if (is_null($expire)) { + $expire = $this->options['expire']; + } + + $key = $this->getCacheKey($name); + $expire = $this->getExpireTime($expire); + $value = $this->serialize($value); + + if ($this->handler->set($key, $value, $expire)) { + return true; + } + + return false; + } + + /** + * 自增缓存(针对数值缓存) + * @access public + * @param string $name 缓存变量名 + * @param int $step 步长 + * @return false|int + */ + public function inc(string $name, int $step = 1) + { + $this->writeTimes++; + + $key = $this->getCacheKey($name); + + if ($this->handler->get($key)) { + return $this->handler->increment($key, $step); + } + + return $this->handler->set($key, $step); + } + + /** + * 自减缓存(针对数值缓存) + * @access public + * @param string $name 缓存变量名 + * @param int $step 步长 + * @return false|int + */ + public function dec(string $name, int $step = 1) + { + $this->writeTimes++; + + $key = $this->getCacheKey($name); + $value = $this->handler->get($key) - $step; + $res = $this->handler->set($key, $value); + + return !$res ? false : $value; + } + + /** + * 删除缓存 + * @access public + * @param string $name 缓存变量名 + * @param bool|false $ttl + * @return bool + */ + public function delete($name, $ttl = false): bool + { + $this->writeTimes++; + + $key = $this->getCacheKey($name); + + return false === $ttl ? + $this->handler->delete($key) : + $this->handler->delete($key, $ttl); + } + + /** + * 清除缓存 + * @access public + * @return bool + */ + public function clear(): bool + { + $this->writeTimes++; + + return $this->handler->flush(); + } + + /** + * 删除缓存标签 + * @access public + * @param array $keys 缓存标识列表 + * @return void + */ + public function clearTag(array $keys): void + { + $this->handler->deleteMulti($keys); + } + +} diff --git a/vendor/topthink/framework/src/think/cache/driver/Redis.php b/vendor/topthink/framework/src/think/cache/driver/Redis.php new file mode 100644 index 0000000..487f66b --- /dev/null +++ b/vendor/topthink/framework/src/think/cache/driver/Redis.php @@ -0,0 +1,248 @@ + +// +---------------------------------------------------------------------- +declare (strict_types = 1); + +namespace think\cache\driver; + +use think\cache\Driver; + +/** + * Redis缓存驱动,适合单机部署、有前端代理实现高可用的场景,性能最好 + * 有需要在业务层实现读写分离、或者使用RedisCluster的需求,请使用Redisd驱动 + * + * 要求安装phpredis扩展:https://github.com/nicolasff/phpredis + * @author 尘缘 <130775@qq.com> + */ +class Redis extends Driver +{ + /** @var \Predis\Client|\Redis */ + protected $handler; + + /** + * 配置参数 + * @var array + */ + protected $options = [ + 'host' => '127.0.0.1', + 'port' => 6379, + 'password' => '', + 'select' => 0, + 'timeout' => 0, + 'expire' => 0, + 'persistent' => false, + 'prefix' => '', + 'tag_prefix' => 'tag:', + 'serialize' => [], + ]; + + /** + * 架构函数 + * @access public + * @param array $options 缓存参数 + */ + public function __construct(array $options = []) + { + if (!empty($options)) { + $this->options = array_merge($this->options, $options); + } + + if (extension_loaded('redis')) { + $this->handler = new \Redis; + + if ($this->options['persistent']) { + $this->handler->pconnect($this->options['host'], (int) $this->options['port'], (int) $this->options['timeout'], 'persistent_id_' . $this->options['select']); + } else { + $this->handler->connect($this->options['host'], (int) $this->options['port'], (int) $this->options['timeout']); + } + + if ('' != $this->options['password']) { + $this->handler->auth($this->options['password']); + } + } elseif (class_exists('\Predis\Client')) { + $params = []; + foreach ($this->options as $key => $val) { + if (in_array($key, ['aggregate', 'cluster', 'connections', 'exceptions', 'prefix', 'profile', 'replication', 'parameters'])) { + $params[$key] = $val; + unset($this->options[$key]); + } + } + + if ('' == $this->options['password']) { + unset($this->options['password']); + } + + $this->handler = new \Predis\Client($this->options, $params); + + $this->options['prefix'] = ''; + } else { + throw new \BadFunctionCallException('not support: redis'); + } + + if (0 != $this->options['select']) { + $this->handler->select($this->options['select']); + } + } + + /** + * 判断缓存 + * @access public + * @param string $name 缓存变量名 + * @return bool + */ + public function has($name): bool + { + return $this->handler->exists($this->getCacheKey($name)) ? true : false; + } + + /** + * 读取缓存 + * @access public + * @param string $name 缓存变量名 + * @param mixed $default 默认值 + * @return mixed + */ + public function get($name, $default = null) + { + $this->readTimes++; + + $value = $this->handler->get($this->getCacheKey($name)); + + if (false === $value || is_null($value)) { + return $default; + } + + return $this->unserialize($value); + } + + /** + * 写入缓存 + * @access public + * @param string $name 缓存变量名 + * @param mixed $value 存储数据 + * @param integer|\DateTime $expire 有效时间(秒) + * @return bool + */ + public function set($name, $value, $expire = null): bool + { + $this->writeTimes++; + + if (is_null($expire)) { + $expire = $this->options['expire']; + } + + $key = $this->getCacheKey($name); + $expire = $this->getExpireTime($expire); + $value = $this->serialize($value); + + if ($expire) { + $this->handler->setex($key, $expire, $value); + } else { + $this->handler->set($key, $value); + } + + return true; + } + + /** + * 自增缓存(针对数值缓存) + * @access public + * @param string $name 缓存变量名 + * @param int $step 步长 + * @return false|int + */ + public function inc(string $name, int $step = 1) + { + $this->writeTimes++; + + $key = $this->getCacheKey($name); + + return $this->handler->incrby($key, $step); + } + + /** + * 自减缓存(针对数值缓存) + * @access public + * @param string $name 缓存变量名 + * @param int $step 步长 + * @return false|int + */ + public function dec(string $name, int $step = 1) + { + $this->writeTimes++; + + $key = $this->getCacheKey($name); + + return $this->handler->decrby($key, $step); + } + + /** + * 删除缓存 + * @access public + * @param string $name 缓存变量名 + * @return bool + */ + public function delete($name): bool + { + $this->writeTimes++; + + $result = $this->handler->del($this->getCacheKey($name)); + return $result > 0; + } + + /** + * 清除缓存 + * @access public + * @return bool + */ + public function clear(): bool + { + $this->writeTimes++; + + $this->handler->flushDB(); + return true; + } + + /** + * 删除缓存标签 + * @access public + * @param array $keys 缓存标识列表 + * @return void + */ + public function clearTag(array $keys): void + { + // 指定标签清除 + $this->handler->del($keys); + } + + /** + * 追加(数组)缓存数据 + * @access public + * @param string $name 缓存标识 + * @param mixed $value 数据 + * @return void + */ + public function push(string $name, $value): void + { + $this->handler->sAdd($name, $value); + } + + /** + * 获取标签包含的缓存标识 + * @access public + * @param string $tag 缓存标签 + * @return array + */ + public function getTagItems(string $tag): array + { + return $this->handler->sMembers($tag); + } + +} diff --git a/vendor/topthink/framework/src/think/cache/driver/Wincache.php b/vendor/topthink/framework/src/think/cache/driver/Wincache.php new file mode 100644 index 0000000..8b8e26d --- /dev/null +++ b/vendor/topthink/framework/src/think/cache/driver/Wincache.php @@ -0,0 +1,175 @@ + +// +---------------------------------------------------------------------- +declare (strict_types = 1); + +namespace think\cache\driver; + +use think\cache\Driver; + +/** + * Wincache缓存驱动 + */ +class Wincache extends Driver +{ + /** + * 配置参数 + * @var array + */ + protected $options = [ + 'prefix' => '', + 'expire' => 0, + 'tag_prefix' => 'tag:', + 'serialize' => [], + ]; + + /** + * 架构函数 + * @access public + * @param array $options 缓存参数 + * @throws \BadFunctionCallException + */ + public function __construct(array $options = []) + { + if (!function_exists('wincache_ucache_info')) { + throw new \BadFunctionCallException('not support: WinCache'); + } + + if (!empty($options)) { + $this->options = array_merge($this->options, $options); + } + } + + /** + * 判断缓存 + * @access public + * @param string $name 缓存变量名 + * @return bool + */ + public function has($name): bool + { + $this->readTimes++; + + $key = $this->getCacheKey($name); + + return wincache_ucache_exists($key); + } + + /** + * 读取缓存 + * @access public + * @param string $name 缓存变量名 + * @param mixed $default 默认值 + * @return mixed + */ + public function get($name, $default = null) + { + $this->readTimes++; + + $key = $this->getCacheKey($name); + + return wincache_ucache_exists($key) ? $this->unserialize(wincache_ucache_get($key)) : $default; + } + + /** + * 写入缓存 + * @access public + * @param string $name 缓存变量名 + * @param mixed $value 存储数据 + * @param integer|\DateTime $expire 有效时间(秒) + * @return bool + */ + public function set($name, $value, $expire = null): bool + { + $this->writeTimes++; + + if (is_null($expire)) { + $expire = $this->options['expire']; + } + + $key = $this->getCacheKey($name); + $expire = $this->getExpireTime($expire); + $value = $this->serialize($value); + + if (wincache_ucache_set($key, $value, $expire)) { + return true; + } + + return false; + } + + /** + * 自增缓存(针对数值缓存) + * @access public + * @param string $name 缓存变量名 + * @param int $step 步长 + * @return false|int + */ + public function inc(string $name, int $step = 1) + { + $this->writeTimes++; + + $key = $this->getCacheKey($name); + + return wincache_ucache_inc($key, $step); + } + + /** + * 自减缓存(针对数值缓存) + * @access public + * @param string $name 缓存变量名 + * @param int $step 步长 + * @return false|int + */ + public function dec(string $name, int $step = 1) + { + $this->writeTimes++; + + $key = $this->getCacheKey($name); + + return wincache_ucache_dec($key, $step); + } + + /** + * 删除缓存 + * @access public + * @param string $name 缓存变量名 + * @return bool + */ + public function delete($name): bool + { + $this->writeTimes++; + + return wincache_ucache_delete($this->getCacheKey($name)); + } + + /** + * 清除缓存 + * @access public + * @return bool + */ + public function clear(): bool + { + $this->writeTimes++; + return wincache_ucache_clear(); + } + + /** + * 删除缓存标签 + * @access public + * @param array $keys 缓存标识列表 + * @return void + */ + public function clearTag(array $keys): void + { + wincache_ucache_delete($keys); + } + +} diff --git a/vendor/topthink/framework/src/think/console/Command.php b/vendor/topthink/framework/src/think/console/Command.php new file mode 100644 index 0000000..bd3fb20 --- /dev/null +++ b/vendor/topthink/framework/src/think/console/Command.php @@ -0,0 +1,504 @@ + +// +---------------------------------------------------------------------- +declare (strict_types = 1); + +namespace think\console; + +use Exception; +use InvalidArgumentException; +use LogicException; +use think\App; +use think\Console; +use think\console\input\Argument; +use think\console\input\Definition; +use think\console\input\Option; + +abstract class Command +{ + + /** @var Console */ + private $console; + private $name; + private $processTitle; + private $aliases = []; + private $definition; + private $help; + private $description; + private $ignoreValidationErrors = false; + private $consoleDefinitionMerged = false; + private $consoleDefinitionMergedWithArgs = false; + private $synopsis = []; + private $usages = []; + + /** @var Input */ + protected $input; + + /** @var Output */ + protected $output; + + /** @var App */ + protected $app; + + /** + * 构造方法 + * @throws LogicException + * @api + */ + public function __construct() + { + $this->definition = new Definition(); + + $this->configure(); + + if (!$this->name) { + throw new LogicException(sprintf('The command defined in "%s" cannot have an empty name.', get_class($this))); + } + } + + /** + * 忽略验证错误 + */ + public function ignoreValidationErrors(): void + { + $this->ignoreValidationErrors = true; + } + + /** + * 设置控制台 + * @param Console $console + */ + public function setConsole(Console $console = null): void + { + $this->console = $console; + } + + /** + * 获取控制台 + * @return Console + * @api + */ + public function getConsole(): Console + { + return $this->console; + } + + /** + * 设置app + * @param App $app + */ + public function setApp(App $app) + { + $this->app = $app; + } + + /** + * 获取app + * @return App + */ + public function getApp() + { + return $this->app; + } + + /** + * 是否有效 + * @return bool + */ + public function isEnabled(): bool + { + return true; + } + + /** + * 配置指令 + */ + protected function configure() + { + } + + /** + * 执行指令 + * @param Input $input + * @param Output $output + * @return null|int + * @throws LogicException + * @see setCode() + */ + protected function execute(Input $input, Output $output) + { + return $this->app->invoke([$this, 'handle']); + } + + /** + * 用户验证 + * @param Input $input + * @param Output $output + */ + protected function interact(Input $input, Output $output) + { + } + + /** + * 初始化 + * @param Input $input An InputInterface instance + * @param Output $output An OutputInterface instance + */ + protected function initialize(Input $input, Output $output) + { + } + + /** + * 执行 + * @param Input $input + * @param Output $output + * @return int + * @throws Exception + * @see setCode() + * @see execute() + */ + public function run(Input $input, Output $output): int + { + $this->input = $input; + $this->output = $output; + + $this->getSynopsis(true); + $this->getSynopsis(false); + + $this->mergeConsoleDefinition(); + + try { + $input->bind($this->definition); + } catch (Exception $e) { + if (!$this->ignoreValidationErrors) { + throw $e; + } + } + + $this->initialize($input, $output); + + if (null !== $this->processTitle) { + if (function_exists('cli_set_process_title')) { + if (false === @cli_set_process_title($this->processTitle)) { + if ('Darwin' === PHP_OS) { + $output->writeln('Running "cli_get_process_title" as an unprivileged user is not supported on MacOS.'); + } else { + $error = error_get_last(); + trigger_error($error['message'], E_USER_WARNING); + } + } + } elseif (function_exists('setproctitle')) { + setproctitle($this->processTitle); + } elseif (Output::VERBOSITY_VERY_VERBOSE === $output->getVerbosity()) { + $output->writeln('Install the proctitle PECL to be able to change the process title.'); + } + } + + if ($input->isInteractive()) { + $this->interact($input, $output); + } + + $input->validate(); + + $statusCode = $this->execute($input, $output); + + return is_numeric($statusCode) ? (int) $statusCode : 0; + } + + /** + * 合并参数定义 + * @param bool $mergeArgs + */ + public function mergeConsoleDefinition(bool $mergeArgs = true) + { + if (null === $this->console + || (true === $this->consoleDefinitionMerged + && ($this->consoleDefinitionMergedWithArgs || !$mergeArgs)) + ) { + return; + } + + if ($mergeArgs) { + $currentArguments = $this->definition->getArguments(); + $this->definition->setArguments($this->console->getDefinition()->getArguments()); + $this->definition->addArguments($currentArguments); + } + + $this->definition->addOptions($this->console->getDefinition()->getOptions()); + + $this->consoleDefinitionMerged = true; + if ($mergeArgs) { + $this->consoleDefinitionMergedWithArgs = true; + } + } + + /** + * 设置参数定义 + * @param array|Definition $definition + * @return Command + * @api + */ + public function setDefinition($definition) + { + if ($definition instanceof Definition) { + $this->definition = $definition; + } else { + $this->definition->setDefinition($definition); + } + + $this->consoleDefinitionMerged = false; + + return $this; + } + + /** + * 获取参数定义 + * @return Definition + * @api + */ + public function getDefinition(): Definition + { + return $this->definition; + } + + /** + * 获取当前指令的参数定义 + * @return Definition + */ + public function getNativeDefinition(): Definition + { + return $this->getDefinition(); + } + + /** + * 添加参数 + * @param string $name 名称 + * @param int $mode 类型 + * @param string $description 描述 + * @param mixed $default 默认值 + * @return Command + */ + public function addArgument(string $name, int $mode = null, string $description = '', $default = null) + { + $this->definition->addArgument(new Argument($name, $mode, $description, $default)); + + return $this; + } + + /** + * 添加选项 + * @param string $name 选项名称 + * @param string $shortcut 别名 + * @param int $mode 类型 + * @param string $description 描述 + * @param mixed $default 默认值 + * @return Command + */ + public function addOption(string $name, string $shortcut = null, int $mode = null, string $description = '', $default = null) + { + $this->definition->addOption(new Option($name, $shortcut, $mode, $description, $default)); + + return $this; + } + + /** + * 设置指令名称 + * @param string $name + * @return Command + * @throws InvalidArgumentException + */ + public function setName(string $name) + { + $this->validateName($name); + + $this->name = $name; + + return $this; + } + + /** + * 设置进程名称 + * + * PHP 5.5+ or the proctitle PECL library is required + * + * @param string $title The process title + * + * @return $this + */ + public function setProcessTitle($title) + { + $this->processTitle = $title; + + return $this; + } + + /** + * 获取指令名称 + * @return string + */ + public function getName(): string + { + return $this->name ?: ''; + } + + /** + * 设置描述 + * @param string $description + * @return Command + */ + public function setDescription(string $description) + { + $this->description = $description; + + return $this; + } + + /** + * 获取描述 + * @return string + */ + public function getDescription(): string + { + return $this->description ?: ''; + } + + /** + * 设置帮助信息 + * @param string $help + * @return Command + */ + public function setHelp(string $help) + { + $this->help = $help; + + return $this; + } + + /** + * 获取帮助信息 + * @return string + */ + public function getHelp(): string + { + return $this->help ?: ''; + } + + /** + * 描述信息 + * @return string + */ + public function getProcessedHelp(): string + { + $name = $this->name; + + $placeholders = [ + '%command.name%', + '%command.full_name%', + ]; + $replacements = [ + $name, + $_SERVER['PHP_SELF'] . ' ' . $name, + ]; + + return str_replace($placeholders, $replacements, $this->getHelp()); + } + + /** + * 设置别名 + * @param string[] $aliases + * @return Command + * @throws InvalidArgumentException + */ + public function setAliases(iterable $aliases) + { + foreach ($aliases as $alias) { + $this->validateName($alias); + } + + $this->aliases = $aliases; + + return $this; + } + + /** + * 获取别名 + * @return array + */ + public function getAliases(): array + { + return $this->aliases; + } + + /** + * 获取简介 + * @param bool $short 是否简单的 + * @return string + */ + public function getSynopsis(bool $short = false): string + { + $key = $short ? 'short' : 'long'; + + if (!isset($this->synopsis[$key])) { + $this->synopsis[$key] = trim(sprintf('%s %s', $this->name, $this->definition->getSynopsis($short))); + } + + return $this->synopsis[$key]; + } + + /** + * 添加用法介绍 + * @param string $usage + * @return $this + */ + public function addUsage(string $usage) + { + if (0 !== strpos($usage, $this->name)) { + $usage = sprintf('%s %s', $this->name, $usage); + } + + $this->usages[] = $usage; + + return $this; + } + + /** + * 获取用法介绍 + * @return array + */ + public function getUsages(): array + { + return $this->usages; + } + + /** + * 验证指令名称 + * @param string $name + * @throws InvalidArgumentException + */ + private function validateName(string $name) + { + if (!preg_match('/^[^\:]++(\:[^\:]++)*$/', $name)) { + throw new InvalidArgumentException(sprintf('Command name "%s" is invalid.', $name)); + } + } + + /** + * 输出表格 + * @param Table $table + * @return string + */ + protected function table(Table $table): string + { + $content = $table->render(); + $this->output->writeln($content); + return $content; + } + +} diff --git a/vendor/topthink/framework/src/think/console/Input.php b/vendor/topthink/framework/src/think/console/Input.php new file mode 100644 index 0000000..9ae9077 --- /dev/null +++ b/vendor/topthink/framework/src/think/console/Input.php @@ -0,0 +1,465 @@ + +// +---------------------------------------------------------------------- +declare (strict_types = 1); + +namespace think\console; + +use think\console\input\Argument; +use think\console\input\Definition; +use think\console\input\Option; + +class Input +{ + + /** + * @var Definition + */ + protected $definition; + + /** + * @var Option[] + */ + protected $options = []; + + /** + * @var Argument[] + */ + protected $arguments = []; + + protected $interactive = true; + + private $tokens; + private $parsed; + + public function __construct($argv = null) + { + if (null === $argv) { + $argv = $_SERVER['argv']; + // 去除命令名 + array_shift($argv); + } + + $this->tokens = $argv; + + $this->definition = new Definition(); + } + + protected function setTokens(array $tokens) + { + $this->tokens = $tokens; + } + + /** + * 绑定实例 + * @param Definition $definition A InputDefinition instance + */ + public function bind(Definition $definition): void + { + $this->arguments = []; + $this->options = []; + $this->definition = $definition; + + $this->parse(); + } + + /** + * 解析参数 + */ + protected function parse(): void + { + $parseOptions = true; + $this->parsed = $this->tokens; + while (null !== $token = array_shift($this->parsed)) { + if ($parseOptions && '' == $token) { + $this->parseArgument($token); + } elseif ($parseOptions && '--' == $token) { + $parseOptions = false; + } elseif ($parseOptions && 0 === strpos($token, '--')) { + $this->parseLongOption($token); + } elseif ($parseOptions && '-' === $token[0] && '-' !== $token) { + $this->parseShortOption($token); + } else { + $this->parseArgument($token); + } + } + } + + /** + * 解析短选项 + * @param string $token 当前的指令. + */ + private function parseShortOption(string $token): void + { + $name = substr($token, 1); + + if (strlen($name) > 1) { + if ($this->definition->hasShortcut($name[0]) + && $this->definition->getOptionForShortcut($name[0])->acceptValue() + ) { + $this->addShortOption($name[0], substr($name, 1)); + } else { + $this->parseShortOptionSet($name); + } + } else { + $this->addShortOption($name, null); + } + } + + /** + * 解析短选项 + * @param string $name 当前指令 + * @throws \RuntimeException + */ + private function parseShortOptionSet(string $name): void + { + $len = strlen($name); + for ($i = 0; $i < $len; ++$i) { + if (!$this->definition->hasShortcut($name[$i])) { + throw new \RuntimeException(sprintf('The "-%s" option does not exist.', $name[$i])); + } + + $option = $this->definition->getOptionForShortcut($name[$i]); + if ($option->acceptValue()) { + $this->addLongOption($option->getName(), $i === $len - 1 ? null : substr($name, $i + 1)); + + break; + } else { + $this->addLongOption($option->getName(), null); + } + } + } + + /** + * 解析完整选项 + * @param string $token 当前指令 + */ + private function parseLongOption(string $token): void + { + $name = substr($token, 2); + + if (false !== $pos = strpos($name, '=')) { + $this->addLongOption(substr($name, 0, $pos), substr($name, $pos + 1)); + } else { + $this->addLongOption($name, null); + } + } + + /** + * 解析参数 + * @param string $token 当前指令 + * @throws \RuntimeException + */ + private function parseArgument(string $token): void + { + $c = count($this->arguments); + + if ($this->definition->hasArgument($c)) { + $arg = $this->definition->getArgument($c); + + $this->arguments[$arg->getName()] = $arg->isArray() ? [$token] : $token; + + } elseif ($this->definition->hasArgument($c - 1) && $this->definition->getArgument($c - 1)->isArray()) { + $arg = $this->definition->getArgument($c - 1); + + $this->arguments[$arg->getName()][] = $token; + } else { + throw new \RuntimeException('Too many arguments.'); + } + } + + /** + * 添加一个短选项的值 + * @param string $shortcut 短名称 + * @param mixed $value 值 + * @throws \RuntimeException + */ + private function addShortOption(string $shortcut, $value): void + { + if (!$this->definition->hasShortcut($shortcut)) { + throw new \RuntimeException(sprintf('The "-%s" option does not exist.', $shortcut)); + } + + $this->addLongOption($this->definition->getOptionForShortcut($shortcut)->getName(), $value); + } + + /** + * 添加一个完整选项的值 + * @param string $name 选项名 + * @param mixed $value 值 + * @throws \RuntimeException + */ + private function addLongOption(string $name, $value): void + { + if (!$this->definition->hasOption($name)) { + throw new \RuntimeException(sprintf('The "--%s" option does not exist.', $name)); + } + + $option = $this->definition->getOption($name); + + if (false === $value) { + $value = null; + } + + if (null !== $value && !$option->acceptValue()) { + throw new \RuntimeException(sprintf('The "--%s" option does not accept a value.', $name, $value)); + } + + if (null === $value && $option->acceptValue() && count($this->parsed)) { + $next = array_shift($this->parsed); + if (isset($next[0]) && '-' !== $next[0]) { + $value = $next; + } elseif (empty($next)) { + $value = ''; + } else { + array_unshift($this->parsed, $next); + } + } + + if (null === $value) { + if ($option->isValueRequired()) { + throw new \RuntimeException(sprintf('The "--%s" option requires a value.', $name)); + } + + if (!$option->isArray()) { + $value = $option->isValueOptional() ? $option->getDefault() : true; + } + } + + if ($option->isArray()) { + $this->options[$name][] = $value; + } else { + $this->options[$name] = $value; + } + } + + /** + * 获取第一个参数 + * @return string|null + */ + public function getFirstArgument() + { + foreach ($this->tokens as $token) { + if ($token && '-' === $token[0]) { + continue; + } + + return $token; + } + return; + } + + /** + * 检查原始参数是否包含某个值 + * @param string|array $values 需要检查的值 + * @return bool + */ + public function hasParameterOption($values): bool + { + $values = (array) $values; + + foreach ($this->tokens as $token) { + foreach ($values as $value) { + if ($token === $value || 0 === strpos($token, $value . '=')) { + return true; + } + } + } + + return false; + } + + /** + * 获取原始选项的值 + * @param string|array $values 需要检查的值 + * @param mixed $default 默认值 + * @return mixed The option value + */ + public function getParameterOption($values, $default = false) + { + $values = (array) $values; + $tokens = $this->tokens; + + while (0 < count($tokens)) { + $token = array_shift($tokens); + + foreach ($values as $value) { + if ($token === $value || 0 === strpos($token, $value . '=')) { + if (false !== $pos = strpos($token, '=')) { + return substr($token, $pos + 1); + } + + return array_shift($tokens); + } + } + } + + return $default; + } + + /** + * 验证输入 + * @throws \RuntimeException + */ + public function validate() + { + if (count($this->arguments) < $this->definition->getArgumentRequiredCount()) { + throw new \RuntimeException('Not enough arguments.'); + } + } + + /** + * 检查输入是否是交互的 + * @return bool + */ + public function isInteractive(): bool + { + return $this->interactive; + } + + /** + * 设置输入的交互 + * @param bool + */ + public function setInteractive(bool $interactive): void + { + $this->interactive = $interactive; + } + + /** + * 获取所有的参数 + * @return Argument[] + */ + public function getArguments(): array + { + return array_merge($this->definition->getArgumentDefaults(), $this->arguments); + } + + /** + * 根据名称获取参数 + * @param string $name 参数名 + * @return mixed + * @throws \InvalidArgumentException + */ + public function getArgument(string $name) + { + if (!$this->definition->hasArgument($name)) { + throw new \InvalidArgumentException(sprintf('The "%s" argument does not exist.', $name)); + } + + return $this->arguments[$name] ?? $this->definition->getArgument($name) + ->getDefault(); + } + + /** + * 设置参数的值 + * @param string $name 参数名 + * @param string $value 值 + * @throws \InvalidArgumentException + */ + public function setArgument(string $name, $value) + { + if (!$this->definition->hasArgument($name)) { + throw new \InvalidArgumentException(sprintf('The "%s" argument does not exist.', $name)); + } + + $this->arguments[$name] = $value; + } + + /** + * 检查是否存在某个参数 + * @param string|int $name 参数名或位置 + * @return bool + */ + public function hasArgument($name): bool + { + return $this->definition->hasArgument($name); + } + + /** + * 获取所有的选项 + * @return Option[] + */ + public function getOptions(): array + { + return array_merge($this->definition->getOptionDefaults(), $this->options); + } + + /** + * 获取选项值 + * @param string $name 选项名称 + * @return mixed + * @throws \InvalidArgumentException + */ + public function getOption(string $name) + { + if (!$this->definition->hasOption($name)) { + throw new \InvalidArgumentException(sprintf('The "%s" option does not exist.', $name)); + } + + return $this->options[$name] ?? $this->definition->getOption($name)->getDefault(); + } + + /** + * 设置选项值 + * @param string $name 选项名 + * @param string|bool $value 值 + * @throws \InvalidArgumentException + */ + public function setOption(string $name, $value): void + { + if (!$this->definition->hasOption($name)) { + throw new \InvalidArgumentException(sprintf('The "%s" option does not exist.', $name)); + } + + $this->options[$name] = $value; + } + + /** + * 是否有某个选项 + * @param string $name 选项名 + * @return bool + */ + public function hasOption(string $name): bool + { + return $this->definition->hasOption($name) && isset($this->options[$name]); + } + + /** + * 转义指令 + * @param string $token + * @return string + */ + public function escapeToken(string $token): string + { + return preg_match('{^[\w-]+$}', $token) ? $token : escapeshellarg($token); + } + + /** + * 返回传递给命令的参数的字符串 + * @return string + */ + public function __toString() + { + $tokens = array_map(function ($token) { + if (preg_match('{^(-[^=]+=)(.+)}', $token, $match)) { + return $match[1] . $this->escapeToken($match[2]); + } + + if ($token && '-' !== $token[0]) { + return $this->escapeToken($token); + } + + return $token; + }, $this->tokens); + + return implode(' ', $tokens); + } +} diff --git a/vendor/topthink/framework/src/think/console/LICENSE b/vendor/topthink/framework/src/think/console/LICENSE new file mode 100644 index 0000000..0abe056 --- /dev/null +++ b/vendor/topthink/framework/src/think/console/LICENSE @@ -0,0 +1,19 @@ +Copyright (c) 2004-2016 Fabien Potencier + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is furnished +to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. \ No newline at end of file diff --git a/vendor/topthink/framework/src/think/console/Output.php b/vendor/topthink/framework/src/think/console/Output.php new file mode 100644 index 0000000..13837a7 --- /dev/null +++ b/vendor/topthink/framework/src/think/console/Output.php @@ -0,0 +1,224 @@ + +// +---------------------------------------------------------------------- +declare (strict_types = 1); + +namespace think\console; + +use Exception; +use think\console\output\Ask; +use think\console\output\Descriptor; +use think\console\output\driver\Buffer; +use think\console\output\driver\Console; +use think\console\output\driver\Nothing; +use think\console\output\Question; +use think\console\output\question\Choice; +use think\console\output\question\Confirmation; +use Throwable; + +/** + * Class Output + * @package think\console + * + * @see \think\console\output\driver\Console::setDecorated + * @method void setDecorated($decorated) + * + * @see \think\console\output\driver\Buffer::fetch + * @method string fetch() + * + * @method void info($message) + * @method void error($message) + * @method void comment($message) + * @method void warning($message) + * @method void highlight($message) + * @method void question($message) + */ +class Output +{ + const VERBOSITY_QUIET = 0; + const VERBOSITY_NORMAL = 1; + const VERBOSITY_VERBOSE = 2; + const VERBOSITY_VERY_VERBOSE = 3; + const VERBOSITY_DEBUG = 4; + + const OUTPUT_NORMAL = 0; + const OUTPUT_RAW = 1; + const OUTPUT_PLAIN = 2; + + private $verbosity = self::VERBOSITY_NORMAL; + + /** @var Buffer|Console|Nothing */ + private $handle = null; + + protected $styles = [ + 'info', + 'error', + 'comment', + 'question', + 'highlight', + 'warning', + ]; + + public function __construct($driver = 'console') + { + $class = '\\think\\console\\output\\driver\\' . ucwords($driver); + + $this->handle = new $class($this); + } + + public function ask(Input $input, $question, $default = null, $validator = null) + { + $question = new Question($question, $default); + $question->setValidator($validator); + + return $this->askQuestion($input, $question); + } + + public function askHidden(Input $input, $question, $validator = null) + { + $question = new Question($question); + + $question->setHidden(true); + $question->setValidator($validator); + + return $this->askQuestion($input, $question); + } + + public function confirm(Input $input, $question, $default = true) + { + return $this->askQuestion($input, new Confirmation($question, $default)); + } + + /** + * {@inheritdoc} + */ + public function choice(Input $input, $question, array $choices, $default = null) + { + if (null !== $default) { + $values = array_flip($choices); + $default = $values[$default]; + } + + return $this->askQuestion($input, new Choice($question, $choices, $default)); + } + + protected function askQuestion(Input $input, Question $question) + { + $ask = new Ask($input, $this, $question); + $answer = $ask->run(); + + if ($input->isInteractive()) { + $this->newLine(); + } + + return $answer; + } + + protected function block(string $style, string $message): void + { + $this->writeln("<{$style}>{$message}"); + } + + /** + * 输出空行 + * @param int $count + */ + public function newLine(int $count = 1): void + { + $this->write(str_repeat(PHP_EOL, $count)); + } + + /** + * 输出信息并换行 + * @param string $messages + * @param int $type + */ + public function writeln(string $messages, int $type = 0): void + { + $this->write($messages, true, $type); + } + + /** + * 输出信息 + * @param string $messages + * @param bool $newline + * @param int $type + */ + public function write(string $messages, bool $newline = false, int $type = 0): void + { + $this->handle->write($messages, $newline, $type); + } + + public function renderException(Throwable $e): void + { + $this->handle->renderException($e); + } + + /** + * {@inheritdoc} + */ + public function setVerbosity(int $level) + { + $this->verbosity = $level; + } + + /** + * {@inheritdoc} + */ + public function getVerbosity(): int + { + return $this->verbosity; + } + + public function isQuiet(): bool + { + return self::VERBOSITY_QUIET === $this->verbosity; + } + + public function isVerbose(): bool + { + return self::VERBOSITY_VERBOSE <= $this->verbosity; + } + + public function isVeryVerbose(): bool + { + return self::VERBOSITY_VERY_VERBOSE <= $this->verbosity; + } + + public function isDebug(): bool + { + return self::VERBOSITY_DEBUG <= $this->verbosity; + } + + public function describe($object, array $options = []): void + { + $descriptor = new Descriptor(); + $options = array_merge([ + 'raw_text' => false, + ], $options); + + $descriptor->describe($this, $object, $options); + } + + public function __call($method, $args) + { + if (in_array($method, $this->styles)) { + array_unshift($args, $method); + return call_user_func_array([$this, 'block'], $args); + } + + if ($this->handle && method_exists($this->handle, $method)) { + return call_user_func_array([$this->handle, $method], $args); + } else { + throw new Exception('method not exists:' . __CLASS__ . '->' . $method); + } + } + +} diff --git a/vendor/topthink/framework/src/think/console/Table.php b/vendor/topthink/framework/src/think/console/Table.php new file mode 100644 index 0000000..5a861d7 --- /dev/null +++ b/vendor/topthink/framework/src/think/console/Table.php @@ -0,0 +1,300 @@ + +// +---------------------------------------------------------------------- +declare (strict_types = 1); + +namespace think\console; + +class Table +{ + const ALIGN_LEFT = 1; + const ALIGN_RIGHT = 0; + const ALIGN_CENTER = 2; + + /** + * 头信息数据 + * @var array + */ + protected $header = []; + + /** + * 头部对齐方式 默认1 ALGIN_LEFT 0 ALIGN_RIGHT 2 ALIGN_CENTER + * @var int + */ + protected $headerAlign = 1; + + /** + * 表格数据(二维数组) + * @var array + */ + protected $rows = []; + + /** + * 单元格对齐方式 默认1 ALGIN_LEFT 0 ALIGN_RIGHT 2 ALIGN_CENTER + * @var int + */ + protected $cellAlign = 1; + + /** + * 单元格宽度信息 + * @var array + */ + protected $colWidth = []; + + /** + * 表格输出样式 + * @var string + */ + protected $style = 'default'; + + /** + * 表格样式定义 + * @var array + */ + protected $format = [ + 'compact' => [], + 'default' => [ + 'top' => ['+', '-', '+', '+'], + 'cell' => ['|', ' ', '|', '|'], + 'middle' => ['+', '-', '+', '+'], + 'bottom' => ['+', '-', '+', '+'], + 'cross-top' => ['+', '-', '-', '+'], + 'cross-bottom' => ['+', '-', '-', '+'], + ], + 'markdown' => [ + 'top' => [' ', ' ', ' ', ' '], + 'cell' => ['|', ' ', '|', '|'], + 'middle' => ['|', '-', '|', '|'], + 'bottom' => [' ', ' ', ' ', ' '], + 'cross-top' => ['|', ' ', ' ', '|'], + 'cross-bottom' => ['|', ' ', ' ', '|'], + ], + 'borderless' => [ + 'top' => ['=', '=', ' ', '='], + 'cell' => [' ', ' ', ' ', ' '], + 'middle' => ['=', '=', ' ', '='], + 'bottom' => ['=', '=', ' ', '='], + 'cross-top' => ['=', '=', ' ', '='], + 'cross-bottom' => ['=', '=', ' ', '='], + ], + 'box' => [ + 'top' => ['┌', '─', '┬', '┐'], + 'cell' => ['│', ' ', '│', '│'], + 'middle' => ['├', '─', '┼', '┤'], + 'bottom' => ['└', '─', '┴', '┘'], + 'cross-top' => ['├', '─', '┴', '┤'], + 'cross-bottom' => ['├', '─', '┬', '┤'], + ], + 'box-double' => [ + 'top' => ['╔', '═', '╤', '╗'], + 'cell' => ['║', ' ', '│', '║'], + 'middle' => ['╠', '─', '╪', '╣'], + 'bottom' => ['╚', '═', '╧', '╝'], + 'cross-top' => ['╠', '═', '╧', '╣'], + 'cross-bottom' => ['╠', '═', '╤', '╣'], + ], + ]; + + /** + * 设置表格头信息 以及对齐方式 + * @access public + * @param array $header 要输出的Header信息 + * @param int $align 对齐方式 默认1 ALGIN_LEFT 0 ALIGN_RIGHT 2 ALIGN_CENTER + * @return void + */ + public function setHeader(array $header, int $align = 1): void + { + $this->header = $header; + $this->headerAlign = $align; + + $this->checkColWidth($header); + } + + /** + * 设置输出表格数据 及对齐方式 + * @access public + * @param array $rows 要输出的表格数据(二维数组) + * @param int $align 对齐方式 默认1 ALGIN_LEFT 0 ALIGN_RIGHT 2 ALIGN_CENTER + * @return void + */ + public function setRows(array $rows, int $align = 1): void + { + $this->rows = $rows; + $this->cellAlign = $align; + + foreach ($rows as $row) { + $this->checkColWidth($row); + } + } + + /** + * 设置全局单元格对齐方式 + * @param int $align 对齐方式 默认1 ALGIN_LEFT 0 ALIGN_RIGHT 2 ALIGN_CENTER + * @return $this + */ + public function setCellAlign(int $align = 1) + { + $this->cellAlign = $align; + return $this; + } + + /** + * 检查列数据的显示宽度 + * @access public + * @param mixed $row 行数据 + * @return void + */ + protected function checkColWidth($row): void + { + if (is_array($row)) { + foreach ($row as $key => $cell) { + $width = mb_strwidth((string) $cell); + if (!isset($this->colWidth[$key]) || $width > $this->colWidth[$key]) { + $this->colWidth[$key] = $width; + } + } + } + } + + /** + * 增加一行表格数据 + * @access public + * @param mixed $row 行数据 + * @param bool $first 是否在开头插入 + * @return void + */ + public function addRow($row, bool $first = false): void + { + if ($first) { + array_unshift($this->rows, $row); + } else { + $this->rows[] = $row; + } + + $this->checkColWidth($row); + } + + /** + * 设置输出表格的样式 + * @access public + * @param string $style 样式名 + * @return void + */ + public function setStyle(string $style): void + { + $this->style = isset($this->format[$style]) ? $style : 'default'; + } + + /** + * 输出分隔行 + * @access public + * @param string $pos 位置 + * @return string + */ + protected function renderSeparator(string $pos): string + { + $style = $this->getStyle($pos); + $array = []; + + foreach ($this->colWidth as $width) { + $array[] = str_repeat($style[1], $width + 2); + } + + return $style[0] . implode($style[2], $array) . $style[3] . PHP_EOL; + } + + /** + * 输出表格头部 + * @access public + * @return string + */ + protected function renderHeader(): string + { + $style = $this->getStyle('cell'); + $content = $this->renderSeparator('top'); + + foreach ($this->header as $key => $header) { + $array[] = ' ' . str_pad($header, $this->colWidth[$key], $style[1], $this->headerAlign); + } + + if (!empty($array)) { + $content .= $style[0] . implode(' ' . $style[2], $array) . ' ' . $style[3] . PHP_EOL; + + if (!empty($this->rows)) { + $content .= $this->renderSeparator('middle'); + } + } + + return $content; + } + + protected function getStyle(string $style): array + { + if ($this->format[$this->style]) { + $style = $this->format[$this->style][$style]; + } else { + $style = [' ', ' ', ' ', ' ']; + } + + return $style; + } + + /** + * 输出表格 + * @access public + * @param array $dataList 表格数据 + * @return string + */ + public function render(array $dataList = []): string + { + if (!empty($dataList)) { + $this->setRows($dataList); + } + + // 输出头部 + $content = $this->renderHeader(); + $style = $this->getStyle('cell'); + + if (!empty($this->rows)) { + foreach ($this->rows as $row) { + if (is_string($row) && '-' === $row) { + $content .= $this->renderSeparator('middle'); + } elseif (is_scalar($row)) { + $content .= $this->renderSeparator('cross-top'); + $width = 3 * (count($this->colWidth) - 1) + array_reduce($this->colWidth, function ($a, $b) { + return $a + $b; + }); + $array = str_pad($row, $width); + + $content .= $style[0] . ' ' . $array . ' ' . $style[3] . PHP_EOL; + $content .= $this->renderSeparator('cross-bottom'); + } else { + $array = []; + + foreach ($row as $key => $val) { + $width = $this->colWidth[$key]; + // form https://github.com/symfony/console/blob/20c9821c8d1c2189f287dcee709b2f86353ea08f/Helper/Table.php#L467 + // str_pad won't work properly with multi-byte strings, we need to fix the padding + if (false !== $encoding = mb_detect_encoding((string) $val, null, true)) { + $width += strlen((string) $val) - mb_strwidth((string) $val, $encoding); + } + $array[] = ' ' . str_pad((string) $val, $width, ' ', $this->cellAlign); + } + + $content .= $style[0] . implode(' ' . $style[2], $array) . ' ' . $style[3] . PHP_EOL; + } + } + } + + $content .= $this->renderSeparator('bottom'); + + return $content; + } +} diff --git a/vendor/topthink/framework/src/think/console/bin/README.md b/vendor/topthink/framework/src/think/console/bin/README.md new file mode 100644 index 0000000..9acc52f --- /dev/null +++ b/vendor/topthink/framework/src/think/console/bin/README.md @@ -0,0 +1 @@ +console 工具使用 hiddeninput.exe 在 windows 上隐藏密码输入,该二进制文件由第三方提供,相关源码和其他细节可以在 [Hidden Input](https://github.com/Seldaek/hidden-input) 找到。 diff --git a/vendor/topthink/framework/src/think/console/bin/hiddeninput.exe b/vendor/topthink/framework/src/think/console/bin/hiddeninput.exe new file mode 100644 index 0000000000000000000000000000000000000000..c8cf65e8d819e6e525121cf6b21f1c2429746038 GIT binary patch literal 9216 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 J0sQ~1{4brj`U(I5 literal 0 HcmV?d00001 diff --git a/vendor/topthink/framework/src/think/console/command/Clear.php b/vendor/topthink/framework/src/think/console/command/Clear.php new file mode 100644 index 0000000..81878c5 --- /dev/null +++ b/vendor/topthink/framework/src/think/console/command/Clear.php @@ -0,0 +1,64 @@ + +// +---------------------------------------------------------------------- +namespace think\console\command; + +use think\console\Command; +use think\console\Input; +use think\console\input\Option; +use think\console\Output; + +class Clear extends Command +{ + protected function configure() + { + // 指令配置 + $this->setName('clear') + ->addOption('path', 'd', Option::VALUE_OPTIONAL, 'path to clear', null) + ->addOption('cache', 'c', Option::VALUE_NONE, 'clear cache file') + ->addOption('log', 'l', Option::VALUE_NONE, 'clear log file') + ->addOption('dir', 'r', Option::VALUE_NONE, 'clear empty dir') + ->setDescription('Clear runtime file'); + } + + protected function execute(Input $input, Output $output) + { + $runtimePath = $this->app->getRootPath() . 'runtime' . DIRECTORY_SEPARATOR; + + if ($input->getOption('cache')) { + $path = $runtimePath . 'cache'; + } elseif ($input->getOption('log')) { + $path = $runtimePath . 'log'; + } else { + $path = $input->getOption('path') ?: $runtimePath; + } + + $rmdir = $input->getOption('dir') ? true : false; + $this->clear(rtrim($path, DIRECTORY_SEPARATOR) . DIRECTORY_SEPARATOR, $rmdir); + + $output->writeln("Clear Successed"); + } + + protected function clear(string $path, bool $rmdir): void + { + $files = is_dir($path) ? scandir($path) : []; + + foreach ($files as $file) { + if ('.' != $file && '..' != $file && is_dir($path . $file)) { + array_map('unlink', glob($path . $file . DIRECTORY_SEPARATOR . '*.*')); + if ($rmdir) { + rmdir($path . $file); + } + } elseif ('.gitignore' != $file && is_file($path . $file)) { + unlink($path . $file); + } + } + } +} diff --git a/vendor/topthink/framework/src/think/console/command/Help.php b/vendor/topthink/framework/src/think/console/command/Help.php new file mode 100644 index 0000000..d3833b8 --- /dev/null +++ b/vendor/topthink/framework/src/think/console/command/Help.php @@ -0,0 +1,69 @@ + +// +---------------------------------------------------------------------- + +namespace think\console\command; + +use think\console\Command; +use think\console\Input; +use think\console\input\Argument as InputArgument; +use think\console\input\Option as InputOption; +use think\console\Output; + +class Help extends Command +{ + + private $command; + + /** + * {@inheritdoc} + */ + protected function configure() + { + $this->ignoreValidationErrors(); + + $this->setName('help')->setDefinition([ + new InputArgument('command_name', InputArgument::OPTIONAL, 'The command name', 'help'), + new InputOption('raw', null, InputOption::VALUE_NONE, 'To output raw command help'), + ])->setDescription('Displays help for a command')->setHelp(<<%command.name% command displays help for a given command: + + php %command.full_name% list + +To display the list of available commands, please use the list command. +EOF + ); + } + + /** + * Sets the command. + * @param Command $command The command to set + */ + public function setCommand(Command $command): void + { + $this->command = $command; + } + + /** + * {@inheritdoc} + */ + protected function execute(Input $input, Output $output) + { + if (null === $this->command) { + $this->command = $this->getConsole()->find($input->getArgument('command_name')); + } + + $output->describe($this->command, [ + 'raw_text' => $input->getOption('raw'), + ]); + + $this->command = null; + } +} diff --git a/vendor/topthink/framework/src/think/console/command/Lists.php b/vendor/topthink/framework/src/think/console/command/Lists.php new file mode 100644 index 0000000..278c2bd --- /dev/null +++ b/vendor/topthink/framework/src/think/console/command/Lists.php @@ -0,0 +1,73 @@ + +// +---------------------------------------------------------------------- + +namespace think\console\command; + +use think\console\Command; +use think\console\Input; +use think\console\input\Argument as InputArgument; +use think\console\input\Definition as InputDefinition; +use think\console\input\Option as InputOption; +use think\console\Output; + +class Lists extends Command +{ + /** + * {@inheritdoc} + */ + protected function configure() + { + $this->setName('list')->setDefinition($this->createDefinition())->setDescription('Lists commands')->setHelp(<<%command.name% command lists all commands: + + php %command.full_name% + +You can also display the commands for a specific namespace: + + php %command.full_name% test + +It's also possible to get raw list of commands (useful for embedding command runner): + + php %command.full_name% --raw +EOF + ); + } + + /** + * {@inheritdoc} + */ + public function getNativeDefinition(): InputDefinition + { + return $this->createDefinition(); + } + + /** + * {@inheritdoc} + */ + protected function execute(Input $input, Output $output) + { + $output->describe($this->getConsole(), [ + 'raw_text' => $input->getOption('raw'), + 'namespace' => $input->getArgument('namespace'), + ]); + } + + /** + * {@inheritdoc} + */ + private function createDefinition(): InputDefinition + { + return new InputDefinition([ + new InputArgument('namespace', InputArgument::OPTIONAL, 'The namespace name'), + new InputOption('raw', null, InputOption::VALUE_NONE, 'To output raw command list'), + ]); + } +} diff --git a/vendor/topthink/framework/src/think/console/command/Make.php b/vendor/topthink/framework/src/think/console/command/Make.php new file mode 100644 index 0000000..662b337 --- /dev/null +++ b/vendor/topthink/framework/src/think/console/command/Make.php @@ -0,0 +1,99 @@ + +// +---------------------------------------------------------------------- + +namespace think\console\command; + +use think\console\Command; +use think\console\Input; +use think\console\input\Argument; +use think\console\Output; + +abstract class Make extends Command +{ + protected $type; + + abstract protected function getStub(); + + protected function configure() + { + $this->addArgument('name', Argument::REQUIRED, "The name of the class"); + } + + protected function execute(Input $input, Output $output) + { + $name = trim($input->getArgument('name')); + + $classname = $this->getClassName($name); + + $pathname = $this->getPathName($classname); + + if (is_file($pathname)) { + $output->writeln('' . $this->type . ':' . $classname . ' already exists!'); + return false; + } + + if (!is_dir(dirname($pathname))) { + mkdir(dirname($pathname), 0755, true); + } + + file_put_contents($pathname, $this->buildClass($classname)); + + $output->writeln('' . $this->type . ':' . $classname . ' created successfully.'); + } + + protected function buildClass(string $name) + { + $stub = file_get_contents($this->getStub()); + + $namespace = trim(implode('\\', array_slice(explode('\\', $name), 0, -1)), '\\'); + + $class = str_replace($namespace . '\\', '', $name); + + return str_replace(['{%className%}', '{%actionSuffix%}', '{%namespace%}', '{%app_namespace%}'], [ + $class, + $this->app->config->get('route.action_suffix'), + $namespace, + $this->app->getNamespace(), + ], $stub); + } + + protected function getPathName(string $name): string + { + $name = str_replace('app\\', '', $name); + + return $this->app->getBasePath() . ltrim(str_replace('\\', '/', $name), '/') . '.php'; + } + + protected function getClassName(string $name): string + { + if (strpos($name, '\\') !== false) { + return $name; + } + + if (strpos($name, '@')) { + [$app, $name] = explode('@', $name); + } else { + $app = ''; + } + + if (strpos($name, '/') !== false) { + $name = str_replace('/', '\\', $name); + } + + return $this->getNamespace($app) . '\\' . $name; + } + + protected function getNamespace(string $app): string + { + return 'app' . ($app ? '\\' . $app : ''); + } + +} diff --git a/vendor/topthink/framework/src/think/console/command/RouteList.php b/vendor/topthink/framework/src/think/console/command/RouteList.php new file mode 100644 index 0000000..ed579b8 --- /dev/null +++ b/vendor/topthink/framework/src/think/console/command/RouteList.php @@ -0,0 +1,129 @@ + +// +---------------------------------------------------------------------- +namespace think\console\command; + +use think\console\Command; +use think\console\Input; +use think\console\input\Argument; +use think\console\input\Option; +use think\console\Output; +use think\console\Table; +use think\event\RouteLoaded; + +class RouteList extends Command +{ + protected $sortBy = [ + 'rule' => 0, + 'route' => 1, + 'method' => 2, + 'name' => 3, + 'domain' => 4, + ]; + + protected function configure() + { + $this->setName('route:list') + ->addArgument('dir', Argument::OPTIONAL, 'dir name .') + ->addArgument('style', Argument::OPTIONAL, "the style of the table.", 'default') + ->addOption('sort', 's', Option::VALUE_OPTIONAL, 'order by rule name.', 0) + ->addOption('more', 'm', Option::VALUE_NONE, 'show route options.') + ->setDescription('show route list.'); + } + + protected function execute(Input $input, Output $output) + { + $dir = $input->getArgument('dir') ?: ''; + + $filename = $this->app->getRootPath() . 'runtime' . DIRECTORY_SEPARATOR . ($dir ? $dir . DIRECTORY_SEPARATOR : '') . 'route_list.php'; + + if (is_file($filename)) { + unlink($filename); + } elseif (!is_dir(dirname($filename))) { + mkdir(dirname($filename), 0755); + } + + $content = $this->getRouteList($dir); + file_put_contents($filename, 'Route List' . PHP_EOL . $content); + } + + protected function getRouteList(string $dir = null): string + { + $this->app->route->setTestMode(true); + $this->app->route->clear(); + + if ($dir) { + $path = $this->app->getRootPath() . 'route' . DIRECTORY_SEPARATOR . $dir . DIRECTORY_SEPARATOR; + } else { + $path = $this->app->getRootPath() . 'route' . DIRECTORY_SEPARATOR; + } + + $files = is_dir($path) ? scandir($path) : []; + + foreach ($files as $file) { + if (strpos($file, '.php')) { + include $path . $file; + } + } + + //触发路由载入完成事件 + $this->app->event->trigger(RouteLoaded::class); + + $table = new Table(); + + if ($this->input->hasOption('more')) { + $header = ['Rule', 'Route', 'Method', 'Name', 'Domain', 'Option', 'Pattern']; + } else { + $header = ['Rule', 'Route', 'Method', 'Name']; + } + + $table->setHeader($header); + + $routeList = $this->app->route->getRuleList(); + $rows = []; + + foreach ($routeList as $item) { + $item['route'] = $item['route'] instanceof \Closure ? '' : $item['route']; + + if ($this->input->hasOption('more')) { + $item = [$item['rule'], $item['route'], $item['method'], $item['name'], $item['domain'], json_encode($item['option']), json_encode($item['pattern'])]; + } else { + $item = [$item['rule'], $item['route'], $item['method'], $item['name']]; + } + + $rows[] = $item; + } + + if ($this->input->getOption('sort')) { + $sort = strtolower($this->input->getOption('sort')); + + if (isset($this->sortBy[$sort])) { + $sort = $this->sortBy[$sort]; + } + + uasort($rows, function ($a, $b) use ($sort) { + $itemA = $a[$sort] ?? null; + $itemB = $b[$sort] ?? null; + + return strcasecmp($itemA, $itemB); + }); + } + + $table->setRows($rows); + + if ($this->input->getArgument('style')) { + $style = $this->input->getArgument('style'); + $table->setStyle($style); + } + + return $this->table($table); + } + +} diff --git a/vendor/topthink/framework/src/think/console/command/RunServer.php b/vendor/topthink/framework/src/think/console/command/RunServer.php new file mode 100644 index 0000000..82d2744 --- /dev/null +++ b/vendor/topthink/framework/src/think/console/command/RunServer.php @@ -0,0 +1,57 @@ + +// +---------------------------------------------------------------------- +declare (strict_types = 1); + +namespace think\console\command; + +use think\console\Command; +use think\console\Input; +use think\console\input\Option; +use think\console\Output; + +class RunServer extends Command +{ + public function configure() + { + $this->setName('run') + ->addOption('host', 'H', Option::VALUE_OPTIONAL, + 'The host to server the application on', '0.0.0.0') + ->addOption('port', 'p', Option::VALUE_OPTIONAL, + 'The port to server the application on', 8000) + ->addOption('root', 'r', Option::VALUE_OPTIONAL, + 'The document root of the application', '') + ->setDescription('PHP Built-in Server for ThinkPHP'); + } + + public function execute(Input $input, Output $output) + { + $host = $input->getOption('host'); + $port = $input->getOption('port'); + $root = $input->getOption('root'); + if (empty($root)) { + $root = $this->app->getRootPath() . 'public'; + } + + $command = sprintf( + 'php -S %s:%d -t %s %s', + $host, + $port, + escapeshellarg($root), + escapeshellarg($root . DIRECTORY_SEPARATOR . 'router.php') + ); + + $output->writeln(sprintf('ThinkPHP Development server is started On ', '0.0.0.0' == $host ? '127.0.0.1' : $host, $port)); + $output->writeln(sprintf('You can exit with `CTRL-C`')); + $output->writeln(sprintf('Document root is: %s', $root)); + passthru($command); + } + +} diff --git a/vendor/topthink/framework/src/think/console/command/ServiceDiscover.php b/vendor/topthink/framework/src/think/console/command/ServiceDiscover.php new file mode 100644 index 0000000..3aae1db --- /dev/null +++ b/vendor/topthink/framework/src/think/console/command/ServiceDiscover.php @@ -0,0 +1,48 @@ + +// +---------------------------------------------------------------------- +declare (strict_types = 1); + +namespace think\console\command; + +use think\console\Command; +use think\console\Input; +use think\console\Output; + +class ServiceDiscover extends Command +{ + public function configure() + { + $this->setName('service:discover') + ->setDescription('Discover Services for ThinkPHP'); + } + + public function execute(Input $input, Output $output) + { + if (is_file($path = $this->app->getRootPath() . 'vendor/composer/installed.json')) { + $packages = json_decode(@file_get_contents($path), true); + + $services = []; + foreach ($packages as $package) { + if (!empty($package['extra']['think']['services'])) { + $services = array_merge($services, (array) $package['extra']['think']['services']); + } + } + + $header = '// This file is automatically generated at:' . date('Y-m-d H:i:s') . PHP_EOL . 'declare (strict_types = 1);' . PHP_EOL; + + $content = 'app->getRootPath() . 'vendor/services.php', $content); + + $output->writeln('Succeed!'); + } + } +} diff --git a/vendor/topthink/framework/src/think/console/command/VendorPublish.php b/vendor/topthink/framework/src/think/console/command/VendorPublish.php new file mode 100644 index 0000000..7b43762 --- /dev/null +++ b/vendor/topthink/framework/src/think/console/command/VendorPublish.php @@ -0,0 +1,66 @@ + +// +---------------------------------------------------------------------- +declare (strict_types = 1); + +namespace think\console\command; + +use think\console\Command; +use think\console\input\Option; + +class VendorPublish extends Command +{ + public function configure() + { + $this->setName('vendor:publish') + ->addOption('force', 'f', Option::VALUE_NONE, 'Overwrite any existing files') + ->setDescription('Publish any publishable assets from vendor packages'); + } + + public function handle() + { + + $force = $this->input->getOption('force'); + + if (is_file($path = $this->app->getRootPath() . 'vendor/composer/installed.json')) { + $packages = json_decode(@file_get_contents($path), true); + + foreach ($packages as $package) { + //配置 + $configDir = $this->app->getConfigPath(); + + if (!empty($package['extra']['think']['config'])) { + + $installPath = $this->app->getRootPath() . 'vendor/' . $package['name'] . DIRECTORY_SEPARATOR; + + foreach ((array) $package['extra']['think']['config'] as $name => $file) { + + $target = $configDir . $name . '.php'; + $source = $installPath . $file; + + if (is_file($target) && !$force) { + $this->output->info("File {$target} exist!"); + continue; + } + + if (!is_file($source)) { + $this->output->info("File {$source} not exist!"); + continue; + } + + copy($source, $target); + } + } + } + + $this->output->writeln('Succeed!'); + } + } +} diff --git a/vendor/topthink/framework/src/think/console/command/Version.php b/vendor/topthink/framework/src/think/console/command/Version.php new file mode 100644 index 0000000..beb49d2 --- /dev/null +++ b/vendor/topthink/framework/src/think/console/command/Version.php @@ -0,0 +1,33 @@ + +// +---------------------------------------------------------------------- +declare (strict_types = 1); + +namespace think\console\command; + +use think\console\Command; +use think\console\Input; +use think\console\Output; + +class Version extends Command +{ + protected function configure() + { + // 指令配置 + $this->setName('version') + ->setDescription('show thinkphp framework version'); + } + + protected function execute(Input $input, Output $output) + { + $output->writeln('v' . $this->app->version()); + } + +} diff --git a/vendor/topthink/framework/src/think/console/command/make/Command.php b/vendor/topthink/framework/src/think/console/command/make/Command.php new file mode 100644 index 0000000..88e665a --- /dev/null +++ b/vendor/topthink/framework/src/think/console/command/make/Command.php @@ -0,0 +1,55 @@ + +// +---------------------------------------------------------------------- + +namespace think\console\command\make; + +use think\console\command\Make; +use think\console\input\Argument; + +class Command extends Make +{ + protected $type = "Command"; + + protected function configure() + { + parent::configure(); + $this->setName('make:command') + ->addArgument('commandName', Argument::OPTIONAL, "The name of the command") + ->setDescription('Create a new command class'); + } + + protected function buildClass(string $name): string + { + $commandName = $this->input->getArgument('commandName') ?: strtolower(basename($name)); + $namespace = trim(implode('\\', array_slice(explode('\\', $name), 0, -1)), '\\'); + + $class = str_replace($namespace . '\\', '', $name); + $stub = file_get_contents($this->getStub()); + + return str_replace(['{%commandName%}', '{%className%}', '{%namespace%}', '{%app_namespace%}'], [ + $commandName, + $class, + $namespace, + $this->app->getNamespace(), + ], $stub); + } + + protected function getStub(): string + { + return __DIR__ . DIRECTORY_SEPARATOR . 'stubs' . DIRECTORY_SEPARATOR . 'command.stub'; + } + + protected function getNamespace(string $app): string + { + return parent::getNamespace($app) . '\\command'; + } + +} diff --git a/vendor/topthink/framework/src/think/console/command/make/Controller.php b/vendor/topthink/framework/src/think/console/command/make/Controller.php new file mode 100644 index 0000000..582cffb --- /dev/null +++ b/vendor/topthink/framework/src/think/console/command/make/Controller.php @@ -0,0 +1,56 @@ + +// +---------------------------------------------------------------------- + +namespace think\console\command\make; + +use think\console\command\Make; +use think\console\input\Option; + +class Controller extends Make +{ + + protected $type = "Controller"; + + protected function configure() + { + parent::configure(); + $this->setName('make:controller') + ->addOption('api', null, Option::VALUE_NONE, 'Generate an api controller class.') + ->addOption('plain', null, Option::VALUE_NONE, 'Generate an empty controller class.') + ->setDescription('Create a new resource controller class'); + } + + protected function getStub(): string + { + $stubPath = __DIR__ . DIRECTORY_SEPARATOR . 'stubs' . DIRECTORY_SEPARATOR; + + if ($this->input->getOption('api')) { + return $stubPath . 'controller.api.stub'; + } + + if ($this->input->getOption('plain')) { + return $stubPath . 'controller.plain.stub'; + } + + return $stubPath . 'controller.stub'; + } + + protected function getClassName(string $name): string + { + return parent::getClassName($name) . ($this->app->config->get('route.controller_suffix') ? 'Controller' : ''); + } + + protected function getNamespace(string $app): string + { + return parent::getNamespace($app) . '\\controller'; + } + +} diff --git a/vendor/topthink/framework/src/think/console/command/make/Event.php b/vendor/topthink/framework/src/think/console/command/make/Event.php new file mode 100644 index 0000000..a4676d8 --- /dev/null +++ b/vendor/topthink/framework/src/think/console/command/make/Event.php @@ -0,0 +1,35 @@ + +// +---------------------------------------------------------------------- +namespace think\console\command\make; + +use think\console\command\Make; + +class Event extends Make +{ + protected $type = "Event"; + + protected function configure() + { + parent::configure(); + $this->setName('make:event') + ->setDescription('Create a new event class'); + } + + protected function getStub(): string + { + return __DIR__ . DIRECTORY_SEPARATOR . 'stubs' . DIRECTORY_SEPARATOR . 'event.stub'; + } + + protected function getNamespace(string $app): string + { + return parent::getNamespace($app) . '\\event'; + } +} diff --git a/vendor/topthink/framework/src/think/console/command/make/Listener.php b/vendor/topthink/framework/src/think/console/command/make/Listener.php new file mode 100644 index 0000000..bb29668 --- /dev/null +++ b/vendor/topthink/framework/src/think/console/command/make/Listener.php @@ -0,0 +1,35 @@ + +// +---------------------------------------------------------------------- +namespace think\console\command\make; + +use think\console\command\Make; + +class Listener extends Make +{ + protected $type = "Listener"; + + protected function configure() + { + parent::configure(); + $this->setName('make:listener') + ->setDescription('Create a new listener class'); + } + + protected function getStub(): string + { + return __DIR__ . DIRECTORY_SEPARATOR . 'stubs' . DIRECTORY_SEPARATOR . 'listener.stub'; + } + + protected function getNamespace(string $app): string + { + return parent::getNamespace($app) . '\\listener'; + } +} diff --git a/vendor/topthink/framework/src/think/console/command/make/Middleware.php b/vendor/topthink/framework/src/think/console/command/make/Middleware.php new file mode 100644 index 0000000..80f4563 --- /dev/null +++ b/vendor/topthink/framework/src/think/console/command/make/Middleware.php @@ -0,0 +1,36 @@ + +// +---------------------------------------------------------------------- + +namespace think\console\command\make; + +use think\console\command\Make; + +class Middleware extends Make +{ + protected $type = "Middleware"; + + protected function configure() + { + parent::configure(); + $this->setName('make:middleware') + ->setDescription('Create a new middleware class'); + } + + protected function getStub(): string + { + return __DIR__ . DIRECTORY_SEPARATOR . 'stubs' . DIRECTORY_SEPARATOR . 'middleware.stub'; + } + + protected function getNamespace(string $app): string + { + return 'app\\middleware'; + } +} diff --git a/vendor/topthink/framework/src/think/console/command/make/Model.php b/vendor/topthink/framework/src/think/console/command/make/Model.php new file mode 100644 index 0000000..acb37e7 --- /dev/null +++ b/vendor/topthink/framework/src/think/console/command/make/Model.php @@ -0,0 +1,36 @@ + +// +---------------------------------------------------------------------- + +namespace think\console\command\make; + +use think\console\command\Make; + +class Model extends Make +{ + protected $type = "Model"; + + protected function configure() + { + parent::configure(); + $this->setName('make:model') + ->setDescription('Create a new model class'); + } + + protected function getStub(): string + { + return __DIR__ . DIRECTORY_SEPARATOR . 'stubs' . DIRECTORY_SEPARATOR . 'model.stub'; + } + + protected function getNamespace(string $app): string + { + return parent::getNamespace($app) . '\\model'; + } +} diff --git a/vendor/topthink/framework/src/think/console/command/make/Service.php b/vendor/topthink/framework/src/think/console/command/make/Service.php new file mode 100644 index 0000000..18bd54e --- /dev/null +++ b/vendor/topthink/framework/src/think/console/command/make/Service.php @@ -0,0 +1,36 @@ + +// +---------------------------------------------------------------------- + +namespace think\console\command\make; + +use think\console\command\Make; + +class Service extends Make +{ + protected $type = "Service"; + + protected function configure() + { + parent::configure(); + $this->setName('make:service') + ->setDescription('Create a new Service class'); + } + + protected function getStub(): string + { + return __DIR__ . DIRECTORY_SEPARATOR . 'stubs' . DIRECTORY_SEPARATOR . 'service.stub'; + } + + protected function getNamespace(string $app): string + { + return parent::getNamespace($app) . '\\service'; + } +} diff --git a/vendor/topthink/framework/src/think/console/command/make/Subscribe.php b/vendor/topthink/framework/src/think/console/command/make/Subscribe.php new file mode 100644 index 0000000..4203986 --- /dev/null +++ b/vendor/topthink/framework/src/think/console/command/make/Subscribe.php @@ -0,0 +1,35 @@ + +// +---------------------------------------------------------------------- +namespace think\console\command\make; + +use think\console\command\Make; + +class Subscribe extends Make +{ + protected $type = "Subscribe"; + + protected function configure() + { + parent::configure(); + $this->setName('make:subscribe') + ->setDescription('Create a new subscribe class'); + } + + protected function getStub(): string + { + return __DIR__ . DIRECTORY_SEPARATOR . 'stubs' . DIRECTORY_SEPARATOR . 'subscribe.stub'; + } + + protected function getNamespace(string $app): string + { + return parent::getNamespace($app) . '\\subscribe'; + } +} diff --git a/vendor/topthink/framework/src/think/console/command/make/Validate.php b/vendor/topthink/framework/src/think/console/command/make/Validate.php new file mode 100644 index 0000000..4926e20 --- /dev/null +++ b/vendor/topthink/framework/src/think/console/command/make/Validate.php @@ -0,0 +1,39 @@ + +// +---------------------------------------------------------------------- + +namespace think\console\command\make; + +use think\console\command\Make; + +class Validate extends Make +{ + protected $type = "Validate"; + + protected function configure() + { + parent::configure(); + $this->setName('make:validate') + ->setDescription('Create a validate class'); + } + + protected function getStub(): string + { + $stubPath = __DIR__ . DIRECTORY_SEPARATOR . 'stubs' . DIRECTORY_SEPARATOR; + + return $stubPath . 'validate.stub'; + } + + protected function getNamespace(string $app): string + { + return parent::getNamespace($app) . '\\validate'; + } + +} diff --git a/vendor/topthink/framework/src/think/console/command/make/stubs/command.stub b/vendor/topthink/framework/src/think/console/command/make/stubs/command.stub new file mode 100644 index 0000000..e9121cd --- /dev/null +++ b/vendor/topthink/framework/src/think/console/command/make/stubs/command.stub @@ -0,0 +1,26 @@ +setName('{%commandName%}') + ->setDescription('the {%commandName%} command'); + } + + protected function execute(Input $input, Output $output) + { + // 指令输出 + $output->writeln('{%commandName%}'); + } +} diff --git a/vendor/topthink/framework/src/think/console/command/make/stubs/controller.api.stub b/vendor/topthink/framework/src/think/console/command/make/stubs/controller.api.stub new file mode 100644 index 0000000..5d3383d --- /dev/null +++ b/vendor/topthink/framework/src/think/console/command/make/stubs/controller.api.stub @@ -0,0 +1,64 @@ + ['规则1','规则2'...] + * + * @var array + */ + protected $rule = []; + + /** + * 定义错误信息 + * 格式:'字段名.规则名' => '错误信息' + * + * @var array + */ + protected $message = []; +} diff --git a/vendor/topthink/framework/src/think/console/command/optimize/Route.php b/vendor/topthink/framework/src/think/console/command/optimize/Route.php new file mode 100644 index 0000000..bd4f79c --- /dev/null +++ b/vendor/topthink/framework/src/think/console/command/optimize/Route.php @@ -0,0 +1,67 @@ + +// +---------------------------------------------------------------------- +namespace think\console\command\optimize; + +use think\console\Command; +use think\console\Input; +use think\console\input\Argument; +use think\console\Output; +use think\event\RouteLoaded; + +class Route extends Command +{ + protected function configure() + { + $this->setName('optimize:route') + ->addArgument('dir', Argument::OPTIONAL, 'dir name .') + ->setDescription('Build app route cache.'); + } + + protected function execute(Input $input, Output $output) + { + $dir = $input->getArgument('dir') ?: ''; + + $path = $this->app->getRootPath() . 'runtime' . DIRECTORY_SEPARATOR . ($dir ? $dir . DIRECTORY_SEPARATOR : ''); + + $filename = $path . 'route.php'; + if (is_file($filename)) { + unlink($filename); + } + + file_put_contents($filename, $this->buildRouteCache($dir)); + $output->writeln('Succeed!'); + } + + protected function buildRouteCache(string $dir = null): string + { + $this->app->route->clear(); + $this->app->route->lazy(false); + + // 路由检测 + $path = $this->app->getRootPath() . ($dir ? 'app' . DIRECTORY_SEPARATOR . $dir . DIRECTORY_SEPARATOR : '') . 'route' . DIRECTORY_SEPARATOR ; + + $files = is_dir($path) ? scandir($path) : []; + + foreach ($files as $file) { + if (strpos($file, '.php')) { + include $path . $file; + } + } + + //触发路由载入完成事件 + $this->app->event->trigger(RouteLoaded::class); + + $content = 'app->route->getName()) . '\');'; + return $content; + } + +} diff --git a/vendor/topthink/framework/src/think/console/command/optimize/Schema.php b/vendor/topthink/framework/src/think/console/command/optimize/Schema.php new file mode 100644 index 0000000..29f0bdb --- /dev/null +++ b/vendor/topthink/framework/src/think/console/command/optimize/Schema.php @@ -0,0 +1,116 @@ + +// +---------------------------------------------------------------------- +namespace think\console\command\optimize; + +use think\console\Command; +use think\console\Input; +use think\console\input\Argument; +use think\console\input\Option; +use think\console\Output; + +class Schema extends Command +{ + protected function configure() + { + $this->setName('optimize:schema') + ->addArgument('dir', Argument::OPTIONAL, 'dir name .') + ->addOption('db', null, Option::VALUE_REQUIRED, 'db name .') + ->addOption('table', null, Option::VALUE_REQUIRED, 'table name .') + ->setDescription('Build database schema cache.'); + } + + protected function execute(Input $input, Output $output) + { + $dir = $input->getArgument('dir') ?: ''; + + $schemaPath = $this->app->db->getConnection()->getConfig('schema_cache_path'); + + if (!is_dir($schemaPath)) { + mkdir($schemaPath, 0755, true); + } + + if ($input->hasOption('table')) { + $table = $input->getOption('table'); + if (false === strpos($table, '.')) { + $dbName = $this->app->db->getConnection()->getConfig('database'); + } + + $tables[] = $table; + } elseif ($input->hasOption('db')) { + $dbName = $input->getOption('db'); + $tables = $this->app->db->getConnection()->getTables($dbName); + } else { + if ($dir) { + $appPath = $this->app->getBasePath() . $dir . DIRECTORY_SEPARATOR; + $namespace = 'app\\' . $dir; + } else { + $appPath = $this->app->getBasePath(); + $namespace = 'app'; + } + + $path = $appPath . 'model'; + $list = is_dir($path) ? scandir($path) : []; + + foreach ($list as $file) { + if (0 === strpos($file, '.')) { + continue; + } + $class = '\\' . $namespace . '\\model\\' . pathinfo($file, PATHINFO_FILENAME); + $this->buildModelSchema($class); + } + + $output->writeln('Succeed!'); + return; + } + + $db = isset($dbName) ? $dbName . '.' : ''; + $this->buildDataBaseSchema($schemaPath, $tables, $db); + + $output->writeln('Succeed!'); + } + + protected function buildModelSchema(string $class): void + { + $reflect = new \ReflectionClass($class); + if (!$reflect->isAbstract() && $reflect->isSubclassOf('\think\Model')) { + /** @var \think\Model $model */ + $model = new $class; + + $table = $model->getTable(); + $dbName = $model->db()->getConnection()->getConfig('database'); + $path = $model->db()->getConnection()->getConfig('schema_cache_path'); + if (!is_dir($path)) { + mkdir($path, 0755, true); + } + $content = 'db()->getConnection()->getTableFieldsInfo($table); + $content .= var_export($info, true) . ';'; + + file_put_contents($path . $dbName . '.' . $table . '.php', $content); + } + } + + protected function buildDataBaseSchema(string $path, array $tables, string $db): void + { + if ('' == $db) { + $dbName = $this->app->db->getConnection()->getConfig('database') . '.'; + } else { + $dbName = $db; + } + + foreach ($tables as $table) { + $content = 'app->db->getConnection()->getTableFieldsInfo($db . $table); + $content .= var_export($info, true) . ';'; + file_put_contents($path . $dbName . $table . '.php', $content); + } + } +} diff --git a/vendor/topthink/framework/src/think/console/input/Argument.php b/vendor/topthink/framework/src/think/console/input/Argument.php new file mode 100644 index 0000000..4fa3e3c --- /dev/null +++ b/vendor/topthink/framework/src/think/console/input/Argument.php @@ -0,0 +1,115 @@ + +// +---------------------------------------------------------------------- + +namespace think\console\input; + +class Argument +{ + + const REQUIRED = 1; + const OPTIONAL = 2; + const IS_ARRAY = 4; + + private $name; + private $mode; + private $default; + private $description; + + /** + * 构造方法 + * @param string $name 参数名 + * @param int $mode 参数类型: self::REQUIRED 或者 self::OPTIONAL + * @param string $description 描述 + * @param mixed $default 默认值 (仅 self::OPTIONAL 类型有效) + * @throws \InvalidArgumentException + */ + public function __construct(string $name, int $mode = null, string $description = '', $default = null) + { + if (null === $mode) { + $mode = self::OPTIONAL; + } elseif (!is_int($mode) || $mode > 7 || $mode < 1) { + throw new \InvalidArgumentException(sprintf('Argument mode "%s" is not valid.', $mode)); + } + + $this->name = $name; + $this->mode = $mode; + $this->description = $description; + + $this->setDefault($default); + } + + /** + * 获取参数名 + * @return string + */ + public function getName(): string + { + return $this->name; + } + + /** + * 是否必须 + * @return bool + */ + public function isRequired(): bool + { + return self::REQUIRED === (self::REQUIRED & $this->mode); + } + + /** + * 该参数是否接受数组 + * @return bool + */ + public function isArray(): bool + { + return self::IS_ARRAY === (self::IS_ARRAY & $this->mode); + } + + /** + * 设置默认值 + * @param mixed $default 默认值 + * @throws \LogicException + */ + public function setDefault($default = null): void + { + if (self::REQUIRED === $this->mode && null !== $default) { + throw new \LogicException('Cannot set a default value except for InputArgument::OPTIONAL mode.'); + } + + if ($this->isArray()) { + if (null === $default) { + $default = []; + } elseif (!is_array($default)) { + throw new \LogicException('A default value for an array argument must be an array.'); + } + } + + $this->default = $default; + } + + /** + * 获取默认值 + * @return mixed + */ + public function getDefault() + { + return $this->default; + } + + /** + * 获取描述 + * @return string + */ + public function getDescription(): string + { + return $this->description; + } +} diff --git a/vendor/topthink/framework/src/think/console/input/Definition.php b/vendor/topthink/framework/src/think/console/input/Definition.php new file mode 100644 index 0000000..ccf02a0 --- /dev/null +++ b/vendor/topthink/framework/src/think/console/input/Definition.php @@ -0,0 +1,375 @@ + +// +---------------------------------------------------------------------- + +namespace think\console\input; + +class Definition +{ + + /** + * @var Argument[] + */ + private $arguments; + + private $requiredCount; + private $hasAnArrayArgument = false; + private $hasOptional; + + /** + * @var Option[] + */ + private $options; + private $shortcuts; + + /** + * 构造方法 + * @param array $definition + * @api + */ + public function __construct(array $definition = []) + { + $this->setDefinition($definition); + } + + /** + * 设置指令的定义 + * @param array $definition 定义的数组 + */ + public function setDefinition(array $definition): void + { + $arguments = []; + $options = []; + foreach ($definition as $item) { + if ($item instanceof Option) { + $options[] = $item; + } else { + $arguments[] = $item; + } + } + + $this->setArguments($arguments); + $this->setOptions($options); + } + + /** + * 设置参数 + * @param Argument[] $arguments 参数数组 + */ + public function setArguments(array $arguments = []): void + { + $this->arguments = []; + $this->requiredCount = 0; + $this->hasOptional = false; + $this->hasAnArrayArgument = false; + $this->addArguments($arguments); + } + + /** + * 添加参数 + * @param Argument[] $arguments 参数数组 + * @api + */ + public function addArguments(array $arguments = []): void + { + if (null !== $arguments) { + foreach ($arguments as $argument) { + $this->addArgument($argument); + } + } + } + + /** + * 添加一个参数 + * @param Argument $argument 参数 + * @throws \LogicException + */ + public function addArgument(Argument $argument): void + { + if (isset($this->arguments[$argument->getName()])) { + throw new \LogicException(sprintf('An argument with name "%s" already exists.', $argument->getName())); + } + + if ($this->hasAnArrayArgument) { + throw new \LogicException('Cannot add an argument after an array argument.'); + } + + if ($argument->isRequired() && $this->hasOptional) { + throw new \LogicException('Cannot add a required argument after an optional one.'); + } + + if ($argument->isArray()) { + $this->hasAnArrayArgument = true; + } + + if ($argument->isRequired()) { + ++$this->requiredCount; + } else { + $this->hasOptional = true; + } + + $this->arguments[$argument->getName()] = $argument; + } + + /** + * 根据名称或者位置获取参数 + * @param string|int $name 参数名或者位置 + * @return Argument 参数 + * @throws \InvalidArgumentException + */ + public function getArgument($name): Argument + { + if (!$this->hasArgument($name)) { + throw new \InvalidArgumentException(sprintf('The "%s" argument does not exist.', $name)); + } + + $arguments = is_int($name) ? array_values($this->arguments) : $this->arguments; + + return $arguments[$name]; + } + + /** + * 根据名称或位置检查是否具有某个参数 + * @param string|int $name 参数名或者位置 + * @return bool + * @api + */ + public function hasArgument($name): bool + { + $arguments = is_int($name) ? array_values($this->arguments) : $this->arguments; + + return isset($arguments[$name]); + } + + /** + * 获取所有的参数 + * @return Argument[] 参数数组 + */ + public function getArguments(): array + { + return $this->arguments; + } + + /** + * 获取参数数量 + * @return int + */ + public function getArgumentCount(): int + { + return $this->hasAnArrayArgument ? PHP_INT_MAX : count($this->arguments); + } + + /** + * 获取必填的参数的数量 + * @return int + */ + public function getArgumentRequiredCount(): int + { + return $this->requiredCount; + } + + /** + * 获取参数默认值 + * @return array + */ + public function getArgumentDefaults(): array + { + $values = []; + foreach ($this->arguments as $argument) { + $values[$argument->getName()] = $argument->getDefault(); + } + + return $values; + } + + /** + * 设置选项 + * @param Option[] $options 选项数组 + */ + public function setOptions(array $options = []): void + { + $this->options = []; + $this->shortcuts = []; + $this->addOptions($options); + } + + /** + * 添加选项 + * @param Option[] $options 选项数组 + * @api + */ + public function addOptions(array $options = []): void + { + foreach ($options as $option) { + $this->addOption($option); + } + } + + /** + * 添加一个选项 + * @param Option $option 选项 + * @throws \LogicException + * @api + */ + public function addOption(Option $option): void + { + if (isset($this->options[$option->getName()]) && !$option->equals($this->options[$option->getName()])) { + throw new \LogicException(sprintf('An option named "%s" already exists.', $option->getName())); + } + + if ($option->getShortcut()) { + foreach (explode('|', $option->getShortcut()) as $shortcut) { + if (isset($this->shortcuts[$shortcut]) + && !$option->equals($this->options[$this->shortcuts[$shortcut]]) + ) { + throw new \LogicException(sprintf('An option with shortcut "%s" already exists.', $shortcut)); + } + } + } + + $this->options[$option->getName()] = $option; + if ($option->getShortcut()) { + foreach (explode('|', $option->getShortcut()) as $shortcut) { + $this->shortcuts[$shortcut] = $option->getName(); + } + } + } + + /** + * 根据名称获取选项 + * @param string $name 选项名 + * @return Option + * @throws \InvalidArgumentException + * @api + */ + public function getOption(string $name): Option + { + if (!$this->hasOption($name)) { + throw new \InvalidArgumentException(sprintf('The "--%s" option does not exist.', $name)); + } + + return $this->options[$name]; + } + + /** + * 根据名称检查是否有这个选项 + * @param string $name 选项名 + * @return bool + * @api + */ + public function hasOption(string $name): bool + { + return isset($this->options[$name]); + } + + /** + * 获取所有选项 + * @return Option[] + * @api + */ + public function getOptions(): array + { + return $this->options; + } + + /** + * 根据名称检查某个选项是否有短名称 + * @param string $name 短名称 + * @return bool + */ + public function hasShortcut(string $name): bool + { + return isset($this->shortcuts[$name]); + } + + /** + * 根据短名称获取选项 + * @param string $shortcut 短名称 + * @return Option + */ + public function getOptionForShortcut(string $shortcut): Option + { + return $this->getOption($this->shortcutToName($shortcut)); + } + + /** + * 获取所有选项的默认值 + * @return array + */ + public function getOptionDefaults(): array + { + $values = []; + foreach ($this->options as $option) { + $values[$option->getName()] = $option->getDefault(); + } + + return $values; + } + + /** + * 根据短名称获取选项名 + * @param string $shortcut 短名称 + * @return string + * @throws \InvalidArgumentException + */ + private function shortcutToName(string $shortcut): string + { + if (!isset($this->shortcuts[$shortcut])) { + throw new \InvalidArgumentException(sprintf('The "-%s" option does not exist.', $shortcut)); + } + + return $this->shortcuts[$shortcut]; + } + + /** + * 获取该指令的介绍 + * @param bool $short 是否简洁介绍 + * @return string + */ + public function getSynopsis(bool $short = false): string + { + $elements = []; + + if ($short && $this->getOptions()) { + $elements[] = '[options]'; + } elseif (!$short) { + foreach ($this->getOptions() as $option) { + $value = ''; + if ($option->acceptValue()) { + $value = sprintf(' %s%s%s', $option->isValueOptional() ? '[' : '', strtoupper($option->getName()), $option->isValueOptional() ? ']' : ''); + } + + $shortcut = $option->getShortcut() ? sprintf('-%s|', $option->getShortcut()) : ''; + $elements[] = sprintf('[%s--%s%s]', $shortcut, $option->getName(), $value); + } + } + + if (count($elements) && $this->getArguments()) { + $elements[] = '[--]'; + } + + foreach ($this->getArguments() as $argument) { + $element = '<' . $argument->getName() . '>'; + if (!$argument->isRequired()) { + $element = '[' . $element . ']'; + } elseif ($argument->isArray()) { + $element .= ' (' . $element . ')'; + } + + if ($argument->isArray()) { + $element .= '...'; + } + + $elements[] = $element; + } + + return implode(' ', $elements); + } +} diff --git a/vendor/topthink/framework/src/think/console/input/Option.php b/vendor/topthink/framework/src/think/console/input/Option.php new file mode 100644 index 0000000..e5707c9 --- /dev/null +++ b/vendor/topthink/framework/src/think/console/input/Option.php @@ -0,0 +1,190 @@ + +// +---------------------------------------------------------------------- + +namespace think\console\input; + +class Option +{ + + const VALUE_NONE = 1; + const VALUE_REQUIRED = 2; + const VALUE_OPTIONAL = 4; + const VALUE_IS_ARRAY = 8; + + private $name; + private $shortcut; + private $mode; + private $default; + private $description; + + /** + * 构造方法 + * @param string $name 选项名 + * @param string|array $shortcut 短名称,多个用|隔开或者使用数组 + * @param int $mode 选项类型(可选类型为 self::VALUE_*) + * @param string $description 描述 + * @param mixed $default 默认值 (类型为 self::VALUE_REQUIRED 或者 self::VALUE_NONE 的时候必须为null) + * @throws \InvalidArgumentException + */ + public function __construct($name, $shortcut = null, $mode = null, $description = '', $default = null) + { + if (0 === strpos($name, '--')) { + $name = substr($name, 2); + } + + if (empty($name)) { + throw new \InvalidArgumentException('An option name cannot be empty.'); + } + + if (empty($shortcut)) { + $shortcut = null; + } + + if (null !== $shortcut) { + if (is_array($shortcut)) { + $shortcut = implode('|', $shortcut); + } + $shortcuts = preg_split('{(\|)-?}', ltrim($shortcut, '-')); + $shortcuts = array_filter($shortcuts); + $shortcut = implode('|', $shortcuts); + + if (empty($shortcut)) { + throw new \InvalidArgumentException('An option shortcut cannot be empty.'); + } + } + + if (null === $mode) { + $mode = self::VALUE_NONE; + } elseif (!is_int($mode) || $mode > 15 || $mode < 1) { + throw new \InvalidArgumentException(sprintf('Option mode "%s" is not valid.', $mode)); + } + + $this->name = $name; + $this->shortcut = $shortcut; + $this->mode = $mode; + $this->description = $description; + + if ($this->isArray() && !$this->acceptValue()) { + throw new \InvalidArgumentException('Impossible to have an option mode VALUE_IS_ARRAY if the option does not accept a value.'); + } + + $this->setDefault($default); + } + + /** + * 获取短名称 + * @return string + */ + public function getShortcut() + { + return $this->shortcut; + } + + /** + * 获取选项名 + * @return string + */ + public function getName() + { + return $this->name; + } + + /** + * 是否可以设置值 + * @return bool 类型不是 self::VALUE_NONE 的时候返回true,其他均返回false + */ + public function acceptValue() + { + return $this->isValueRequired() || $this->isValueOptional(); + } + + /** + * 是否必须 + * @return bool 类型是 self::VALUE_REQUIRED 的时候返回true,其他均返回false + */ + public function isValueRequired() + { + return self::VALUE_REQUIRED === (self::VALUE_REQUIRED & $this->mode); + } + + /** + * 是否可选 + * @return bool 类型是 self::VALUE_OPTIONAL 的时候返回true,其他均返回false + */ + public function isValueOptional() + { + return self::VALUE_OPTIONAL === (self::VALUE_OPTIONAL & $this->mode); + } + + /** + * 选项值是否接受数组 + * @return bool 类型是 self::VALUE_IS_ARRAY 的时候返回true,其他均返回false + */ + public function isArray() + { + return self::VALUE_IS_ARRAY === (self::VALUE_IS_ARRAY & $this->mode); + } + + /** + * 设置默认值 + * @param mixed $default 默认值 + * @throws \LogicException + */ + public function setDefault($default = null) + { + if (self::VALUE_NONE === (self::VALUE_NONE & $this->mode) && null !== $default) { + throw new \LogicException('Cannot set a default value when using InputOption::VALUE_NONE mode.'); + } + + if ($this->isArray()) { + if (null === $default) { + $default = []; + } elseif (!is_array($default)) { + throw new \LogicException('A default value for an array option must be an array.'); + } + } + + $this->default = $this->acceptValue() ? $default : false; + } + + /** + * 获取默认值 + * @return mixed + */ + public function getDefault() + { + return $this->default; + } + + /** + * 获取描述文字 + * @return string + */ + public function getDescription() + { + return $this->description; + } + + /** + * 检查所给选项是否是当前这个 + * @param Option $option + * @return bool + */ + public function equals(Option $option) + { + return $option->getName() === $this->getName() + && $option->getShortcut() === $this->getShortcut() + && $option->getDefault() === $this->getDefault() + && $option->isArray() === $this->isArray() + && $option->isValueRequired() === $this->isValueRequired() + && $option->isValueOptional() === $this->isValueOptional(); + } +} diff --git a/vendor/topthink/framework/src/think/console/output/Ask.php b/vendor/topthink/framework/src/think/console/output/Ask.php new file mode 100644 index 0000000..56821c7 --- /dev/null +++ b/vendor/topthink/framework/src/think/console/output/Ask.php @@ -0,0 +1,336 @@ + +// +---------------------------------------------------------------------- + +namespace think\console\output; + +use think\console\Input; +use think\console\Output; +use think\console\output\question\Choice; +use think\console\output\question\Confirmation; + +class Ask +{ + private static $stty; + + private static $shell; + + /** @var Input */ + protected $input; + + /** @var Output */ + protected $output; + + /** @var Question */ + protected $question; + + public function __construct(Input $input, Output $output, Question $question) + { + $this->input = $input; + $this->output = $output; + $this->question = $question; + } + + public function run() + { + if (!$this->input->isInteractive()) { + return $this->question->getDefault(); + } + + if (!$this->question->getValidator()) { + return $this->doAsk(); + } + + $that = $this; + + $interviewer = function () use ($that) { + return $that->doAsk(); + }; + + return $this->validateAttempts($interviewer); + } + + protected function doAsk() + { + $this->writePrompt(); + + $inputStream = STDIN; + $autocomplete = $this->question->getAutocompleterValues(); + + if (null === $autocomplete || !$this->hasSttyAvailable()) { + $ret = false; + if ($this->question->isHidden()) { + try { + $ret = trim($this->getHiddenResponse($inputStream)); + } catch (\RuntimeException $e) { + if (!$this->question->isHiddenFallback()) { + throw $e; + } + } + } + + if (false === $ret) { + $ret = fgets($inputStream, 4096); + if (false === $ret) { + throw new \RuntimeException('Aborted'); + } + $ret = trim($ret); + } + } else { + $ret = trim($this->autocomplete($inputStream)); + } + + $ret = strlen($ret) > 0 ? $ret : $this->question->getDefault(); + + if ($normalizer = $this->question->getNormalizer()) { + return $normalizer($ret); + } + + return $ret; + } + + private function autocomplete($inputStream) + { + $autocomplete = $this->question->getAutocompleterValues(); + $ret = ''; + + $i = 0; + $ofs = -1; + $matches = $autocomplete; + $numMatches = count($matches); + + $sttyMode = shell_exec('stty -g'); + + shell_exec('stty -icanon -echo'); + + while (!feof($inputStream)) { + $c = fread($inputStream, 1); + + if ("\177" === $c) { + if (0 === $numMatches && 0 !== $i) { + --$i; + $this->output->write("\033[1D"); + } + + if ($i === 0) { + $ofs = -1; + $matches = $autocomplete; + $numMatches = count($matches); + } else { + $numMatches = 0; + } + + $ret = substr($ret, 0, $i); + } elseif ("\033" === $c) { + $c .= fread($inputStream, 2); + + if (isset($c[2]) && ('A' === $c[2] || 'B' === $c[2])) { + if ('A' === $c[2] && -1 === $ofs) { + $ofs = 0; + } + + if (0 === $numMatches) { + continue; + } + + $ofs += ('A' === $c[2]) ? -1 : 1; + $ofs = ($numMatches + $ofs) % $numMatches; + } + } elseif (ord($c) < 32) { + if ("\t" === $c || "\n" === $c) { + if ($numMatches > 0 && -1 !== $ofs) { + $ret = $matches[$ofs]; + $this->output->write(substr($ret, $i)); + $i = strlen($ret); + } + + if ("\n" === $c) { + $this->output->write($c); + break; + } + + $numMatches = 0; + } + + continue; + } else { + $this->output->write($c); + $ret .= $c; + ++$i; + + $numMatches = 0; + $ofs = 0; + + foreach ($autocomplete as $value) { + if (0 === strpos($value, $ret) && $i !== strlen($value)) { + $matches[$numMatches++] = $value; + } + } + } + + $this->output->write("\033[K"); + + if ($numMatches > 0 && -1 !== $ofs) { + $this->output->write("\0337"); + $this->output->highlight(substr($matches[$ofs], $i)); + $this->output->write("\0338"); + } + } + + shell_exec(sprintf('stty %s', $sttyMode)); + + return $ret; + } + + protected function getHiddenResponse($inputStream) + { + if ('\\' === DIRECTORY_SEPARATOR) { + $exe = __DIR__ . '/../bin/hiddeninput.exe'; + + $value = rtrim(shell_exec($exe)); + $this->output->writeln(''); + + return $value; + } + + if ($this->hasSttyAvailable()) { + $sttyMode = shell_exec('stty -g'); + + shell_exec('stty -echo'); + $value = fgets($inputStream, 4096); + shell_exec(sprintf('stty %s', $sttyMode)); + + if (false === $value) { + throw new \RuntimeException('Aborted'); + } + + $value = trim($value); + $this->output->writeln(''); + + return $value; + } + + if (false !== $shell = $this->getShell()) { + $readCmd = $shell === 'csh' ? 'set mypassword = $<' : 'read -r mypassword'; + $command = sprintf("/usr/bin/env %s -c 'stty -echo; %s; stty echo; echo \$mypassword'", $shell, $readCmd); + $value = rtrim(shell_exec($command)); + $this->output->writeln(''); + + return $value; + } + + throw new \RuntimeException('Unable to hide the response.'); + } + + protected function validateAttempts($interviewer) + { + /** @var \Exception $error */ + $error = null; + $attempts = $this->question->getMaxAttempts(); + while (null === $attempts || $attempts--) { + if (null !== $error) { + $this->output->error($error->getMessage()); + } + + try { + return call_user_func($this->question->getValidator(), $interviewer()); + } catch (\Exception $error) { + } + } + + throw $error; + } + + /** + * 显示问题的提示信息 + */ + protected function writePrompt() + { + $text = $this->question->getQuestion(); + $default = $this->question->getDefault(); + + switch (true) { + case null === $default: + $text = sprintf(' %s:', $text); + + break; + + case $this->question instanceof Confirmation: + $text = sprintf(' %s (yes/no) [%s]:', $text, $default ? 'yes' : 'no'); + + break; + + case $this->question instanceof Choice && $this->question->isMultiselect(): + $choices = $this->question->getChoices(); + $default = explode(',', $default); + + foreach ($default as $key => $value) { + $default[$key] = $choices[trim($value)]; + } + + $text = sprintf(' %s [%s]:', $text, implode(', ', $default)); + + break; + + case $this->question instanceof Choice: + $choices = $this->question->getChoices(); + $text = sprintf(' %s [%s]:', $text, $choices[$default]); + + break; + + default: + $text = sprintf(' %s [%s]:', $text, $default); + } + + $this->output->writeln($text); + + if ($this->question instanceof Choice) { + $width = max(array_map('strlen', array_keys($this->question->getChoices()))); + + foreach ($this->question->getChoices() as $key => $value) { + $this->output->writeln(sprintf(" [%-${width}s] %s", $key, $value)); + } + } + + $this->output->write(' > '); + } + + private function getShell() + { + if (null !== self::$shell) { + return self::$shell; + } + + self::$shell = false; + + if (file_exists('/usr/bin/env')) { + $test = "/usr/bin/env %s -c 'echo OK' 2> /dev/null"; + foreach (['bash', 'zsh', 'ksh', 'csh'] as $sh) { + if ('OK' === rtrim(shell_exec(sprintf($test, $sh)))) { + self::$shell = $sh; + break; + } + } + } + + return self::$shell; + } + + private function hasSttyAvailable() + { + if (null !== self::$stty) { + return self::$stty; + } + + exec('stty 2>&1', $output, $exitcode); + + return self::$stty = $exitcode === 0; + } +} diff --git a/vendor/topthink/framework/src/think/console/output/Descriptor.php b/vendor/topthink/framework/src/think/console/output/Descriptor.php new file mode 100644 index 0000000..8582b59 --- /dev/null +++ b/vendor/topthink/framework/src/think/console/output/Descriptor.php @@ -0,0 +1,319 @@ + +// +---------------------------------------------------------------------- + +namespace think\console\output; + +use think\Console; +use think\console\Command; +use think\console\input\Argument as InputArgument; +use think\console\input\Definition as InputDefinition; +use think\console\input\Option as InputOption; +use think\console\Output; +use think\console\output\descriptor\Console as ConsoleDescription; + +class Descriptor +{ + + /** + * @var Output + */ + protected $output; + + /** + * {@inheritdoc} + */ + public function describe(Output $output, $object, array $options = []) + { + $this->output = $output; + + switch (true) { + case $object instanceof InputArgument: + $this->describeInputArgument($object, $options); + break; + case $object instanceof InputOption: + $this->describeInputOption($object, $options); + break; + case $object instanceof InputDefinition: + $this->describeInputDefinition($object, $options); + break; + case $object instanceof Command: + $this->describeCommand($object, $options); + break; + case $object instanceof Console: + $this->describeConsole($object, $options); + break; + default: + throw new \InvalidArgumentException(sprintf('Object of type "%s" is not describable.', get_class($object))); + } + } + + /** + * 输出内容 + * @param string $content + * @param bool $decorated + */ + protected function write($content, $decorated = false) + { + $this->output->write($content, false, $decorated ? Output::OUTPUT_NORMAL : Output::OUTPUT_RAW); + } + + /** + * 描述参数 + * @param InputArgument $argument + * @param array $options + * @return string|mixed + */ + protected function describeInputArgument(InputArgument $argument, array $options = []) + { + if (null !== $argument->getDefault() + && (!is_array($argument->getDefault()) + || count($argument->getDefault())) + ) { + $default = sprintf(' [default: %s]', $this->formatDefaultValue($argument->getDefault())); + } else { + $default = ''; + } + + $totalWidth = $options['total_width'] ?? strlen($argument->getName()); + $spacingWidth = $totalWidth - strlen($argument->getName()) + 2; + + $this->writeText(sprintf(" %s%s%s%s", $argument->getName(), str_repeat(' ', $spacingWidth), // + 17 = 2 spaces + + + 2 spaces + preg_replace('/\s*\R\s*/', PHP_EOL . str_repeat(' ', $totalWidth + 17), $argument->getDescription()), $default), $options); + } + + /** + * 描述选项 + * @param InputOption $option + * @param array $options + * @return string|mixed + */ + protected function describeInputOption(InputOption $option, array $options = []) + { + if ($option->acceptValue() && null !== $option->getDefault() + && (!is_array($option->getDefault()) + || count($option->getDefault())) + ) { + $default = sprintf(' [default: %s]', $this->formatDefaultValue($option->getDefault())); + } else { + $default = ''; + } + + $value = ''; + if ($option->acceptValue()) { + $value = '=' . strtoupper($option->getName()); + + if ($option->isValueOptional()) { + $value = '[' . $value . ']'; + } + } + + $totalWidth = $options['total_width'] ?? $this->calculateTotalWidthForOptions([$option]); + $synopsis = sprintf('%s%s', $option->getShortcut() ? sprintf('-%s, ', $option->getShortcut()) : ' ', sprintf('--%s%s', $option->getName(), $value)); + + $spacingWidth = $totalWidth - strlen($synopsis) + 2; + + $this->writeText(sprintf(" %s%s%s%s%s", $synopsis, str_repeat(' ', $spacingWidth), // + 17 = 2 spaces + + + 2 spaces + preg_replace('/\s*\R\s*/', "\n" . str_repeat(' ', $totalWidth + 17), $option->getDescription()), $default, $option->isArray() ? ' (multiple values allowed)' : ''), $options); + } + + /** + * 描述输入 + * @param InputDefinition $definition + * @param array $options + * @return string|mixed + */ + protected function describeInputDefinition(InputDefinition $definition, array $options = []) + { + $totalWidth = $this->calculateTotalWidthForOptions($definition->getOptions()); + foreach ($definition->getArguments() as $argument) { + $totalWidth = max($totalWidth, strlen($argument->getName())); + } + + if ($definition->getArguments()) { + $this->writeText('Arguments:', $options); + $this->writeText("\n"); + foreach ($definition->getArguments() as $argument) { + $this->describeInputArgument($argument, array_merge($options, ['total_width' => $totalWidth])); + $this->writeText("\n"); + } + } + + if ($definition->getArguments() && $definition->getOptions()) { + $this->writeText("\n"); + } + + if ($definition->getOptions()) { + $laterOptions = []; + + $this->writeText('Options:', $options); + foreach ($definition->getOptions() as $option) { + if (strlen($option->getShortcut()) > 1) { + $laterOptions[] = $option; + continue; + } + $this->writeText("\n"); + $this->describeInputOption($option, array_merge($options, ['total_width' => $totalWidth])); + } + foreach ($laterOptions as $option) { + $this->writeText("\n"); + $this->describeInputOption($option, array_merge($options, ['total_width' => $totalWidth])); + } + } + } + + /** + * 描述指令 + * @param Command $command + * @param array $options + * @return string|mixed + */ + protected function describeCommand(Command $command, array $options = []) + { + $command->getSynopsis(true); + $command->getSynopsis(false); + $command->mergeConsoleDefinition(false); + + $this->writeText('Usage:', $options); + foreach (array_merge([$command->getSynopsis(true)], $command->getAliases(), $command->getUsages()) as $usage) { + $this->writeText("\n"); + $this->writeText(' ' . $usage, $options); + } + $this->writeText("\n"); + + $definition = $command->getNativeDefinition(); + if ($definition->getOptions() || $definition->getArguments()) { + $this->writeText("\n"); + $this->describeInputDefinition($definition, $options); + $this->writeText("\n"); + } + + if ($help = $command->getProcessedHelp()) { + $this->writeText("\n"); + $this->writeText('Help:', $options); + $this->writeText("\n"); + $this->writeText(' ' . str_replace("\n", "\n ", $help), $options); + $this->writeText("\n"); + } + } + + /** + * 描述控制台 + * @param Console $console + * @param array $options + * @return string|mixed + */ + protected function describeConsole(Console $console, array $options = []) + { + $describedNamespace = isset($options['namespace']) ? $options['namespace'] : null; + $description = new ConsoleDescription($console, $describedNamespace); + + if (isset($options['raw_text']) && $options['raw_text']) { + $width = $this->getColumnWidth($description->getCommands()); + + foreach ($description->getCommands() as $command) { + $this->writeText(sprintf("%-${width}s %s", $command->getName(), $command->getDescription()), $options); + $this->writeText("\n"); + } + } else { + if ('' != $help = $console->getHelp()) { + $this->writeText("$help\n\n", $options); + } + + $this->writeText("Usage:\n", $options); + $this->writeText(" command [options] [arguments]\n\n", $options); + + $this->describeInputDefinition(new InputDefinition($console->getDefinition()->getOptions()), $options); + + $this->writeText("\n"); + $this->writeText("\n"); + + $width = $this->getColumnWidth($description->getCommands()); + + if ($describedNamespace) { + $this->writeText(sprintf('Available commands for the "%s" namespace:', $describedNamespace), $options); + } else { + $this->writeText('Available commands:', $options); + } + + // add commands by namespace + foreach ($description->getNamespaces() as $namespace) { + if (!$describedNamespace && ConsoleDescription::GLOBAL_NAMESPACE !== $namespace['id']) { + $this->writeText("\n"); + $this->writeText(' ' . $namespace['id'] . '', $options); + } + + foreach ($namespace['commands'] as $name) { + $this->writeText("\n"); + $spacingWidth = $width - strlen($name); + $this->writeText(sprintf(" %s%s%s", $name, str_repeat(' ', $spacingWidth), $description->getCommand($name) + ->getDescription()), $options); + } + } + + $this->writeText("\n"); + } + } + + /** + * {@inheritdoc} + */ + private function writeText($content, array $options = []) + { + $this->write(isset($options['raw_text']) + && $options['raw_text'] ? strip_tags($content) : $content, isset($options['raw_output']) ? !$options['raw_output'] : true); + } + + /** + * 格式化 + * @param mixed $default + * @return string + */ + private function formatDefaultValue($default) + { + return json_encode($default, JSON_UNESCAPED_SLASHES | JSON_UNESCAPED_UNICODE); + } + + /** + * @param Command[] $commands + * @return int + */ + private function getColumnWidth(array $commands) + { + $width = 0; + foreach ($commands as $command) { + $width = strlen($command->getName()) > $width ? strlen($command->getName()) : $width; + } + + return $width + 2; + } + + /** + * @param InputOption[] $options + * @return int + */ + private function calculateTotalWidthForOptions($options) + { + $totalWidth = 0; + foreach ($options as $option) { + $nameLength = 4 + strlen($option->getName()) + 2; // - + shortcut + , + whitespace + name + -- + + if ($option->acceptValue()) { + $valueLength = 1 + strlen($option->getName()); // = + value + $valueLength += $option->isValueOptional() ? 2 : 0; // [ + ] + + $nameLength += $valueLength; + } + $totalWidth = max($totalWidth, $nameLength); + } + + return $totalWidth; + } +} diff --git a/vendor/topthink/framework/src/think/console/output/Formatter.php b/vendor/topthink/framework/src/think/console/output/Formatter.php new file mode 100644 index 0000000..1b97ca3 --- /dev/null +++ b/vendor/topthink/framework/src/think/console/output/Formatter.php @@ -0,0 +1,198 @@ + +// +---------------------------------------------------------------------- +namespace think\console\output; + +use think\console\output\formatter\Stack as StyleStack; +use think\console\output\formatter\Style; + +class Formatter +{ + + private $decorated = false; + private $styles = []; + private $styleStack; + + /** + * 转义 + * @param string $text + * @return string + */ + public static function escape($text) + { + return preg_replace('/([^\\\\]?)setStyle('error', new Style('white', 'red')); + $this->setStyle('info', new Style('green')); + $this->setStyle('comment', new Style('yellow')); + $this->setStyle('question', new Style('black', 'cyan')); + $this->setStyle('highlight', new Style('red')); + $this->setStyle('warning', new Style('black', 'yellow')); + + $this->styleStack = new StyleStack(); + } + + /** + * 设置外观标识 + * @param bool $decorated 是否美化文字 + */ + public function setDecorated($decorated) + { + $this->decorated = (bool) $decorated; + } + + /** + * 获取外观标识 + * @return bool + */ + public function isDecorated() + { + return $this->decorated; + } + + /** + * 添加一个新样式 + * @param string $name 样式名 + * @param Style $style 样式实例 + */ + public function setStyle($name, Style $style) + { + $this->styles[strtolower($name)] = $style; + } + + /** + * 是否有这个样式 + * @param string $name + * @return bool + */ + public function hasStyle($name) + { + return isset($this->styles[strtolower($name)]); + } + + /** + * 获取样式 + * @param string $name + * @return Style + * @throws \InvalidArgumentException + */ + public function getStyle($name) + { + if (!$this->hasStyle($name)) { + throw new \InvalidArgumentException(sprintf('Undefined style: %s', $name)); + } + + return $this->styles[strtolower($name)]; + } + + /** + * 使用所给的样式格式化文字 + * @param string $message 文字 + * @return string + */ + public function format($message) + { + $offset = 0; + $output = ''; + $tagRegex = '[a-z][a-z0-9_=;-]*'; + preg_match_all("#<(($tagRegex) | /($tagRegex)?)>#isx", $message, $matches, PREG_OFFSET_CAPTURE); + foreach ($matches[0] as $i => $match) { + $pos = $match[1]; + $text = $match[0]; + + if (0 != $pos && '\\' == $message[$pos - 1]) { + continue; + } + + $output .= $this->applyCurrentStyle(substr($message, $offset, $pos - $offset)); + $offset = $pos + strlen($text); + + if ($open = '/' != $text[1]) { + $tag = $matches[1][$i][0]; + } else { + $tag = $matches[3][$i][0] ?? ''; + } + + if (!$open && !$tag) { + // + $this->styleStack->pop(); + } elseif (false === $style = $this->createStyleFromString(strtolower($tag))) { + $output .= $this->applyCurrentStyle($text); + } elseif ($open) { + $this->styleStack->push($style); + } else { + $this->styleStack->pop($style); + } + } + + $output .= $this->applyCurrentStyle(substr($message, $offset)); + + return str_replace('\\<', '<', $output); + } + + /** + * @return StyleStack + */ + public function getStyleStack() + { + return $this->styleStack; + } + + /** + * 根据字符串创建新的样式实例 + * @param string $string + * @return Style|bool + */ + private function createStyleFromString($string) + { + if (isset($this->styles[$string])) { + return $this->styles[$string]; + } + + if (!preg_match_all('/([^=]+)=([^;]+)(;|$)/', strtolower($string), $matches, PREG_SET_ORDER)) { + return false; + } + + $style = new Style(); + foreach ($matches as $match) { + array_shift($match); + + if ('fg' == $match[0]) { + $style->setForeground($match[1]); + } elseif ('bg' == $match[0]) { + $style->setBackground($match[1]); + } else { + try { + $style->setOption($match[1]); + } catch (\InvalidArgumentException $e) { + return false; + } + } + } + + return $style; + } + + /** + * 从堆栈应用样式到文字 + * @param string $text 文字 + * @return string + */ + private function applyCurrentStyle($text) + { + return $this->isDecorated() && strlen($text) > 0 ? $this->styleStack->getCurrent()->apply($text) : $text; + } +} diff --git a/vendor/topthink/framework/src/think/console/output/Question.php b/vendor/topthink/framework/src/think/console/output/Question.php new file mode 100644 index 0000000..03975f2 --- /dev/null +++ b/vendor/topthink/framework/src/think/console/output/Question.php @@ -0,0 +1,211 @@ + +// +---------------------------------------------------------------------- + +namespace think\console\output; + +class Question +{ + + private $question; + private $attempts; + private $hidden = false; + private $hiddenFallback = true; + private $autocompleterValues; + private $validator; + private $default; + private $normalizer; + + /** + * 构造方法 + * @param string $question 问题 + * @param mixed $default 默认答案 + */ + public function __construct($question, $default = null) + { + $this->question = $question; + $this->default = $default; + } + + /** + * 获取问题 + * @return string + */ + public function getQuestion() + { + return $this->question; + } + + /** + * 获取默认答案 + * @return mixed + */ + public function getDefault() + { + return $this->default; + } + + /** + * 是否隐藏答案 + * @return bool + */ + public function isHidden() + { + return $this->hidden; + } + + /** + * 隐藏答案 + * @param bool $hidden + * @return Question + */ + public function setHidden($hidden) + { + if ($this->autocompleterValues) { + throw new \LogicException('A hidden question cannot use the autocompleter.'); + } + + $this->hidden = (bool) $hidden; + + return $this; + } + + /** + * 不能被隐藏是否撤销 + * @return bool + */ + public function isHiddenFallback() + { + return $this->hiddenFallback; + } + + /** + * 设置不能被隐藏的时候的操作 + * @param bool $fallback + * @return Question + */ + public function setHiddenFallback($fallback) + { + $this->hiddenFallback = (bool) $fallback; + + return $this; + } + + /** + * 获取自动完成 + * @return null|array|\Traversable + */ + public function getAutocompleterValues() + { + return $this->autocompleterValues; + } + + /** + * 设置自动完成的值 + * @param null|array|\Traversable $values + * @return Question + * @throws \InvalidArgumentException + * @throws \LogicException + */ + public function setAutocompleterValues($values) + { + if (is_array($values) && $this->isAssoc($values)) { + $values = array_merge(array_keys($values), array_values($values)); + } + + if (null !== $values && !is_array($values)) { + if (!$values instanceof \Traversable || $values instanceof \Countable) { + throw new \InvalidArgumentException('Autocompleter values can be either an array, `null` or an object implementing both `Countable` and `Traversable` interfaces.'); + } + } + + if ($this->hidden) { + throw new \LogicException('A hidden question cannot use the autocompleter.'); + } + + $this->autocompleterValues = $values; + + return $this; + } + + /** + * 设置答案的验证器 + * @param null|callable $validator + * @return Question The current instance + */ + public function setValidator($validator) + { + $this->validator = $validator; + + return $this; + } + + /** + * 获取验证器 + * @return null|callable + */ + public function getValidator() + { + return $this->validator; + } + + /** + * 设置最大重试次数 + * @param null|int $attempts + * @return Question + * @throws \InvalidArgumentException + */ + public function setMaxAttempts($attempts) + { + if (null !== $attempts && $attempts < 1) { + throw new \InvalidArgumentException('Maximum number of attempts must be a positive value.'); + } + + $this->attempts = $attempts; + + return $this; + } + + /** + * 获取最大重试次数 + * @return null|int + */ + public function getMaxAttempts() + { + return $this->attempts; + } + + /** + * 设置响应的回调 + * @param string|\Closure $normalizer + * @return Question + */ + public function setNormalizer($normalizer) + { + $this->normalizer = $normalizer; + + return $this; + } + + /** + * 获取响应回调 + * The normalizer can ba a callable (a string), a closure or a class implementing __invoke. + * @return string|\Closure + */ + public function getNormalizer() + { + return $this->normalizer; + } + + protected function isAssoc($array) + { + return (bool) count(array_filter(array_keys($array), 'is_string')); + } +} diff --git a/vendor/topthink/framework/src/think/console/output/descriptor/Console.php b/vendor/topthink/framework/src/think/console/output/descriptor/Console.php new file mode 100644 index 0000000..ff9f464 --- /dev/null +++ b/vendor/topthink/framework/src/think/console/output/descriptor/Console.php @@ -0,0 +1,153 @@ + +// +---------------------------------------------------------------------- + +namespace think\console\output\descriptor; + +use think\Console as ThinkConsole; +use think\console\Command; + +class Console +{ + + const GLOBAL_NAMESPACE = '_global'; + + /** + * @var ThinkConsole + */ + private $console; + + /** + * @var null|string + */ + private $namespace; + + /** + * @var array + */ + private $namespaces; + + /** + * @var Command[] + */ + private $commands; + + /** + * @var Command[] + */ + private $aliases; + + /** + * 构造方法 + * @param ThinkConsole $console + * @param string|null $namespace + */ + public function __construct(ThinkConsole $console, $namespace = null) + { + $this->console = $console; + $this->namespace = $namespace; + } + + /** + * @return array + */ + public function getNamespaces(): array + { + if (null === $this->namespaces) { + $this->inspectConsole(); + } + + return $this->namespaces; + } + + /** + * @return Command[] + */ + public function getCommands(): array + { + if (null === $this->commands) { + $this->inspectConsole(); + } + + return $this->commands; + } + + /** + * @param string $name + * @return Command + * @throws \InvalidArgumentException + */ + public function getCommand(string $name): Command + { + if (!isset($this->commands[$name]) && !isset($this->aliases[$name])) { + throw new \InvalidArgumentException(sprintf('Command %s does not exist.', $name)); + } + + return $this->commands[$name] ?? $this->aliases[$name]; + } + + private function inspectConsole(): void + { + $this->commands = []; + $this->namespaces = []; + + $all = $this->console->all($this->namespace ? $this->console->findNamespace($this->namespace) : null); + foreach ($this->sortCommands($all) as $namespace => $commands) { + $names = []; + + /** @var Command $command */ + foreach ($commands as $name => $command) { + if (is_string($command)) { + $command = new $command(); + } + + if (!$command->getName()) { + continue; + } + + if ($command->getName() === $name) { + $this->commands[$name] = $command; + } else { + $this->aliases[$name] = $command; + } + + $names[] = $name; + } + + $this->namespaces[$namespace] = ['id' => $namespace, 'commands' => $names]; + } + } + + /** + * @param array $commands + * @return array + */ + private function sortCommands(array $commands): array + { + $namespacedCommands = []; + foreach ($commands as $name => $command) { + $key = $this->console->extractNamespace($name, 1); + if (!$key) { + $key = self::GLOBAL_NAMESPACE; + } + + $namespacedCommands[$key][$name] = $command; + } + ksort($namespacedCommands); + + foreach ($namespacedCommands as &$commandsSet) { + ksort($commandsSet); + } + // unset reference to keep scope clear + unset($commandsSet); + + return $namespacedCommands; + } +} diff --git a/vendor/topthink/framework/src/think/console/output/driver/Buffer.php b/vendor/topthink/framework/src/think/console/output/driver/Buffer.php new file mode 100644 index 0000000..576f31a --- /dev/null +++ b/vendor/topthink/framework/src/think/console/output/driver/Buffer.php @@ -0,0 +1,52 @@ + +// +---------------------------------------------------------------------- + +namespace think\console\output\driver; + +use think\console\Output; + +class Buffer +{ + /** + * @var string + */ + private $buffer = ''; + + public function __construct(Output $output) + { + // do nothing + } + + public function fetch() + { + $content = $this->buffer; + $this->buffer = ''; + return $content; + } + + public function write($messages, bool $newline = false, int $options = 0) + { + $messages = (array) $messages; + + foreach ($messages as $message) { + $this->buffer .= $message; + } + if ($newline) { + $this->buffer .= "\n"; + } + } + + public function renderException(\Throwable $e) + { + // do nothing + } + +} diff --git a/vendor/topthink/framework/src/think/console/output/driver/Console.php b/vendor/topthink/framework/src/think/console/output/driver/Console.php new file mode 100644 index 0000000..31bdf1f --- /dev/null +++ b/vendor/topthink/framework/src/think/console/output/driver/Console.php @@ -0,0 +1,368 @@ + +// +---------------------------------------------------------------------- + +namespace think\console\output\driver; + +use think\console\Output; +use think\console\output\Formatter; + +class Console +{ + + /** @var Resource */ + private $stdout; + + /** @var Formatter */ + private $formatter; + + private $terminalDimensions; + + /** @var Output */ + private $output; + + public function __construct(Output $output) + { + $this->output = $output; + $this->formatter = new Formatter(); + $this->stdout = $this->openOutputStream(); + $decorated = $this->hasColorSupport($this->stdout); + $this->formatter->setDecorated($decorated); + } + + public function setDecorated($decorated) + { + $this->formatter->setDecorated($decorated); + } + + public function write($messages, bool $newline = false, int $type = 0, $stream = null) + { + if (Output::VERBOSITY_QUIET === $this->output->getVerbosity()) { + return; + } + + $messages = (array) $messages; + + foreach ($messages as $message) { + switch ($type) { + case Output::OUTPUT_NORMAL: + $message = $this->formatter->format($message); + break; + case Output::OUTPUT_RAW: + break; + case Output::OUTPUT_PLAIN: + $message = strip_tags($this->formatter->format($message)); + break; + default: + throw new \InvalidArgumentException(sprintf('Unknown output type given (%s)', $type)); + } + + $this->doWrite($message, $newline, $stream); + } + } + + public function renderException(\Throwable $e) + { + $stderr = $this->openErrorStream(); + $decorated = $this->hasColorSupport($stderr); + $this->formatter->setDecorated($decorated); + + do { + $title = sprintf(' [%s] ', get_class($e)); + + $len = $this->stringWidth($title); + + $width = $this->getTerminalWidth() ? $this->getTerminalWidth() - 1 : PHP_INT_MAX; + + if (defined('HHVM_VERSION') && $width > 1 << 31) { + $width = 1 << 31; + } + $lines = []; + foreach (preg_split('/\r?\n/', $e->getMessage()) as $line) { + foreach ($this->splitStringByWidth($line, $width - 4) as $line) { + + $lineLength = $this->stringWidth(preg_replace('/\[[^m]*m/', '', $line)) + 4; + $lines[] = [$line, $lineLength]; + + $len = max($lineLength, $len); + } + } + + $messages = ['', '']; + $messages[] = $emptyLine = sprintf('%s', str_repeat(' ', $len)); + $messages[] = sprintf('%s%s', $title, str_repeat(' ', max(0, $len - $this->stringWidth($title)))); + foreach ($lines as $line) { + $messages[] = sprintf(' %s %s', $line[0], str_repeat(' ', $len - $line[1])); + } + $messages[] = $emptyLine; + $messages[] = ''; + $messages[] = ''; + + $this->write($messages, true, Output::OUTPUT_NORMAL, $stderr); + + if (Output::VERBOSITY_VERBOSE <= $this->output->getVerbosity()) { + $this->write('Exception trace:', true, Output::OUTPUT_NORMAL, $stderr); + + // exception related properties + $trace = $e->getTrace(); + array_unshift($trace, [ + 'function' => '', + 'file' => $e->getFile() !== null ? $e->getFile() : 'n/a', + 'line' => $e->getLine() !== null ? $e->getLine() : 'n/a', + 'args' => [], + ]); + + for ($i = 0, $count = count($trace); $i < $count; ++$i) { + $class = isset($trace[$i]['class']) ? $trace[$i]['class'] : ''; + $type = isset($trace[$i]['type']) ? $trace[$i]['type'] : ''; + $function = $trace[$i]['function']; + $file = isset($trace[$i]['file']) ? $trace[$i]['file'] : 'n/a'; + $line = isset($trace[$i]['line']) ? $trace[$i]['line'] : 'n/a'; + + $this->write(sprintf(' %s%s%s() at %s:%s', $class, $type, $function, $file, $line), true, Output::OUTPUT_NORMAL, $stderr); + } + + $this->write('', true, Output::OUTPUT_NORMAL, $stderr); + $this->write('', true, Output::OUTPUT_NORMAL, $stderr); + } + } while ($e = $e->getPrevious()); + + } + + /** + * 获取终端宽度 + * @return int|null + */ + protected function getTerminalWidth() + { + $dimensions = $this->getTerminalDimensions(); + + return $dimensions[0]; + } + + /** + * 获取终端高度 + * @return int|null + */ + protected function getTerminalHeight() + { + $dimensions = $this->getTerminalDimensions(); + + return $dimensions[1]; + } + + /** + * 获取当前终端的尺寸 + * @return array + */ + public function getTerminalDimensions(): array + { + if ($this->terminalDimensions) { + return $this->terminalDimensions; + } + + if ('\\' === DIRECTORY_SEPARATOR) { + if (preg_match('/^(\d+)x\d+ \(\d+x(\d+)\)$/', trim(getenv('ANSICON')), $matches)) { + return [(int) $matches[1], (int) $matches[2]]; + } + if (preg_match('/^(\d+)x(\d+)$/', $this->getMode(), $matches)) { + return [(int) $matches[1], (int) $matches[2]]; + } + } + + if ($sttyString = $this->getSttyColumns()) { + if (preg_match('/rows.(\d+);.columns.(\d+);/i', $sttyString, $matches)) { + return [(int) $matches[2], (int) $matches[1]]; + } + if (preg_match('/;.(\d+).rows;.(\d+).columns/i', $sttyString, $matches)) { + return [(int) $matches[2], (int) $matches[1]]; + } + } + + return [null, null]; + } + + /** + * 获取stty列数 + * @return string + */ + private function getSttyColumns() + { + if (!function_exists('proc_open')) { + return; + } + + $descriptorspec = [1 => ['pipe', 'w'], 2 => ['pipe', 'w']]; + $process = proc_open('stty -a | grep columns', $descriptorspec, $pipes, null, null, ['suppress_errors' => true]); + if (is_resource($process)) { + $info = stream_get_contents($pipes[1]); + fclose($pipes[1]); + fclose($pipes[2]); + proc_close($process); + + return $info; + } + return; + } + + /** + * 获取终端模式 + * @return string x 或 null + */ + private function getMode() + { + if (!function_exists('proc_open')) { + return; + } + + $descriptorspec = [1 => ['pipe', 'w'], 2 => ['pipe', 'w']]; + $process = proc_open('mode CON', $descriptorspec, $pipes, null, null, ['suppress_errors' => true]); + if (is_resource($process)) { + $info = stream_get_contents($pipes[1]); + fclose($pipes[1]); + fclose($pipes[2]); + proc_close($process); + + if (preg_match('/--------+\r?\n.+?(\d+)\r?\n.+?(\d+)\r?\n/', $info, $matches)) { + return $matches[2] . 'x' . $matches[1]; + } + } + return; + } + + private function stringWidth(string $string): int + { + if (!function_exists('mb_strwidth')) { + return strlen($string); + } + + if (false === $encoding = mb_detect_encoding($string)) { + return strlen($string); + } + + return mb_strwidth($string, $encoding); + } + + private function splitStringByWidth(string $string, int $width): array + { + if (!function_exists('mb_strwidth')) { + return str_split($string, $width); + } + + if (false === $encoding = mb_detect_encoding($string)) { + return str_split($string, $width); + } + + $utf8String = mb_convert_encoding($string, 'utf8', $encoding); + $lines = []; + $line = ''; + foreach (preg_split('//u', $utf8String) as $char) { + if (mb_strwidth($line . $char, 'utf8') <= $width) { + $line .= $char; + continue; + } + $lines[] = str_pad($line, $width); + $line = $char; + } + if (strlen($line)) { + $lines[] = count($lines) ? str_pad($line, $width) : $line; + } + + mb_convert_variables($encoding, 'utf8', $lines); + + return $lines; + } + + private function isRunningOS400(): bool + { + $checks = [ + function_exists('php_uname') ? php_uname('s') : '', + getenv('OSTYPE'), + PHP_OS, + ]; + return false !== stripos(implode(';', $checks), 'OS400'); + } + + /** + * 当前环境是否支持写入控制台输出到stdout. + * + * @return bool + */ + protected function hasStdoutSupport(): bool + { + return false === $this->isRunningOS400(); + } + + /** + * 当前环境是否支持写入控制台输出到stderr. + * + * @return bool + */ + protected function hasStderrSupport(): bool + { + return false === $this->isRunningOS400(); + } + + /** + * @return resource + */ + private function openOutputStream() + { + if (!$this->hasStdoutSupport()) { + return fopen('php://output', 'w'); + } + return @fopen('php://stdout', 'w') ?: fopen('php://output', 'w'); + } + + /** + * @return resource + */ + private function openErrorStream() + { + return fopen($this->hasStderrSupport() ? 'php://stderr' : 'php://output', 'w'); + } + + /** + * 将消息写入到输出。 + * @param string $message 消息 + * @param bool $newline 是否另起一行 + * @param null $stream + */ + protected function doWrite($message, $newline, $stream = null) + { + if (null === $stream) { + $stream = $this->stdout; + } + if (false === @fwrite($stream, $message . ($newline ? PHP_EOL : ''))) { + throw new \RuntimeException('Unable to write output.'); + } + + fflush($stream); + } + + /** + * 是否支持着色 + * @param $stream + * @return bool + */ + protected function hasColorSupport($stream): bool + { + if (DIRECTORY_SEPARATOR === '\\') { + return + '10.0.10586' === PHP_WINDOWS_VERSION_MAJOR . '.' . PHP_WINDOWS_VERSION_MINOR . '.' . PHP_WINDOWS_VERSION_BUILD + || false !== getenv('ANSICON') + || 'ON' === getenv('ConEmuANSI') + || 'xterm' === getenv('TERM'); + } + + return function_exists('posix_isatty') && @posix_isatty($stream); + } + +} diff --git a/vendor/topthink/framework/src/think/console/output/driver/Nothing.php b/vendor/topthink/framework/src/think/console/output/driver/Nothing.php new file mode 100644 index 0000000..a7cc49e --- /dev/null +++ b/vendor/topthink/framework/src/think/console/output/driver/Nothing.php @@ -0,0 +1,33 @@ + +// +---------------------------------------------------------------------- + +namespace think\console\output\driver; + +use think\console\Output; + +class Nothing +{ + + public function __construct(Output $output) + { + // do nothing + } + + public function write($messages, bool $newline = false, int $options = 0) + { + // do nothing + } + + public function renderException(\Throwable $e) + { + // do nothing + } +} diff --git a/vendor/topthink/framework/src/think/console/output/formatter/Stack.php b/vendor/topthink/framework/src/think/console/output/formatter/Stack.php new file mode 100644 index 0000000..5366259 --- /dev/null +++ b/vendor/topthink/framework/src/think/console/output/formatter/Stack.php @@ -0,0 +1,116 @@ + +// +---------------------------------------------------------------------- + +namespace think\console\output\formatter; + +class Stack +{ + + /** + * @var Style[] + */ + private $styles; + + /** + * @var Style + */ + private $emptyStyle; + + /** + * 构造方法 + * @param Style|null $emptyStyle + */ + public function __construct(Style $emptyStyle = null) + { + $this->emptyStyle = $emptyStyle ?: new Style(); + $this->reset(); + } + + /** + * 重置堆栈 + */ + public function reset(): void + { + $this->styles = []; + } + + /** + * 推一个样式进入堆栈 + * @param Style $style + */ + public function push(Style $style): void + { + $this->styles[] = $style; + } + + /** + * 从堆栈中弹出一个样式 + * @param Style|null $style + * @return Style + * @throws \InvalidArgumentException + */ + public function pop(Style $style = null): Style + { + if (empty($this->styles)) { + return $this->emptyStyle; + } + + if (null === $style) { + return array_pop($this->styles); + } + + /** + * @var int $index + * @var Style $stackedStyle + */ + foreach (array_reverse($this->styles, true) as $index => $stackedStyle) { + if ($style->apply('') === $stackedStyle->apply('')) { + $this->styles = array_slice($this->styles, 0, $index); + + return $stackedStyle; + } + } + + throw new \InvalidArgumentException('Incorrectly nested style tag found.'); + } + + /** + * 计算堆栈的当前样式。 + * @return Style + */ + public function getCurrent(): Style + { + if (empty($this->styles)) { + return $this->emptyStyle; + } + + return $this->styles[count($this->styles) - 1]; + } + + /** + * @param Style $emptyStyle + * @return Stack + */ + public function setEmptyStyle(Style $emptyStyle) + { + $this->emptyStyle = $emptyStyle; + + return $this; + } + + /** + * @return Style + */ + public function getEmptyStyle(): Style + { + return $this->emptyStyle; + } +} diff --git a/vendor/topthink/framework/src/think/console/output/formatter/Style.php b/vendor/topthink/framework/src/think/console/output/formatter/Style.php new file mode 100644 index 0000000..2aae768 --- /dev/null +++ b/vendor/topthink/framework/src/think/console/output/formatter/Style.php @@ -0,0 +1,190 @@ + +// +---------------------------------------------------------------------- + +namespace think\console\output\formatter; + +class Style +{ + protected static $availableForegroundColors = [ + 'black' => ['set' => 30, 'unset' => 39], + 'red' => ['set' => 31, 'unset' => 39], + 'green' => ['set' => 32, 'unset' => 39], + 'yellow' => ['set' => 33, 'unset' => 39], + 'blue' => ['set' => 34, 'unset' => 39], + 'magenta' => ['set' => 35, 'unset' => 39], + 'cyan' => ['set' => 36, 'unset' => 39], + 'white' => ['set' => 37, 'unset' => 39], + ]; + + protected static $availableBackgroundColors = [ + 'black' => ['set' => 40, 'unset' => 49], + 'red' => ['set' => 41, 'unset' => 49], + 'green' => ['set' => 42, 'unset' => 49], + 'yellow' => ['set' => 43, 'unset' => 49], + 'blue' => ['set' => 44, 'unset' => 49], + 'magenta' => ['set' => 45, 'unset' => 49], + 'cyan' => ['set' => 46, 'unset' => 49], + 'white' => ['set' => 47, 'unset' => 49], + ]; + + protected static $availableOptions = [ + 'bold' => ['set' => 1, 'unset' => 22], + 'underscore' => ['set' => 4, 'unset' => 24], + 'blink' => ['set' => 5, 'unset' => 25], + 'reverse' => ['set' => 7, 'unset' => 27], + 'conceal' => ['set' => 8, 'unset' => 28], + ]; + + private $foreground; + private $background; + private $options = []; + + /** + * 初始化输出的样式 + * @param string|null $foreground 字体颜色 + * @param string|null $background 背景色 + * @param array $options 格式 + * @api + */ + public function __construct($foreground = null, $background = null, array $options = []) + { + if (null !== $foreground) { + $this->setForeground($foreground); + } + if (null !== $background) { + $this->setBackground($background); + } + if (count($options)) { + $this->setOptions($options); + } + } + + /** + * 设置字体颜色 + * @param string|null $color 颜色名 + * @throws \InvalidArgumentException + * @api + */ + public function setForeground($color = null) + { + if (null === $color) { + $this->foreground = null; + + return; + } + + if (!isset(static::$availableForegroundColors[$color])) { + throw new \InvalidArgumentException(sprintf('Invalid foreground color specified: "%s". Expected one of (%s)', $color, implode(', ', array_keys(static::$availableForegroundColors)))); + } + + $this->foreground = static::$availableForegroundColors[$color]; + } + + /** + * 设置背景色 + * @param string|null $color 颜色名 + * @throws \InvalidArgumentException + * @api + */ + public function setBackground($color = null) + { + if (null === $color) { + $this->background = null; + + return; + } + + if (!isset(static::$availableBackgroundColors[$color])) { + throw new \InvalidArgumentException(sprintf('Invalid background color specified: "%s". Expected one of (%s)', $color, implode(', ', array_keys(static::$availableBackgroundColors)))); + } + + $this->background = static::$availableBackgroundColors[$color]; + } + + /** + * 设置字体格式 + * @param string $option 格式名 + * @throws \InvalidArgumentException When the option name isn't defined + * @api + */ + public function setOption(string $option): void + { + if (!isset(static::$availableOptions[$option])) { + throw new \InvalidArgumentException(sprintf('Invalid option specified: "%s". Expected one of (%s)', $option, implode(', ', array_keys(static::$availableOptions)))); + } + + if (!in_array(static::$availableOptions[$option], $this->options)) { + $this->options[] = static::$availableOptions[$option]; + } + } + + /** + * 重置字体格式 + * @param string $option 格式名 + * @throws \InvalidArgumentException + */ + public function unsetOption(string $option): void + { + if (!isset(static::$availableOptions[$option])) { + throw new \InvalidArgumentException(sprintf('Invalid option specified: "%s". Expected one of (%s)', $option, implode(', ', array_keys(static::$availableOptions)))); + } + + $pos = array_search(static::$availableOptions[$option], $this->options); + if (false !== $pos) { + unset($this->options[$pos]); + } + } + + /** + * 批量设置字体格式 + * @param array $options + */ + public function setOptions(array $options) + { + $this->options = []; + + foreach ($options as $option) { + $this->setOption($option); + } + } + + /** + * 应用样式到文字 + * @param string $text 文字 + * @return string + */ + public function apply(string $text): string + { + $setCodes = []; + $unsetCodes = []; + + if (null !== $this->foreground) { + $setCodes[] = $this->foreground['set']; + $unsetCodes[] = $this->foreground['unset']; + } + if (null !== $this->background) { + $setCodes[] = $this->background['set']; + $unsetCodes[] = $this->background['unset']; + } + if (count($this->options)) { + foreach ($this->options as $option) { + $setCodes[] = $option['set']; + $unsetCodes[] = $option['unset']; + } + } + + if (0 === count($setCodes)) { + return $text; + } + + return sprintf("\033[%sm%s\033[%sm", implode(';', $setCodes), $text, implode(';', $unsetCodes)); + } +} diff --git a/vendor/topthink/framework/src/think/console/output/question/Choice.php b/vendor/topthink/framework/src/think/console/output/question/Choice.php new file mode 100644 index 0000000..1da1750 --- /dev/null +++ b/vendor/topthink/framework/src/think/console/output/question/Choice.php @@ -0,0 +1,163 @@ + +// +---------------------------------------------------------------------- + +namespace think\console\output\question; + +use think\console\output\Question; + +class Choice extends Question +{ + + private $choices; + private $multiselect = false; + private $prompt = ' > '; + private $errorMessage = 'Value "%s" is invalid'; + + /** + * 构造方法 + * @param string $question 问题 + * @param array $choices 选项 + * @param mixed $default 默认答案 + */ + public function __construct($question, array $choices, $default = null) + { + parent::__construct($question, $default); + + $this->choices = $choices; + $this->setValidator($this->getDefaultValidator()); + $this->setAutocompleterValues($choices); + } + + /** + * 可选项 + * @return array + */ + public function getChoices(): array + { + return $this->choices; + } + + /** + * 设置可否多选 + * @param bool $multiselect + * @return self + */ + public function setMultiselect(bool $multiselect) + { + $this->multiselect = $multiselect; + $this->setValidator($this->getDefaultValidator()); + + return $this; + } + + public function isMultiselect(): bool + { + return $this->multiselect; + } + + /** + * 获取提示 + * @return string + */ + public function getPrompt(): string + { + return $this->prompt; + } + + /** + * 设置提示 + * @param string $prompt + * @return self + */ + public function setPrompt(string $prompt) + { + $this->prompt = $prompt; + + return $this; + } + + /** + * 设置错误提示信息 + * @param string $errorMessage + * @return self + */ + public function setErrorMessage(string $errorMessage) + { + $this->errorMessage = $errorMessage; + $this->setValidator($this->getDefaultValidator()); + + return $this; + } + + /** + * 获取默认的验证方法 + * @return callable + */ + private function getDefaultValidator() + { + $choices = $this->choices; + $errorMessage = $this->errorMessage; + $multiselect = $this->multiselect; + $isAssoc = $this->isAssoc($choices); + + return function ($selected) use ($choices, $errorMessage, $multiselect, $isAssoc) { + // Collapse all spaces. + $selectedChoices = str_replace(' ', '', $selected); + + if ($multiselect) { + // Check for a separated comma values + if (!preg_match('/^[a-zA-Z0-9_-]+(?:,[a-zA-Z0-9_-]+)*$/', $selectedChoices, $matches)) { + throw new \InvalidArgumentException(sprintf($errorMessage, $selected)); + } + $selectedChoices = explode(',', $selectedChoices); + } else { + $selectedChoices = [$selected]; + } + + $multiselectChoices = []; + foreach ($selectedChoices as $value) { + $results = []; + foreach ($choices as $key => $choice) { + if ($choice === $value) { + $results[] = $key; + } + } + + if (count($results) > 1) { + throw new \InvalidArgumentException(sprintf('The provided answer is ambiguous. Value should be one of %s.', implode(' or ', $results))); + } + + $result = array_search($value, $choices); + + if (!$isAssoc) { + if (!empty($result)) { + $result = $choices[$result]; + } elseif (isset($choices[$value])) { + $result = $choices[$value]; + } + } elseif (empty($result) && array_key_exists($value, $choices)) { + $result = $value; + } + + if (false === $result) { + throw new \InvalidArgumentException(sprintf($errorMessage, $value)); + } + array_push($multiselectChoices, $result); + } + + if ($multiselect) { + return $multiselectChoices; + } + + return current($multiselectChoices); + }; + } +} diff --git a/vendor/topthink/framework/src/think/console/output/question/Confirmation.php b/vendor/topthink/framework/src/think/console/output/question/Confirmation.php new file mode 100644 index 0000000..bf71b5d --- /dev/null +++ b/vendor/topthink/framework/src/think/console/output/question/Confirmation.php @@ -0,0 +1,57 @@ + +// +---------------------------------------------------------------------- + +namespace think\console\output\question; + +use think\console\output\Question; + +class Confirmation extends Question +{ + + private $trueAnswerRegex; + + /** + * 构造方法 + * @param string $question 问题 + * @param bool $default 默认答案 + * @param string $trueAnswerRegex 验证正则 + */ + public function __construct(string $question, bool $default = true, string $trueAnswerRegex = '/^y/i') + { + parent::__construct($question, (bool) $default); + + $this->trueAnswerRegex = $trueAnswerRegex; + $this->setNormalizer($this->getDefaultNormalizer()); + } + + /** + * 获取默认的答案回调 + * @return callable + */ + private function getDefaultNormalizer() + { + $default = $this->getDefault(); + $regex = $this->trueAnswerRegex; + + return function ($answer) use ($default, $regex) { + if (is_bool($answer)) { + return $answer; + } + + $answerIsTrue = (bool) preg_match($regex, $answer); + if (false === $default) { + return $answer && $answerIsTrue; + } + + return !$answer || $answerIsTrue; + }; + } +} diff --git a/vendor/topthink/framework/src/think/contract/CacheHandlerInterface.php b/vendor/topthink/framework/src/think/contract/CacheHandlerInterface.php new file mode 100644 index 0000000..e953f66 --- /dev/null +++ b/vendor/topthink/framework/src/think/contract/CacheHandlerInterface.php @@ -0,0 +1,88 @@ + +// +---------------------------------------------------------------------- +declare (strict_types = 1); + +namespace think\contract; + +/** + * 缓存驱动接口 + */ +interface CacheHandlerInterface +{ + /** + * 判断缓存 + * @access public + * @param string $name 缓存变量名 + * @return bool + */ + public function has($name); + + /** + * 读取缓存 + * @access public + * @param string $name 缓存变量名 + * @param mixed $default 默认值 + * @return mixed + */ + public function get($name, $default = null); + + /** + * 写入缓存 + * @access public + * @param string $name 缓存变量名 + * @param mixed $value 存储数据 + * @param integer|\DateTime $expire 有效时间(秒) + * @return bool + */ + public function set($name, $value, $expire = null); + + /** + * 自增缓存(针对数值缓存) + * @access public + * @param string $name 缓存变量名 + * @param int $step 步长 + * @return false|int + */ + public function inc(string $name, int $step = 1); + + /** + * 自减缓存(针对数值缓存) + * @access public + * @param string $name 缓存变量名 + * @param int $step 步长 + * @return false|int + */ + public function dec(string $name, int $step = 1); + + /** + * 删除缓存 + * @access public + * @param string $name 缓存变量名 + * @return bool + */ + public function delete($name); + + /** + * 清除缓存 + * @access public + * @return bool + */ + public function clear(); + + /** + * 删除缓存标签 + * @access public + * @param array $keys 缓存标识列表 + * @return void + */ + public function clearTag(array $keys); + +} diff --git a/vendor/topthink/framework/src/think/contract/LogHandlerInterface.php b/vendor/topthink/framework/src/think/contract/LogHandlerInterface.php new file mode 100644 index 0000000..896ac29 --- /dev/null +++ b/vendor/topthink/framework/src/think/contract/LogHandlerInterface.php @@ -0,0 +1,28 @@ + +// +---------------------------------------------------------------------- +declare (strict_types = 1); + +namespace think\contract; + +/** + * 日志驱动接口 + */ +interface LogHandlerInterface +{ + /** + * 日志写入接口 + * @access public + * @param array $log 日志信息 + * @return bool + */ + public function save(array $log): bool; + +} diff --git a/vendor/topthink/framework/src/think/contract/ModelRelationInterface.php b/vendor/topthink/framework/src/think/contract/ModelRelationInterface.php new file mode 100644 index 0000000..49cfa75 --- /dev/null +++ b/vendor/topthink/framework/src/think/contract/ModelRelationInterface.php @@ -0,0 +1,99 @@ + +// +---------------------------------------------------------------------- +declare (strict_types = 1); + +namespace think\contract; + +use Closure; +use think\Collection; +use think\db\Query; +use think\Model; + +/** + * 模型关联接口 + */ +interface ModelRelationInterface +{ + /** + * 延迟获取关联数据 + * @access public + * @param array $subRelation 子关联 + * @param Closure $closure 闭包查询条件 + * @return Collection + */ + public function getRelation(array $subRelation = [], Closure $closure = null): Collection; + + /** + * 预载入关联查询 + * @access public + * @param array $resultSet 数据集 + * @param string $relation 当前关联名 + * @param array $subRelation 子关联名 + * @param Closure $closure 闭包条件 + * @return void + */ + public function eagerlyResultSet(array &$resultSet, string $relation, array $subRelation, Closure $closure = null): void; + + /** + * 预载入关联查询 + * @access public + * @param Model $result 数据对象 + * @param string $relation 当前关联名 + * @param array $subRelation 子关联名 + * @param Closure $closure 闭包条件 + * @return void + */ + public function eagerlyResult(Model $result, string $relation, array $subRelation = [], Closure $closure = null): void; + + /** + * 关联统计 + * @access public + * @param Model $result 模型对象 + * @param Closure $closure 闭包 + * @param string $aggregate 聚合查询方法 + * @param string $field 字段 + * @param string $name 统计字段别名 + * @return integer + */ + public function relationCount(Model $result, Closure $closure, string $aggregate = 'count', string $field = '*', string &$name = null); + + /** + * 创建关联统计子查询 + * @access public + * @param Closure $closure 闭包 + * @param string $aggregate 聚合查询方法 + * @param string $field 字段 + * @param string $name 统计字段别名 + * @return string + */ + public function getRelationCountQuery(Closure $closure = null, string $aggregate = 'count', string $field = '*', string &$name = null): string; + + /** + * 根据关联条件查询当前模型 + * @access public + * @param string $operator 比较操作符 + * @param integer $count 个数 + * @param string $id 关联表的统计字段 + * @param string $joinType JOIN类型 + * @return Query + */ + public function has(string $operator = '>=', int $count = 1, string $id = '*', string $joinType = 'INNER'): Query; + + /** + * 根据关联条件查询当前模型 + * @access public + * @param mixed $where 查询条件(数组或者闭包) + * @param mixed $fields 字段 + * @param string $joinType JOIN类型 + * @return Query + */ + public function hasWhere($where = [], $fields = null, string $joinType = ''): Query; +} diff --git a/vendor/topthink/framework/src/think/contract/SessionHandlerInterface.php b/vendor/topthink/framework/src/think/contract/SessionHandlerInterface.php new file mode 100644 index 0000000..caed322 --- /dev/null +++ b/vendor/topthink/framework/src/think/contract/SessionHandlerInterface.php @@ -0,0 +1,23 @@ + +// +---------------------------------------------------------------------- +declare (strict_types = 1); + +namespace think\contract; + +/** + * Session驱动接口 + */ +interface SessionHandlerInterface +{ + public function read(string $sessionId): string; + public function delete(string $sessionId): bool; + public function write(string $sessionId, string $data): bool; +} diff --git a/vendor/topthink/framework/src/think/contract/TemplateHandlerInterface.php b/vendor/topthink/framework/src/think/contract/TemplateHandlerInterface.php new file mode 100644 index 0000000..f01820d --- /dev/null +++ b/vendor/topthink/framework/src/think/contract/TemplateHandlerInterface.php @@ -0,0 +1,61 @@ + +// +---------------------------------------------------------------------- +declare (strict_types = 1); + +namespace think\contract; + +/** + * 视图驱动接口 + */ +interface TemplateHandlerInterface +{ + /** + * 检测是否存在模板文件 + * @access public + * @param string $template 模板文件或者模板规则 + * @return bool + */ + public function exists(string $template): bool; + + /** + * 渲染模板文件 + * @access public + * @param string $template 模板文件 + * @param array $data 模板变量 + * @return void + */ + public function fetch(string $template, array $data = []): void; + + /** + * 渲染模板内容 + * @access public + * @param string $content 模板内容 + * @param array $data 模板变量 + * @return void + */ + public function display(string $content, array $data = []): void; + + /** + * 配置模板引擎 + * @access private + * @param array $config 参数 + * @return void + */ + public function config(array $config): void; + + /** + * 获取模板引擎配置 + * @access public + * @param string $name 参数名 + * @return void + */ + public function getConfig(string $name); +} diff --git a/vendor/topthink/framework/src/think/event/AppInit.php b/vendor/topthink/framework/src/think/event/AppInit.php new file mode 100644 index 0000000..83d75e7 --- /dev/null +++ b/vendor/topthink/framework/src/think/event/AppInit.php @@ -0,0 +1,19 @@ + +// +---------------------------------------------------------------------- +declare (strict_types = 1); + +namespace think\event; + +/** + * AppInit事件类 + */ +class AppInit +{} diff --git a/vendor/topthink/framework/src/think/event/HttpEnd.php b/vendor/topthink/framework/src/think/event/HttpEnd.php new file mode 100644 index 0000000..5296ef1 --- /dev/null +++ b/vendor/topthink/framework/src/think/event/HttpEnd.php @@ -0,0 +1,19 @@ + +// +---------------------------------------------------------------------- +declare (strict_types = 1); + +namespace think\event; + +/** + * HttpEnd事件类 + */ +class HttpEnd +{} diff --git a/vendor/topthink/framework/src/think/event/HttpRun.php b/vendor/topthink/framework/src/think/event/HttpRun.php new file mode 100644 index 0000000..a9cd7c3 --- /dev/null +++ b/vendor/topthink/framework/src/think/event/HttpRun.php @@ -0,0 +1,19 @@ + +// +---------------------------------------------------------------------- +declare (strict_types = 1); + +namespace think\event; + +/** + * HttpRun事件类 + */ +class HttpRun +{} diff --git a/vendor/topthink/framework/src/think/event/LogWrite.php b/vendor/topthink/framework/src/think/event/LogWrite.php new file mode 100644 index 0000000..470e119 --- /dev/null +++ b/vendor/topthink/framework/src/think/event/LogWrite.php @@ -0,0 +1,31 @@ + +// +---------------------------------------------------------------------- +declare (strict_types = 1); + +namespace think\event; + +/** + * LogWrite事件类 + */ +class LogWrite +{ + /** @var string */ + public $channel; + + /** @var array */ + public $log; + + public function __construct($channel, $log) + { + $this->channel = $channel; + $this->log = $log; + } +} diff --git a/vendor/topthink/framework/src/think/event/RouteLoaded.php b/vendor/topthink/framework/src/think/event/RouteLoaded.php new file mode 100644 index 0000000..eee1f3e --- /dev/null +++ b/vendor/topthink/framework/src/think/event/RouteLoaded.php @@ -0,0 +1,21 @@ + +// +---------------------------------------------------------------------- +declare (strict_types = 1); + +namespace think\event; + +/** + * 路由加载完成事件 + */ +class RouteLoaded +{ + +} diff --git a/vendor/topthink/framework/src/think/exception/ClassNotFoundException.php b/vendor/topthink/framework/src/think/exception/ClassNotFoundException.php new file mode 100644 index 0000000..2fa1f58 --- /dev/null +++ b/vendor/topthink/framework/src/think/exception/ClassNotFoundException.php @@ -0,0 +1,39 @@ + +// +---------------------------------------------------------------------- + +namespace think\exception; + +use Psr\Container\NotFoundExceptionInterface; +use RuntimeException; +use Throwable; + +class ClassNotFoundException extends RuntimeException implements NotFoundExceptionInterface +{ + protected $class; + + public function __construct(string $message, string $class = '', Throwable $previous = null) + { + $this->message = $message; + $this->class = $class; + + parent::__construct($message, 0, $previous); + } + + /** + * 获取类名 + * @access public + * @return string + */ + public function getClass() + { + return $this->class; + } +} diff --git a/vendor/topthink/framework/src/think/exception/ErrorException.php b/vendor/topthink/framework/src/think/exception/ErrorException.php new file mode 100644 index 0000000..54de0fe --- /dev/null +++ b/vendor/topthink/framework/src/think/exception/ErrorException.php @@ -0,0 +1,57 @@ + +// +---------------------------------------------------------------------- +declare (strict_types = 1); + +namespace think\exception; + +use think\Exception; + +/** + * ThinkPHP错误异常 + * 主要用于封装 set_error_handler 和 register_shutdown_function 得到的错误 + * 除开从 think\Exception 继承的功能 + * 其他和PHP系统\ErrorException功能基本一样 + */ +class ErrorException extends Exception +{ + /** + * 用于保存错误级别 + * @var integer + */ + protected $severity; + + /** + * 错误异常构造函数 + * @access public + * @param integer $severity 错误级别 + * @param string $message 错误详细信息 + * @param string $file 出错文件路径 + * @param integer $line 出错行号 + */ + public function __construct(int $severity, string $message, string $file, int $line) + { + $this->severity = $severity; + $this->message = $message; + $this->file = $file; + $this->line = $line; + $this->code = 0; + } + + /** + * 获取错误级别 + * @access public + * @return integer 错误级别 + */ + final public function getSeverity() + { + return $this->severity; + } +} diff --git a/vendor/topthink/framework/src/think/exception/FileException.php b/vendor/topthink/framework/src/think/exception/FileException.php new file mode 100644 index 0000000..2254472 --- /dev/null +++ b/vendor/topthink/framework/src/think/exception/FileException.php @@ -0,0 +1,17 @@ + +// +---------------------------------------------------------------------- +declare (strict_types = 1); + +namespace think\exception; + +class FileException extends \RuntimeException +{ +} diff --git a/vendor/topthink/framework/src/think/exception/FuncNotFoundException.php b/vendor/topthink/framework/src/think/exception/FuncNotFoundException.php new file mode 100644 index 0000000..ee2bcad --- /dev/null +++ b/vendor/topthink/framework/src/think/exception/FuncNotFoundException.php @@ -0,0 +1,30 @@ +message = $message; + $this->func = $func; + + parent::__construct($message, 0, $previous); + } + + /** + * 获取方法名 + * @access public + * @return string + */ + public function getFunc() + { + return $this->func; + } +} diff --git a/vendor/topthink/framework/src/think/exception/Handle.php b/vendor/topthink/framework/src/think/exception/Handle.php new file mode 100644 index 0000000..9f92054 --- /dev/null +++ b/vendor/topthink/framework/src/think/exception/Handle.php @@ -0,0 +1,334 @@ + +// +---------------------------------------------------------------------- +declare (strict_types = 1); + +namespace think\exception; + +use Exception; +use think\App; +use think\console\Output; +use think\db\exception\DataNotFoundException; +use think\db\exception\ModelNotFoundException; +use think\Request; +use think\Response; +use Throwable; + +/** + * 系统异常处理类 + */ +class Handle +{ + /** @var App */ + protected $app; + + protected $ignoreReport = [ + HttpException::class, + HttpResponseException::class, + ModelNotFoundException::class, + DataNotFoundException::class, + ValidateException::class, + ]; + + protected $isJson = false; + + public function __construct(App $app) + { + $this->app = $app; + } + + /** + * Report or log an exception. + * + * @access public + * @param Throwable $exception + * @return void + */ + public function report(Throwable $exception): void + { + if (!$this->isIgnoreReport($exception)) { + // 收集异常数据 + if ($this->app->isDebug()) { + $data = [ + 'file' => $exception->getFile(), + 'line' => $exception->getLine(), + 'message' => $this->getMessage($exception), + 'code' => $this->getCode($exception), + ]; + $log = "[{$data['code']}]{$data['message']}[{$data['file']}:{$data['line']}]"; + } else { + $data = [ + 'code' => $this->getCode($exception), + 'message' => $this->getMessage($exception), + ]; + $log = "[{$data['code']}]{$data['message']}"; + } + + if ($this->app->config->get('log.record_trace')) { + $log .= PHP_EOL . $exception->getTraceAsString(); + } + + try { + $this->app->log->record($log, 'error'); + } catch (Exception $e){} + } + } + + protected function isIgnoreReport(Throwable $exception): bool + { + foreach ($this->ignoreReport as $class) { + if ($exception instanceof $class) { + return true; + } + } + + return false; + } + + /** + * Render an exception into an HTTP response. + * + * @access public + * @param Request $request + * @param Throwable $e + * @return Response + */ + public function render($request, Throwable $e): Response + { + $this->isJson = $request->isJson(); + if ($e instanceof HttpResponseException) { + return $e->getResponse(); + } elseif ($e instanceof HttpException) { + return $this->renderHttpException($e); + } else { + return $this->convertExceptionToResponse($e); + } + } + + /** + * @access public + * @param Output $output + * @param Throwable $e + */ + public function renderForConsole(Output $output, Throwable $e): void + { + if ($this->app->isDebug()) { + $output->setVerbosity(Output::VERBOSITY_DEBUG); + } + + $output->renderException($e); + } + + /** + * @access protected + * @param HttpException $e + * @return Response + */ + protected function renderHttpException(HttpException $e): Response + { + $status = $e->getStatusCode(); + $template = $this->app->config->get('app.http_exception_template'); + + if (!$this->app->isDebug() && !empty($template[$status])) { + return Response::create($template[$status], 'view', $status)->assign(['e' => $e]); + } else { + return $this->convertExceptionToResponse($e); + } + } + + /** + * 收集异常数据 + * @param Throwable $exception + * @return array + */ + protected function convertExceptionToArray(Throwable $exception): array + { + if ($this->app->isDebug()) { + // 调试模式,获取详细的错误信息 + $traces = []; + $nextException = $exception; + do { + $traces[] = [ + 'name' => get_class($nextException), + 'file' => $nextException->getFile(), + 'line' => $nextException->getLine(), + 'code' => $this->getCode($nextException), + 'message' => $this->getMessage($nextException), + 'trace' => $nextException->getTrace(), + 'source' => $this->getSourceCode($nextException), + ]; + } while ($nextException = $nextException->getPrevious()); + $data = [ + 'code' => $this->getCode($exception), + 'message' => $this->getMessage($exception), + 'traces' => $traces, + 'datas' => $this->getExtendData($exception), + 'tables' => [ + 'GET Data' => $this->app->request->get(), + 'POST Data' => $this->app->request->post(), + 'Files' => $this->app->request->file(), + 'Cookies' => $this->app->request->cookie(), + 'Session' => $this->app->session->all(), + 'Server/Request Data' => $this->app->request->server(), + 'Environment Variables' => $this->app->request->env(), + 'ThinkPHP Constants' => $this->getConst(), + ], + ]; + } else { + // 部署模式仅显示 Code 和 Message + $data = [ + 'code' => $this->getCode($exception), + 'message' => $this->getMessage($exception), + ]; + + if (!$this->app->config->get('app.show_error_msg')) { + // 不显示详细错误信息 + $data['message'] = $this->app->config->get('app.error_message'); + } + } + + return $data; + } + + /** + * @access protected + * @param Throwable $exception + * @return Response + */ + protected function convertExceptionToResponse(Throwable $exception): Response + { + if (!$this->isJson) { + $response = Response::create($this->renderExceptionContent($exception)); + } else { + $response = Response::create($this->convertExceptionToArray($exception), 'json'); + } + + if ($exception instanceof HttpException) { + $statusCode = $exception->getStatusCode(); + $response->header($exception->getHeaders()); + } + + return $response->code($statusCode ?? 500); + } + + protected function renderExceptionContent(Throwable $exception): string + { + ob_start(); + $data = $this->convertExceptionToArray($exception); + extract($data); + include $this->app->config->get('app.exception_tmpl') ?: __DIR__ . '/../../tpl/think_exception.tpl'; + + return ob_get_clean(); + } + + /** + * 获取错误编码 + * ErrorException则使用错误级别作为错误编码 + * @access protected + * @param Throwable $exception + * @return integer 错误编码 + */ + protected function getCode(Throwable $exception) + { + $code = $exception->getCode(); + + if (!$code && $exception instanceof ErrorException) { + $code = $exception->getSeverity(); + } + + return $code; + } + + /** + * 获取错误信息 + * ErrorException则使用错误级别作为错误编码 + * @access protected + * @param Throwable $exception + * @return string 错误信息 + */ + protected function getMessage(Throwable $exception): string + { + $message = $exception->getMessage(); + + if ($this->app->runningInConsole()) { + return $message; + } + + $lang = $this->app->lang; + + if (strpos($message, ':')) { + $name = strstr($message, ':', true); + $message = $lang->has($name) ? $lang->get($name) . strstr($message, ':') : $message; + } elseif (strpos($message, ',')) { + $name = strstr($message, ',', true); + $message = $lang->has($name) ? $lang->get($name) . ':' . substr(strstr($message, ','), 1) : $message; + } elseif ($lang->has($message)) { + $message = $lang->get($message); + } + + return $message; + } + + /** + * 获取出错文件内容 + * 获取错误的前9行和后9行 + * @access protected + * @param Throwable $exception + * @return array 错误文件内容 + */ + protected function getSourceCode(Throwable $exception): array + { + // 读取前9行和后9行 + $line = $exception->getLine(); + $first = ($line - 9 > 0) ? $line - 9 : 1; + + try { + $contents = file($exception->getFile()) ?: []; + $source = [ + 'first' => $first, + 'source' => array_slice($contents, $first - 1, 19), + ]; + } catch (Exception $e) { + $source = []; + } + + return $source; + } + + /** + * 获取异常扩展信息 + * 用于非调试模式html返回类型显示 + * @access protected + * @param Throwable $exception + * @return array 异常类定义的扩展数据 + */ + protected function getExtendData(Throwable $exception): array + { + $data = []; + + if ($exception instanceof \think\Exception) { + $data = $exception->getData(); + } + + return $data; + } + + /** + * 获取常量列表 + * @access protected + * @return array 常量列表 + */ + protected function getConst(): array + { + $const = get_defined_constants(true); + + return $const['user'] ?? []; + } +} diff --git a/vendor/topthink/framework/src/think/exception/HttpException.php b/vendor/topthink/framework/src/think/exception/HttpException.php new file mode 100644 index 0000000..74fabfc --- /dev/null +++ b/vendor/topthink/framework/src/think/exception/HttpException.php @@ -0,0 +1,42 @@ + +// +---------------------------------------------------------------------- +declare (strict_types = 1); + +namespace think\exception; + +use Exception; + +/** + * HTTP异常 + */ +class HttpException extends \RuntimeException +{ + private $statusCode; + private $headers; + + public function __construct(int $statusCode, string $message = '', Exception $previous = null, array $headers = [], $code = 0) + { + $this->statusCode = $statusCode; + $this->headers = $headers; + + parent::__construct($message, $code, $previous); + } + + public function getStatusCode() + { + return $this->statusCode; + } + + public function getHeaders() + { + return $this->headers; + } +} diff --git a/vendor/topthink/framework/src/think/exception/HttpResponseException.php b/vendor/topthink/framework/src/think/exception/HttpResponseException.php new file mode 100644 index 0000000..759254c --- /dev/null +++ b/vendor/topthink/framework/src/think/exception/HttpResponseException.php @@ -0,0 +1,37 @@ + +// +---------------------------------------------------------------------- +declare (strict_types = 1); + +namespace think\exception; + +use think\Response; + +/** + * HTTP响应异常 + */ +class HttpResponseException extends \RuntimeException +{ + /** + * @var Response + */ + protected $response; + + public function __construct(Response $response) + { + $this->response = $response; + } + + public function getResponse() + { + return $this->response; + } + +} diff --git a/vendor/topthink/framework/src/think/exception/InvalidArgumentException.php b/vendor/topthink/framework/src/think/exception/InvalidArgumentException.php new file mode 100644 index 0000000..d317278 --- /dev/null +++ b/vendor/topthink/framework/src/think/exception/InvalidArgumentException.php @@ -0,0 +1,22 @@ + +// +---------------------------------------------------------------------- +declare (strict_types = 1); +namespace think\exception; + +use Psr\Cache\InvalidArgumentException as Psr6CacheInvalidArgumentInterface; +use Psr\SimpleCache\InvalidArgumentException as SimpleCacheInvalidArgumentInterface; + +/** + * 非法数据异常 + */ +class InvalidArgumentException extends \InvalidArgumentException implements Psr6CacheInvalidArgumentInterface, SimpleCacheInvalidArgumentInterface +{ +} diff --git a/vendor/topthink/framework/src/think/exception/RouteNotFoundException.php b/vendor/topthink/framework/src/think/exception/RouteNotFoundException.php new file mode 100644 index 0000000..f50dff6 --- /dev/null +++ b/vendor/topthink/framework/src/think/exception/RouteNotFoundException.php @@ -0,0 +1,26 @@ + +// +---------------------------------------------------------------------- +declare (strict_types = 1); + +namespace think\exception; + +/** + * 路由未定义异常 + */ +class RouteNotFoundException extends HttpException +{ + + public function __construct() + { + parent::__construct(404, 'Route Not Found'); + } + +} diff --git a/vendor/topthink/framework/src/think/exception/ValidateException.php b/vendor/topthink/framework/src/think/exception/ValidateException.php new file mode 100644 index 0000000..cc79e19 --- /dev/null +++ b/vendor/topthink/framework/src/think/exception/ValidateException.php @@ -0,0 +1,37 @@ + +// +---------------------------------------------------------------------- +declare (strict_types = 1); + +namespace think\exception; + +/** + * 数据验证异常 + */ +class ValidateException extends \RuntimeException +{ + protected $error; + + public function __construct($error) + { + $this->error = $error; + $this->message = is_array($error) ? implode(PHP_EOL, $error) : $error; + } + + /** + * 获取验证错误信息 + * @access public + * @return array|string + */ + public function getError() + { + return $this->error; + } +} diff --git a/vendor/topthink/framework/src/think/facade/App.php b/vendor/topthink/framework/src/think/facade/App.php new file mode 100644 index 0000000..4f64d96 --- /dev/null +++ b/vendor/topthink/framework/src/think/facade/App.php @@ -0,0 +1,33 @@ + +// +---------------------------------------------------------------------- +declare (strict_types = 1); + +namespace think\facade; + +use think\Facade; + +/** + * @see \think\App + * @package think\facade + * @mixin \think\App + */ +class App extends Facade +{ + /** + * 获取当前Facade对应类名(或者已经绑定的容器对象标识) + * @access protected + * @return string + */ + protected static function getFacadeClass() + { + return 'app'; + } +} diff --git a/vendor/topthink/framework/src/think/facade/Cache.php b/vendor/topthink/framework/src/think/facade/Cache.php new file mode 100644 index 0000000..62391b7 --- /dev/null +++ b/vendor/topthink/framework/src/think/facade/Cache.php @@ -0,0 +1,33 @@ + +// +---------------------------------------------------------------------- +declare (strict_types = 1); + +namespace think\facade; + +use think\Facade; + +/** + * @see \think\Cache + * @package think\facade + * @mixin \think\Cache + */ +class Cache extends Facade +{ + /** + * 获取当前Facade对应类名(或者已经绑定的容器对象标识) + * @access protected + * @return string + */ + protected static function getFacadeClass() + { + return 'cache'; + } +} diff --git a/vendor/topthink/framework/src/think/facade/Config.php b/vendor/topthink/framework/src/think/facade/Config.php new file mode 100644 index 0000000..93916e4 --- /dev/null +++ b/vendor/topthink/framework/src/think/facade/Config.php @@ -0,0 +1,33 @@ + +// +---------------------------------------------------------------------- +declare (strict_types = 1); + +namespace think\facade; + +use think\Facade; + +/** + * @see \think\Config + * @package think\facade + * @mixin \think\Config + */ +class Config extends Facade +{ + /** + * 获取当前Facade对应类名(或者已经绑定的容器对象标识) + * @access protected + * @return string + */ + protected static function getFacadeClass() + { + return 'config'; + } +} diff --git a/vendor/topthink/framework/src/think/facade/Console.php b/vendor/topthink/framework/src/think/facade/Console.php new file mode 100644 index 0000000..f3f9239 --- /dev/null +++ b/vendor/topthink/framework/src/think/facade/Console.php @@ -0,0 +1,33 @@ + +// +---------------------------------------------------------------------- +declare (strict_types = 1); + +namespace think\facade; + +use think\Facade; + +/** + * Class Console + * @package think\facade + * @mixin \think\Console + */ +class Console extends Facade +{ + /** + * 获取当前Facade对应类名(或者已经绑定的容器对象标识) + * @access protected + * @return string + */ + protected static function getFacadeClass() + { + return 'console'; + } +} diff --git a/vendor/topthink/framework/src/think/facade/Cookie.php b/vendor/topthink/framework/src/think/facade/Cookie.php new file mode 100644 index 0000000..98aa6c2 --- /dev/null +++ b/vendor/topthink/framework/src/think/facade/Cookie.php @@ -0,0 +1,33 @@ + +// +---------------------------------------------------------------------- +declare (strict_types = 1); + +namespace think\facade; + +use think\Facade; + +/** + * @see \think\Cookie + * @package think\facade + * @mixin \think\Cookie + */ +class Cookie extends Facade +{ + /** + * 获取当前Facade对应类名(或者已经绑定的容器对象标识) + * @access protected + * @return string + */ + protected static function getFacadeClass() + { + return 'cookie'; + } +} diff --git a/vendor/topthink/framework/src/think/facade/Env.php b/vendor/topthink/framework/src/think/facade/Env.php new file mode 100644 index 0000000..5452e90 --- /dev/null +++ b/vendor/topthink/framework/src/think/facade/Env.php @@ -0,0 +1,33 @@ + +// +---------------------------------------------------------------------- +declare (strict_types = 1); + +namespace think\facade; + +use think\Facade; + +/** + * @see \think\Env + * @package think\facade + * @mixin \think\Env + */ +class Env extends Facade +{ + /** + * 获取当前Facade对应类名(或者已经绑定的容器对象标识) + * @access protected + * @return string + */ + protected static function getFacadeClass() + { + return 'env'; + } +} diff --git a/vendor/topthink/framework/src/think/facade/Event.php b/vendor/topthink/framework/src/think/facade/Event.php new file mode 100644 index 0000000..0934452 --- /dev/null +++ b/vendor/topthink/framework/src/think/facade/Event.php @@ -0,0 +1,33 @@ + +// +---------------------------------------------------------------------- +declare (strict_types = 1); + +namespace think\facade; + +use think\Facade; + +/** + * @see \think\Event + * @package think\facade + * @mixin \think\Event + */ +class Event extends Facade +{ + /** + * 获取当前Facade对应类名(或者已经绑定的容器对象标识) + * @access protected + * @return string + */ + protected static function getFacadeClass() + { + return 'event'; + } +} diff --git a/vendor/topthink/framework/src/think/facade/Filesystem.php b/vendor/topthink/framework/src/think/facade/Filesystem.php new file mode 100644 index 0000000..6fe4d5a --- /dev/null +++ b/vendor/topthink/framework/src/think/facade/Filesystem.php @@ -0,0 +1,28 @@ + +// +---------------------------------------------------------------------- +declare (strict_types = 1); + +namespace think\facade; + +use think\Facade; + +/** + * Class Filesystem + * @package think\facade + * @mixin \think\Filesystem + */ +class Filesystem extends Facade +{ + protected static function getFacadeClass() + { + return 'filesystem'; + } +} diff --git a/vendor/topthink/framework/src/think/facade/Lang.php b/vendor/topthink/framework/src/think/facade/Lang.php new file mode 100644 index 0000000..1085c15 --- /dev/null +++ b/vendor/topthink/framework/src/think/facade/Lang.php @@ -0,0 +1,33 @@ + +// +---------------------------------------------------------------------- +declare (strict_types = 1); + +namespace think\facade; + +use think\Facade; + +/** + * @see \think\Lang + * @package think\facade + * @mixin \think\Lang + */ +class Lang extends Facade +{ + /** + * 获取当前Facade对应类名(或者已经绑定的容器对象标识) + * @access protected + * @return string + */ + protected static function getFacadeClass() + { + return 'lang'; + } +} diff --git a/vendor/topthink/framework/src/think/facade/Log.php b/vendor/topthink/framework/src/think/facade/Log.php new file mode 100644 index 0000000..e92a5dc --- /dev/null +++ b/vendor/topthink/framework/src/think/facade/Log.php @@ -0,0 +1,33 @@ + +// +---------------------------------------------------------------------- +declare (strict_types = 1); + +namespace think\facade; + +use think\Facade; + +/** + * @see \think\Log + * @package think\facade + * @mixin \think\Log + */ +class Log extends Facade +{ + /** + * 获取当前Facade对应类名(或者已经绑定的容器对象标识) + * @access protected + * @return string + */ + protected static function getFacadeClass() + { + return 'log'; + } +} diff --git a/vendor/topthink/framework/src/think/facade/Middleware.php b/vendor/topthink/framework/src/think/facade/Middleware.php new file mode 100644 index 0000000..8a9cc36 --- /dev/null +++ b/vendor/topthink/framework/src/think/facade/Middleware.php @@ -0,0 +1,33 @@ + +// +---------------------------------------------------------------------- +declare (strict_types = 1); + +namespace think\facade; + +use think\Facade; + +/** + * @see \think\Middleware + * @package think\facade + * @mixin \think\Middleware + */ +class Middleware extends Facade +{ + /** + * 获取当前Facade对应类名(或者已经绑定的容器对象标识) + * @access protected + * @return string + */ + protected static function getFacadeClass() + { + return 'middleware'; + } +} diff --git a/vendor/topthink/framework/src/think/facade/Request.php b/vendor/topthink/framework/src/think/facade/Request.php new file mode 100644 index 0000000..8bf5fc2 --- /dev/null +++ b/vendor/topthink/framework/src/think/facade/Request.php @@ -0,0 +1,33 @@ + +// +---------------------------------------------------------------------- +declare (strict_types = 1); + +namespace think\facade; + +use think\Facade; + +/** + * @see \think\Request + * @package think\facade + * @mixin \think\Request + */ +class Request extends Facade +{ + /** + * 获取当前Facade对应类名(或者已经绑定的容器对象标识) + * @access protected + * @return string + */ + protected static function getFacadeClass() + { + return 'request'; + } +} diff --git a/vendor/topthink/framework/src/think/facade/Route.php b/vendor/topthink/framework/src/think/facade/Route.php new file mode 100644 index 0000000..5fd5e40 --- /dev/null +++ b/vendor/topthink/framework/src/think/facade/Route.php @@ -0,0 +1,33 @@ + +// +---------------------------------------------------------------------- +declare (strict_types = 1); + +namespace think\facade; + +use think\Facade; + +/** + * @see \think\Route + * @package think\facade + * @mixin \think\Route + */ +class Route extends Facade +{ + /** + * 获取当前Facade对应类名(或者已经绑定的容器对象标识) + * @access protected + * @return string + */ + protected static function getFacadeClass() + { + return 'route'; + } +} diff --git a/vendor/topthink/framework/src/think/facade/Session.php b/vendor/topthink/framework/src/think/facade/Session.php new file mode 100644 index 0000000..4bcb6e8 --- /dev/null +++ b/vendor/topthink/framework/src/think/facade/Session.php @@ -0,0 +1,33 @@ + +// +---------------------------------------------------------------------- +declare (strict_types = 1); + +namespace think\facade; + +use think\Facade; + +/** + * @see \think\Session + * @package think\facade + * @mixin \think\Session + */ +class Session extends Facade +{ + /** + * 获取当前Facade对应类名(或者已经绑定的容器对象标识) + * @access protected + * @return string + */ + protected static function getFacadeClass() + { + return 'session'; + } +} diff --git a/vendor/topthink/framework/src/think/facade/Validate.php b/vendor/topthink/framework/src/think/facade/Validate.php new file mode 100644 index 0000000..0d6a34e --- /dev/null +++ b/vendor/topthink/framework/src/think/facade/Validate.php @@ -0,0 +1,39 @@ + +// +---------------------------------------------------------------------- +declare (strict_types = 1); + +namespace think\facade; + +use think\Facade; + +/** + * @see \think\Validate + * @package think\facade + * @mixin \think\Validate + */ +class Validate extends Facade +{ + /** + * 始终创建新的对象实例 + * @var bool + */ + protected static $alwaysNewInstance = true; + + /** + * 获取当前Facade对应类名(或者已经绑定的容器对象标识) + * @access protected + * @return string + */ + protected static function getFacadeClass() + { + return 'validate'; + } +} diff --git a/vendor/topthink/framework/src/think/facade/View.php b/vendor/topthink/framework/src/think/facade/View.php new file mode 100644 index 0000000..0fecb15 --- /dev/null +++ b/vendor/topthink/framework/src/think/facade/View.php @@ -0,0 +1,33 @@ + +// +---------------------------------------------------------------------- +declare (strict_types = 1); + +namespace think\facade; + +use think\Facade; + +/** + * @see \think\View + * @package think\facade + * @mixin \think\View + */ +class View extends Facade +{ + /** + * 获取当前Facade对应类名(或者已经绑定的容器对象标识) + * @access protected + * @return string + */ + protected static function getFacadeClass() + { + return 'view'; + } +} diff --git a/vendor/topthink/framework/src/think/file/UploadedFile.php b/vendor/topthink/framework/src/think/file/UploadedFile.php new file mode 100644 index 0000000..7810eac --- /dev/null +++ b/vendor/topthink/framework/src/think/file/UploadedFile.php @@ -0,0 +1,143 @@ + +// +---------------------------------------------------------------------- +declare (strict_types = 1); + +namespace think\file; + +use think\exception\FileException; +use think\File; + +class UploadedFile extends File +{ + + private $test = false; + private $originalName; + private $mimeType; + private $error; + + public function __construct(string $path, string $originalName, string $mimeType = null, int $error = null, bool $test = false) + { + $this->originalName = $originalName; + $this->mimeType = $mimeType ?: 'application/octet-stream'; + $this->test = $test; + $this->error = $error ?: UPLOAD_ERR_OK; + + parent::__construct($path, UPLOAD_ERR_OK === $this->error); + } + + public function isValid(): bool + { + $isOk = UPLOAD_ERR_OK === $this->error; + + return $this->test ? $isOk : $isOk && is_uploaded_file($this->getPathname()); + } + + /** + * 上传文件 + * @access public + * @param string $directory 保存路径 + * @param string|null $name 保存的文件名 + * @return File + */ + public function move(string $directory, string $name = null): File + { + if ($this->isValid()) { + if ($this->test) { + return parent::move($directory, $name); + } + + $target = $this->getTargetFile($directory, $name); + + set_error_handler(function ($type, $msg) use (&$error) { + $error = $msg; + }); + + $moved = move_uploaded_file($this->getPathname(), $target); + restore_error_handler(); + if (!$moved) { + throw new FileException(sprintf('Could not move the file "%s" to "%s" (%s)', $this->getPathname(), $target, strip_tags($error))); + } + + @chmod($target, 0666 & ~umask()); + + return $target; + } + + throw new FileException($this->getErrorMessage()); + } + + /** + * 获取错误信息 + * @access public + * @return string + */ + protected function getErrorMessage(): string + { + switch ($this->error) { + case 1: + case 2: + $message = 'upload File size exceeds the maximum value'; + break; + case 3: + $message = 'only the portion of file is uploaded'; + break; + case 4: + $message = 'no file to uploaded'; + break; + case 6: + $message = 'upload temp dir not found'; + break; + case 7: + $message = 'file write error'; + break; + default: + $message = 'unknown upload error'; + } + + return $message; + } + + /** + * 获取上传文件类型信息 + * @return string + */ + public function getOriginalMime(): string + { + return $this->mimeType; + } + + /** + * 上传文件名 + * @return string + */ + public function getOriginalName(): string + { + return $this->originalName; + } + + /** + * 获取上传文件扩展名 + * @return string + */ + public function getOriginalExtension(): string + { + return pathinfo($this->originalName, PATHINFO_EXTENSION); + } + + /** + * 获取文件扩展名 + * @return string + */ + public function extension(): string + { + return $this->getOriginalExtension(); + } +} diff --git a/vendor/topthink/framework/src/think/filesystem/CacheStore.php b/vendor/topthink/framework/src/think/filesystem/CacheStore.php new file mode 100644 index 0000000..46659ba --- /dev/null +++ b/vendor/topthink/framework/src/think/filesystem/CacheStore.php @@ -0,0 +1,54 @@ + +// +---------------------------------------------------------------------- +declare (strict_types = 1); + +namespace think\filesystem; + +use League\Flysystem\Cached\Storage\AbstractCache; +use Psr\SimpleCache\CacheInterface; + +class CacheStore extends AbstractCache +{ + protected $store; + + protected $key; + + protected $expire; + + public function __construct(CacheInterface $store, $key = 'flysystem', $expire = null) + { + $this->key = $key; + $this->store = $store; + $this->expire = $expire; + } + + /** + * Store the cache. + */ + public function save() + { + $contents = $this->getForStorage(); + + $this->store->set($this->key, $contents, $this->expire); + } + + /** + * Load the cache. + */ + public function load() + { + $contents = $this->store->get($this->key); + + if (!is_null($contents)) { + $this->setFromStorage($contents); + } + } +} diff --git a/vendor/topthink/framework/src/think/filesystem/Driver.php b/vendor/topthink/framework/src/think/filesystem/Driver.php new file mode 100644 index 0000000..26826ad --- /dev/null +++ b/vendor/topthink/framework/src/think/filesystem/Driver.php @@ -0,0 +1,133 @@ + +// +---------------------------------------------------------------------- +declare (strict_types = 1); + +namespace think\filesystem; + +use League\Flysystem\AdapterInterface; +use League\Flysystem\Adapter\AbstractAdapter; +use League\Flysystem\Cached\CachedAdapter; +use League\Flysystem\Cached\Storage\Memory as MemoryStore; +use League\Flysystem\Filesystem; +use think\Cache; +use think\File; + +/** + * Class Driver + * @package think\filesystem + * @mixin Filesystem + */ +abstract class Driver +{ + + /** @var Cache */ + protected $cache; + + /** @var Filesystem */ + protected $filesystem; + + /** + * 配置参数 + * @var array + */ + protected $config = []; + + public function __construct(Cache $cache, array $config) + { + $this->cache = $cache; + $this->config = array_merge($this->config, $config); + + $adapter = $this->createAdapter(); + $this->filesystem = $this->createFilesystem($adapter); + } + + protected function createCacheStore($config) + { + if (true === $config) { + return new MemoryStore; + } + + return new CacheStore( + $this->cache->store($config['store']), + $config['prefix'] ?? 'flysystem', + $config['expire'] ?? null + ); + } + + abstract protected function createAdapter(): AdapterInterface; + + protected function createFilesystem(AdapterInterface $adapter): Filesystem + { + if (!empty($this->config['cache'])) { + $adapter = new CachedAdapter($adapter, $this->createCacheStore($this->config['cache'])); + } + + $config = array_intersect_key($this->config, array_flip(['visibility', 'disable_asserts', 'url'])); + + return new Filesystem($adapter, count($config) > 0 ? $config : null); + } + + /** + * 获取文件完整路径 + * @param string $path + * @return string + */ + public function path(string $path): string + { + $adapter = $this->filesystem->getAdapter(); + + if ($adapter instanceof AbstractAdapter) { + return $adapter->applyPathPrefix($path); + } + + return $path; + } + + /** + * 保存文件 + * @param string $path 路径 + * @param File $file 文件 + * @param null|string|\Closure $rule 文件名规则 + * @param array $options 参数 + * @return bool|string + */ + public function putFile(string $path, File $file, $rule = null, array $options = []) + { + return $this->putFileAs($path, $file, $file->hashName($rule), $options); + } + + /** + * 指定文件名保存文件 + * @param string $path 路径 + * @param File $file 文件 + * @param string $name 文件名 + * @param array $options 参数 + * @return bool|string + */ + public function putFileAs(string $path, File $file, string $name, array $options = []) + { + $stream = fopen($file->getRealPath(), 'r'); + $path = trim($path . '/' . $name, '/'); + + $result = $this->putStream($path, $stream, $options); + + if (is_resource($stream)) { + fclose($stream); + } + + return $result ? $path : false; + } + + public function __call($method, $parameters) + { + return $this->filesystem->$method(...$parameters); + } +} diff --git a/vendor/topthink/framework/src/think/filesystem/driver/Local.php b/vendor/topthink/framework/src/think/filesystem/driver/Local.php new file mode 100644 index 0000000..60aa71c --- /dev/null +++ b/vendor/topthink/framework/src/think/filesystem/driver/Local.php @@ -0,0 +1,41 @@ + +// +---------------------------------------------------------------------- +declare (strict_types = 1); + +namespace think\filesystem\driver; + +use League\Flysystem\AdapterInterface; +use League\Flysystem\Adapter\Local as LocalAdapter; +use think\filesystem\Driver; + +class Local extends Driver +{ + /** + * 配置参数 + * @var array + */ + protected $config = [ + 'root' => '', + ]; + + protected function createAdapter(): AdapterInterface + { + $permissions = $this->config['permissions'] ?? []; + + $links = ($this->config['links'] ?? null) === 'skip' + ? LocalAdapter::SKIP_LINKS + : LocalAdapter::DISALLOW_LINKS; + + return new LocalAdapter( + $this->config['root'], LOCK_EX, $links, $permissions + ); + } +} diff --git a/vendor/topthink/framework/src/think/initializer/BootService.php b/vendor/topthink/framework/src/think/initializer/BootService.php new file mode 100644 index 0000000..ef9b25e --- /dev/null +++ b/vendor/topthink/framework/src/think/initializer/BootService.php @@ -0,0 +1,26 @@ + +// +---------------------------------------------------------------------- +declare (strict_types = 1); + +namespace think\initializer; + +use think\App; + +/** + * 启动系统服务 + */ +class BootService +{ + public function init(App $app) + { + $app->boot(); + } +} diff --git a/vendor/topthink/framework/src/think/initializer/Error.php b/vendor/topthink/framework/src/think/initializer/Error.php new file mode 100644 index 0000000..27fef64 --- /dev/null +++ b/vendor/topthink/framework/src/think/initializer/Error.php @@ -0,0 +1,117 @@ + +// +---------------------------------------------------------------------- +declare (strict_types = 1); + +namespace think\initializer; + +use think\App; +use think\console\Output as ConsoleOutput; +use think\exception\ErrorException; +use think\exception\Handle; +use Throwable; + +/** + * 错误和异常处理 + */ +class Error +{ + /** @var App */ + protected $app; + + /** + * 注册异常处理 + * @access public + * @param App $app + * @return void + */ + public function init(App $app) + { + $this->app = $app; + error_reporting(E_ALL); + set_error_handler([$this, 'appError']); + set_exception_handler([$this, 'appException']); + register_shutdown_function([$this, 'appShutdown']); + } + + /** + * Exception Handler + * @access public + * @param \Throwable $e + */ + public function appException(Throwable $e): void + { + $handler = $this->getExceptionHandler(); + + $handler->report($e); + + if ($this->app->runningInConsole()) { + $handler->renderForConsole(new ConsoleOutput, $e); + } else { + $handler->render($this->app->request, $e)->send(); + } + } + + /** + * Error Handler + * @access public + * @param integer $errno 错误编号 + * @param string $errstr 详细错误信息 + * @param string $errfile 出错的文件 + * @param integer $errline 出错行号 + * @throws ErrorException + */ + public function appError(int $errno, string $errstr, string $errfile = '', int $errline = 0): void + { + $exception = new ErrorException($errno, $errstr, $errfile, $errline); + + if (error_reporting() & $errno) { + // 将错误信息托管至 think\exception\ErrorException + throw $exception; + } + } + + /** + * Shutdown Handler + * @access public + */ + public function appShutdown(): void + { + if (!is_null($error = error_get_last()) && $this->isFatal($error['type'])) { + // 将错误信息托管至think\ErrorException + $exception = new ErrorException($error['type'], $error['message'], $error['file'], $error['line']); + + $this->appException($exception); + } + } + + /** + * 确定错误类型是否致命 + * + * @access protected + * @param int $type + * @return bool + */ + protected function isFatal(int $type): bool + { + return in_array($type, [E_ERROR, E_CORE_ERROR, E_COMPILE_ERROR, E_PARSE]); + } + + /** + * Get an instance of the exception handler. + * + * @access protected + * @return Handle + */ + protected function getExceptionHandler() + { + return $this->app->make(Handle::class); + } +} diff --git a/vendor/topthink/framework/src/think/initializer/RegisterService.php b/vendor/topthink/framework/src/think/initializer/RegisterService.php new file mode 100644 index 0000000..c63ab35 --- /dev/null +++ b/vendor/topthink/framework/src/think/initializer/RegisterService.php @@ -0,0 +1,48 @@ + +// +---------------------------------------------------------------------- +declare (strict_types = 1); + +namespace think\initializer; + +use think\App; +use think\service\ModelService; +use think\service\PaginatorService; +use think\service\ValidateService; + +/** + * 注册系统服务 + */ +class RegisterService +{ + + protected $services = [ + PaginatorService::class, + ValidateService::class, + ModelService::class, + ]; + + public function init(App $app) + { + $file = $app->getRootPath() . 'vendor/services.php'; + + $services = $this->services; + + if (is_file($file)) { + $services = array_merge($services, include $file); + } + + foreach ($services as $service) { + if (class_exists($service)) { + $app->register($service); + } + } + } +} diff --git a/vendor/topthink/framework/src/think/log/Channel.php b/vendor/topthink/framework/src/think/log/Channel.php new file mode 100644 index 0000000..2660a60 --- /dev/null +++ b/vendor/topthink/framework/src/think/log/Channel.php @@ -0,0 +1,282 @@ + +// +---------------------------------------------------------------------- +declare (strict_types = 1); + +namespace think\log; + +use Psr\Log\LoggerInterface; +use think\contract\LogHandlerInterface; +use think\Event; +use think\event\LogWrite; + +class Channel implements LoggerInterface +{ + protected $name; + protected $logger; + protected $event; + + protected $lazy = true; + /** + * 日志信息 + * @var array + */ + protected $log = []; + + /** + * 关闭日志 + * @var array + */ + protected $close = false; + + /** + * 允许写入类型 + * @var array + */ + protected $allow = []; + + public function __construct(string $name, LogHandlerInterface $logger, array $allow, bool $lazy = true, Event $event = null) + { + $this->name = $name; + $this->logger = $logger; + $this->allow = $allow; + $this->lazy = $lazy; + $this->event = $event; + } + + /** + * 关闭通道 + */ + public function close() + { + $this->clear(); + $this->close = true; + } + + /** + * 清空日志 + */ + public function clear() + { + $this->log = []; + } + + /** + * 记录日志信息 + * @access public + * @param mixed $msg 日志信息 + * @param string $type 日志级别 + * @param array $context 替换内容 + * @param bool $lazy + * @return $this + */ + public function record($msg, string $type = 'info', array $context = [], bool $lazy = true) + { + if ($this->close || (!empty($this->allow) && !in_array($type, $this->allow))) { + return $this; + } + + if (is_string($msg) && !empty($context)) { + $replace = []; + foreach ($context as $key => $val) { + $replace['{' . $key . '}'] = $val; + } + + $msg = strtr($msg, $replace); + } + + if (!empty($msg) || 0 === $msg) { + $this->log[$type][] = $msg; + } + + if (!$this->lazy || !$lazy) { + $this->save(); + } + + return $this; + } + + /** + * 实时写入日志信息 + * @access public + * @param mixed $msg 调试信息 + * @param string $type 日志级别 + * @param array $context 替换内容 + * @return $this + */ + public function write($msg, string $type = 'info', array $context = []) + { + return $this->record($msg, $type, $context, false); + } + + /** + * 获取日志信息 + * @return array + */ + public function getLog(): array + { + return $this->log; + } + + /** + * 保存日志 + * @return bool + */ + public function save(): bool + { + $log = $this->log; + if ($this->event) { + $event = new LogWrite($this->name, $log); + $this->event->trigger($event); + $log = $event->log; + } + + if ($this->logger->save($log)) { + $this->clear(); + return true; + } + + return false; + } + + /** + * System is unusable. + * + * @param string $message + * @param array $context + * + * @return void + */ + public function emergency($message, array $context = []) + { + $this->log(__FUNCTION__, $message, $context); + } + + /** + * Action must be taken immediately. + * + * Example: Entire website down, database unavailable, etc. This should + * trigger the SMS alerts and wake you up. + * + * @param string $message + * @param array $context + * + * @return void + */ + public function alert($message, array $context = []) + { + $this->log(__FUNCTION__, $message, $context); + } + + /** + * Critical conditions. + * + * Example: Application component unavailable, unexpected exception. + * + * @param string $message + * @param array $context + * + * @return void + */ + public function critical($message, array $context = []) + { + $this->log(__FUNCTION__, $message, $context); + } + + /** + * Runtime errors that do not require immediate action but should typically + * be logged and monitored. + * + * @param string $message + * @param array $context + * + * @return void + */ + public function error($message, array $context = []) + { + $this->log(__FUNCTION__, $message, $context); + } + + /** + * Exceptional occurrences that are not errors. + * + * Example: Use of deprecated APIs, poor use of an API, undesirable things + * that are not necessarily wrong. + * + * @param string $message + * @param array $context + * + * @return void + */ + public function warning($message, array $context = []) + { + $this->log(__FUNCTION__, $message, $context); + } + + /** + * Normal but significant events. + * + * @param string $message + * @param array $context + * + * @return void + */ + public function notice($message, array $context = []) + { + $this->log(__FUNCTION__, $message, $context); + } + + /** + * Interesting events. + * + * Example: User logs in, SQL logs. + * + * @param string $message + * @param array $context + * + * @return void + */ + public function info($message, array $context = []) + { + $this->log(__FUNCTION__, $message, $context); + } + + /** + * Detailed debug information. + * + * @param string $message + * @param array $context + * + * @return void + */ + public function debug($message, array $context = []) + { + $this->log(__FUNCTION__, $message, $context); + } + + /** + * Logs with an arbitrary level. + * + * @param mixed $level + * @param string $message + * @param array $context + * + * @return void + */ + public function log($level, $message, array $context = []) + { + $this->record($message, $level, $context); + } + + public function __call($method, $parameters) + { + $this->log($method, ...$parameters); + } +} diff --git a/vendor/topthink/framework/src/think/log/ChannelSet.php b/vendor/topthink/framework/src/think/log/ChannelSet.php new file mode 100644 index 0000000..e38811c --- /dev/null +++ b/vendor/topthink/framework/src/think/log/ChannelSet.php @@ -0,0 +1,39 @@ + +// +---------------------------------------------------------------------- +declare (strict_types = 1); + +namespace think\log; + +use think\Log; + +/** + * Class ChannelSet + * @package think\log + * @mixin Channel + */ +class ChannelSet +{ + protected $log; + protected $channels; + + public function __construct(Log $log, array $channels) + { + $this->log = $log; + $this->channels = $channels; + } + + public function __call($method, $arguments) + { + foreach ($this->channels as $channel) { + $this->log->channel($channel)->{$method}(...$arguments); + } + } +} diff --git a/vendor/topthink/framework/src/think/log/driver/File.php b/vendor/topthink/framework/src/think/log/driver/File.php new file mode 100644 index 0000000..1b6314d --- /dev/null +++ b/vendor/topthink/framework/src/think/log/driver/File.php @@ -0,0 +1,205 @@ + +// +---------------------------------------------------------------------- +declare (strict_types = 1); + +namespace think\log\driver; + +use think\App; +use think\contract\LogHandlerInterface; + +/** + * 本地化调试输出到文件 + */ +class File implements LogHandlerInterface +{ + /** + * 配置参数 + * @var array + */ + protected $config = [ + 'time_format' => 'c', + 'single' => false, + 'file_size' => 2097152, + 'path' => '', + 'apart_level' => [], + 'max_files' => 0, + 'json' => false, + 'json_options' => JSON_UNESCAPED_UNICODE | JSON_UNESCAPED_SLASHES, + 'format' => '[%s][%s] %s', + ]; + + // 实例化并传入参数 + public function __construct(App $app, $config = []) + { + if (is_array($config)) { + $this->config = array_merge($this->config, $config); + } + + if (empty($this->config['format'])) { + $this->config['format'] = '[%s][%s] %s'; + } + + if (empty($this->config['path'])) { + $this->config['path'] = $app->getRuntimePath() . 'log'; + } + + if (substr($this->config['path'], -1) != DIRECTORY_SEPARATOR) { + $this->config['path'] .= DIRECTORY_SEPARATOR; + } + } + + /** + * 日志写入接口 + * @access public + * @param array $log 日志信息 + * @return bool + */ + public function save(array $log): bool + { + $destination = $this->getMasterLogFile(); + + $path = dirname($destination); + !is_dir($path) && mkdir($path, 0755, true); + + $info = []; + + // 日志信息封装 + $time = date($this->config['time_format']); + + foreach ($log as $type => $val) { + $message = []; + foreach ($val as $msg) { + if (!is_string($msg)) { + $msg = var_export($msg, true); + } + + $message[] = $this->config['json'] ? + json_encode(['time' => $time, 'type' => $type, 'msg' => $msg], $this->config['json_options']) : + sprintf($this->config['format'], $time, $type, $msg); + } + + if (true === $this->config['apart_level'] || in_array($type, $this->config['apart_level'])) { + // 独立记录的日志级别 + $filename = $this->getApartLevelFile($path, $type); + $this->write($message, $filename); + continue; + } + + $info[$type] = $message; + } + + if ($info) { + return $this->write($info, $destination); + } + + return true; + } + + /** + * 日志写入 + * @access protected + * @param array $message 日志信息 + * @param string $destination 日志文件 + * @return bool + */ + protected function write(array $message, string $destination): bool + { + // 检测日志文件大小,超过配置大小则备份日志文件重新生成 + $this->checkLogSize($destination); + + $info = []; + + foreach ($message as $type => $msg) { + $info[$type] = is_array($msg) ? implode(PHP_EOL, $msg) : $msg; + } + + $message = implode(PHP_EOL, $info) . PHP_EOL; + + return error_log($message, 3, $destination); + } + + /** + * 获取主日志文件名 + * @access public + * @return string + */ + protected function getMasterLogFile(): string + { + + if ($this->config['max_files']) { + $files = glob($this->config['path'] . '*.log'); + + try { + if (count($files) > $this->config['max_files']) { + unlink($files[0]); + } + } catch (\Exception $e) { + // + } + } + + if ($this->config['single']) { + $name = is_string($this->config['single']) ? $this->config['single'] : 'single'; + $destination = $this->config['path'] . $name . '.log'; + } else { + + if ($this->config['max_files']) { + $filename = date('Ymd') . '.log'; + } else { + $filename = date('Ym') . DIRECTORY_SEPARATOR . date('d') . '.log'; + } + + $destination = $this->config['path'] . $filename; + } + + return $destination; + } + + /** + * 获取独立日志文件名 + * @access public + * @param string $path 日志目录 + * @param string $type 日志类型 + * @return string + */ + protected function getApartLevelFile(string $path, string $type): string + { + + if ($this->config['single']) { + $name = is_string($this->config['single']) ? $this->config['single'] : 'single'; + + $name .= '_' . $type; + } elseif ($this->config['max_files']) { + $name = date('Ymd') . '_' . $type; + } else { + $name = date('d') . '_' . $type; + } + + return $path . DIRECTORY_SEPARATOR . $name . '.log'; + } + + /** + * 检查日志文件大小并自动生成备份文件 + * @access protected + * @param string $destination 日志文件 + * @return void + */ + protected function checkLogSize(string $destination): void + { + if (is_file($destination) && floor($this->config['file_size']) <= filesize($destination)) { + try { + rename($destination, dirname($destination) . DIRECTORY_SEPARATOR . time() . '-' . basename($destination)); + } catch (\Exception $e) { + // + } + } + } +} diff --git a/vendor/topthink/framework/src/think/log/driver/Socket.php b/vendor/topthink/framework/src/think/log/driver/Socket.php new file mode 100644 index 0000000..fc74258 --- /dev/null +++ b/vendor/topthink/framework/src/think/log/driver/Socket.php @@ -0,0 +1,306 @@ + +// +---------------------------------------------------------------------- +declare (strict_types = 1); + +namespace think\log\driver; + +use Psr\Container\NotFoundExceptionInterface; +use think\App; +use think\contract\LogHandlerInterface; + +/** + * github: https://github.com/luofei614/SocketLog + * @author luofei614 + */ +class Socket implements LogHandlerInterface +{ + protected $app; + + protected $config = [ + // socket服务器地址 + 'host' => 'localhost', + // socket服务器端口 + 'port' => 1116, + // 是否显示加载的文件列表 + 'show_included_files' => false, + // 日志强制记录到配置的client_id + 'force_client_ids' => [], + // 限制允许读取日志的client_id + 'allow_client_ids' => [], + // 调试开关 + 'debug' => false, + // 输出到浏览器时默认展开的日志级别 + 'expand_level' => ['debug'], + // 日志头渲染回调 + 'format_head' => null, + ]; + + protected $css = [ + 'sql' => 'color:#009bb4;', + 'sql_warn' => 'color:#009bb4;font-size:14px;', + 'error' => 'color:#f4006b;font-size:14px;', + 'page' => 'color:#40e2ff;background:#171717;', + 'big' => 'font-size:20px;color:red;', + ]; + + protected $allowForceClientIds = []; //配置强制推送且被授权的client_id + + protected $clientArg = []; + + /** + * 架构函数 + * @access public + * @param App $app + * @param array $config 缓存参数 + */ + public function __construct(App $app, array $config = []) + { + $this->app = $app; + + if (!empty($config)) { + $this->config = array_merge($this->config, $config); + } + + if (!isset($config['debug'])) { + $this->config['debug'] = $app->isDebug(); + } + } + + /** + * 调试输出接口 + * @access public + * @param array $log 日志信息 + * @return bool + */ + public function save(array $log = []): bool + { + if (!$this->check()) { + return false; + } + + $trace = []; + + if ($this->config['debug']) { + if ($this->app->exists('request')) { + $current_uri = $this->app->request->url(true); + } else { + $current_uri = 'cmd:' . implode(' ', $_SERVER['argv'] ?? []); + } + + if (!empty($this->config['format_head'])) { + try { + $current_uri = $this->app->invoke($this->config['format_head'], [$current_uri]); + } catch (NotFoundExceptionInterface $notFoundException) { + // Ignore exception + } + } + + // 基本信息 + $trace[] = [ + 'type' => 'group', + 'msg' => $current_uri, + 'css' => $this->css['page'], + ]; + } + + $expand_level = array_flip($this->config['expand_level']); + + foreach ($log as $type => $val) { + $trace[] = [ + 'type' => isset($expand_level[$type]) ? 'group' : 'groupCollapsed', + 'msg' => '[ ' . $type . ' ]', + 'css' => $this->css[$type] ?? '', + ]; + + foreach ($val as $msg) { + if (!is_string($msg)) { + $msg = var_export($msg, true); + } + $trace[] = [ + 'type' => 'log', + 'msg' => $msg, + 'css' => '', + ]; + } + + $trace[] = [ + 'type' => 'groupEnd', + 'msg' => '', + 'css' => '', + ]; + } + + if ($this->config['show_included_files']) { + $trace[] = [ + 'type' => 'groupCollapsed', + 'msg' => '[ file ]', + 'css' => '', + ]; + + $trace[] = [ + 'type' => 'log', + 'msg' => implode("\n", get_included_files()), + 'css' => '', + ]; + + $trace[] = [ + 'type' => 'groupEnd', + 'msg' => '', + 'css' => '', + ]; + } + + $trace[] = [ + 'type' => 'groupEnd', + 'msg' => '', + 'css' => '', + ]; + + $tabid = $this->getClientArg('tabid'); + + if (!$client_id = $this->getClientArg('client_id')) { + $client_id = ''; + } + + if (!empty($this->allowForceClientIds)) { + //强制推送到多个client_id + foreach ($this->allowForceClientIds as $force_client_id) { + $client_id = $force_client_id; + $this->sendToClient($tabid, $client_id, $trace, $force_client_id); + } + } else { + $this->sendToClient($tabid, $client_id, $trace, ''); + } + + return true; + } + + /** + * 发送给指定客户端 + * @access protected + * @author Zjmainstay + * @param $tabid + * @param $client_id + * @param $logs + * @param $force_client_id + */ + protected function sendToClient($tabid, $client_id, $logs, $force_client_id) + { + $logs = [ + 'tabid' => $tabid, + 'client_id' => $client_id, + 'logs' => $logs, + 'force_client_id' => $force_client_id, + ]; + + $msg = json_encode($logs, JSON_UNESCAPED_UNICODE | JSON_UNESCAPED_SLASHES | JSON_PARTIAL_OUTPUT_ON_ERROR); + $address = '/' . $client_id; //将client_id作为地址, server端通过地址判断将日志发布给谁 + + $this->send($this->config['host'], $this->config['port'], $msg, $address); + } + + /** + * 检测客户授权 + * @access protected + * @return bool + */ + protected function check() + { + $tabid = $this->getClientArg('tabid'); + + //是否记录日志的检查 + if (!$tabid && !$this->config['force_client_ids']) { + return false; + } + + //用户认证 + $allow_client_ids = $this->config['allow_client_ids']; + + if (!empty($allow_client_ids)) { + //通过数组交集得出授权强制推送的client_id + $this->allowForceClientIds = array_intersect($allow_client_ids, $this->config['force_client_ids']); + if (!$tabid && count($this->allowForceClientIds)) { + return true; + } + + $client_id = $this->getClientArg('client_id'); + if (!in_array($client_id, $allow_client_ids)) { + return false; + } + } else { + $this->allowForceClientIds = $this->config['force_client_ids']; + } + + return true; + } + + /** + * 获取客户参数 + * @access protected + * @param string $name + * @return string + */ + protected function getClientArg(string $name) + { + if (!$this->app->exists('request')) { + return ''; + } + + if (empty($this->clientArg)) { + if (empty($socketLog = $this->app->request->header('socketlog'))) { + if (empty($socketLog = $this->app->request->header('User-Agent'))) { + return ''; + } + } + + if (!preg_match('/SocketLog\((.*?)\)/', $socketLog, $match)) { + $this->clientArg = ['tabid' => null, 'client_id' => null]; + return ''; + } + parse_str($match[1] ?? '', $this->clientArg); + } + + if (isset($this->clientArg[$name])) { + return $this->clientArg[$name]; + } + + return ''; + } + + /** + * @access protected + * @param string $host - $host of socket server + * @param int $port - $port of socket server + * @param string $message - 发送的消息 + * @param string $address - 地址 + * @return bool + */ + protected function send($host, $port, $message = '', $address = '/') + { + $url = 'http://' . $host . ':' . $port . $address; + $ch = curl_init(); + + curl_setopt($ch, CURLOPT_URL, $url); + curl_setopt($ch, CURLOPT_POST, true); + curl_setopt($ch, CURLOPT_POSTFIELDS, $message); + curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); + curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 1); + curl_setopt($ch, CURLOPT_TIMEOUT, 10); + + $headers = [ + "Content-Type: application/json;charset=UTF-8", + ]; + + curl_setopt($ch, CURLOPT_HTTPHEADER, $headers); //设置header + + return curl_exec($ch); + } +} diff --git a/vendor/topthink/framework/src/think/middleware/AllowCrossDomain.php b/vendor/topthink/framework/src/think/middleware/AllowCrossDomain.php new file mode 100644 index 0000000..1c1d4c7 --- /dev/null +++ b/vendor/topthink/framework/src/think/middleware/AllowCrossDomain.php @@ -0,0 +1,66 @@ + +// +---------------------------------------------------------------------- +declare (strict_types = 1); + +namespace think\middleware; + +use Closure; +use think\Config; +use think\Request; +use think\Response; + +/** + * 跨域请求支持 + */ +class AllowCrossDomain +{ + protected $cookieDomain; + + protected $header = [ + 'Access-Control-Allow-Credentials' => 'true', + 'Access-Control-Allow-Methods' => 'GET, POST, PATCH, PUT, DELETE, OPTIONS', + 'Access-Control-Allow-Headers' => 'Authorization, Content-Type, If-Match, If-Modified-Since, If-None-Match, If-Unmodified-Since, X-CSRF-TOKEN, X-Requested-With', + ]; + + public function __construct(Config $config) + { + $this->cookieDomain = $config->get('cookie.domain', ''); + } + + /** + * 允许跨域请求 + * @access public + * @param Request $request + * @param Closure $next + * @param array $header + * @return Response + */ + public function handle($request, Closure $next, ?array $header = []) + { + $header = !empty($header) ? array_merge($this->header, $header) : $this->header; + + if (!isset($header['Access-Control-Allow-Origin'])) { + $origin = $request->header('origin'); + + if ($origin && ('' == $this->cookieDomain || strpos($origin, $this->cookieDomain))) { + $header['Access-Control-Allow-Origin'] = $origin; + } else { + $header['Access-Control-Allow-Origin'] = '*'; + } + } + + if ($request->method(true) == 'OPTIONS') { + return Response::create()->code(204)->header($header); + } + + return $next($request)->header($header); + } +} diff --git a/vendor/topthink/framework/src/think/middleware/CheckRequestCache.php b/vendor/topthink/framework/src/think/middleware/CheckRequestCache.php new file mode 100644 index 0000000..f2d8a62 --- /dev/null +++ b/vendor/topthink/framework/src/think/middleware/CheckRequestCache.php @@ -0,0 +1,163 @@ + +// +---------------------------------------------------------------------- +declare (strict_types = 1); + +namespace think\middleware; + +use Closure; +use think\Cache; +use think\Config; +use think\Request; +use think\Response; + +/** + * 请求缓存处理 + */ +class CheckRequestCache +{ + /** + * 缓存对象 + * @var Cache + */ + protected $cache; + + /** + * 配置参数 + * @var array + */ + protected $config = [ + // 请求缓存规则 true为自动规则 + 'request_cache_key' => true, + // 请求缓存有效期 + 'request_cache_expire' => null, + // 全局请求缓存排除规则 + 'request_cache_except' => [], + // 请求缓存的Tag + 'request_cache_tag' => '', + ]; + + public function __construct(Cache $cache, Config $config) + { + $this->cache = $cache; + $this->config = array_merge($this->config, $config->get('route')); + } + + /** + * 设置当前地址的请求缓存 + * @access public + * @param Request $request + * @param Closure $next + * @param mixed $cache + * @return Response + */ + public function handle($request, Closure $next, $cache = null) + { + if ($request->isGet() && false !== $cache) { + $cache = $cache ?: $this->getRequestCache($request); + + if ($cache) { + if (is_array($cache)) { + [$key, $expire, $tag] = $cache; + } else { + $key = str_replace('|', '/', $request->url()); + $expire = $cache; + $tag = null; + } + + if (strtotime($request->server('HTTP_IF_MODIFIED_SINCE', '')) + $expire > $request->server('REQUEST_TIME')) { + // 读取缓存 + return Response::create()->code(304); + } elseif (($hit = $this->cache->get($key)) !== null) { + [$content, $header, $when] = $hit; + if (null === $expire || $when + $expire > $request->server('REQUEST_TIME')) { + return Response::create($content)->header($header); + } + } + } + } + + $response = $next($request); + + if (isset($key) && 200 == $response->getCode() && $response->isAllowCache()) { + $header = $response->getHeader(); + $header['Cache-Control'] = 'max-age=' . $expire . ',must-revalidate'; + $header['Last-Modified'] = gmdate('D, d M Y H:i:s') . ' GMT'; + $header['Expires'] = gmdate('D, d M Y H:i:s', time() + $expire) . ' GMT'; + + $this->cache->tag($tag)->set($key, [$response->getContent(), $header, time()], $expire); + } + + return $response; + } + + /** + * 读取当前地址的请求缓存信息 + * @access protected + * @param Request $request + * @return mixed + */ + protected function getRequestCache($request) + { + $key = $this->config['request_cache_key']; + $expire = $this->config['request_cache_expire']; + $except = $this->config['request_cache_except']; + $tag = $this->config['request_cache_tag']; + + if ($key instanceof \Closure) { + $key = call_user_func($key, $request); + } + + if (false === $key) { + // 关闭当前缓存 + return; + } + + foreach ($except as $rule) { + if (0 === stripos($request->url(), $rule)) { + return; + } + } + + if (true === $key) { + // 自动缓存功能 + $key = '__URL__'; + } elseif (strpos($key, '|')) { + [$key, $fun] = explode('|', $key); + } + + // 特殊规则替换 + if (false !== strpos($key, '__')) { + $key = str_replace(['__CONTROLLER__', '__ACTION__', '__URL__'], [$request->controller(), $request->action(), md5($request->url(true))], $key); + } + + if (false !== strpos($key, ':')) { + $param = $request->param(); + foreach ($param as $item => $val) { + if (is_string($val) && false !== strpos($key, ':' . $item)) { + $key = str_replace(':' . $item, $val, $key); + } + } + } elseif (strpos($key, ']')) { + if ('[' . $request->ext() . ']' == $key) { + // 缓存某个后缀的请求 + $key = md5($request->url()); + } else { + return; + } + } + + if (isset($fun)) { + $key = $fun($key); + } + + return [$key, $expire, $tag]; + } +} diff --git a/vendor/topthink/framework/src/think/middleware/FormTokenCheck.php b/vendor/topthink/framework/src/think/middleware/FormTokenCheck.php new file mode 100644 index 0000000..f507903 --- /dev/null +++ b/vendor/topthink/framework/src/think/middleware/FormTokenCheck.php @@ -0,0 +1,45 @@ + +// +---------------------------------------------------------------------- +declare (strict_types = 1); + +namespace think\middleware; + +use Closure; +use think\exception\ValidateException; +use think\Request; +use think\Response; + +/** + * 表单令牌支持 + */ +class FormTokenCheck +{ + + /** + * 表单令牌检测 + * @access public + * @param Request $request + * @param Closure $next + * @param string $token 表单令牌Token名称 + * @return Response + */ + public function handle(Request $request, Closure $next, string $token = null) + { + $check = $request->checkToken($token ?: '__token__'); + + if (false === $check) { + throw new ValidateException('invalid token'); + } + + return $next($request); + } + +} diff --git a/vendor/topthink/framework/src/think/middleware/LoadLangPack.php b/vendor/topthink/framework/src/think/middleware/LoadLangPack.php new file mode 100644 index 0000000..c9e7a9d --- /dev/null +++ b/vendor/topthink/framework/src/think/middleware/LoadLangPack.php @@ -0,0 +1,61 @@ + +// +---------------------------------------------------------------------- +declare (strict_types = 1); + +namespace think\middleware; + +use Closure; +use think\App; +use think\Lang; +use think\Request; +use think\Response; + +/** + * 多语言加载 + */ +class LoadLangPack +{ + protected $app; + + protected $lang; + + public function __construct(App $app, Lang $lang) + { + $this->app = $app; + $this->lang = $lang; + } + + /** + * 路由初始化(路由规则注册) + * @access public + * @param Request $request + * @param Closure $next + * @return Response + */ + public function handle($request, Closure $next) + { + // 自动侦测当前语言 + $langset = $this->lang->detect($request); + + if ($this->lang->defaultLangSet() != $langset) { + // 加载系统语言包 + $this->lang->load([ + $this->app->getThinkPath() . 'lang' . DIRECTORY_SEPARATOR . $langset . '.php', + ]); + + $this->app->LoadLangPack($langset); + } + + $this->lang->saveToCookie($this->app->cookie); + + return $next($request); + } +} diff --git a/vendor/topthink/framework/src/think/middleware/SessionInit.php b/vendor/topthink/framework/src/think/middleware/SessionInit.php new file mode 100644 index 0000000..8c2a7b4 --- /dev/null +++ b/vendor/topthink/framework/src/think/middleware/SessionInit.php @@ -0,0 +1,80 @@ + +// +---------------------------------------------------------------------- +declare (strict_types = 1); + +namespace think\middleware; + +use Closure; +use think\App; +use think\Request; +use think\Response; +use think\Session; + +/** + * Session初始化 + */ +class SessionInit +{ + + /** @var App */ + protected $app; + + /** @var Session */ + protected $session; + + public function __construct(App $app, Session $session) + { + $this->app = $app; + $this->session = $session; + } + + /** + * Session初始化 + * @access public + * @param Request $request + * @param Closure $next + * @return Response + */ + public function handle($request, Closure $next) + { + // Session初始化 + $varSessionId = $this->app->config->get('session.var_session_id'); + $cookieName = $this->session->getName(); + + if ($varSessionId && $request->request($varSessionId)) { + $sessionId = $request->request($varSessionId); + } else { + $sessionId = $request->cookie($cookieName); + } + + if ($sessionId) { + $this->session->setId($sessionId); + } + + $this->session->init(); + + $request->withSession($this->session); + + /** @var Response $response */ + $response = $next($request); + + $response->setSession($this->session); + + $this->app->cookie->set($cookieName, $this->session->getId()); + + return $response; + } + + public function end(Response $response) + { + $this->session->save(); + } +} diff --git a/vendor/topthink/framework/src/think/response/File.php b/vendor/topthink/framework/src/think/response/File.php new file mode 100644 index 0000000..ce000ab --- /dev/null +++ b/vendor/topthink/framework/src/think/response/File.php @@ -0,0 +1,145 @@ + +// +---------------------------------------------------------------------- +declare (strict_types = 1); + +namespace think\response; + +use think\Exception; +use think\Response; + +/** + * File Response + */ +class File extends Response +{ + protected $expire = 360; + protected $name; + protected $mimeType; + protected $isContent = false; + + public function __construct($data = '', int $code = 200) + { + $this->init($data, $code); + } + + /** + * 处理数据 + * @access protected + * @param mixed $data 要处理的数据 + * @return mixed + * @throws \Exception + */ + protected function output($data) + { + if (!$this->isContent && !is_file($data)) { + throw new Exception('file not exists:' . $data); + } + + ob_end_clean(); + + if (!empty($this->name)) { + $name = $this->name; + } else { + $name = !$this->isContent ? pathinfo($data, PATHINFO_BASENAME) : ''; + } + + if ($this->isContent) { + $mimeType = $this->mimeType; + $size = strlen($data); + } else { + $mimeType = $this->getMimeType($data); + $size = filesize($data); + } + + $this->header['Pragma'] = 'public'; + $this->header['Content-Type'] = $mimeType ?: 'application/octet-stream'; + $this->header['Cache-control'] = 'max-age=' . $this->expire; + $this->header['Content-Disposition'] = 'attachment; filename="' . $name . '"'; + $this->header['Content-Length'] = $size; + $this->header['Content-Transfer-Encoding'] = 'binary'; + $this->header['Expires'] = gmdate("D, d M Y H:i:s", time() + $this->expire) . ' GMT'; + + $this->lastModified(gmdate('D, d M Y H:i:s', time()) . ' GMT'); + + return $this->isContent ? $data : file_get_contents($data); + } + + /** + * 设置是否为内容 必须配合mimeType方法使用 + * @access public + * @param bool $content + * @return $this + */ + public function isContent(bool $content = true) + { + $this->isContent = $content; + return $this; + } + + /** + * 设置有效期 + * @access public + * @param integer $expire 有效期 + * @return $this + */ + public function expire(int $expire) + { + $this->expire = $expire; + return $this; + } + + /** + * 设置文件类型 + * @access public + * @param string $filename 文件名 + * @return $this + */ + public function mimeType(string $mimeType) + { + $this->mimeType = $mimeType; + return $this; + } + + /** + * 获取文件类型信息 + * @access public + * @param string $filename 文件名 + * @return string + */ + protected function getMimeType(string $filename): string + { + if (!empty($this->mimeType)) { + return $this->mimeType; + } + + $finfo = finfo_open(FILEINFO_MIME_TYPE); + + return finfo_file($finfo, $filename); + } + + /** + * 设置下载文件的显示名称 + * @access public + * @param string $filename 文件名 + * @param bool $extension 后缀自动识别 + * @return $this + */ + public function name(string $filename, bool $extension = true) + { + $this->name = $filename; + + if ($extension && false === strpos($filename, '.')) { + $this->name .= '.' . pathinfo($this->data, PATHINFO_EXTENSION); + } + + return $this; + } +} diff --git a/vendor/topthink/framework/src/think/response/Html.php b/vendor/topthink/framework/src/think/response/Html.php new file mode 100644 index 0000000..dbf23c7 --- /dev/null +++ b/vendor/topthink/framework/src/think/response/Html.php @@ -0,0 +1,34 @@ + +// +---------------------------------------------------------------------- +declare (strict_types = 1); + +namespace think\response; + +use think\Cookie; +use think\Response; + +/** + * Html Response + */ +class Html extends Response +{ + /** + * 输出type + * @var string + */ + protected $contentType = 'text/html'; + + public function __construct(Cookie $cookie, $data = '', int $code = 200) + { + $this->init($data, $code); + $this->cookie = $cookie; + } +} diff --git a/vendor/topthink/framework/src/think/response/Json.php b/vendor/topthink/framework/src/think/response/Json.php new file mode 100644 index 0000000..85d2d22 --- /dev/null +++ b/vendor/topthink/framework/src/think/response/Json.php @@ -0,0 +1,62 @@ + +// +---------------------------------------------------------------------- +declare (strict_types = 1); + +namespace think\response; + +use think\Cookie; +use think\Response; + +/** + * Json Response + */ +class Json extends Response +{ + // 输出参数 + protected $options = [ + 'json_encode_param' => JSON_UNESCAPED_UNICODE, + ]; + + protected $contentType = 'application/json'; + + public function __construct(Cookie $cookie, $data = '', int $code = 200) + { + $this->init($data, $code); + $this->cookie = $cookie; + } + + /** + * 处理数据 + * @access protected + * @param mixed $data 要处理的数据 + * @return string + * @throws \Exception + */ + protected function output($data): string + { + try { + // 返回JSON数据格式到客户端 包含状态信息 + $data = json_encode($data, $this->options['json_encode_param']); + + if (false === $data) { + throw new \InvalidArgumentException(json_last_error_msg()); + } + + return $data; + } catch (\Exception $e) { + if ($e->getPrevious()) { + throw $e->getPrevious(); + } + throw $e; + } + } + +} diff --git a/vendor/topthink/framework/src/think/response/Jsonp.php b/vendor/topthink/framework/src/think/response/Jsonp.php new file mode 100644 index 0000000..a098d4c --- /dev/null +++ b/vendor/topthink/framework/src/think/response/Jsonp.php @@ -0,0 +1,74 @@ + +// +---------------------------------------------------------------------- +declare (strict_types = 1); + +namespace think\response; + +use think\Cookie; +use think\Request; +use think\Response; + +/** + * Jsonp Response + */ +class Jsonp extends Response +{ + // 输出参数 + protected $options = [ + 'var_jsonp_handler' => 'callback', + 'default_jsonp_handler' => 'jsonpReturn', + 'json_encode_param' => JSON_UNESCAPED_UNICODE, + ]; + + protected $contentType = 'application/javascript'; + + protected $request; + + public function __construct(Cookie $cookie, Request $request, $data = '', int $code = 200) + { + $this->init($data, $code); + + $this->cookie = $cookie; + $this->request = $request; + } + + /** + * 处理数据 + * @access protected + * @param mixed $data 要处理的数据 + * @return string + * @throws \Exception + */ + protected function output($data): string + { + try { + // 返回JSON数据格式到客户端 包含状态信息 [当url_common_param为false时是无法获取到$_GET的数据的,故使用Request来获取] + $var_jsonp_handler = $this->request->param($this->options['var_jsonp_handler'], ""); + $handler = !empty($var_jsonp_handler) ? $var_jsonp_handler : $this->options['default_jsonp_handler']; + + $data = json_encode($data, $this->options['json_encode_param']); + + if (false === $data) { + throw new \InvalidArgumentException(json_last_error_msg()); + } + + $data = $handler . '(' . $data . ');'; + + return $data; + } catch (\Exception $e) { + if ($e->getPrevious()) { + throw $e->getPrevious(); + } + throw $e; + } + } + +} diff --git a/vendor/topthink/framework/src/think/response/Redirect.php b/vendor/topthink/framework/src/think/response/Redirect.php new file mode 100644 index 0000000..3d201aa --- /dev/null +++ b/vendor/topthink/framework/src/think/response/Redirect.php @@ -0,0 +1,98 @@ + +// +---------------------------------------------------------------------- +declare (strict_types = 1); + +namespace think\response; + +use think\Cookie; +use think\Request; +use think\Response; +use think\Session; + +/** + * Redirect Response + */ +class Redirect extends Response +{ + + protected $request; + + public function __construct(Cookie $cookie, Request $request, Session $session, $data = '', int $code = 302) + { + $this->init((string) $data, $code); + + $this->cookie = $cookie; + $this->request = $request; + $this->session = $session; + + $this->cacheControl('no-cache,must-revalidate'); + } + + /** + * 处理数据 + * @access protected + * @param mixed $data 要处理的数据 + * @return string + */ + protected function output($data): string + { + $this->header['Location'] = $data; + + return ''; + } + + /** + * 重定向传值(通过Session) + * @access protected + * @param string|array $name 变量名或者数组 + * @param mixed $value 值 + * @return $this + */ + public function with($name, $value = null) + { + if (is_array($name)) { + foreach ($name as $key => $val) { + $this->session->flash($key, $val); + } + } else { + $this->session->flash($name, $value); + } + + return $this; + } + + /** + * 记住当前url后跳转 + * @access public + * @return $this + */ + public function remember() + { + $this->session->set('redirect_url', $this->request->url()); + + return $this; + } + + /** + * 跳转到上次记住的url + * @access public + * @return $this + */ + public function restore() + { + if ($this->session->has('redirect_url')) { + $this->data = $this->session->get('redirect_url'); + $this->session->delete('redirect_url'); + } + + return $this; + } +} diff --git a/vendor/topthink/framework/src/think/response/View.php b/vendor/topthink/framework/src/think/response/View.php new file mode 100644 index 0000000..0b1ae88 --- /dev/null +++ b/vendor/topthink/framework/src/think/response/View.php @@ -0,0 +1,149 @@ + +// +---------------------------------------------------------------------- +declare (strict_types = 1); + +namespace think\response; + +use think\Cookie; +use think\Response; +use think\View as BaseView; + +/** + * View Response + */ +class View extends Response +{ + /** + * 输出参数 + * @var array + */ + protected $options = []; + + /** + * 输出变量 + * @var array + */ + protected $vars = []; + + /** + * 输出过滤 + * @var mixed + */ + protected $filter; + + /** + * 输出type + * @var string + */ + protected $contentType = 'text/html'; + + /** + * View对象 + * @var BaseView + */ + protected $view; + + /** + * 是否内容渲染 + * @var bool + */ + protected $isContent = false; + + public function __construct(Cookie $cookie, BaseView $view, $data = '', int $code = 200) + { + $this->init($data, $code); + + $this->cookie = $cookie; + $this->view = $view; + } + + /** + * 设置是否为内容渲染 + * @access public + * @param bool $content + * @return $this + */ + public function isContent(bool $content = true) + { + $this->isContent = $content; + return $this; + } + + /** + * 处理数据 + * @access protected + * @param mixed $data 要处理的数据 + * @return string + */ + protected function output($data): string + { + // 渲染模板输出 + return $this->view->filter($this->filter) + ->fetch($data, $this->vars, $this->isContent); + } + + /** + * 获取视图变量 + * @access public + * @param string $name 模板变量 + * @return mixed + */ + public function getVars(string $name = null) + { + if (is_null($name)) { + return $this->vars; + } else { + return $this->vars[$name] ?? null; + } + } + + /** + * 模板变量赋值 + * @access public + * @param string|array $name 模板变量 + * @param mixed $value 变量值 + * @return $this + */ + public function assign($name, $value = null) + { + if (is_array($name)) { + $this->vars = array_merge($this->vars, $name); + } else { + $this->vars[$name] = $value; + } + + return $this; + } + + /** + * 视图内容过滤 + * @access public + * @param callable $filter + * @return $this + */ + public function filter(callable $filter = null) + { + $this->filter = $filter; + return $this; + } + + /** + * 检查模板是否存在 + * @access public + * @param string $name 模板名 + * @return bool + */ + public function exists(string $name): bool + { + return $this->view->exists($name); + } + +} diff --git a/vendor/topthink/framework/src/think/response/Xml.php b/vendor/topthink/framework/src/think/response/Xml.php new file mode 100644 index 0000000..3597548 --- /dev/null +++ b/vendor/topthink/framework/src/think/response/Xml.php @@ -0,0 +1,127 @@ + +// +---------------------------------------------------------------------- +declare (strict_types = 1); + +namespace think\response; + +use think\Collection; +use think\Cookie; +use think\Model; +use think\Response; + +/** + * XML Response + */ +class Xml extends Response +{ + // 输出参数 + protected $options = [ + // 根节点名 + 'root_node' => 'think', + // 根节点属性 + 'root_attr' => '', + //数字索引的子节点名 + 'item_node' => 'item', + // 数字索引子节点key转换的属性名 + 'item_key' => 'id', + // 数据编码 + 'encoding' => 'utf-8', + ]; + + protected $contentType = 'text/xml'; + + public function __construct(Cookie $cookie, $data = '', int $code = 200) + { + $this->init($data, $code); + $this->cookie = $cookie; + } + + /** + * 处理数据 + * @access protected + * @param mixed $data 要处理的数据 + * @return mixed + */ + protected function output($data): string + { + if (is_string($data)) { + if (0 !== strpos($data, 'options['encoding']; + $xml = ""; + $data = $xml . $data; + } + return $data; + } + + // XML数据转换 + return $this->xmlEncode($data, $this->options['root_node'], $this->options['item_node'], $this->options['root_attr'], $this->options['item_key'], $this->options['encoding']); + } + + /** + * XML编码 + * @access protected + * @param mixed $data 数据 + * @param string $root 根节点名 + * @param string $item 数字索引的子节点名 + * @param mixed $attr 根节点属性 + * @param string $id 数字索引子节点key转换的属性名 + * @param string $encoding 数据编码 + * @return string + */ + protected function xmlEncode($data, string $root, string $item, $attr, string $id, string $encoding): string + { + if (is_array($attr)) { + $array = []; + foreach ($attr as $key => $value) { + $array[] = "{$key}=\"{$value}\""; + } + $attr = implode(' ', $array); + } + + $attr = trim($attr); + $attr = empty($attr) ? '' : " {$attr}"; + $xml = ""; + $xml .= "<{$root}{$attr}>"; + $xml .= $this->dataToXml($data, $item, $id); + $xml .= ""; + + return $xml; + } + + /** + * 数据XML编码 + * @access protected + * @param mixed $data 数据 + * @param string $item 数字索引时的节点名称 + * @param string $id 数字索引key转换为的属性名 + * @return string + */ + protected function dataToXml($data, string $item, string $id): string + { + $xml = $attr = ''; + + if ($data instanceof Collection || $data instanceof Model) { + $data = $data->toArray(); + } + + foreach ($data as $key => $val) { + if (is_numeric($key)) { + $id && $attr = " {$id}=\"{$key}\""; + $key = $item; + } + $xml .= "<{$key}{$attr}>"; + $xml .= (is_array($val) || is_object($val)) ? $this->dataToXml($val, $item, $id) : $val; + $xml .= ""; + } + + return $xml; + } +} diff --git a/vendor/topthink/framework/src/think/route/Dispatch.php b/vendor/topthink/framework/src/think/route/Dispatch.php new file mode 100644 index 0000000..dc39fd1 --- /dev/null +++ b/vendor/topthink/framework/src/think/route/Dispatch.php @@ -0,0 +1,265 @@ + +// +---------------------------------------------------------------------- +declare (strict_types = 1); + +namespace think\route; + +use think\App; +use think\Container; +use think\Request; +use think\Response; +use think\Validate; + +/** + * 路由调度基础类 + */ +abstract class Dispatch +{ + /** + * 应用对象 + * @var \think\App + */ + protected $app; + + /** + * 请求对象 + * @var Request + */ + protected $request; + + /** + * 路由规则 + * @var Rule + */ + protected $rule; + + /** + * 调度信息 + * @var mixed + */ + protected $dispatch; + + /** + * 路由变量 + * @var array + */ + protected $param; + + /** + * 状态码 + * @var int + */ + protected $code; + + public function __construct(Request $request, Rule $rule, $dispatch, array $param = [], int $code = null) + { + $this->request = $request; + $this->rule = $rule; + $this->dispatch = $dispatch; + $this->param = $param; + $this->code = $code; + } + + public function init(App $app) + { + $this->app = $app; + + // 执行路由后置操作 + $this->doRouteAfter(); + } + + /** + * 执行路由调度 + * @access public + * @return mixed + */ + public function run(): Response + { + if ($this->rule instanceof RuleItem && $this->request->method() == 'OPTIONS' && $this->rule->isAutoOptions()) { + $rules = $this->rule->getRouter()->getRule($this->rule->getRule()); + $allow = []; + foreach ($rules as $item) { + $allow[] = strtoupper($item->getMethod()); + } + + return Response::create('', 'html', 204)->header(['Allow' => implode(', ', $allow)]); + } + + $data = $this->exec(); + return $this->autoResponse($data); + } + + protected function autoResponse($data): Response + { + if ($data instanceof Response) { + $response = $data; + } elseif (!is_null($data)) { + // 默认自动识别响应输出类型 + $type = $this->request->isJson() ? 'json' : 'html'; + $response = Response::create($data, $type); + } else { + $data = ob_get_clean(); + + $content = false === $data ? '' : $data; + $status = '' === $content && $this->request->isJson() ? 204 : 200; + $response = Response::create($content, 'html', $status); + } + + return $response; + } + + /** + * 检查路由后置操作 + * @access protected + * @return void + */ + protected function doRouteAfter(): void + { + $option = $this->rule->getOption(); + + // 添加中间件 + if (!empty($option['middleware'])) { + $this->app->middleware->import($option['middleware'], 'route'); + } + + if (!empty($option['append'])) { + $this->param = array_merge($this->param, $option['append']); + } + + // 绑定模型数据 + if (!empty($option['model'])) { + $this->createBindModel($option['model'], $this->param); + } + + // 记录当前请求的路由规则 + $this->request->setRule($this->rule); + + // 记录路由变量 + $this->request->setRoute($this->param); + + // 数据自动验证 + if (isset($option['validate'])) { + $this->autoValidate($option['validate']); + } + } + + /** + * 路由绑定模型实例 + * @access protected + * @param array $bindModel 绑定模型 + * @param array $matches 路由变量 + * @return void + */ + protected function createBindModel(array $bindModel, array $matches): void + { + foreach ($bindModel as $key => $val) { + if ($val instanceof \Closure) { + $result = $this->app->invokeFunction($val, $matches); + } else { + $fields = explode('&', $key); + + if (is_array($val)) { + [$model, $exception] = $val; + } else { + $model = $val; + $exception = true; + } + + $where = []; + $match = true; + + foreach ($fields as $field) { + if (!isset($matches[$field])) { + $match = false; + break; + } else { + $where[] = [$field, '=', $matches[$field]]; + } + } + + if ($match) { + $result = $model::where($where)->failException($exception)->find(); + } + } + + if (!empty($result)) { + // 注入容器 + $this->app->instance(get_class($result), $result); + } + } + } + + /** + * 验证数据 + * @access protected + * @param array $option + * @return void + * @throws \think\exception\ValidateException + */ + protected function autoValidate(array $option): void + { + [$validate, $scene, $message, $batch] = $option; + + if (is_array($validate)) { + // 指定验证规则 + $v = new Validate(); + $v->rule($validate); + } else { + // 调用验证器 + $class = false !== strpos($validate, '\\') ? $validate : $this->app->parseClass('validate', $validate); + + $v = new $class(); + + if (!empty($scene)) { + $v->scene($scene); + } + } + + /** @var Validate $v */ + $v->message($message) + ->batch($batch) + ->failException(true) + ->check($this->request->param()); + } + + public function getDispatch() + { + return $this->dispatch; + } + + public function getParam(): array + { + return $this->param; + } + + abstract public function exec(); + + public function __sleep() + { + return ['rule', 'dispatch', 'param', 'code', 'controller', 'actionName']; + } + + public function __wakeup() + { + $this->app = Container::pull('app'); + $this->request = $this->app->request; + } + + public function __debugInfo() + { + return [ + 'dispatch' => $this->dispatch, + 'param' => $this->param, + 'code' => $this->code, + 'rule' => $this->rule, + ]; + } +} diff --git a/vendor/topthink/framework/src/think/route/Domain.php b/vendor/topthink/framework/src/think/route/Domain.php new file mode 100644 index 0000000..8c04af0 --- /dev/null +++ b/vendor/topthink/framework/src/think/route/Domain.php @@ -0,0 +1,183 @@ + +// +---------------------------------------------------------------------- +declare (strict_types = 1); + +namespace think\route; + +use think\helper\Str; +use think\Request; +use think\Route; +use think\route\dispatch\Callback as CallbackDispatch; +use think\route\dispatch\Controller as ControllerDispatch; + +/** + * 域名路由 + */ +class Domain extends RuleGroup +{ + /** + * 架构函数 + * @access public + * @param Route $router 路由对象 + * @param string $name 路由域名 + * @param mixed $rule 域名路由 + */ + public function __construct(Route $router, string $name = null, $rule = null) + { + $this->router = $router; + $this->domain = $name; + $this->rule = $rule; + } + + /** + * 检测域名路由 + * @access public + * @param Request $request 请求对象 + * @param string $url 访问地址 + * @param bool $completeMatch 路由是否完全匹配 + * @return Dispatch|false + */ + public function check(Request $request, string $url, bool $completeMatch = false) + { + // 检测URL绑定 + $result = $this->checkUrlBind($request, $url); + + if (!empty($this->option['append'])) { + $request->setRoute($this->option['append']); + unset($this->option['append']); + } + + if (false !== $result) { + return $result; + } + + return parent::check($request, $url, $completeMatch); + } + + /** + * 设置路由绑定 + * @access public + * @param string $bind 绑定信息 + * @return $this + */ + public function bind(string $bind) + { + $this->router->bind($bind, $this->domain); + + return $this; + } + + /** + * 检测URL绑定 + * @access private + * @param Request $request + * @param string $url URL地址 + * @return Dispatch|false + */ + private function checkUrlBind(Request $request, string $url) + { + $bind = $this->router->getDomainBind($this->domain); + + if ($bind) { + $this->parseBindAppendParam($bind); + + // 如果有URL绑定 则进行绑定检测 + $type = substr($bind, 0, 1); + $bind = substr($bind, 1); + + $bindTo = [ + '\\' => 'bindToClass', + '@' => 'bindToController', + ':' => 'bindToNamespace', + ]; + + if (isset($bindTo[$type])) { + return $this->{$bindTo[$type]}($request, $url, $bind); + } + } + + return false; + } + + protected function parseBindAppendParam(string &$bind): void + { + if (false !== strpos($bind, '?')) { + [$bind, $query] = explode('?', $bind); + parse_str($query, $vars); + $this->append($vars); + } + } + + /** + * 绑定到类 + * @access protected + * @param Request $request + * @param string $url URL地址 + * @param string $class 类名(带命名空间) + * @return CallbackDispatch + */ + protected function bindToClass(Request $request, string $url, string $class): CallbackDispatch + { + $array = explode('|', $url, 2); + $action = !empty($array[0]) ? $array[0] : $this->router->config('default_action'); + $param = []; + + if (!empty($array[1])) { + $this->parseUrlParams($array[1], $param); + } + + return new CallbackDispatch($request, $this, [$class, $action], $param); + } + + /** + * 绑定到命名空间 + * @access protected + * @param Request $request + * @param string $url URL地址 + * @param string $namespace 命名空间 + * @return CallbackDispatch + */ + protected function bindToNamespace(Request $request, string $url, string $namespace): CallbackDispatch + { + $array = explode('|', $url, 3); + $class = !empty($array[0]) ? $array[0] : $this->router->config('default_controller'); + $method = !empty($array[1]) ? $array[1] : $this->router->config('default_action'); + $param = []; + + if (!empty($array[2])) { + $this->parseUrlParams($array[2], $param); + } + + return new CallbackDispatch($request, $this, [$namespace . '\\' . Str::studly($class), $method], $param); + } + + /** + * 绑定到控制器 + * @access protected + * @param Request $request + * @param string $url URL地址 + * @param string $controller 控制器名 + * @return ControllerDispatch + */ + protected function bindToController(Request $request, string $url, string $controller): ControllerDispatch + { + $array = explode('|', $url, 2); + $action = !empty($array[0]) ? $array[0] : $this->router->config('default_action'); + $param = []; + + if (!empty($array[1])) { + $this->parseUrlParams($array[1], $param); + } + + return new ControllerDispatch($request, $this, $controller . '/' . $action, $param); + } + +} diff --git a/vendor/topthink/framework/src/think/route/Resource.php b/vendor/topthink/framework/src/think/route/Resource.php new file mode 100644 index 0000000..01565fc --- /dev/null +++ b/vendor/topthink/framework/src/think/route/Resource.php @@ -0,0 +1,251 @@ + +// +---------------------------------------------------------------------- +declare (strict_types = 1); + +namespace think\route; + +use think\Route; + +/** + * 资源路由类 + */ +class Resource extends RuleGroup +{ + /** + * 资源路由名称 + * @var string + */ + protected $resource; + + /** + * 资源路由地址 + * @var string + */ + protected $route; + + /** + * REST方法定义 + * @var array + */ + protected $rest = []; + + /** + * 模型绑定 + * @var array + */ + protected $model = []; + + /** + * 数据验证 + * @var array + */ + protected $validate = []; + + /** + * 中间件 + * @var array + */ + protected $middleware = []; + + /** + * 架构函数 + * @access public + * @param Route $router 路由对象 + * @param RuleGroup $parent 上级对象 + * @param string $name 资源名称 + * @param string $route 路由地址 + * @param array $rest 资源定义 + */ + public function __construct(Route $router, RuleGroup $parent = null, string $name = '', string $route = '', array $rest = []) + { + $name = ltrim($name, '/'); + $this->router = $router; + $this->parent = $parent; + $this->resource = $name; + $this->route = $route; + $this->name = strpos($name, '.') ? strstr($name, '.', true) : $name; + + $this->setFullName(); + + // 资源路由默认为完整匹配 + $this->option['complete_match'] = true; + + $this->rest = $rest; + + if ($this->parent) { + $this->domain = $this->parent->getDomain(); + $this->parent->addRuleItem($this); + } + + if ($router->isTest()) { + $this->buildResourceRule(); + } + } + + /** + * 生成资源路由规则 + * @access protected + * @return void + */ + protected function buildResourceRule(): void + { + $rule = $this->resource; + $option = $this->option; + $origin = $this->router->getGroup(); + $this->router->setGroup($this); + + if (strpos($rule, '.')) { + // 注册嵌套资源路由 + $array = explode('.', $rule); + $last = array_pop($array); + $item = []; + + foreach ($array as $val) { + $item[] = $val . '/<' . ($option['var'][$val] ?? $val . '_id') . '>'; + } + + $rule = implode('/', $item) . '/' . $last; + } + + $prefix = substr($rule, strlen($this->name) + 1); + + // 注册资源路由 + foreach ($this->rest as $key => $val) { + if ((isset($option['only']) && !in_array($key, $option['only'])) + || (isset($option['except']) && in_array($key, $option['except']))) { + continue; + } + + if (isset($last) && strpos($val[1], '') && isset($option['var'][$last])) { + $val[1] = str_replace('', '<' . $option['var'][$last] . '>', $val[1]); + } elseif (strpos($val[1], '') && isset($option['var'][$rule])) { + $val[1] = str_replace('', '<' . $option['var'][$rule] . '>', $val[1]); + } + + $ruleItem = $this->addRule(trim($prefix . $val[1], '/'), $this->route . '/' . $val[2], $val[0]); + + foreach (['model', 'validate', 'middleware'] as $name) { + if (isset($this->$name[$key])) { + call_user_func_array([$ruleItem, $name], (array) $this->$name[$key]); + } + + } + } + + $this->router->setGroup($origin); + } + + /** + * 设置资源允许 + * @access public + * @param array $only 资源允许 + * @return $this + */ + public function only(array $only) + { + return $this->setOption('only', $only); + } + + /** + * 设置资源排除 + * @access public + * @param array $except 排除资源 + * @return $this + */ + public function except(array $except) + { + return $this->setOption('except', $except); + } + + /** + * 设置资源路由的变量 + * @access public + * @param array $vars 资源变量 + * @return $this + */ + public function vars(array $vars) + { + return $this->setOption('var', $vars); + } + + /** + * 绑定资源验证 + * @access public + * @param array|string $name 资源类型或者验证信息 + * @param array|string $validate 验证信息 + * @return $this + */ + public function withValidate($name, $validate = []) + { + if (is_array($name)) { + $this->validate = array_merge($this->validate, $name); + } else { + $this->validate[$name] = $validate; + } + + return $this; + } + + /** + * 绑定资源模型 + * @access public + * @param array|string $name 资源类型或者模型绑定 + * @param array|string $model 模型绑定 + * @return $this + */ + public function withModel($name, $model = []) + { + if (is_array($name)) { + $this->model = array_merge($this->model, $name); + } else { + $this->model[$name] = $model; + } + + return $this; + } + + /** + * 绑定资源模型 + * @access public + * @param array|string $name 资源类型或者中间件定义 + * @param array|string $middleware 中间件定义 + * @return $this + */ + public function withMiddleware($name, $middleware = []) + { + if (is_array($name)) { + $this->middleware = array_merge($this->middleware, $name); + } else { + $this->middleware[$name] = $middleware; + } + + return $this; + } + + /** + * rest方法定义和修改 + * @access public + * @param array|string $name 方法名称 + * @param array|bool $resource 资源 + * @return $this + */ + public function rest($name, $resource = []) + { + if (is_array($name)) { + $this->rest = $resource ? $name : array_merge($this->rest, $name); + } else { + $this->rest[$name] = $resource; + } + + return $this; + } + +} diff --git a/vendor/topthink/framework/src/think/route/Rule.php b/vendor/topthink/framework/src/think/route/Rule.php new file mode 100644 index 0000000..fd9e280 --- /dev/null +++ b/vendor/topthink/framework/src/think/route/Rule.php @@ -0,0 +1,925 @@ + +// +---------------------------------------------------------------------- +declare (strict_types = 1); + +namespace think\route; + +use Closure; +use think\Container; +use think\middleware\AllowCrossDomain; +use think\middleware\CheckRequestCache; +use think\middleware\FormTokenCheck; +use think\Request; +use think\Response; +use think\Route; +use think\route\dispatch\Callback as CallbackDispatch; +use think\route\dispatch\Controller as ControllerDispatch; +use think\route\dispatch\Redirect as RedirectDispatch; +use think\route\dispatch\Response as ResponseDispatch; +use think\route\dispatch\View as ViewDispatch; + +/** + * 路由规则基础类 + */ +abstract class Rule +{ + /** + * 路由标识 + * @var string + */ + protected $name; + + /** + * 所在域名 + * @var string + */ + protected $domain; + + /** + * 路由对象 + * @var Route + */ + protected $router; + + /** + * 路由所属分组 + * @var RuleGroup + */ + protected $parent; + + /** + * 路由规则 + * @var mixed + */ + protected $rule; + + /** + * 路由地址 + * @var string|Closure + */ + protected $route; + + /** + * 请求类型 + * @var string + */ + protected $method; + + /** + * 路由变量 + * @var array + */ + protected $vars = []; + + /** + * 路由参数 + * @var array + */ + protected $option = []; + + /** + * 路由变量规则 + * @var array + */ + protected $pattern = []; + + /** + * 需要和分组合并的路由参数 + * @var array + */ + protected $mergeOptions = ['model', 'append', 'middleware']; + + abstract public function check(Request $request, string $url, bool $completeMatch = false); + + /** + * 设置路由参数 + * @access public + * @param array $option 参数 + * @return $this + */ + public function option(array $option) + { + $this->option = array_merge($this->option, $option); + + return $this; + } + + /** + * 设置单个路由参数 + * @access public + * @param string $name 参数名 + * @param mixed $value 值 + * @return $this + */ + public function setOption(string $name, $value) + { + $this->option[$name] = $value; + + return $this; + } + + /** + * 注册变量规则 + * @access public + * @param array $pattern 变量规则 + * @return $this + */ + public function pattern(array $pattern) + { + $this->pattern = array_merge($this->pattern, $pattern); + + return $this; + } + + /** + * 设置标识 + * @access public + * @param string $name 标识名 + * @return $this + */ + public function name(string $name) + { + $this->name = $name; + + return $this; + } + + /** + * 获取路由对象 + * @access public + * @return Route + */ + public function getRouter(): Route + { + return $this->router; + } + + /** + * 获取Name + * @access public + * @return string + */ + public function getName(): string + { + return $this->name ?: ''; + } + + /** + * 获取当前路由规则 + * @access public + * @return mixed + */ + public function getRule() + { + return $this->rule; + } + + /** + * 获取当前路由地址 + * @access public + * @return mixed + */ + public function getRoute() + { + return $this->route; + } + + /** + * 获取当前路由的变量 + * @access public + * @return array + */ + public function getVars(): array + { + return $this->vars; + } + + /** + * 获取Parent对象 + * @access public + * @return $this|null + */ + public function getParent() + { + return $this->parent; + } + + /** + * 获取路由所在域名 + * @access public + * @return string + */ + public function getDomain(): string + { + return $this->domain ?: $this->parent->getDomain(); + } + + /** + * 获取路由参数 + * @access public + * @param string $name 变量名 + * @return mixed + */ + public function config(string $name = '') + { + return $this->router->config($name); + } + + /** + * 获取变量规则定义 + * @access public + * @param string $name 变量名 + * @return mixed + */ + public function getPattern(string $name = '') + { + if ('' === $name) { + return $this->pattern; + } + + return $this->pattern[$name] ?? null; + } + + /** + * 获取路由参数定义 + * @access public + * @param string $name 参数名 + * @param mixed $default 默认值 + * @return mixed + */ + public function getOption(string $name = '', $default = null) + { + if ('' === $name) { + return $this->option; + } + + return $this->option[$name] ?? $default; + } + + /** + * 获取当前路由的请求类型 + * @access public + * @return string + */ + public function getMethod(): string + { + return strtolower($this->method); + } + + /** + * 设置路由请求类型 + * @access public + * @param string $method 请求类型 + * @return $this + */ + public function method(string $method) + { + return $this->setOption('method', strtolower($method)); + } + + /** + * 检查后缀 + * @access public + * @param string $ext URL后缀 + * @return $this + */ + public function ext(string $ext = '') + { + return $this->setOption('ext', $ext); + } + + /** + * 检查禁止后缀 + * @access public + * @param string $ext URL后缀 + * @return $this + */ + public function denyExt(string $ext = '') + { + return $this->setOption('deny_ext', $ext); + } + + /** + * 检查域名 + * @access public + * @param string $domain 域名 + * @return $this + */ + public function domain(string $domain) + { + $this->domain = $domain; + return $this->setOption('domain', $domain); + } + + /** + * 设置参数过滤检查 + * @access public + * @param array $filter 参数过滤 + * @return $this + */ + public function filter(array $filter) + { + $this->option['filter'] = $filter; + + return $this; + } + + /** + * 绑定模型 + * @access public + * @param array|string|Closure $var 路由变量名 多个使用 & 分割 + * @param string|Closure $model 绑定模型类 + * @param bool $exception 是否抛出异常 + * @return $this + */ + public function model($var, $model = null, bool $exception = true) + { + if ($var instanceof Closure) { + $this->option['model'][] = $var; + } elseif (is_array($var)) { + $this->option['model'] = $var; + } elseif (is_null($model)) { + $this->option['model']['id'] = [$var, true]; + } else { + $this->option['model'][$var] = [$model, $exception]; + } + + return $this; + } + + /** + * 附加路由隐式参数 + * @access public + * @param array $append 追加参数 + * @return $this + */ + public function append(array $append = []) + { + $this->option['append'] = $append; + + return $this; + } + + /** + * 绑定验证 + * @access public + * @param mixed $validate 验证器类 + * @param string $scene 验证场景 + * @param array $message 验证提示 + * @param bool $batch 批量验证 + * @return $this + */ + public function validate($validate, string $scene = null, array $message = [], bool $batch = false) + { + $this->option['validate'] = [$validate, $scene, $message, $batch]; + + return $this; + } + + /** + * 指定路由中间件 + * @access public + * @param string|array|Closure $middleware 中间件 + * @param mixed $param 参数 + * @return $this + */ + public function middleware($middleware, $param = null) + { + if (is_null($param) && is_array($middleware)) { + $this->option['middleware'] = $middleware; + } else { + foreach ((array) $middleware as $item) { + $this->option['middleware'][] = [$item, $param]; + } + } + + return $this; + } + + /** + * 允许跨域 + * @access public + * @param array $header 自定义Header + * @return $this + */ + public function allowCrossDomain(array $header = []) + { + return $this->middleware(AllowCrossDomain::class, $header); + } + + /** + * 表单令牌验证 + * @access public + * @param string $token 表单令牌token名称 + * @return $this + */ + public function token(string $token = '__token__') + { + return $this->middleware(FormTokenCheck::class, $token); + } + + /** + * 设置路由缓存 + * @access public + * @param array|string $cache 缓存 + * @return $this + */ + public function cache($cache) + { + return $this->middleware(CheckRequestCache::class, $cache); + } + + /** + * 检查URL分隔符 + * @access public + * @param string $depr URL分隔符 + * @return $this + */ + public function depr(string $depr) + { + return $this->setOption('param_depr', $depr); + } + + /** + * 设置需要合并的路由参数 + * @access public + * @param array $option 路由参数 + * @return $this + */ + public function mergeOptions(array $option = []) + { + $this->mergeOptions = array_merge($this->mergeOptions, $option); + return $this; + } + + /** + * 检查是否为HTTPS请求 + * @access public + * @param bool $https 是否为HTTPS + * @return $this + */ + public function https(bool $https = true) + { + return $this->setOption('https', $https); + } + + /** + * 检查是否为JSON请求 + * @access public + * @param bool $json 是否为JSON + * @return $this + */ + public function json(bool $json = true) + { + return $this->setOption('json', $json); + } + + /** + * 检查是否为AJAX请求 + * @access public + * @param bool $ajax 是否为AJAX + * @return $this + */ + public function ajax(bool $ajax = true) + { + return $this->setOption('ajax', $ajax); + } + + /** + * 检查是否为PJAX请求 + * @access public + * @param bool $pjax 是否为PJAX + * @return $this + */ + public function pjax(bool $pjax = true) + { + return $this->setOption('pjax', $pjax); + } + + /** + * 当前路由到一个模板地址 当使用数组的时候可以传入模板变量 + * @access public + * @param bool|array $view 视图 + * @return $this + */ + public function view($view = true) + { + return $this->setOption('view', $view); + } + + /** + * 当前路由为重定向 + * @access public + * @param bool $redirect 是否为重定向 + * @return $this + */ + public function redirect(bool $redirect = true) + { + return $this->setOption('redirect', $redirect); + } + + /** + * 设置status + * @access public + * @param int $status 状态码 + * @return $this + */ + public function status(int $status) + { + return $this->setOption('status', $status); + } + + /** + * 设置路由完整匹配 + * @access public + * @param bool $match 是否完整匹配 + * @return $this + */ + public function completeMatch(bool $match = true) + { + return $this->setOption('complete_match', $match); + } + + /** + * 是否去除URL最后的斜线 + * @access public + * @param bool $remove 是否去除最后斜线 + * @return $this + */ + public function removeSlash(bool $remove = true) + { + return $this->setOption('remove_slash', $remove); + } + + /** + * 设置路由规则全局有效 + * @access public + * @return $this + */ + public function crossDomainRule() + { + if ($this instanceof RuleGroup) { + $method = '*'; + } else { + $method = $this->method; + } + + $this->router->setCrossDomainRule($this, $method); + + return $this; + } + + /** + * 合并分组参数 + * @access public + * @return array + */ + public function mergeGroupOptions(): array + { + $parentOption = $this->parent->getOption(); + // 合并分组参数 + foreach ($this->mergeOptions as $item) { + if (isset($parentOption[$item]) && isset($this->option[$item])) { + $this->option[$item] = array_merge($parentOption[$item], $this->option[$item]); + } + } + + $this->option = array_merge($parentOption, $this->option); + + return $this->option; + } + + /** + * 解析匹配到的规则路由 + * @access public + * @param Request $request 请求对象 + * @param string $rule 路由规则 + * @param mixed $route 路由地址 + * @param string $url URL地址 + * @param array $option 路由参数 + * @param array $matches 匹配的变量 + * @return Dispatch + */ + public function parseRule(Request $request, string $rule, $route, string $url, array $option = [], array $matches = []): Dispatch + { + if (is_string($route) && isset($option['prefix'])) { + // 路由地址前缀 + $route = $option['prefix'] . $route; + } + + // 替换路由地址中的变量 + if (is_string($route) && !empty($matches)) { + $search = $replace = []; + + foreach ($matches as $key => $value) { + $search[] = '<' . $key . '>'; + $replace[] = $value; + + $search[] = ':' . $key; + $replace[] = $value; + } + + $route = str_replace($search, $replace, $route); + } + + // 解析额外参数 + $count = substr_count($rule, '/'); + $url = array_slice(explode('|', $url), $count + 1); + $this->parseUrlParams(implode('|', $url), $matches); + + $this->vars = $matches; + + // 发起路由调度 + return $this->dispatch($request, $route, $option); + } + + /** + * 发起路由调度 + * @access protected + * @param Request $request Request对象 + * @param mixed $route 路由地址 + * @param array $option 路由参数 + * @return Dispatch + */ + protected function dispatch(Request $request, $route, array $option): Dispatch + { + if ($route instanceof Dispatch) { + $result = $route; + } elseif ($route instanceof Closure) { + // 执行闭包 + $result = new CallbackDispatch($request, $this, $route, $this->vars); + } elseif ($route instanceof Response) { + $result = new ResponseDispatch($request, $this, $route); + } elseif (isset($option['view']) && false !== $option['view']) { + $result = new ViewDispatch($request, $this, $route, is_array($option['view']) ? $option['view'] : $this->vars); + } elseif (!empty($option['redirect'])) { + // 路由到重定向地址 + $result = new RedirectDispatch($request, $this, $route, $this->vars, $option['status'] ?? 301); + } elseif (false !== strpos($route, '\\')) { + // 路由到类的方法 + $result = $this->dispatchMethod($request, $route); + } else { + // 路由到控制器/操作 + $result = $this->dispatchController($request, $route); + } + + return $result; + } + + /** + * 解析URL地址为 模块/控制器/操作 + * @access protected + * @param Request $request Request对象 + * @param string $route 路由地址 + * @return CallbackDispatch + */ + protected function dispatchMethod(Request $request, string $route): CallbackDispatch + { + $path = $this->parseUrlPath($route); + + $route = str_replace('/', '@', implode('/', $path)); + $method = strpos($route, '@') ? explode('@', $route) : $route; + + return new CallbackDispatch($request, $this, $method, $this->vars); + } + + /** + * 解析URL地址为 模块/控制器/操作 + * @access protected + * @param Request $request Request对象 + * @param string $route 路由地址 + * @return ControllerDispatch + */ + protected function dispatchController(Request $request, string $route): ControllerDispatch + { + $path = $this->parseUrlPath($route); + + $action = array_pop($path); + $controller = !empty($path) ? array_pop($path) : null; + + // 路由到模块/控制器/操作 + return new ControllerDispatch($request, $this, [$controller, $action], $this->vars); + } + + /** + * 路由检查 + * @access protected + * @param array $option 路由参数 + * @param Request $request Request对象 + * @return bool + */ + protected function checkOption(array $option, Request $request): bool + { + // 请求类型检测 + if (!empty($option['method'])) { + if (is_string($option['method']) && false === stripos($option['method'], $request->method())) { + return false; + } + } + + // AJAX PJAX 请求检查 + foreach (['ajax', 'pjax', 'json'] as $item) { + if (isset($option[$item])) { + $call = 'is' . $item; + if ($option[$item] && !$request->$call() || !$option[$item] && $request->$call()) { + return false; + } + } + } + + // 伪静态后缀检测 + if ($request->url() != '/' && ((isset($option['ext']) && false === stripos('|' . $option['ext'] . '|', '|' . $request->ext() . '|')) + || (isset($option['deny_ext']) && false !== stripos('|' . $option['deny_ext'] . '|', '|' . $request->ext() . '|')))) { + return false; + } + + // 域名检查 + if ((isset($option['domain']) && !in_array($option['domain'], [$request->host(true), $request->subDomain()]))) { + return false; + } + + // HTTPS检查 + if ((isset($option['https']) && $option['https'] && !$request->isSsl()) + || (isset($option['https']) && !$option['https'] && $request->isSsl())) { + return false; + } + + // 请求参数检查 + if (isset($option['filter'])) { + foreach ($option['filter'] as $name => $value) { + if ($request->param($name, '', null) != $value) { + return false; + } + } + } + + return true; + } + + /** + * 解析URL地址中的参数Request对象 + * @access protected + * @param string $rule 路由规则 + * @param array $var 变量 + * @return void + */ + protected function parseUrlParams(string $url, array &$var = []): void + { + if ($url) { + preg_replace_callback('/(\w+)\|([^\|]+)/', function ($match) use (&$var) { + $var[$match[1]] = strip_tags($match[2]); + }, $url); + } + } + + /** + * 解析URL的pathinfo参数 + * @access public + * @param string $url URL地址 + * @return array + */ + public function parseUrlPath(string $url): array + { + // 分隔符替换 确保路由定义使用统一的分隔符 + $url = str_replace('|', '/', $url); + $url = trim($url, '/'); + + if (strpos($url, '/')) { + // [控制器/操作] + $path = explode('/', $url); + } else { + $path = [$url]; + } + + return $path; + } + + /** + * 生成路由的正则规则 + * @access protected + * @param string $rule 路由规则 + * @param array $match 匹配的变量 + * @param array $pattern 路由变量规则 + * @param array $option 路由参数 + * @param bool $completeMatch 路由是否完全匹配 + * @param string $suffix 路由正则变量后缀 + * @return string + */ + protected function buildRuleRegex(string $rule, array $match, array $pattern = [], array $option = [], bool $completeMatch = false, string $suffix = ''): string + { + foreach ($match as $name) { + $replace[] = $this->buildNameRegex($name, $pattern, $suffix); + } + + // 是否区分 / 地址访问 + if ('/' != $rule) { + if (!empty($option['remove_slash'])) { + $rule = rtrim($rule, '/'); + } elseif (substr($rule, -1) == '/') { + $rule = rtrim($rule, '/'); + $hasSlash = true; + } + } + + $regex = str_replace(array_unique($match), array_unique($replace), $rule); + $regex = str_replace([')?/', ')/', ')?-', ')-', '\\\\/'], [')\/', ')\/', ')\-', ')\-', '\/'], $regex); + + if (isset($hasSlash)) { + $regex .= '\/'; + } + + return $regex . ($completeMatch ? '$' : ''); + } + + /** + * 生成路由变量的正则规则 + * @access protected + * @param string $name 路由变量 + * @param array $pattern 变量规则 + * @param string $suffix 路由正则变量后缀 + * @return string + */ + protected function buildNameRegex(string $name, array $pattern, string $suffix): string + { + $optional = ''; + $slash = substr($name, 0, 1); + + if (in_array($slash, ['/', '-'])) { + $prefix = '\\' . $slash; + $name = substr($name, 1); + $slash = substr($name, 0, 1); + } else { + $prefix = ''; + } + + if ('<' != $slash) { + return $prefix . preg_quote($name, '/'); + } + + if (strpos($name, '?')) { + $name = substr($name, 1, -2); + $optional = '?'; + } elseif (strpos($name, '>')) { + $name = substr($name, 1, -1); + } + + if (isset($pattern[$name])) { + $nameRule = $pattern[$name]; + if (0 === strpos($nameRule, '/') && '/' == substr($nameRule, -1)) { + $nameRule = substr($nameRule, 1, -1); + } + } else { + $nameRule = $this->router->config('default_route_pattern'); + } + + return '(' . $prefix . '(?<' . $name . $suffix . '>' . $nameRule . '))' . $optional; + } + + /** + * 设置路由参数 + * @access public + * @param string $method 方法名 + * @param array $args 调用参数 + * @return $this + */ + public function __call($method, $args) + { + if (count($args) > 1) { + $args[0] = $args; + } + array_unshift($args, $method); + + return call_user_func_array([$this, 'setOption'], $args); + } + + public function __sleep() + { + return ['name', 'rule', 'route', 'method', 'vars', 'option', 'pattern']; + } + + public function __wakeup() + { + $this->router = Container::pull('route'); + } + + public function __debugInfo() + { + return [ + 'name' => $this->name, + 'rule' => $this->rule, + 'route' => $this->route, + 'method' => $this->method, + 'vars' => $this->vars, + 'option' => $this->option, + 'pattern' => $this->pattern, + ]; + } +} diff --git a/vendor/topthink/framework/src/think/route/RuleGroup.php b/vendor/topthink/framework/src/think/route/RuleGroup.php new file mode 100644 index 0000000..5bfff9b --- /dev/null +++ b/vendor/topthink/framework/src/think/route/RuleGroup.php @@ -0,0 +1,541 @@ + +// +---------------------------------------------------------------------- +declare (strict_types = 1); + +namespace think\route; + +use Closure; +use think\Container; +use think\Exception; +use think\Request; +use think\Response; +use think\Route; +use think\route\dispatch\Response as ResponseDispatch; + +/** + * 路由分组类 + */ +class RuleGroup extends Rule +{ + /** + * 分组路由(包括子分组) + * @var array + */ + protected $rules = [ + '*' => [], + 'get' => [], + 'post' => [], + 'put' => [], + 'patch' => [], + 'delete' => [], + 'head' => [], + 'options' => [], + ]; + + /** + * 分组路由规则 + * @var mixed + */ + protected $rule; + + /** + * MISS路由 + * @var RuleItem + */ + protected $miss; + + /** + * 完整名称 + * @var string + */ + protected $fullName; + + /** + * 分组别名 + * @var string + */ + protected $alias; + + /** + * 架构函数 + * @access public + * @param Route $router 路由对象 + * @param RuleGroup $parent 上级对象 + * @param string $name 分组名称 + * @param mixed $rule 分组路由 + */ + public function __construct(Route $router, RuleGroup $parent = null, string $name = '', $rule = null) + { + $this->router = $router; + $this->parent = $parent; + $this->rule = $rule; + $this->name = trim($name, '/'); + + $this->setFullName(); + + if ($this->parent) { + $this->domain = $this->parent->getDomain(); + $this->parent->addRuleItem($this); + } + + if ($router->isTest()) { + $this->lazy(false); + } + } + + /** + * 设置分组的路由规则 + * @access public + * @return void + */ + protected function setFullName(): void + { + if (false !== strpos($this->name, ':')) { + $this->name = preg_replace(['/\[\:(\w+)\]/', '/\:(\w+)/'], ['<\1?>', '<\1>'], $this->name); + } + + if ($this->parent && $this->parent->getFullName()) { + $this->fullName = $this->parent->getFullName() . ($this->name ? '/' . $this->name : ''); + } else { + $this->fullName = $this->name; + } + + if ($this->name) { + $this->router->getRuleName()->setGroup($this->name, $this); + } + } + + /** + * 获取所属域名 + * @access public + * @return string + */ + public function getDomain(): string + { + return $this->domain ?: '-'; + } + + /** + * 获取分组别名 + * @access public + * @return string + */ + public function getAlias(): string + { + return $this->alias ?: ''; + } + + /** + * 检测分组路由 + * @access public + * @param Request $request 请求对象 + * @param string $url 访问地址 + * @param bool $completeMatch 路由是否完全匹配 + * @return Dispatch|false + */ + public function check(Request $request, string $url, bool $completeMatch = false) + { + // 检查分组有效性 + if (!$this->checkOption($this->option, $request) || !$this->checkUrl($url)) { + return false; + } + + // 解析分组路由 + if ($this instanceof Resource) { + $this->buildResourceRule(); + } elseif ($this->rule instanceof Response) { + return new ResponseDispatch($request, $this, $this->rule); + } else { + $this->parseGroupRule($this->rule); + } + + // 获取当前路由规则 + $method = strtolower($request->method()); + $rules = $this->getMethodRules($method); + + if ($this->parent) { + // 合并分组参数 + $this->mergeGroupOptions(); + // 合并分组变量规则 + $this->pattern = array_merge($this->parent->getPattern(), $this->pattern); + } + + if (isset($this->option['complete_match'])) { + $completeMatch = $this->option['complete_match']; + } + + if (!empty($this->option['merge_rule_regex'])) { + // 合并路由正则规则进行路由匹配检查 + $result = $this->checkMergeRuleRegex($request, $rules, $url, $completeMatch); + + if (false !== $result) { + return $result; + } + } + + // 检查分组路由 + foreach ($rules as $key => $item) { + $result = $item->check($request, $url, $completeMatch); + + if (false !== $result) { + return $result; + } + } + + if ($this->miss && in_array($this->miss->getMethod(), ['*', $method])) { + // 未匹配所有路由的路由规则处理 + $result = $this->parseRule($request, '', $this->miss->getRoute(), $url, $this->miss->mergeGroupOptions()); + } else { + $result = false; + } + + return $result; + } + + /** + * 获取当前请求的路由规则(包括子分组、资源路由) + * @access protected + * @param string $method 请求类型 + * @return array + */ + protected function getMethodRules(string $method): array + { + return array_merge($this->rules[$method], $this->rules['*']); + } + + /** + * 分组URL匹配检查 + * @access protected + * @param string $url URL + * @return bool + */ + protected function checkUrl(string $url): bool + { + if ($this->fullName) { + $pos = strpos($this->fullName, '<'); + + if (false !== $pos) { + $str = substr($this->fullName, 0, $pos); + } else { + $str = $this->fullName; + } + + if ($str && 0 !== stripos(str_replace('|', '/', $url), $str)) { + return false; + } + } + + return true; + } + + /** + * 设置路由分组别名 + * @access public + * @param string $alias 路由分组别名 + * @return $this + */ + public function alias(string $alias) + { + $this->alias = $alias; + $this->router->getRuleName()->setGroup($alias, $this); + + return $this; + } + + /** + * 延迟解析分组的路由规则 + * @access public + * @param bool $lazy 路由是否延迟解析 + * @return $this + */ + public function lazy(bool $lazy = true) + { + if (!$lazy) { + $this->parseGroupRule($this->rule); + $this->rule = null; + } + + return $this; + } + + /** + * 解析分组和域名的路由规则及绑定 + * @access public + * @param mixed $rule 路由规则 + * @return void + */ + public function parseGroupRule($rule): void + { + $origin = $this->router->getGroup(); + $this->router->setGroup($this); + + if ($rule instanceof \Closure) { + Container::getInstance()->invokeFunction($rule); + } elseif (is_string($rule) && $rule) { + $this->router->bind($rule, $this->domain); + } + + $this->router->setGroup($origin); + } + + /** + * 检测分组路由 + * @access public + * @param Request $request 请求对象 + * @param array $rules 路由规则 + * @param string $url 访问地址 + * @param bool $completeMatch 路由是否完全匹配 + * @return Dispatch|false + */ + protected function checkMergeRuleRegex(Request $request, array &$rules, string $url, bool $completeMatch) + { + $depr = $this->router->config('pathinfo_depr'); + $url = $depr . str_replace('|', $depr, $url); + $regex = []; + $items = []; + + foreach ($rules as $key => $item) { + if ($item instanceof RuleItem) { + $rule = $depr . str_replace('/', $depr, $item->getRule()); + if ($depr == $rule && $depr != $url) { + unset($rules[$key]); + continue; + } + + $complete = $item->getOption('complete_match', $completeMatch); + + if (false === strpos($rule, '<')) { + if (0 === strcasecmp($rule, $url) || (!$complete && 0 === strncasecmp($rule, $url, strlen($rule)))) { + return $item->checkRule($request, $url, []); + } + + unset($rules[$key]); + continue; + } + + $slash = preg_quote('/-' . $depr, '/'); + + if ($matchRule = preg_split('/[' . $slash . ']<\w+\??>/', $rule, 2)) { + if ($matchRule[0] && 0 !== strncasecmp($rule, $url, strlen($matchRule[0]))) { + unset($rules[$key]); + continue; + } + } + + if (preg_match_all('/[' . $slash . ']??/', $rule, $matches)) { + unset($rules[$key]); + $pattern = array_merge($this->getPattern(), $item->getPattern()); + $option = array_merge($this->getOption(), $item->getOption()); + + $regex[$key] = $this->buildRuleRegex($rule, $matches[0], $pattern, $option, $complete, '_THINK_' . $key); + $items[$key] = $item; + } + } + } + + if (empty($regex)) { + return false; + } + + try { + $result = preg_match('/^(?:' . implode('|', $regex) . ')/u', $url, $match); + } catch (\Exception $e) { + throw new Exception('route pattern error'); + } + + if ($result) { + $var = []; + foreach ($match as $key => $val) { + if (is_string($key) && '' !== $val) { + [$name, $pos] = explode('_THINK_', $key); + + $var[$name] = $val; + } + } + + if (!isset($pos)) { + foreach ($regex as $key => $item) { + if (0 === strpos(str_replace(['\/', '\-', '\\' . $depr], ['/', '-', $depr], $item), $match[0])) { + $pos = $key; + break; + } + } + } + + $rule = $items[$pos]->getRule(); + $array = $this->router->getRule($rule); + + foreach ($array as $item) { + if (in_array($item->getMethod(), ['*', strtolower($request->method())])) { + $result = $item->checkRule($request, $url, $var); + + if (false !== $result) { + return $result; + } + } + } + } + + return false; + } + + /** + * 获取分组的MISS路由 + * @access public + * @return RuleItem|null + */ + public function getMissRule(): ? RuleItem + { + return $this->miss; + } + + /** + * 注册MISS路由 + * @access public + * @param string|Closure $route 路由地址 + * @param string $method 请求类型 + * @return RuleItem + */ + public function miss($route, string $method = '*') : RuleItem + { + // 创建路由规则实例 + $ruleItem = new RuleItem($this->router, $this, null, '', $route, strtolower($method)); + + $ruleItem->setMiss(); + $this->miss = $ruleItem; + + return $ruleItem; + } + + /** + * 添加分组下的路由规则 + * @access public + * @param string $rule 路由规则 + * @param mixed $route 路由地址 + * @param string $method 请求类型 + * @return RuleItem + */ + public function addRule(string $rule, $route = null, string $method = '*'): RuleItem + { + // 读取路由标识 + if (is_string($route)) { + $name = $route; + } else { + $name = null; + } + + $method = strtolower($method); + + if ('' === $rule || '/' === $rule) { + $rule .= '$'; + } + + // 创建路由规则实例 + $ruleItem = new RuleItem($this->router, $this, $name, $rule, $route, $method); + + $this->addRuleItem($ruleItem, $method); + + return $ruleItem; + } + + /** + * 注册分组下的路由规则 + * @access public + * @param Rule $rule 路由规则 + * @param string $method 请求类型 + * @return $this + */ + public function addRuleItem(Rule $rule, string $method = '*') + { + if (strpos($method, '|')) { + $rule->method($method); + $method = '*'; + } + + $this->rules[$method][] = $rule; + + if ($rule instanceof RuleItem && 'options' != $method) { + $this->rules['options'][] = $rule->setAutoOptions(); + } + + return $this; + } + + /** + * 设置分组的路由前缀 + * @access public + * @param string $prefix 路由前缀 + * @return $this + */ + public function prefix(string $prefix) + { + if ($this->parent && $this->parent->getOption('prefix')) { + $prefix = $this->parent->getOption('prefix') . $prefix; + } + + return $this->setOption('prefix', $prefix); + } + + /** + * 合并分组的路由规则正则 + * @access public + * @param bool $merge 是否合并 + * @return $this + */ + public function mergeRuleRegex(bool $merge = true) + { + return $this->setOption('merge_rule_regex', $merge); + } + + /** + * 获取完整分组Name + * @access public + * @return string + */ + public function getFullName(): string + { + return $this->fullName ?: ''; + } + + /** + * 获取分组的路由规则 + * @access public + * @param string $method 请求类型 + * @return array + */ + public function getRules(string $method = ''): array + { + if ('' === $method) { + return $this->rules; + } + + return $this->rules[strtolower($method)] ?? []; + } + + /** + * 清空分组下的路由规则 + * @access public + * @return void + */ + public function clear(): void + { + $this->rules = [ + '*' => [], + 'get' => [], + 'post' => [], + 'put' => [], + 'patch' => [], + 'delete' => [], + 'head' => [], + 'options' => [], + ]; + } +} diff --git a/vendor/topthink/framework/src/think/route/RuleItem.php b/vendor/topthink/framework/src/think/route/RuleItem.php new file mode 100644 index 0000000..f7f72ba --- /dev/null +++ b/vendor/topthink/framework/src/think/route/RuleItem.php @@ -0,0 +1,330 @@ + +// +---------------------------------------------------------------------- +declare (strict_types = 1); + +namespace think\route; + +use think\Exception; +use think\Request; +use think\Route; + +/** + * 路由规则类 + */ +class RuleItem extends Rule +{ + /** + * 是否为MISS规则 + * @var bool + */ + protected $miss = false; + + /** + * 是否为额外自动注册的OPTIONS规则 + * @var bool + */ + protected $autoOption = false; + + /** + * 架构函数 + * @access public + * @param Route $router 路由实例 + * @param RuleGroup $parent 上级对象 + * @param string $name 路由标识 + * @param string $rule 路由规则 + * @param string|\Closure $route 路由地址 + * @param string $method 请求类型 + */ + public function __construct(Route $router, RuleGroup $parent, string $name = null, string $rule = '', $route = null, string $method = '*') + { + $this->router = $router; + $this->parent = $parent; + $this->name = $name; + $this->route = $route; + $this->method = $method; + + $this->setRule($rule); + + $this->router->setRule($this->rule, $this); + } + + /** + * 设置当前路由规则为MISS路由 + * @access public + * @return $this + */ + public function setMiss() + { + $this->miss = true; + return $this; + } + + /** + * 判断当前路由规则是否为MISS路由 + * @access public + * @return bool + */ + public function isMiss(): bool + { + return $this->miss; + } + + /** + * 设置当前路由为自动注册OPTIONS + * @access public + * @return $this + */ + public function setAutoOptions() + { + $this->autoOption = true; + return $this; + } + + /** + * 判断当前路由规则是否为自动注册的OPTIONS路由 + * @access public + * @return bool + */ + public function isAutoOptions(): bool + { + return $this->autoOption; + } + + /** + * 获取当前路由的URL后缀 + * @access public + * @return string|null + */ + public function getSuffix() + { + if (isset($this->option['ext'])) { + $suffix = $this->option['ext']; + } elseif ($this->parent->getOption('ext')) { + $suffix = $this->parent->getOption('ext'); + } else { + $suffix = null; + } + + return $suffix; + } + + /** + * 路由规则预处理 + * @access public + * @param string $rule 路由规则 + * @return void + */ + public function setRule(string $rule): void + { + if ('$' == substr($rule, -1, 1)) { + // 是否完整匹配 + $rule = substr($rule, 0, -1); + + $this->option['complete_match'] = true; + } + + $rule = '/' != $rule ? ltrim($rule, '/') : ''; + + if ($this->parent && $prefix = $this->parent->getFullName()) { + $rule = $prefix . ($rule ? '/' . ltrim($rule, '/') : ''); + } + + if (false !== strpos($rule, ':')) { + $this->rule = preg_replace(['/\[\:(\w+)\]/', '/\:(\w+)/'], ['<\1?>', '<\1>'], $rule); + } else { + $this->rule = $rule; + } + + // 生成路由标识的快捷访问 + $this->setRuleName(); + } + + /** + * 设置别名 + * @access public + * @param string $name + * @return $this + */ + public function name(string $name) + { + $this->name = $name; + $this->setRuleName(true); + + return $this; + } + + /** + * 设置路由标识 用于URL反解生成 + * @access protected + * @param bool $first 是否插入开头 + * @return void + */ + protected function setRuleName(bool $first = false): void + { + if ($this->name) { + $this->router->setName($this->name, $this, $first); + } + } + + /** + * 检测路由 + * @access public + * @param Request $request 请求对象 + * @param string $url 访问地址 + * @param array $match 匹配路由变量 + * @param bool $completeMatch 路由是否完全匹配 + * @return Dispatch|false + */ + public function checkRule(Request $request, string $url, $match = null, bool $completeMatch = false) + { + // 检查参数有效性 + if (!$this->checkOption($this->option, $request)) { + return false; + } + + // 合并分组参数 + $option = $this->mergeGroupOptions(); + + $url = $this->urlSuffixCheck($request, $url, $option); + + if (is_null($match)) { + $match = $this->match($url, $option, $completeMatch); + } + + if (false !== $match) { + return $this->parseRule($request, $this->rule, $this->route, $url, $option, $match); + } + + return false; + } + + /** + * 检测路由(含路由匹配) + * @access public + * @param Request $request 请求对象 + * @param string $url 访问地址 + * @param bool $completeMatch 路由是否完全匹配 + * @return Dispatch|false + */ + public function check(Request $request, string $url, bool $completeMatch = false) + { + return $this->checkRule($request, $url, null, $completeMatch); + } + + /** + * URL后缀及Slash检查 + * @access protected + * @param Request $request 请求对象 + * @param string $url 访问地址 + * @param array $option 路由参数 + * @return string + */ + protected function urlSuffixCheck(Request $request, string $url, array $option = []): string + { + // 是否区分 / 地址访问 + if (!empty($option['remove_slash']) && '/' != $this->rule) { + $this->rule = rtrim($this->rule, '/'); + $url = rtrim($url, '|'); + } + + if (isset($option['ext'])) { + // 路由ext参数 优先于系统配置的URL伪静态后缀参数 + $url = preg_replace('/\.(' . $request->ext() . ')$/i', '', $url); + } + + return $url; + } + + /** + * 检测URL和规则路由是否匹配 + * @access private + * @param string $url URL地址 + * @param array $option 路由参数 + * @param bool $completeMatch 路由是否完全匹配 + * @return array|false + */ + private function match(string $url, array $option, bool $completeMatch) + { + if (isset($option['complete_match'])) { + $completeMatch = $option['complete_match']; + } + + $depr = $this->router->config('pathinfo_depr'); + $pattern = array_merge($this->parent->getPattern(), $this->pattern); + + // 检查完整规则定义 + if (isset($pattern['__url__']) && !preg_match(0 === strpos($pattern['__url__'], '/') ? $pattern['__url__'] : '/^' . $pattern['__url__'] . ($completeMatch ? '$' : '') . '/', str_replace('|', $depr, $url))) { + return false; + } + + $var = []; + $url = $depr . str_replace('|', $depr, $url); + $rule = $depr . str_replace('/', $depr, $this->rule); + + if ($depr == $rule && $depr != $url) { + return false; + } + + if (false === strpos($rule, '<')) { + if (0 === strcasecmp($rule, $url) || (!$completeMatch && 0 === strncasecmp($rule . $depr, $url . $depr, strlen($rule . $depr)))) { + return $var; + } + return false; + } + + $slash = preg_quote('/-' . $depr, '/'); + + if ($matchRule = preg_split('/[' . $slash . ']?<\w+\??>/', $rule, 2)) { + if ($matchRule[0] && 0 !== strncasecmp($rule, $url, strlen($matchRule[0]))) { + return false; + } + } + + if (preg_match_all('/[' . $slash . ']??/', $rule, $matches)) { + $regex = $this->buildRuleRegex($rule, $matches[0], $pattern, $option, $completeMatch); + + try { + if (!preg_match('/^' . $regex . '/u', $url, $match)) { + return false; + } + } catch (\Exception $e) { + throw new Exception('route pattern error'); + } + + foreach ($match as $key => $val) { + if (is_string($key)) { + $var[$key] = $val; + } + } + } + + // 成功匹配后返回URL中的动态变量数组 + return $var; + } + + /** + * 设置路由所属分组(用于注解路由) + * @access public + * @param string $name 分组名称或者标识 + * @return $this + */ + public function group(string $name) + { + $group = $this->router->getRuleName()->getGroup($name); + + if ($group) { + $this->parent = $group; + $this->setRule($this->rule); + } + + return $this; + } +} diff --git a/vendor/topthink/framework/src/think/route/RuleName.php b/vendor/topthink/framework/src/think/route/RuleName.php new file mode 100644 index 0000000..9b1088a --- /dev/null +++ b/vendor/topthink/framework/src/think/route/RuleName.php @@ -0,0 +1,195 @@ + +// +---------------------------------------------------------------------- +declare (strict_types = 1); + +namespace think\route; + +/** + * 路由标识管理类 + */ +class RuleName +{ + /** + * 路由标识 + * @var array + */ + protected $item = []; + + /** + * 路由规则 + * @var array + */ + protected $rule = []; + + /** + * 路由分组 + * @var array + */ + protected $group = []; + + /** + * 注册路由标识 + * @access public + * @param string $name 路由标识 + * @param RuleItem $ruleItem 路由规则 + * @param bool $first 是否优先 + * @return void + */ + public function setName(string $name, RuleItem $ruleItem, bool $first = false): void + { + $name = strtolower($name); + if ($first && isset($this->item[$name])) { + array_unshift($this->item[$name], $ruleItem); + } else { + $this->item[$name][] = $ruleItem; + } + } + + /** + * 注册路由分组标识 + * @access public + * @param string $name 路由分组标识 + * @param RuleGroup $group 路由分组 + * @return void + */ + public function setGroup(string $name, RuleGroup $group): void + { + $this->group[strtolower($name)] = $group; + } + + /** + * 注册路由规则 + * @access public + * @param string $rule 路由规则 + * @param RuleItem $ruleItem 路由 + * @return void + */ + public function setRule(string $rule, RuleItem $ruleItem): void + { + $route = $ruleItem->getRoute(); + + if (is_string($route)) { + $this->rule[$rule][$route] = $ruleItem; + } else { + $this->rule[$rule][] = $ruleItem; + } + } + + /** + * 根据路由规则获取路由对象(列表) + * @access public + * @param string $rule 路由标识 + * @return RuleItem[] + */ + public function getRule(string $rule): array + { + return $this->rule[$rule] ?? []; + } + + /** + * 根据路由分组标识获取分组 + * @access public + * @param string $name 路由分组标识 + * @return RuleGroup|null + */ + public function getGroup(string $name) + { + return $this->group[strtolower($name)] ?? null; + } + + /** + * 清空路由规则 + * @access public + * @return void + */ + public function clear(): void + { + $this->item = []; + $this->rule = []; + } + + /** + * 获取全部路由列表 + * @access public + * @return array + */ + public function getRuleList(): array + { + $list = []; + + foreach ($this->rule as $rule => $rules) { + foreach ($rules as $item) { + $val = []; + + foreach (['method', 'rule', 'name', 'route', 'domain', 'pattern', 'option'] as $param) { + $call = 'get' . $param; + $val[$param] = $item->$call(); + } + + if ($item->isMiss()) { + $val['rule'] .= ''; + } + + $list[] = $val; + } + } + + return $list; + } + + /** + * 导入路由标识 + * @access public + * @param array $item 路由标识 + * @return void + */ + public function import(array $item): void + { + $this->item = $item; + } + + /** + * 根据路由标识获取路由信息(用于URL生成) + * @access public + * @param string $name 路由标识 + * @param string $domain 域名 + * @param string $method 请求类型 + * @return array + */ + public function getName(string $name = null, string $domain = null, string $method = '*'): array + { + if (is_null($name)) { + return $this->item; + } + + $name = strtolower($name); + $method = strtolower($method); + $result = []; + + if (isset($this->item[$name])) { + if (is_null($domain)) { + $result = $this->item[$name]; + } else { + foreach ($this->item[$name] as $item) { + $itemDomain = $item->getDomain(); + $itemMethod = $item->getMethod(); + + if (($itemDomain == $domain || '-' == $itemDomain) && ('*' == $itemMethod || '*' == $method || $method == $itemMethod)) { + $result[] = $item; + } + } + } + } + + return $result; + } + +} diff --git a/vendor/topthink/framework/src/think/route/Url.php b/vendor/topthink/framework/src/think/route/Url.php new file mode 100644 index 0000000..d9ecfd8 --- /dev/null +++ b/vendor/topthink/framework/src/think/route/Url.php @@ -0,0 +1,512 @@ + +// +---------------------------------------------------------------------- +declare (strict_types = 1); + +namespace think\route; + +use think\App; +use think\Route; + +/** + * 路由地址生成 + */ +class Url +{ + /** + * 应用对象 + * @var App + */ + protected $app; + + /** + * 路由对象 + * @var Route + */ + protected $route; + + /** + * URL变量 + * @var array + */ + protected $vars = []; + + /** + * 路由URL + * @var string + */ + protected $url; + + /** + * URL 根地址 + * @var string + */ + protected $root = ''; + + /** + * HTTPS + * @var bool + */ + protected $https; + + /** + * URL后缀 + * @var string|bool + */ + protected $suffix = true; + + /** + * URL域名 + * @var string|bool + */ + protected $domain = false; + + /** + * 架构函数 + * @access public + * @param string $url URL地址 + * @param array $vars 参数 + */ + public function __construct(Route $route, App $app, string $url = '', array $vars = []) + { + $this->route = $route; + $this->app = $app; + $this->url = $url; + $this->vars = $vars; + } + + /** + * 设置URL参数 + * @access public + * @param array $vars URL参数 + * @return $this + */ + public function vars(array $vars = []) + { + $this->vars = $vars; + return $this; + } + + /** + * 设置URL后缀 + * @access public + * @param string|bool $suffix URL后缀 + * @return $this + */ + public function suffix($suffix) + { + $this->suffix = $suffix; + return $this; + } + + /** + * 设置URL域名(或者子域名) + * @access public + * @param string|bool $domain URL域名 + * @return $this + */ + public function domain($domain) + { + $this->domain = $domain; + return $this; + } + + /** + * 设置URL 根地址 + * @access public + * @param string $root URL root + * @return $this + */ + public function root(string $root) + { + $this->root = $root; + return $this; + } + + /** + * 设置是否使用HTTPS + * @access public + * @param bool $https + * @return $this + */ + public function https(bool $https = true) + { + $this->https = $https; + return $this; + } + + /** + * 检测域名 + * @access protected + * @param string $url URL + * @param string|true $domain 域名 + * @return string + */ + protected function parseDomain(string &$url, $domain): string + { + if (!$domain) { + return ''; + } + + $request = $this->app->request; + $rootDomain = $request->rootDomain(); + + if (true === $domain) { + // 自动判断域名 + $domain = $request->host(); + $domains = $this->route->getDomains(); + + if (!empty($domains)) { + $route_domain = array_keys($domains); + foreach ($route_domain as $domain_prefix) { + if (0 === strpos($domain_prefix, '*.') && strpos($domain, ltrim($domain_prefix, '*.')) !== false) { + foreach ($domains as $key => $rule) { + $rule = is_array($rule) ? $rule[0] : $rule; + if (is_string($rule) && false === strpos($key, '*') && 0 === strpos($url, $rule)) { + $url = ltrim($url, $rule); + $domain = $key; + + // 生成对应子域名 + if (!empty($rootDomain)) { + $domain .= $rootDomain; + } + break; + } elseif (false !== strpos($key, '*')) { + if (!empty($rootDomain)) { + $domain .= $rootDomain; + } + + break; + } + } + } + } + } + } elseif (false === strpos($domain, '.') && 0 !== strpos($domain, $rootDomain)) { + $domain .= '.' . $rootDomain; + } + + if (false !== strpos($domain, '://')) { + $scheme = ''; + } else { + $scheme = $this->https || $request->isSsl() ? 'https://' : 'http://'; + } + + return $scheme . $domain; + } + + /** + * 解析URL后缀 + * @access protected + * @param string|bool $suffix 后缀 + * @return string + */ + protected function parseSuffix($suffix): string + { + if ($suffix) { + $suffix = true === $suffix ? $this->route->config('url_html_suffix') : $suffix; + + if (is_string($suffix) && $pos = strpos($suffix, '|')) { + $suffix = substr($suffix, 0, $pos); + } + } + + return (empty($suffix) || 0 === strpos($suffix, '.')) ? (string) $suffix : '.' . $suffix; + } + + /** + * 直接解析URL地址 + * @access protected + * @param string $url URL + * @param string|bool $domain Domain + * @return string + */ + protected function parseUrl(string $url, &$domain): string + { + $request = $this->app->request; + + if (0 === strpos($url, '/')) { + // 直接作为路由地址解析 + $url = substr($url, 1); + } elseif (false !== strpos($url, '\\')) { + // 解析到类 + $url = ltrim(str_replace('\\', '/', $url), '/'); + } elseif (0 === strpos($url, '@')) { + // 解析到控制器 + $url = substr($url, 1); + } elseif ('' === $url) { + $url = $request->controller() . '/' . $request->action(); + } else { + $controller = $request->controller(); + + $path = explode('/', $url); + $action = array_pop($path); + $controller = empty($path) ? $controller : array_pop($path); + + $url = $controller . '/' . $action; + } + + return $url; + } + + /** + * 分析路由规则中的变量 + * @access protected + * @param string $rule 路由规则 + * @return array + */ + protected function parseVar(string $rule): array + { + // 提取路由规则中的变量 + $var = []; + + if (preg_match_all('/<\w+\??>/', $rule, $matches)) { + foreach ($matches[0] as $name) { + $optional = false; + + if (strpos($name, '?')) { + $name = substr($name, 1, -2); + $optional = true; + } else { + $name = substr($name, 1, -1); + } + + $var[$name] = $optional ? 2 : 1; + } + } + + return $var; + } + + /** + * 匹配路由地址 + * @access protected + * @param array $rule 路由规则 + * @param array $vars 路由变量 + * @param mixed $allowDomain 允许域名 + * @return array + */ + protected function getRuleUrl(array $rule, array &$vars = [], $allowDomain = ''): array + { + $request = $this->app->request; + if (is_string($allowDomain) && false === strpos($allowDomain, '.')) { + $allowDomain .= '.' . $request->rootDomain(); + } + $port = $request->port(); + + foreach ($rule as $item) { + $url = $item->getRule(); + $pattern = $this->parseVar($url); + $domain = $item->getDomain(); + $suffix = $item->getSuffix(); + + if ('-' == $domain) { + $domain = is_string($allowDomain) ? $allowDomain : $request->host(true); + } + + if (is_string($allowDomain) && $domain != $allowDomain) { + continue; + } + + if ($port && !in_array($port, [80, 443])) { + $domain .= ':' . $port; + } + + if (empty($pattern)) { + return [rtrim($url, '?/-'), $domain, $suffix]; + } + + $type = $this->route->config('url_common_param'); + $keys = []; + + foreach ($pattern as $key => $val) { + if (isset($vars[$key])) { + $url = str_replace(['[:' . $key . ']', '<' . $key . '?>', ':' . $key, '<' . $key . '>'], $type ? $vars[$key] : urlencode((string) $vars[$key]), $url); + $keys[] = $key; + $url = str_replace(['/?', '-?'], ['/', '-'], $url); + $result = [rtrim($url, '?/-'), $domain, $suffix]; + } elseif (2 == $val) { + $url = str_replace(['/[:' . $key . ']', '[:' . $key . ']', '<' . $key . '?>'], '', $url); + $url = str_replace(['/?', '-?'], ['/', '-'], $url); + $result = [rtrim($url, '?/-'), $domain, $suffix]; + } else { + $result = null; + $keys = []; + break; + } + } + + $vars = array_diff_key($vars, array_flip($keys)); + + if (isset($result)) { + return $result; + } + } + + return []; + } + + public function build() + { + // 解析URL + $url = $this->url; + $suffix = $this->suffix; + $domain = $this->domain; + $request = $this->app->request; + $vars = $this->vars; + + if (0 === strpos($url, '[') && $pos = strpos($url, ']')) { + // [name] 表示使用路由命名标识生成URL + $name = substr($url, 1, $pos - 1); + $url = 'name' . substr($url, $pos + 1); + } + + if (false === strpos($url, '://') && 0 !== strpos($url, '/')) { + $info = parse_url($url); + $url = !empty($info['path']) ? $info['path'] : ''; + + if (isset($info['fragment'])) { + // 解析锚点 + $anchor = $info['fragment']; + + if (false !== strpos($anchor, '?')) { + // 解析参数 + [$anchor, $info['query']] = explode('?', $anchor, 2); + } + + if (false !== strpos($anchor, '@')) { + // 解析域名 + [$anchor, $domain] = explode('@', $anchor, 2); + } + } elseif (strpos($url, '@') && false === strpos($url, '\\')) { + // 解析域名 + [$url, $domain] = explode('@', $url, 2); + } + } + + if ($url) { + $checkName = isset($name) ? $name : $url . (isset($info['query']) ? '?' . $info['query'] : ''); + $checkDomain = $domain && is_string($domain) ? $domain : null; + + $rule = $this->route->getName($checkName, $checkDomain); + + if (empty($rule) && isset($info['query'])) { + $rule = $this->route->getName($url, $checkDomain); + // 解析地址里面参数 合并到vars + parse_str($info['query'], $params); + $vars = array_merge($params, $vars); + unset($info['query']); + } + } + + if (!empty($rule) && $match = $this->getRuleUrl($rule, $vars, $domain)) { + // 匹配路由命名标识 + $url = $match[0]; + + if ($domain && !empty($match[1])) { + $domain = $match[1]; + } + + if (!is_null($match[2])) { + $suffix = $match[2]; + } + } elseif (!empty($rule) && isset($name)) { + throw new \InvalidArgumentException('route name not exists:' . $name); + } else { + // 检测URL绑定 + $bind = $this->route->getDomainBind($domain && is_string($domain) ? $domain : null); + + if ($bind && 0 === strpos($url, $bind)) { + $url = substr($url, strlen($bind) + 1); + } else { + $binds = $this->route->getBind(); + + foreach ($binds as $key => $val) { + if (is_string($val) && 0 === strpos($url, $val) && substr_count($val, '/') > 1) { + $url = substr($url, strlen($val) + 1); + $domain = $key; + break; + } + } + } + + // 路由标识不存在 直接解析 + $url = $this->parseUrl($url, $domain); + + if (isset($info['query'])) { + // 解析地址里面参数 合并到vars + parse_str($info['query'], $params); + $vars = array_merge($params, $vars); + } + } + + // 还原URL分隔符 + $depr = $this->route->config('pathinfo_depr'); + $url = str_replace('/', $depr, $url); + + $file = $request->baseFile(); + if ($file && 0 !== strpos($request->url(), $file)) { + $file = str_replace('\\', '/', dirname($file)); + } + + $url = rtrim($file, '/') . '/' . $url; + + // URL后缀 + if ('/' == substr($url, -1) || '' == $url) { + $suffix = ''; + } else { + $suffix = $this->parseSuffix($suffix); + } + + // 锚点 + $anchor = !empty($anchor) ? '#' . $anchor : ''; + + // 参数组装 + if (!empty($vars)) { + // 添加参数 + if ($this->route->config('url_common_param')) { + $vars = http_build_query($vars); + $url .= $suffix . '?' . $vars . $anchor; + } else { + foreach ($vars as $var => $val) { + $val = (string) $val; + if ('' !== $val) { + $url .= $depr . $var . $depr . urlencode($val); + } + } + + $url .= $suffix . $anchor; + } + } else { + $url .= $suffix . $anchor; + } + + // 检测域名 + $domain = $this->parseDomain($url, $domain); + + // URL组装 + return $domain . rtrim($this->root, '/') . '/' . ltrim($url, '/'); + } + + public function __toString() + { + return $this->build(); + } + + public function __debugInfo() + { + return [ + 'url' => $this->url, + 'vars' => $this->vars, + 'suffix' => $this->suffix, + 'domain' => $this->domain, + ]; + } +} diff --git a/vendor/topthink/framework/src/think/route/dispatch/Callback.php b/vendor/topthink/framework/src/think/route/dispatch/Callback.php new file mode 100644 index 0000000..7658c3d --- /dev/null +++ b/vendor/topthink/framework/src/think/route/dispatch/Callback.php @@ -0,0 +1,30 @@ + +// +---------------------------------------------------------------------- +declare (strict_types = 1); + +namespace think\route\dispatch; + +use think\route\Dispatch; + +/** + * Callback Dispatcher + */ +class Callback extends Dispatch +{ + public function exec() + { + // 执行回调方法 + $vars = array_merge($this->request->param(), $this->param); + + return $this->app->invoke($this->dispatch, $vars); + } + +} diff --git a/vendor/topthink/framework/src/think/route/dispatch/Controller.php b/vendor/topthink/framework/src/think/route/dispatch/Controller.php new file mode 100644 index 0000000..88094c6 --- /dev/null +++ b/vendor/topthink/framework/src/think/route/dispatch/Controller.php @@ -0,0 +1,180 @@ + +// +---------------------------------------------------------------------- +declare (strict_types = 1); + +namespace think\route\dispatch; + +use ReflectionClass; +use ReflectionException; +use ReflectionMethod; +use think\App; +use think\exception\ClassNotFoundException; +use think\exception\HttpException; +use think\helper\Str; +use think\route\Dispatch; + +/** + * Controller Dispatcher + */ +class Controller extends Dispatch +{ + /** + * 控制器名 + * @var string + */ + protected $controller; + + /** + * 操作名 + * @var string + */ + protected $actionName; + + public function init(App $app) + { + parent::init($app); + + $result = $this->dispatch; + + if (is_string($result)) { + $result = explode('/', $result); + } + + // 获取控制器名 + $controller = strip_tags($result[0] ?: $this->rule->config('default_controller')); + + if (strpos($controller, '.')) { + $pos = strrpos($controller, '.'); + $this->controller = substr($controller, 0, $pos) . '.' . Str::studly(substr($controller, $pos + 1)); + } else { + $this->controller = Str::studly($controller); + } + + // 获取操作名 + $this->actionName = strip_tags($result[1] ?: $this->rule->config('default_action')); + + // 设置当前请求的控制器、操作 + $this->request + ->setController($this->controller) + ->setAction($this->actionName); + } + + public function exec() + { + try { + // 实例化控制器 + $instance = $this->controller($this->controller); + } catch (ClassNotFoundException $e) { + throw new HttpException(404, 'controller not exists:' . $e->getClass()); + } + + // 注册控制器中间件 + $this->registerControllerMiddleware($instance); + + return $this->app->middleware->pipeline('controller') + ->send($this->request) + ->then(function () use ($instance) { + // 获取当前操作名 + $suffix = $this->rule->config('action_suffix'); + $action = $this->actionName . $suffix; + + if (is_callable([$instance, $action])) { + $vars = $this->request->param(); + try { + $reflect = new ReflectionMethod($instance, $action); + // 严格获取当前操作方法名 + $actionName = $reflect->getName(); + if ($suffix) { + $actionName = substr($actionName, 0, -strlen($suffix)); + } + + $this->request->setAction($actionName); + } catch (ReflectionException $e) { + $reflect = new ReflectionMethod($instance, '__call'); + $vars = [$action, $vars]; + $this->request->setAction($action); + } + } else { + // 操作不存在 + throw new HttpException(404, 'method not exists:' . get_class($instance) . '->' . $action . '()'); + } + + $data = $this->app->invokeReflectMethod($instance, $reflect, $vars); + + return $this->autoResponse($data); + }); + } + + /** + * 使用反射机制注册控制器中间件 + * @access public + * @param object $controller 控制器实例 + * @return void + */ + protected function registerControllerMiddleware($controller): void + { + $class = new ReflectionClass($controller); + + if ($class->hasProperty('middleware')) { + $reflectionProperty = $class->getProperty('middleware'); + $reflectionProperty->setAccessible(true); + + $middlewares = $reflectionProperty->getValue($controller); + + foreach ($middlewares as $key => $val) { + if (!is_int($key)) { + if (isset($val['only']) && !in_array($this->request->action(true), array_map(function ($item) { + return strtolower($item); + }, is_string($val['only']) ? explode(",", $val['only']) : $val['only']))) { + continue; + } elseif (isset($val['except']) && in_array($this->request->action(true), array_map(function ($item) { + return strtolower($item); + }, is_string($val['except']) ? explode(',', $val['except']) : $val['except']))) { + continue; + } else { + $val = $key; + } + } + + if (is_string($val) && strpos($val, ':')) { + $val = explode(':', $val, 2); + } + + $this->app->middleware->controller($val); + } + } + } + + /** + * 实例化访问控制器 + * @access public + * @param string $name 资源地址 + * @return object + * @throws ClassNotFoundException + */ + public function controller(string $name) + { + $suffix = $this->rule->config('controller_suffix') ? 'Controller' : ''; + + $controllerLayer = $this->rule->config('controller_layer') ?: 'controller'; + $emptyController = $this->rule->config('empty_controller') ?: 'Error'; + + $class = $this->app->parseClass($controllerLayer, $name . $suffix); + + if (class_exists($class)) { + return $this->app->make($class, [], true); + } elseif ($emptyController && class_exists($emptyClass = $this->app->parseClass($controllerLayer, $emptyController . $suffix))) { + return $this->app->make($emptyClass, [], true); + } + + throw new ClassNotFoundException('class not exists:' . $class, $class); + } +} diff --git a/vendor/topthink/framework/src/think/route/dispatch/Redirect.php b/vendor/topthink/framework/src/think/route/dispatch/Redirect.php new file mode 100644 index 0000000..1ec9ed9 --- /dev/null +++ b/vendor/topthink/framework/src/think/route/dispatch/Redirect.php @@ -0,0 +1,27 @@ + +// +---------------------------------------------------------------------- +declare (strict_types = 1); + +namespace think\route\dispatch; + +use think\Response; +use think\route\Dispatch; + +/** + * Redirect Dispatcher + */ +class Redirect extends Dispatch +{ + public function exec() + { + return Response::create($this->dispatch, 'redirect')->code($this->code); + } +} diff --git a/vendor/topthink/framework/src/think/route/dispatch/Response.php b/vendor/topthink/framework/src/think/route/dispatch/Response.php new file mode 100644 index 0000000..3ae4c0a --- /dev/null +++ b/vendor/topthink/framework/src/think/route/dispatch/Response.php @@ -0,0 +1,27 @@ + +// +---------------------------------------------------------------------- +declare (strict_types = 1); + +namespace think\route\dispatch; + +use think\route\Dispatch; + +/** + * Response Dispatcher + */ +class Response extends Dispatch +{ + public function exec() + { + return $this->dispatch; + } + +} diff --git a/vendor/topthink/framework/src/think/route/dispatch/Url.php b/vendor/topthink/framework/src/think/route/dispatch/Url.php new file mode 100644 index 0000000..da6d655 --- /dev/null +++ b/vendor/topthink/framework/src/think/route/dispatch/Url.php @@ -0,0 +1,118 @@ + +// +---------------------------------------------------------------------- +declare (strict_types = 1); + +namespace think\route\dispatch; + +use think\exception\HttpException; +use think\helper\Str; +use think\Request; +use think\route\Rule; + +/** + * Url Dispatcher + */ +class Url extends Controller +{ + + public function __construct(Request $request, Rule $rule, $dispatch, array $param = [], int $code = null) + { + $this->request = $request; + $this->rule = $rule; + // 解析默认的URL规则 + $dispatch = $this->parseUrl($dispatch); + + parent::__construct($request, $rule, $dispatch, $this->param, $code); + } + + /** + * 解析URL地址 + * @access protected + * @param string $url URL + * @return array + */ + protected function parseUrl(string $url): array + { + $depr = $this->rule->config('pathinfo_depr'); + $bind = $this->rule->getRouter()->getDomainBind(); + + if ($bind && preg_match('/^[a-z]/is', $bind)) { + $bind = str_replace('/', $depr, $bind); + // 如果有域名绑定 + $url = $bind . ('.' != substr($bind, -1) ? $depr : '') . ltrim($url, $depr); + } + + $path = $this->rule->parseUrlPath($url); + if (empty($path)) { + return [null, null]; + } + + // 解析控制器 + $controller = !empty($path) ? array_shift($path) : null; + + if ($controller && !preg_match('/^[A-Za-z0-9][\w|\.]*$/', $controller)) { + throw new HttpException(404, 'controller not exists:' . $controller); + } + + // 解析操作 + $action = !empty($path) ? array_shift($path) : null; + $var = []; + + // 解析额外参数 + if ($path) { + preg_replace_callback('/(\w+)\|([^\|]+)/', function ($match) use (&$var) { + $var[$match[1]] = strip_tags($match[2]); + }, implode('|', $path)); + } + + $panDomain = $this->request->panDomain(); + if ($panDomain && $key = array_search('*', $var)) { + // 泛域名赋值 + $var[$key] = $panDomain; + } + + // 设置当前请求的参数 + $this->param = $var; + + // 封装路由 + $route = [$controller, $action]; + + if ($this->hasDefinedRoute($route)) { + throw new HttpException(404, 'invalid request:' . str_replace('|', $depr, $url)); + } + + return $route; + } + + /** + * 检查URL是否已经定义过路由 + * @access protected + * @param array $route 路由信息 + * @return bool + */ + protected function hasDefinedRoute(array $route): bool + { + [$controller, $action] = $route; + + // 检查地址是否被定义过路由 + $name = strtolower(Str::studly($controller) . '/' . $action); + + $host = $this->request->host(true); + $method = $this->request->method(); + + if ($this->rule->getRouter()->getName($name, $host, $method)) { + return true; + } + + return false; + } + +} diff --git a/vendor/topthink/framework/src/think/route/dispatch/View.php b/vendor/topthink/framework/src/think/route/dispatch/View.php new file mode 100644 index 0000000..94f9047 --- /dev/null +++ b/vendor/topthink/framework/src/think/route/dispatch/View.php @@ -0,0 +1,28 @@ + +// +---------------------------------------------------------------------- +declare (strict_types = 1); + +namespace think\route\dispatch; + +use think\Response; +use think\route\Dispatch; + +/** + * View Dispatcher + */ +class View extends Dispatch +{ + public function exec() + { + // 渲染模板输出 + return Response::create($this->dispatch, 'view')->assign($this->param); + } +} diff --git a/vendor/topthink/framework/src/think/service/ModelService.php b/vendor/topthink/framework/src/think/service/ModelService.php new file mode 100644 index 0000000..a212a58 --- /dev/null +++ b/vendor/topthink/framework/src/think/service/ModelService.php @@ -0,0 +1,47 @@ + +// +---------------------------------------------------------------------- +declare (strict_types = 1); + +namespace think\service; + +use think\Model; +use think\Service; + +/** + * 模型服务类 + */ +class ModelService extends Service +{ + public function boot() + { + Model::setDb($this->app->db); + Model::setEvent($this->app->event); + Model::setInvoker([$this->app, 'invoke']); + Model::maker(function (Model $model) { + $config = $this->app->config; + + $isAutoWriteTimestamp = $model->getAutoWriteTimestamp(); + + if (is_null($isAutoWriteTimestamp)) { + // 自动写入时间戳 + $model->isAutoWriteTimestamp($config->get('database.auto_timestamp', 'timestamp')); + } + + $dateFormat = $model->getDateFormat(); + + if (is_null($dateFormat)) { + // 设置时间戳格式 + $model->setDateFormat($config->get('database.datetime_format', 'Y-m-d H:i:s')); + } + + }); + } +} diff --git a/vendor/topthink/framework/src/think/service/PaginatorService.php b/vendor/topthink/framework/src/think/service/PaginatorService.php new file mode 100644 index 0000000..b13dc1d --- /dev/null +++ b/vendor/topthink/framework/src/think/service/PaginatorService.php @@ -0,0 +1,52 @@ + +// +---------------------------------------------------------------------- +declare (strict_types = 1); + +namespace think\service; + +use think\Paginator; +use think\paginator\driver\Bootstrap; +use think\Service; + +/** + * 分页服务类 + */ +class PaginatorService extends Service +{ + public function register() + { + if (!$this->app->bound(Paginator::class)) { + $this->app->bind(Paginator::class, Bootstrap::class); + } + } + + public function boot() + { + Paginator::maker(function (...$args) { + return $this->app->make(Paginator::class, $args, true); + }); + + Paginator::currentPathResolver(function () { + return $this->app->request->baseUrl(); + }); + + Paginator::currentPageResolver(function ($varPage = 'page') { + + $page = $this->app->request->param($varPage); + + if (filter_var($page, FILTER_VALIDATE_INT) !== false && (int) $page >= 1) { + return (int) $page; + } + + return 1; + }); + } +} diff --git a/vendor/topthink/framework/src/think/service/ValidateService.php b/vendor/topthink/framework/src/think/service/ValidateService.php new file mode 100644 index 0000000..d96dea0 --- /dev/null +++ b/vendor/topthink/framework/src/think/service/ValidateService.php @@ -0,0 +1,31 @@ + +// +---------------------------------------------------------------------- +declare (strict_types = 1); + +namespace think\service; + +use think\Service; +use think\Validate; + +/** + * 验证服务类 + */ +class ValidateService extends Service +{ + public function boot() + { + Validate::maker(function (Validate $validate) { + $validate->setLang($this->app->lang); + $validate->setDb($this->app->db); + $validate->setRequest($this->app->request); + }); + } +} diff --git a/vendor/topthink/framework/src/think/session/Store.php b/vendor/topthink/framework/src/think/session/Store.php new file mode 100644 index 0000000..30f4630 --- /dev/null +++ b/vendor/topthink/framework/src/think/session/Store.php @@ -0,0 +1,340 @@ + +// +---------------------------------------------------------------------- + +namespace think\session; + +use think\contract\SessionHandlerInterface; +use think\helper\Arr; + +class Store +{ + + /** + * Session数据 + * @var array + */ + protected $data = []; + + /** + * 是否初始化 + * @var bool + */ + protected $init = null; + + /** + * 记录Session name + * @var string + */ + protected $name = 'PHPSESSID'; + + /** + * 记录Session Id + * @var string + */ + protected $id; + + /** + * @var SessionHandlerInterface + */ + protected $handler; + + /** @var array */ + protected $serialize = []; + + public function __construct($name, SessionHandlerInterface $handler, array $serialize = null) + { + $this->name = $name; + $this->handler = $handler; + + if (!empty($serialize)) { + $this->serialize = $serialize; + } + + $this->setId(); + } + + /** + * 设置数据 + * @access public + * @param array $data + * @return void + */ + public function setData(array $data): void + { + $this->data = $data; + } + + /** + * session初始化 + * @access public + * @return void + */ + public function init(): void + { + // 读取缓存数据 + $data = $this->handler->read($this->getId()); + + if (!empty($data)) { + $this->data = array_merge($this->data, $this->unserialize($data)); + } + + $this->init = true; + } + + /** + * 设置SessionName + * @access public + * @param string $name session_name + * @return void + */ + public function setName(string $name): void + { + $this->name = $name; + } + + /** + * 获取sessionName + * @access public + * @return string + */ + public function getName(): string + { + return $this->name; + } + + /** + * session_id设置 + * @access public + * @param string $id session_id + * @return void + */ + public function setId($id = null): void + { + $this->id = is_string($id) && strlen($id) === 32 ? $id : md5(microtime(true) . session_create_id()); + } + + /** + * 获取session_id + * @access public + * @return string + */ + public function getId(): string + { + return $this->id; + } + + /** + * 获取所有数据 + * @return array + */ + public function all(): array + { + return $this->data; + } + + /** + * session设置 + * @access public + * @param string $name session名称 + * @param mixed $value session值 + * @return void + */ + public function set(string $name, $value): void + { + Arr::set($this->data, $name, $value); + } + + /** + * session获取 + * @access public + * @param string $name session名称 + * @param mixed $default 默认值 + * @return mixed + */ + public function get(string $name, $default = null) + { + return Arr::get($this->data, $name, $default); + } + + /** + * session获取并删除 + * @access public + * @param string $name session名称 + * @return mixed + */ + public function pull(string $name) + { + return Arr::pull($this->data, $name); + } + + /** + * 添加数据到一个session数组 + * @access public + * @param string $key + * @param mixed $value + * @return void + */ + public function push(string $key, $value): void + { + $array = $this->get($key, []); + + $array[] = $value; + + $this->set($key, $array); + } + + /** + * 判断session数据 + * @access public + * @param string $name session名称 + * @return bool + */ + public function has(string $name): bool + { + return Arr::has($this->data, $name); + } + + /** + * 删除session数据 + * @access public + * @param string $name session名称 + * @return void + */ + public function delete(string $name): void + { + Arr::forget($this->data, $name); + } + + /** + * 清空session数据 + * @access public + * @return void + */ + public function clear(): void + { + $this->data = []; + } + + /** + * 销毁session + */ + public function destroy(): void + { + $this->clear(); + + $this->regenerate(true); + } + + /** + * 重新生成session id + * @param bool $destroy + */ + public function regenerate(bool $destroy = false): void + { + if ($destroy) { + $this->handler->delete($this->getId()); + } + + $this->setId(); + } + + /** + * 保存session数据 + * @access public + * @return void + */ + public function save(): void + { + $this->clearFlashData(); + + $sessionId = $this->getId(); + + if (!empty($this->data)) { + $data = $this->serialize($this->data); + + $this->handler->write($sessionId, $data); + } else { + $this->handler->delete($sessionId); + } + + $this->init = false; + } + + /** + * session设置 下一次请求有效 + * @access public + * @param string $name session名称 + * @param mixed $value session值 + * @return void + */ + public function flash(string $name, $value): void + { + $this->set($name, $value); + $this->push('__flash__.__next__', $name); + $this->set('__flash__.__current__', Arr::except($this->get('__flash__.__current__', []), $name)); + } + + /** + * 将本次闪存数据推迟到下次请求 + * + * @return void + */ + public function reflash(): void + { + $keys = $this->get('__flash__.__current__', []); + $values = array_unique(array_merge($this->get('__flash__.__next__', []), $keys)); + $this->set('__flash__.__next__', $values); + $this->set('__flash__.__current__', []); + } + + /** + * 清空当前请求的session数据 + * @access public + * @return void + */ + public function clearFlashData(): void + { + Arr::forget($this->data, $this->get('__flash__.__current__', [])); + if (!empty($next = $this->get('__flash__.__next__', []))) { + $this->set('__flash__.__current__', $next); + } else { + $this->delete('__flash__.__current__'); + } + $this->delete('__flash__.__next__'); + } + + /** + * 序列化数据 + * @access protected + * @param mixed $data + * @return string + */ + protected function serialize($data): string + { + $serialize = $this->serialize[0] ?? 'serialize'; + + return $serialize($data); + } + + /** + * 反序列化数据 + * @access protected + * @param string $data + * @return array + */ + protected function unserialize(string $data): array + { + $unserialize = $this->serialize[1] ?? 'unserialize'; + + return (array) $unserialize($data); + } + +} diff --git a/vendor/topthink/framework/src/think/session/driver/Cache.php b/vendor/topthink/framework/src/think/session/driver/Cache.php new file mode 100644 index 0000000..c25e2ef --- /dev/null +++ b/vendor/topthink/framework/src/think/session/driver/Cache.php @@ -0,0 +1,50 @@ + +// +---------------------------------------------------------------------- +namespace think\session\driver; + +use Psr\SimpleCache\CacheInterface; +use think\contract\SessionHandlerInterface; +use think\helper\Arr; + +class Cache implements SessionHandlerInterface +{ + + /** @var CacheInterface */ + protected $handler; + + /** @var integer */ + protected $expire; + + /** @var string */ + protected $prefix; + + public function __construct(\think\Cache $cache, array $config = []) + { + $this->handler = $cache->store(Arr::get($config, 'store')); + $this->expire = Arr::get($config, 'expire', 1440); + $this->prefix = Arr::get($config, 'prefix', ''); + } + + public function read(string $sessionId): string + { + return (string) $this->handler->get($this->prefix . $sessionId); + } + + public function delete(string $sessionId): bool + { + return $this->handler->delete($this->prefix . $sessionId); + } + + public function write(string $sessionId, string $data): bool + { + return $this->handler->set($this->prefix . $sessionId, $data, $this->expire); + } +} diff --git a/vendor/topthink/framework/src/think/session/driver/File.php b/vendor/topthink/framework/src/think/session/driver/File.php new file mode 100644 index 0000000..991f2cc --- /dev/null +++ b/vendor/topthink/framework/src/think/session/driver/File.php @@ -0,0 +1,249 @@ + +// +---------------------------------------------------------------------- +declare (strict_types = 1); + +namespace think\session\driver; + +use Closure; +use Exception; +use FilesystemIterator; +use Generator; +use SplFileInfo; +use think\App; +use think\contract\SessionHandlerInterface; + +/** + * Session 文件驱动 + */ +class File implements SessionHandlerInterface +{ + protected $config = [ + 'path' => '', + 'expire' => 1440, + 'prefix' => '', + 'data_compress' => false, + 'gc_probability' => 1, + 'gc_divisor' => 100, + ]; + + public function __construct(App $app, array $config = []) + { + $this->config = array_merge($this->config, $config); + + if (empty($this->config['path'])) { + $this->config['path'] = $app->getRootPath() . 'runtime' . DIRECTORY_SEPARATOR . 'session' . DIRECTORY_SEPARATOR; + } elseif (substr($this->config['path'], -1) != DIRECTORY_SEPARATOR) { + $this->config['path'] .= DIRECTORY_SEPARATOR; + } + + $this->init(); + } + + /** + * 打开Session + * @access protected + * @throws Exception + */ + protected function init(): void + { + try { + !is_dir($this->config['path']) && mkdir($this->config['path'], 0755, true); + } catch (\Exception $e) { + // 写入失败 + } + + // 垃圾回收 + if (random_int(1, $this->config['gc_divisor']) <= $this->config['gc_probability']) { + $this->gc(); + } + } + + /** + * Session 垃圾回收 + * @access public + * @return void + */ + public function gc(): void + { + $lifetime = $this->config['expire']; + $now = time(); + + $files = $this->findFiles($this->config['path'], function (SplFileInfo $item) use ($lifetime, $now) { + return $now - $lifetime > $item->getMTime(); + }); + + foreach ($files as $file) { + $this->unlink($file->getPathname()); + } + } + + /** + * 查找文件 + * @param string $root + * @param Closure $filter + * @return Generator + */ + protected function findFiles(string $root, Closure $filter) + { + $items = new FilesystemIterator($root); + + /** @var SplFileInfo $item */ + foreach ($items as $item) { + if ($item->isDir() && !$item->isLink()) { + yield from $this->findFiles($item->getPathname(), $filter); + } else { + if ($filter($item)) { + yield $item; + } + } + } + } + + /** + * 取得变量的存储文件名 + * @access protected + * @param string $name 缓存变量名 + * @param bool $auto 是否自动创建目录 + * @return string + */ + protected function getFileName(string $name, bool $auto = false): string + { + if ($this->config['prefix']) { + // 使用子目录 + $name = $this->config['prefix'] . DIRECTORY_SEPARATOR . 'sess_' . $name; + } else { + $name = 'sess_' . $name; + } + + $filename = $this->config['path'] . $name; + $dir = dirname($filename); + + if ($auto && !is_dir($dir)) { + try { + mkdir($dir, 0755, true); + } catch (\Exception $e) { + // 创建失败 + } + } + + return $filename; + } + + /** + * 读取Session + * @access public + * @param string $sessID + * @return string + */ + public function read(string $sessID): string + { + $filename = $this->getFileName($sessID); + + if (is_file($filename) && filemtime($filename) >= time() - $this->config['expire']) { + $content = $this->readFile($filename); + + if ($this->config['data_compress'] && function_exists('gzcompress')) { + //启用数据压缩 + $content = (string) gzuncompress($content); + } + + return $content; + } + + return ''; + } + + /** + * 写文件(加锁) + * @param $path + * @param $content + * @return bool + */ + protected function writeFile($path, $content): bool + { + return (bool) file_put_contents($path, $content, LOCK_EX); + } + + /** + * 读取文件内容(加锁) + * @param $path + * @return string + */ + protected function readFile($path): string + { + $contents = ''; + + $handle = fopen($path, 'rb'); + + if ($handle) { + try { + if (flock($handle, LOCK_SH)) { + clearstatcache(true, $path); + + $contents = fread($handle, filesize($path) ?: 1); + + flock($handle, LOCK_UN); + } + } finally { + fclose($handle); + } + } + + return $contents; + } + + /** + * 写入Session + * @access public + * @param string $sessID + * @param string $sessData + * @return bool + */ + public function write(string $sessID, string $sessData): bool + { + $filename = $this->getFileName($sessID, true); + $data = $sessData; + + if ($this->config['data_compress'] && function_exists('gzcompress')) { + //数据压缩 + $data = gzcompress($data, 3); + } + + return $this->writeFile($filename, $data); + } + + /** + * 删除Session + * @access public + * @param string $sessID + * @return bool + */ + public function delete(string $sessID): bool + { + try { + return $this->unlink($this->getFileName($sessID)); + } catch (\Exception $e) { + return false; + } + } + + /** + * 判断文件是否存在后,删除 + * @access private + * @param string $file + * @return bool + */ + private function unlink(string $file): bool + { + return is_file($file) && unlink($file); + } + +} diff --git a/vendor/topthink/framework/src/think/validate/ValidateRule.php b/vendor/topthink/framework/src/think/validate/ValidateRule.php new file mode 100644 index 0000000..05e275f --- /dev/null +++ b/vendor/topthink/framework/src/think/validate/ValidateRule.php @@ -0,0 +1,172 @@ + +// +---------------------------------------------------------------------- +declare (strict_types = 1); + +namespace think\validate; + +/** + * Class ValidateRule + * @package think\validate + * @method ValidateRule confirm(mixed $rule, string $msg = '') static 验证是否和某个字段的值一致 + * @method ValidateRule different(mixed $rule, string $msg = '') static 验证是否和某个字段的值是否不同 + * @method ValidateRule egt(mixed $rule, string $msg = '') static 验证是否大于等于某个值 + * @method ValidateRule gt(mixed $rule, string $msg = '') static 验证是否大于某个值 + * @method ValidateRule elt(mixed $rule, string $msg = '') static 验证是否小于等于某个值 + * @method ValidateRule lt(mixed $rule, string $msg = '') static 验证是否小于某个值 + * @method ValidateRule eg(mixed $rule, string $msg = '') static 验证是否等于某个值 + * @method ValidateRule in(mixed $rule, string $msg = '') static 验证是否在范围内 + * @method ValidateRule notIn(mixed $rule, string $msg = '') static 验证是否不在某个范围 + * @method ValidateRule between(mixed $rule, string $msg = '') static 验证是否在某个区间 + * @method ValidateRule notBetween(mixed $rule, string $msg = '') static 验证是否不在某个区间 + * @method ValidateRule length(mixed $rule, string $msg = '') static 验证数据长度 + * @method ValidateRule max(mixed $rule, string $msg = '') static 验证数据最大长度 + * @method ValidateRule min(mixed $rule, string $msg = '') static 验证数据最小长度 + * @method ValidateRule after(mixed $rule, string $msg = '') static 验证日期 + * @method ValidateRule before(mixed $rule, string $msg = '') static 验证日期 + * @method ValidateRule expire(mixed $rule, string $msg = '') static 验证有效期 + * @method ValidateRule allowIp(mixed $rule, string $msg = '') static 验证IP许可 + * @method ValidateRule denyIp(mixed $rule, string $msg = '') static 验证IP禁用 + * @method ValidateRule regex(mixed $rule, string $msg = '') static 使用正则验证数据 + * @method ValidateRule token(mixed $rule='__token__', string $msg = '') static 验证表单令牌 + * @method ValidateRule is(mixed $rule, string $msg = '') static 验证字段值是否为有效格式 + * @method ValidateRule isRequire(mixed $rule = null, string $msg = '') static 验证字段必须 + * @method ValidateRule isNumber(mixed $rule = null, string $msg = '') static 验证字段值是否为数字 + * @method ValidateRule isArray(mixed $rule = null, string $msg = '') static 验证字段值是否为数组 + * @method ValidateRule isInteger(mixed $rule = null, string $msg = '') static 验证字段值是否为整形 + * @method ValidateRule isFloat(mixed $rule = null, string $msg = '') static 验证字段值是否为浮点数 + * @method ValidateRule isMobile(mixed $rule = null, string $msg = '') static 验证字段值是否为手机 + * @method ValidateRule isIdCard(mixed $rule = null, string $msg = '') static 验证字段值是否为身份证号码 + * @method ValidateRule isChs(mixed $rule = null, string $msg = '') static 验证字段值是否为中文 + * @method ValidateRule isChsDash(mixed $rule = null, string $msg = '') static 验证字段值是否为中文字母及下划线 + * @method ValidateRule isChsAlpha(mixed $rule = null, string $msg = '') static 验证字段值是否为中文和字母 + * @method ValidateRule isChsAlphaNum(mixed $rule = null, string $msg = '') static 验证字段值是否为中文字母和数字 + * @method ValidateRule isDate(mixed $rule = null, string $msg = '') static 验证字段值是否为有效格式 + * @method ValidateRule isBool(mixed $rule = null, string $msg = '') static 验证字段值是否为布尔值 + * @method ValidateRule isAlpha(mixed $rule = null, string $msg = '') static 验证字段值是否为字母 + * @method ValidateRule isAlphaDash(mixed $rule = null, string $msg = '') static 验证字段值是否为字母和下划线 + * @method ValidateRule isAlphaNum(mixed $rule = null, string $msg = '') static 验证字段值是否为字母和数字 + * @method ValidateRule isAccepted(mixed $rule = null, string $msg = '') static 验证字段值是否为yes, on, 或是 1 + * @method ValidateRule isEmail(mixed $rule = null, string $msg = '') static 验证字段值是否为有效邮箱格式 + * @method ValidateRule isUrl(mixed $rule = null, string $msg = '') static 验证字段值是否为有效URL地址 + * @method ValidateRule activeUrl(mixed $rule, string $msg = '') static 验证是否为合格的域名或者IP + * @method ValidateRule ip(mixed $rule, string $msg = '') static 验证是否有效IP + * @method ValidateRule fileExt(mixed $rule, string $msg = '') static 验证文件后缀 + * @method ValidateRule fileMime(mixed $rule, string $msg = '') static 验证文件类型 + * @method ValidateRule fileSize(mixed $rule, string $msg = '') static 验证文件大小 + * @method ValidateRule image(mixed $rule, string $msg = '') static 验证图像文件 + * @method ValidateRule method(mixed $rule, string $msg = '') static 验证请求类型 + * @method ValidateRule dateFormat(mixed $rule, string $msg = '') static 验证时间和日期是否符合指定格式 + * @method ValidateRule unique(mixed $rule, string $msg = '') static 验证是否唯一 + * @method ValidateRule behavior(mixed $rule, string $msg = '') static 使用行为类验证 + * @method ValidateRule filter(mixed $rule, string $msg = '') static 使用filter_var方式验证 + * @method ValidateRule requireIf(mixed $rule, string $msg = '') static 验证某个字段等于某个值的时候必须 + * @method ValidateRule requireCallback(mixed $rule, string $msg = '') static 通过回调方法验证某个字段是否必须 + * @method ValidateRule requireWith(mixed $rule, string $msg = '') static 验证某个字段有值的情况下必须 + * @method ValidateRule must(mixed $rule = null, string $msg = '') static 必须验证 + */ +class ValidateRule +{ + // 验证字段的名称 + protected $title; + + // 当前验证规则 + protected $rule = []; + + // 验证提示信息 + protected $message = []; + + /** + * 添加验证因子 + * @access protected + * @param string $name 验证名称 + * @param mixed $rule 验证规则 + * @param string $msg 提示信息 + * @return $this + */ + protected function addItem(string $name, $rule = null, string $msg = '') + { + if ($rule || 0 === $rule) { + $this->rule[$name] = $rule; + } else { + $this->rule[] = $name; + } + + $this->message[] = $msg; + + return $this; + } + + /** + * 获取验证规则 + * @access public + * @return array + */ + public function getRule(): array + { + return $this->rule; + } + + /** + * 获取验证字段名称 + * @access public + * @return string + */ + public function getTitle(): string + { + return $this->title ?: ''; + } + + /** + * 获取验证提示 + * @access public + * @return array + */ + public function getMsg(): array + { + return $this->message; + } + + /** + * 设置验证字段名称 + * @access public + * @return $this + */ + public function title(string $title) + { + $this->title = $title; + + return $this; + } + + public function __call($method, $args) + { + if ('is' == strtolower(substr($method, 0, 2))) { + $method = substr($method, 2); + } + + array_unshift($args, lcfirst($method)); + + return call_user_func_array([$this, 'addItem'], $args); + } + + public static function __callStatic($method, $args) + { + $rule = new static(); + + if ('is' == strtolower(substr($method, 0, 2))) { + $method = substr($method, 2); + } + + array_unshift($args, lcfirst($method)); + + return call_user_func_array([$rule, 'addItem'], $args); + } +} diff --git a/vendor/topthink/framework/src/think/view/driver/Php.php b/vendor/topthink/framework/src/think/view/driver/Php.php new file mode 100644 index 0000000..0713a56 --- /dev/null +++ b/vendor/topthink/framework/src/think/view/driver/Php.php @@ -0,0 +1,191 @@ + +// +---------------------------------------------------------------------- +declare (strict_types = 1); + +namespace think\view\driver; + +use RuntimeException; +use think\App; +use think\contract\TemplateHandlerInterface; +use think\helper\Str; + +/** + * PHP原生模板驱动 + */ +class Php implements TemplateHandlerInterface +{ + protected $template; + protected $content; + protected $app; + + // 模板引擎参数 + protected $config = [ + // 默认模板渲染规则 1 解析为小写+下划线 2 全部转换小写 3 保持操作方法 + 'auto_rule' => 1, + // 视图目录名 + 'view_dir_name' => 'view', + // 应用模板路径 + 'view_path' => '', + // 模板文件后缀 + 'view_suffix' => 'php', + // 模板文件名分隔符 + 'view_depr' => DIRECTORY_SEPARATOR, + ]; + + public function __construct(App $app, array $config = []) + { + $this->app = $app; + $this->config = array_merge($this->config, (array) $config); + } + + /** + * 检测是否存在模板文件 + * @access public + * @param string $template 模板文件或者模板规则 + * @return bool + */ + public function exists(string $template): bool + { + if ('' == pathinfo($template, PATHINFO_EXTENSION)) { + // 获取模板文件名 + $template = $this->parseTemplate($template); + } + + return is_file($template); + } + + /** + * 渲染模板文件 + * @access public + * @param string $template 模板文件 + * @param array $data 模板变量 + * @return void + */ + public function fetch(string $template, array $data = []): void + { + if ('' == pathinfo($template, PATHINFO_EXTENSION)) { + // 获取模板文件名 + $template = $this->parseTemplate($template); + } + + // 模板不存在 抛出异常 + if (!is_file($template)) { + throw new RuntimeException('template not exists:' . $template); + } + + $this->template = $template; + + extract($data, EXTR_OVERWRITE); + + include $this->template; + } + + /** + * 渲染模板内容 + * @access public + * @param string $content 模板内容 + * @param array $data 模板变量 + * @return void + */ + public function display(string $content, array $data = []): void + { + $this->content = $content; + + extract($data, EXTR_OVERWRITE); + eval('?>' . $this->content); + } + + /** + * 自动定位模板文件 + * @access private + * @param string $template 模板文件规则 + * @return string + */ + private function parseTemplate(string $template): string + { + $request = $this->app->request; + + // 获取视图根目录 + if (strpos($template, '@')) { + // 跨应用调用 + [$app, $template] = explode('@', $template); + } + + if ($this->config['view_path'] && !isset($app)) { + $path = $this->config['view_path']; + } else { + $appName = isset($app) ? $app : $this->app->http->getName(); + $view = $this->config['view_dir_name']; + + if (is_dir($this->app->getAppPath() . $view)) { + $path = isset($app) ? $this->app->getBasePath() . ($appName ? $appName . DIRECTORY_SEPARATOR : '') . $view . DIRECTORY_SEPARATOR : $this->app->getAppPath() . $view . DIRECTORY_SEPARATOR; + } else { + $path = $this->app->getRootPath() . $view . DIRECTORY_SEPARATOR . ($appName ? $appName . DIRECTORY_SEPARATOR : ''); + } + } + + $depr = $this->config['view_depr']; + + if (0 !== strpos($template, '/')) { + $template = str_replace(['/', ':'], $depr, $template); + $controller = $request->controller(); + if (strpos($controller, '.')) { + $pos = strrpos($controller, '.'); + $controller = substr($controller, 0, $pos) . '.' . Str::snake(substr($controller, $pos + 1)); + } else { + $controller = Str::snake($controller); + } + + if ($controller) { + if ('' == $template) { + // 如果模板文件名为空 按照默认规则定位 + if (2 == $this->config['auto_rule']) { + $template = $request->action(true); + } elseif (3 == $this->config['auto_rule']) { + $template = $request->action(); + } else { + $template = Str::snake($request->action()); + } + + $template = str_replace('.', DIRECTORY_SEPARATOR, $controller) . $depr . $template; + } elseif (false === strpos($template, $depr)) { + $template = str_replace('.', DIRECTORY_SEPARATOR, $controller) . $depr . $template; + } + } + } else { + $template = str_replace(['/', ':'], $depr, substr($template, 1)); + } + + return $path . ltrim($template, '/') . '.' . ltrim($this->config['view_suffix'], '.'); + } + + /** + * 配置模板引擎 + * @access private + * @param array $config 参数 + * @return void + */ + public function config(array $config): void + { + $this->config = array_merge($this->config, $config); + } + + /** + * 获取模板引擎配置 + * @access public + * @param string $name 参数名 + * @return mixed + */ + public function getConfig(string $name) + { + return $this->config[$name] ?? null; + } +} diff --git a/vendor/topthink/framework/src/tpl/think_exception.tpl b/vendor/topthink/framework/src/tpl/think_exception.tpl new file mode 100644 index 0000000..7766caf --- /dev/null +++ b/vendor/topthink/framework/src/tpl/think_exception.tpl @@ -0,0 +1,502 @@ +'.end($names).''; + } +} + +if (!function_exists('parse_file')) { + function parse_file($file, $line) + { + return ''.basename($file)." line {$line}".''; + } +} + +if (!function_exists('parse_args')) { + function parse_args($args) + { + $result = []; + foreach ($args as $key => $item) { + switch (true) { + case is_object($item): + $value = sprintf('object(%s)', parse_class(get_class($item))); + break; + case is_array($item): + if (count($item) > 3) { + $value = sprintf('[%s, ...]', parse_args(array_slice($item, 0, 3))); + } else { + $value = sprintf('[%s]', parse_args($item)); + } + break; + case is_string($item): + if (strlen($item) > 20) { + $value = sprintf( + '\'%s...\'', + htmlentities($item), + htmlentities(substr($item, 0, 20)) + ); + } else { + $value = sprintf("'%s'", htmlentities($item)); + } + break; + case is_int($item): + case is_float($item): + $value = $item; + break; + case is_null($item): + $value = 'null'; + break; + case is_bool($item): + $value = '' . ($item ? 'true' : 'false') . ''; + break; + case is_resource($item): + $value = 'resource'; + break; + default: + $value = htmlentities(str_replace("\n", '', var_export(strval($item), true))); + break; + } + + $result[] = is_int($key) ? $value : "'{$key}' => {$value}"; + } + + return implode(', ', $result); + } +} +if (!function_exists('echo_value')) { + function echo_value($val) + { + if (is_array($val) || is_object($val)) { + echo htmlentities(json_encode($val, JSON_PRETTY_PRINT)); + } elseif (is_bool($val)) { + echo $val ? 'true' : 'false'; + } elseif (is_scalar($val)) { + echo htmlentities($val); + } else { + echo 'Resource'; + } + } +} +?> + + + + + 系统发生错误 + + + + + + $trace) { ?> +
                  +
                  +
                  +
                  +

                  +
                  +

                  +
                  +
                  + +
                  +
                    $value) { ?>
                  1. ">
                  +
                  + +
                  +

                  Call Stack

                  +
                    +
                  1. + +
                  2. + +
                  3. + +
                  +
                  +
                  + + +
                  +

                  +
                  + + + +
                  +

                  Exception Datas

                  + $value) { ?> + + + + + + + $val) { ?> + + + + + + + +
                  empty
                  + +
                  + + + +
                  +

                  Environment Variables

                  + $value) { ?> + + + + + + + $val) { ?> + + + + + + + +
                  empty
                  + +
                  + + + + + + + + diff --git a/vendor/topthink/framework/tests/AppTest.php b/vendor/topthink/framework/tests/AppTest.php new file mode 100644 index 0000000..6b86015 --- /dev/null +++ b/vendor/topthink/framework/tests/AppTest.php @@ -0,0 +1,215 @@ + 'class', + ]; + + public function register() + { + + } + + public function boot() + { + + } +} + +/** + * @property array initializers + */ +class AppTest extends TestCase +{ + /** @var App */ + protected $app; + + protected function setUp() + { + $this->app = new App(); + } + + protected function tearDown(): void + { + m::close(); + } + + public function testService() + { + $this->app->register(stdClass::class); + + $this->assertInstanceOf(stdClass::class, $this->app->getService(stdClass::class)); + + $service = m::mock(SomeService::class); + + $service->shouldReceive('register')->once(); + + $this->app->register($service); + + $this->assertEquals($service, $this->app->getService(SomeService::class)); + + $service2 = m::mock(SomeService::class); + + $service2->shouldReceive('register')->once(); + + $this->app->register($service2); + + $this->assertEquals($service, $this->app->getService(SomeService::class)); + + $this->app->register($service2, true); + + $this->assertEquals($service2, $this->app->getService(SomeService::class)); + + $service->shouldReceive('boot')->once(); + $service2->shouldReceive('boot')->once(); + + $this->app->boot(); + } + + public function testDebug() + { + $this->app->debug(false); + + $this->assertFalse($this->app->isDebug()); + + $this->app->debug(true); + + $this->assertTrue($this->app->isDebug()); + } + + public function testNamespace() + { + $namespace = 'test'; + + $this->app->setNamespace($namespace); + + $this->assertEquals($namespace, $this->app->getNamespace()); + } + + public function testVersion() + { + $this->assertEquals(App::VERSION, $this->app->version()); + } + + public function testPath() + { + $rootPath = __DIR__ . DIRECTORY_SEPARATOR; + + $app = new App($rootPath); + + $this->assertEquals($rootPath, $app->getRootPath()); + + $this->assertEquals(dirname(__DIR__) . DIRECTORY_SEPARATOR . 'src' . DIRECTORY_SEPARATOR, $app->getThinkPath()); + + $this->assertEquals($rootPath . 'app' . DIRECTORY_SEPARATOR, $app->getAppPath()); + + $appPath = $rootPath . 'app' . DIRECTORY_SEPARATOR . 'admin' . DIRECTORY_SEPARATOR; + $app->setAppPath($appPath); + $this->assertEquals($appPath, $app->getAppPath()); + + $this->assertEquals($rootPath . 'app' . DIRECTORY_SEPARATOR, $app->getBasePath()); + + $this->assertEquals($rootPath . 'config' . DIRECTORY_SEPARATOR, $app->getConfigPath()); + + $this->assertEquals($rootPath . 'runtime' . DIRECTORY_SEPARATOR, $app->getRuntimePath()); + + $runtimePath = $rootPath . 'runtime' . DIRECTORY_SEPARATOR . 'admin' . DIRECTORY_SEPARATOR; + $app->setRuntimePath($runtimePath); + $this->assertEquals($runtimePath, $app->getRuntimePath()); + } + + /** + * @param vfsStreamDirectory $root + * @param bool $debug + * @return App + */ + protected function prepareAppForInitialize(vfsStreamDirectory $root, $debug = true) + { + $rootPath = $root->url() . DIRECTORY_SEPARATOR; + + $app = new App($rootPath); + + $initializer = m::mock(); + $initializer->shouldReceive('init')->once()->with($app); + + $app->instance($initializer->mockery_getName(), $initializer); + + (function () use ($initializer) { + $this->initializers = [$initializer->mockery_getName()]; + })->call($app); + + $env = m::mock(Env::class); + $env->shouldReceive('load')->once()->with($rootPath . '.env'); + $env->shouldReceive('get')->once()->with('config_ext', '.php')->andReturn('.php'); + $env->shouldReceive('get')->once()->with('app_debug')->andReturn($debug); + + $event = m::mock(Event::class); + $event->shouldReceive('trigger')->once()->with(AppInit::class); + $event->shouldReceive('bind')->once()->with([]); + $event->shouldReceive('listenEvents')->once()->with([]); + $event->shouldReceive('subscribe')->once()->with([]); + + $app->instance('env', $env); + $app->instance('event', $event); + + return $app; + } + + public function testInitialize() + { + $root = vfsStream::setup('rootDir', null, [ + '.env' => '', + 'app' => [ + 'common.php' => '', + 'event.php' => '[],"listen"=>[],"subscribe"=>[]];', + 'provider.php' => ' [ + 'app.php' => 'prepareAppForInitialize($root, true); + + $app->debug(false); + + $app->initialize(); + + $this->assertIsInt($app->getBeginMem()); + $this->assertIsFloat($app->getBeginTime()); + + $this->assertTrue($app->initialized()); + } + + public function testFactory() + { + $this->assertInstanceOf(stdClass::class, App::factory(stdClass::class)); + + $this->expectException(ClassNotFoundException::class); + + App::factory('SomeClass'); + } + + public function testParseClass() + { + $this->assertEquals('app\\controller\\SomeClass', $this->app->parseClass('controller', 'some_class')); + $this->app->setNamespace('app2'); + $this->assertEquals('app2\\controller\\SomeClass', $this->app->parseClass('controller', 'some_class')); + } + +} diff --git a/vendor/topthink/framework/tests/CacheTest.php b/vendor/topthink/framework/tests/CacheTest.php new file mode 100644 index 0000000..58947d3 --- /dev/null +++ b/vendor/topthink/framework/tests/CacheTest.php @@ -0,0 +1,149 @@ +app = m::mock(App::class)->makePartial(); + + Container::setInstance($this->app); + $this->app->shouldReceive('make')->with(App::class)->andReturn($this->app); + $this->config = m::mock(Config::class)->makePartial(); + $this->app->shouldReceive('get')->with('config')->andReturn($this->config); + + $this->cache = new Cache($this->app); + } + + public function testGetConfig() + { + $config = [ + 'default' => 'file', + ]; + + $this->config->shouldReceive('get')->with('cache')->andReturn($config); + + $this->assertEquals($config, $this->cache->getConfig()); + + $this->expectException(InvalidArgumentException::class); + $this->cache->getStoreConfig('foo'); + } + + public function testCacheManagerInstances() + { + $this->config->shouldReceive('get')->with("cache.stores.single", null)->andReturn(['type' => 'file']); + + $channel1 = $this->cache->store('single'); + $channel2 = $this->cache->store('single'); + + $this->assertSame($channel1, $channel2); + } + + public function testFileCache() + { + $root = vfsStream::setup(); + + $this->config->shouldReceive('get')->with("cache.default", null)->andReturn('file'); + + $this->config->shouldReceive('get')->with("cache.stores.file", null)->andReturn(['type' => 'file', 'path' => $root->url()]); + + $this->cache->set('foo', 5); + $this->cache->inc('foo'); + $this->assertEquals(6, $this->cache->get('foo')); + $this->cache->dec('foo', 2); + $this->assertEquals(4, $this->cache->get('foo')); + + $this->cache->set('bar', true); + $this->assertTrue($this->cache->get('bar')); + + $this->cache->set('baz', null); + $this->assertNull($this->cache->get('baz')); + + $this->assertTrue($this->cache->has('baz')); + $this->cache->delete('baz'); + $this->assertFalse($this->cache->has('baz')); + $this->assertNull($this->cache->get('baz')); + $this->assertFalse($this->cache->get('baz', false)); + + $this->assertTrue($root->hasChildren()); + $this->cache->clear(); + $this->assertFalse($root->hasChildren()); + + //tags + $this->cache->tag('foo')->set('bar', 'foobar'); + $this->assertEquals('foobar', $this->cache->get('bar')); + $this->cache->tag('foo')->clear(); + $this->assertFalse($this->cache->has('bar')); + + //multiple + $this->cache->setMultiple(['foo' => ['foobar', 'bar'], 'foobar' => ['foo', 'bar']]); + $this->assertEquals(['foo' => ['foobar', 'bar'], 'foobar' => ['foo', 'bar']], $this->cache->getMultiple(['foo', 'foobar'])); + $this->assertTrue($this->cache->deleteMultiple(['foo', 'foobar'])); + } + + public function testRedisCache() + { + if (extension_loaded('redis')) { + return; + } + $this->config->shouldReceive('get')->with("cache.default", null)->andReturn('redis'); + $this->config->shouldReceive('get')->with("cache.stores.redis", null)->andReturn(['type' => 'redis']); + + $redis = m::mock('overload:\Predis\Client'); + + $redis->shouldReceive("set")->once()->with('foo', 5)->andReturnTrue(); + $redis->shouldReceive("incrby")->once()->with('foo', 1)->andReturnTrue(); + $redis->shouldReceive("decrby")->once()->with('foo', 2)->andReturnTrue(); + $redis->shouldReceive("get")->once()->with('foo')->andReturn(6); + $redis->shouldReceive("get")->once()->with('foo')->andReturn(4); + $redis->shouldReceive("set")->once()->with('bar', serialize(true))->andReturnTrue(); + $redis->shouldReceive("set")->once()->with('baz', serialize(null))->andReturnTrue(); + $redis->shouldReceive("del")->once()->with('baz')->andReturnTrue(); + $redis->shouldReceive("flushDB")->once()->andReturnTrue(); + $redis->shouldReceive("set")->once()->with('bar', serialize('foobar'))->andReturnTrue(); + $redis->shouldReceive("sAdd")->once()->with('tag:' . md5('foo'), 'bar')->andReturnTrue(); + $redis->shouldReceive("sMembers")->once()->with('tag:' . md5('foo'))->andReturn(['bar']); + $redis->shouldReceive("del")->once()->with(['bar'])->andReturnTrue(); + $redis->shouldReceive("del")->once()->with('tag:' . md5('foo'))->andReturnTrue(); + + $this->cache->set('foo', 5); + $this->cache->inc('foo'); + $this->assertEquals(6, $this->cache->get('foo')); + $this->cache->dec('foo', 2); + $this->assertEquals(4, $this->cache->get('foo')); + + $this->cache->set('bar', true); + $this->cache->set('baz', null); + $this->cache->delete('baz'); + $this->cache->clear(); + + //tags + $this->cache->tag('foo')->set('bar', 'foobar'); + $this->cache->tag('foo')->clear(); + } +} diff --git a/vendor/topthink/framework/tests/ConfigTest.php b/vendor/topthink/framework/tests/ConfigTest.php new file mode 100644 index 0000000..271a34f --- /dev/null +++ b/vendor/topthink/framework/tests/ConfigTest.php @@ -0,0 +1,46 @@ +setContent(" 'value1','key2'=>'value2'];"); + $root->addChild($file); + + $config = new Config(); + + $config->load($file->url(), 'test'); + + $this->assertEquals('value1', $config->get('test.key1')); + $this->assertEquals('value2', $config->get('test.key2')); + + $this->assertSame(['key1' => 'value1', 'key2' => 'value2'], $config->get('test')); + } + + public function testSetAndGet() + { + $config = new Config(); + + $config->set([ + 'key1' => 'value1', + 'key2' => [ + 'key3' => 'value3', + ], + ], 'test'); + + $this->assertTrue($config->has('test.key1')); + $this->assertEquals('value1', $config->get('test.key1')); + $this->assertEquals('value3', $config->get('test.key2.key3')); + + $this->assertEquals(['key3' => 'value3'], $config->get('test.key2')); + $this->assertFalse($config->has('test.key3')); + $this->assertEquals('none', $config->get('test.key3', 'none')); + } +} diff --git a/vendor/topthink/framework/tests/ContainerTest.php b/vendor/topthink/framework/tests/ContainerTest.php new file mode 100644 index 0000000..72ff1d0 --- /dev/null +++ b/vendor/topthink/framework/tests/ContainerTest.php @@ -0,0 +1,313 @@ +name = $name; + } + + public function some(Container $container) + { + } + + protected function protectionFun() + { + return true; + } + + public static function test(Container $container) + { + return $container; + } + + public static function __make() + { + return new self('Taylor'); + } +} + +class SomeClass +{ + public $container; + + public $count = 0; + + public function __construct(Container $container) + { + $this->container = $container; + } +} + +class ContainerTest extends TestCase +{ + protected function tearDown(): void + { + Container::setInstance(null); + } + + public function testClosureResolution() + { + $container = new Container; + + Container::setInstance($container); + + $container->bind('name', function () { + return 'Taylor'; + }); + + $this->assertEquals('Taylor', $container->make('name')); + + $this->assertEquals('Taylor', Container::pull('name')); + } + + public function testGet() + { + $container = new Container; + + $this->expectException(ClassNotFoundException::class); + $this->expectExceptionMessage('class not exists: name'); + $container->get('name'); + + $container->bind('name', function () { + return 'Taylor'; + }); + + $this->assertSame('Taylor', $container->get('name')); + } + + public function testExist() + { + $container = new Container; + + $container->bind('name', function () { + return 'Taylor'; + }); + + $this->assertFalse($container->exists("name")); + + $container->make('name'); + + $this->assertTrue($container->exists('name')); + } + + public function testInstance() + { + $container = new Container; + + $container->bind('name', function () { + return 'Taylor'; + }); + + $this->assertEquals('Taylor', $container->get('name')); + + $container->bind('name2', Taylor::class); + + $object = new stdClass(); + + $this->assertFalse($container->exists('name2')); + + $container->instance('name2', $object); + + $this->assertTrue($container->exists('name2')); + + $this->assertTrue($container->exists(Taylor::class)); + + $this->assertEquals($object, $container->make(Taylor::class)); + + unset($container->name1); + + $this->assertFalse($container->exists('name1')); + + $container->delete('name2'); + + $this->assertFalse($container->exists('name2')); + + foreach ($container as $class => $instance) { + + } + } + + public function testBind() + { + $container = new Container; + + $object = new stdClass(); + + $container->bind(['name' => Taylor::class]); + + $container->bind('name2', $object); + + $container->bind('name3', Taylor::class); + + $container->name4 = $object; + + $container['name5'] = $object; + + $this->assertTrue(isset($container->name4)); + + $this->assertTrue(isset($container['name5'])); + + $this->assertInstanceOf(Taylor::class, $container->get('name')); + + $this->assertSame($object, $container->get('name2')); + + $this->assertSame($object, $container->name4); + + $this->assertSame($object, $container['name5']); + + $this->assertInstanceOf(Taylor::class, $container->get('name3')); + + unset($container['name']); + + $this->assertFalse(isset($container['name'])); + + unset($container->name3); + + $this->assertFalse(isset($container->name3)); + } + + public function testAutoConcreteResolution() + { + $container = new Container; + + $taylor = $container->make(Taylor::class); + + $this->assertInstanceOf(Taylor::class, $taylor); + $this->assertAttributeSame('Taylor', 'name', $taylor); + } + + public function testGetAndSetInstance() + { + $this->assertInstanceOf(Container::class, Container::getInstance()); + + $object = new stdClass(); + + Container::setInstance($object); + + $this->assertSame($object, Container::getInstance()); + + Container::setInstance(function () { + return $this; + }); + + $this->assertSame($this, Container::getInstance()); + } + + public function testResolving() + { + $container = new Container(); + $container->bind(Container::class, $container); + + $container->resolving(function (SomeClass $taylor, Container $container) { + $taylor->count++; + }); + $container->resolving(SomeClass::class, function (SomeClass $taylor, Container $container) { + $taylor->count++; + }); + + /** @var SomeClass $someClass */ + $someClass = $container->invokeClass(SomeClass::class); + $this->assertEquals(2, $someClass->count); + } + + public function testInvokeFunctionWithoutMethodThrowsException() + { + $this->expectException(FuncNotFoundException::class); + $this->expectExceptionMessage('function not exists: ContainerTestCallStub()'); + $container = new Container(); + $container->invokeFunction('ContainerTestCallStub', []); + } + + public function testInvokeProtectionMethod() + { + $container = new Container(); + $this->assertTrue($container->invokeMethod([Taylor::class, 'protectionFun'], [], true)); + } + + public function testInvoke() + { + $container = new Container(); + + Container::setInstance($container); + + $container->bind(Container::class, $container); + + $stub = $this->createMock(Taylor::class); + + $stub->expects($this->once())->method('some')->with($container)->will($this->returnSelf()); + + $container->invokeMethod([$stub, 'some']); + + $this->assertEquals('48', $container->invoke('ord', ['0'])); + + $this->assertSame($container, $container->invoke(Taylor::class . '::test', [])); + + $this->assertSame($container, $container->invokeMethod(Taylor::class . '::test')); + + $reflect = new ReflectionMethod($container, 'exists'); + + $this->assertTrue($container->invokeReflectMethod($container, $reflect, [Container::class])); + + $this->assertSame($container, $container->invoke(function (Container $container) { + return $container; + })); + + $this->assertSame($container, $container->invoke(Taylor::class . '::test')); + + $object = $container->invokeClass(SomeClass::class); + $this->assertInstanceOf(SomeClass::class, $object); + $this->assertSame($container, $object->container); + + $stdClass = new stdClass(); + + $container->invoke(function (Container $container, stdClass $stdObject, $key1, $lowKey, $key2 = 'default') use ($stdClass) { + $this->assertEquals('value1', $key1); + $this->assertEquals('default', $key2); + $this->assertEquals('value2', $lowKey); + $this->assertSame($stdClass, $stdObject); + return $container; + }, ['some' => $stdClass, 'key1' => 'value1', 'low_key' => 'value2']); + } + + public function testInvokeMethodNotExists() + { + $container = $this->resolveContainer(); + $this->expectException(FuncNotFoundException::class); + + $container->invokeMethod([SomeClass::class, 'any']); + } + + public function testInvokeClassNotExists() + { + $container = new Container(); + + Container::setInstance($container); + + $container->bind(Container::class, $container); + + $this->expectExceptionObject(new ClassNotFoundException('class not exists: SomeClass')); + + $container->invokeClass('SomeClass'); + } + + protected function resolveContainer() + { + $container = new Container(); + + Container::setInstance($container); + return $container; + } + +} diff --git a/vendor/topthink/framework/tests/DbTest.php b/vendor/topthink/framework/tests/DbTest.php new file mode 100644 index 0000000..cffdc84 --- /dev/null +++ b/vendor/topthink/framework/tests/DbTest.php @@ -0,0 +1,44 @@ +shouldReceive('get')->with('database.foo', null)->andReturn('foo'); + $this->assertEquals('foo', $db->getConfig('foo')); + + $config->shouldReceive('get')->with('database', [])->andReturn([]); + $this->assertEquals([], $db->getConfig()); + + $callback = function () { + }; + $event->shouldReceive('listen')->with('db.some', $callback); + $db->event('some', $callback); + + $event->shouldReceive('trigger')->with('db.some', null, false); + $db->trigger('some'); + } + +} diff --git a/vendor/topthink/framework/tests/EnvTest.php b/vendor/topthink/framework/tests/EnvTest.php new file mode 100644 index 0000000..cf2e65f --- /dev/null +++ b/vendor/topthink/framework/tests/EnvTest.php @@ -0,0 +1,82 @@ +setContent("key1=value1\nkey2=value2"); + $root->addChild($envFile); + + $env = new Env(); + + $env->load($envFile->url()); + + $this->assertEquals('value1', $env->get('key1')); + $this->assertEquals('value2', $env->get('key2')); + + $this->assertSame(['KEY1' => 'value1', 'KEY2' => 'value2'], $env->get()); + } + + public function testServerEnv() + { + $env = new Env(); + + $this->assertEquals('value2', $env->get('key2', 'value2')); + + putenv('PHP_KEY7=value7'); + putenv('PHP_KEY8=false'); + putenv('PHP_KEY9=true'); + + $this->assertEquals('value7', $env->get('key7')); + $this->assertFalse($env->get('KEY8')); + $this->assertTrue($env->get('key9')); + } + + public function testSetEnv() + { + $env = new Env(); + + $env->set([ + 'key1' => 'value1', + 'key2' => [ + 'key1' => 'value1-2', + ], + ]); + + $env->set('key3', 'value3'); + + $env->key4 = 'value4'; + + $env['key5'] = 'value5'; + + $this->assertEquals('value1', $env->get('key1')); + $this->assertEquals('value1-2', $env->get('key2.key1')); + + $this->assertEquals('value3', $env->get('key3')); + + $this->assertEquals('value4', $env->key4); + + $this->assertEquals('value5', $env['key5']); + + $this->expectException(Exception::class); + + unset($env['key5']); + } + + public function testHasEnv() + { + $env = new Env(); + $env->set(['foo' => 'bar']); + $this->assertTrue($env->has('foo')); + $this->assertTrue(isset($env->foo)); + $this->assertTrue($env->offsetExists('foo')); + } +} diff --git a/vendor/topthink/framework/tests/EventTest.php b/vendor/topthink/framework/tests/EventTest.php new file mode 100644 index 0000000..707a35b --- /dev/null +++ b/vendor/topthink/framework/tests/EventTest.php @@ -0,0 +1,143 @@ +app = m::mock(App::class)->makePartial(); + + Container::setInstance($this->app); + $this->app->shouldReceive('make')->with(App::class)->andReturn($this->app); + $this->config = m::mock(Config::class)->makePartial(); + $this->app->shouldReceive('get')->with('config')->andReturn($this->config); + + $this->event = new Event($this->app); + } + + public function testBasic() + { + $this->event->bind(['foo' => 'baz']); + + $this->event->listen('foo', function ($bar) { + $this->assertEquals('bar', $bar); + }); + + $this->assertTrue($this->event->hasListener('foo')); + + $this->event->trigger('baz', 'bar'); + + $this->event->remove('foo'); + + $this->assertFalse($this->event->hasListener('foo')); + } + + public function testOnceEvent() + { + $this->event->listen('AppInit', function ($bar) { + $this->assertEquals('bar', $bar); + return 'foo'; + }); + + $this->assertEquals('foo', $this->event->trigger('AppInit', 'bar', true)); + $this->assertEquals(['foo'], $this->event->trigger('AppInit', 'bar')); + } + + public function testClassListener() + { + $listener = m::mock("overload:SomeListener", TestListener::class); + + $listener->shouldReceive('handle')->andReturnTrue(); + + $this->event->listen('some', "SomeListener"); + + $this->assertTrue($this->event->until('some')); + } + + public function testSubscribe() + { + $listener = m::mock("overload:SomeListener", TestListener::class); + + $listener->shouldReceive('subscribe')->andReturnUsing(function (Event $event) use ($listener) { + + $listener->shouldReceive('onBar')->once()->andReturnFalse(); + + $event->listenEvents(['SomeListener::onBar' => [[$listener, 'onBar']]]); + }); + + $this->event->subscribe('SomeListener'); + + $this->assertTrue($this->event->hasListener('SomeListener::onBar')); + + $this->event->trigger('SomeListener::onBar'); + } + + public function testAutoObserve() + { + $listener = m::mock("overload:SomeListener", TestListener::class); + + $listener->shouldReceive('onBar')->once(); + + $this->app->shouldReceive('make')->with('SomeListener')->andReturn($listener); + + $this->event->observe('SomeListener'); + + $this->event->trigger('bar'); + } + + public function testWithoutEvent() + { + $this->event->withEvent(false); + + $this->event->listen('SomeListener', TestListener::class); + + $this->assertFalse($this->event->hasListener('SomeListener')); + } + +} + +class TestListener +{ + public function handle() + { + + } + + public function onBar() + { + + } + + public function onFoo() + { + + } + + public function subscribe() + { + + } +} diff --git a/vendor/topthink/framework/tests/FilesystemTest.php b/vendor/topthink/framework/tests/FilesystemTest.php new file mode 100644 index 0000000..df5ffe2 --- /dev/null +++ b/vendor/topthink/framework/tests/FilesystemTest.php @@ -0,0 +1,131 @@ +app = m::mock(App::class)->makePartial(); + Container::setInstance($this->app); + $this->app->shouldReceive('make')->with(App::class)->andReturn($this->app); + $this->config = m::mock(Config::class); + $this->config->shouldReceive('get')->with('filesystem.default', null)->andReturn('local'); + $this->app->shouldReceive('get')->with('config')->andReturn($this->config); + $this->filesystem = new Filesystem($this->app); + + $this->root = vfsStream::setup('rootDir'); + } + + protected function tearDown(): void + { + m::close(); + } + + public function testDisk() + { + $this->config->shouldReceive('get')->with('filesystem.disks.local', null)->andReturn([ + 'type' => 'local', + 'root' => $this->root->url(), + ]); + + $this->config->shouldReceive('get')->with('filesystem.disks.foo', null)->andReturn([ + 'type' => 'local', + 'root' => $this->root->url(), + ]); + + $this->assertInstanceOf(Local::class, $this->filesystem->disk()); + + $this->assertInstanceOf(Local::class, $this->filesystem->disk('foo')); + } + + public function testCache() + { + $this->config->shouldReceive('get')->with('filesystem.disks.local', null)->andReturn([ + 'type' => 'local', + 'root' => $this->root->url(), + 'cache' => true, + ]); + + $this->assertInstanceOf(Local::class, $this->filesystem->disk()); + + $this->config->shouldReceive('get')->with('filesystem.disks.cache', null)->andReturn([ + 'type' => NullDriver::class, + 'root' => $this->root->url(), + 'cache' => [ + 'store' => 'flysystem', + ], + ]); + + $cache = m::mock(Cache::class); + + $cacheDriver = m::mock(File::class); + + $cache->shouldReceive('store')->once()->with('flysystem')->andReturn($cacheDriver); + + $this->app->shouldReceive('make')->with(Cache::class)->andReturn($cache); + + $cacheDriver->shouldReceive('get')->with('flysystem')->once()->andReturn(null); + + $cacheDriver->shouldReceive('set')->withAnyArgs(); + + $this->filesystem->disk('cache')->put('test.txt', 'aa'); + } + + public function testPutFile() + { + $root = vfsStream::setup('rootDir', null, [ + 'foo.jpg' => 'hello', + ]); + + $this->config->shouldReceive('get')->with('filesystem.disks.local', null)->andReturn([ + 'type' => NullDriver::class, + 'root' => $root->url(), + 'cache' => true, + ]); + + $file = m::mock(\think\File::class); + + $file->shouldReceive('hashName')->with(null)->once()->andReturn('foo.jpg'); + + $file->shouldReceive('getRealPath')->once()->andReturn($root->getChild('foo.jpg')->url()); + + $this->filesystem->putFile('test', $file); + } +} + +class NullDriver extends Driver +{ + protected function createAdapter(): AdapterInterface + { + return new NullAdapter(); + } +} diff --git a/vendor/topthink/framework/tests/HttpTest.php b/vendor/topthink/framework/tests/HttpTest.php new file mode 100644 index 0000000..8b6f28f --- /dev/null +++ b/vendor/topthink/framework/tests/HttpTest.php @@ -0,0 +1,154 @@ +app = m::mock(App::class)->makePartial(); + + $this->http = m::mock(Http::class, [$this->app])->shouldAllowMockingProtectedMethods()->makePartial(); + } + + protected function prepareApp($request, $response) + { + $this->app->shouldReceive('instance')->once()->with('request', $request); + $this->app->shouldReceive('initialized')->once()->andReturnFalse(); + $this->app->shouldReceive('initialize')->once(); + $this->app->shouldReceive('get')->with('request')->andReturn($request); + + $route = m::mock(Route::class); + + $route->shouldReceive('dispatch')->withArgs(function ($req, $withRoute) use ($request) { + if ($withRoute) { + $withRoute(); + } + return $req === $request; + })->andReturn($response); + + $route->shouldReceive('config')->with('route_annotation')->andReturn(true); + + $this->app->shouldReceive('get')->with('route')->andReturn($route); + + $console = m::mock(Console::class); + + $console->shouldReceive('call'); + + $this->app->shouldReceive('get')->with('console')->andReturn($console); + } + + public function testRun() + { + $root = vfsStream::setup('rootDir', null, [ + 'app' => [ + 'controller' => [], + 'middleware.php' => ' [ + 'route.php' => 'app->shouldReceive('getBasePath')->andReturn($root->getChild('app')->url() . DIRECTORY_SEPARATOR); + $this->app->shouldReceive('getRootPath')->andReturn($root->url() . DIRECTORY_SEPARATOR); + + $request = m::mock(Request::class)->makePartial(); + $response = m::mock(Response::class)->makePartial(); + + $this->prepareApp($request, $response); + + $this->assertEquals($response, $this->http->run($request)); + } + + public function multiAppRunProvider() + { + $request1 = m::mock(Request::class)->makePartial(); + $request1->shouldReceive('subDomain')->andReturn('www'); + $request1->shouldReceive('host')->andReturn('www.domain.com'); + + $request2 = m::mock(Request::class)->makePartial(); + $request2->shouldReceive('subDomain')->andReturn('app2'); + $request2->shouldReceive('host')->andReturn('app2.domain.com'); + + $request3 = m::mock(Request::class)->makePartial(); + $request3->shouldReceive('pathinfo')->andReturn('some1/a/b/c'); + + $request4 = m::mock(Request::class)->makePartial(); + $request4->shouldReceive('pathinfo')->andReturn('app3/a/b/c'); + + $request5 = m::mock(Request::class)->makePartial(); + $request5->shouldReceive('pathinfo')->andReturn('some2/a/b/c'); + + return [ + [$request1, true, 'app1'], + [$request2, true, 'app2'], + [$request3, true, 'app3'], + [$request4, true, null], + [$request5, true, 'some2', 'path'], + [$request1, false, 'some3'], + ]; + } + + public function testRunWithException() + { + $request = m::mock(Request::class); + $response = m::mock(Response::class); + + $this->app->shouldReceive('instance')->once()->with('request', $request); + + $exception = new Exception(); + + $this->http->shouldReceive('runWithRequest')->once()->with($request)->andThrow($exception); + + $handle = m::mock(Handle::class); + + $handle->shouldReceive('report')->once()->with($exception); + $handle->shouldReceive('render')->once()->with($request, $exception)->andReturn($response); + + $this->app->shouldReceive('make')->with(Handle::class)->andReturn($handle); + + $this->assertEquals($response, $this->http->run($request)); + } + + public function testEnd() + { + $response = m::mock(Response::class); + $event = m::mock(Event::class); + $event->shouldReceive('trigger')->once()->with(HttpEnd::class, $response); + $this->app->shouldReceive('get')->once()->with('event')->andReturn($event); + $log = m::mock(Log::class); + $log->shouldReceive('save')->once(); + $this->app->shouldReceive('get')->once()->with('log')->andReturn($log); + + $this->http->end($response); + } + +} diff --git a/vendor/topthink/framework/tests/LogTest.php b/vendor/topthink/framework/tests/LogTest.php new file mode 100644 index 0000000..269306f --- /dev/null +++ b/vendor/topthink/framework/tests/LogTest.php @@ -0,0 +1,143 @@ +app = m::mock(App::class)->makePartial(); + Container::setInstance($this->app); + + $this->app->shouldReceive('make')->with(App::class)->andReturn($this->app); + $this->config = m::mock(Config::class)->makePartial(); + $this->app->shouldReceive('get')->with('config')->andReturn($this->config); + $this->app->shouldReceive('runningInConsole')->andReturn(false); + + $this->log = new Log($this->app); + } + + public function testGetConfig() + { + $config = [ + 'default' => 'file', + ]; + + $this->config->shouldReceive('get')->with('log')->andReturn($config); + + $this->assertEquals($config, $this->log->getConfig()); + + $this->expectException(InvalidArgumentException::class); + $this->log->getChannelConfig('foo'); + } + + public function testChannel() + { + $this->assertInstanceOf(ChannelSet::class, $this->log->channel(['file', 'mail'])); + } + + public function testLogManagerInstances() + { + $this->config->shouldReceive('get')->with("log.channels.single", null)->andReturn(['type' => 'file']); + + $channel1 = $this->log->channel('single'); + $channel2 = $this->log->channel('single'); + + $this->assertSame($channel1, $channel2); + } + + public function testFileLog() + { + $root = vfsStream::setup(); + + $this->config->shouldReceive('get')->with("log.default", null)->andReturn('file'); + + $this->config->shouldReceive('get')->with("log.channels.file", null)->andReturn(['type' => 'file', 'path' => $root->url()]); + + $this->log->info('foo'); + + $this->assertEquals($this->log->getLog(), ['info' => ['foo']]); + + $this->log->clear(); + + $this->assertEmpty($this->log->getLog()); + + $this->log->error('foo'); + $this->assertArrayHasKey('error', $this->log->getLog()); + + $this->log->emergency('foo'); + $this->assertArrayHasKey('emergency', $this->log->getLog()); + + $this->log->alert('foo'); + $this->assertArrayHasKey('alert', $this->log->getLog()); + + $this->log->critical('foo'); + $this->assertArrayHasKey('critical', $this->log->getLog()); + + $this->log->warning('foo'); + $this->assertArrayHasKey('warning', $this->log->getLog()); + + $this->log->notice('foo'); + $this->assertArrayHasKey('notice', $this->log->getLog()); + + $this->log->debug('foo'); + $this->assertArrayHasKey('debug', $this->log->getLog()); + + $this->log->sql('foo'); + $this->assertArrayHasKey('sql', $this->log->getLog()); + + $this->log->custom('foo'); + $this->assertArrayHasKey('custom', $this->log->getLog()); + + $this->log->write('foo'); + $this->assertTrue($root->hasChildren()); + $this->assertEmpty($this->log->getLog()); + + $this->log->close(); + + $this->log->info('foo'); + + $this->assertEmpty($this->log->getLog()); + } + + public function testSave() + { + $root = vfsStream::setup(); + + $this->config->shouldReceive('get')->with("log.default", null)->andReturn('file'); + + $this->config->shouldReceive('get')->with("log.channels.file", null)->andReturn(['type' => 'file', 'path' => $root->url()]); + + $this->log->info('foo'); + + $this->log->save(); + + $this->assertTrue($root->hasChildren()); + } + +} diff --git a/vendor/topthink/framework/tests/MiddlewareTest.php b/vendor/topthink/framework/tests/MiddlewareTest.php new file mode 100644 index 0000000..bbd092d --- /dev/null +++ b/vendor/topthink/framework/tests/MiddlewareTest.php @@ -0,0 +1,121 @@ +app = m::mock(App::class)->makePartial(); + Container::setInstance($this->app); + + $this->app->shouldReceive('make')->with(App::class)->andReturn($this->app); + $this->config = m::mock(Config::class)->makePartial(); + $this->app->shouldReceive('get')->with('config')->andReturn($this->config); + $this->app->shouldReceive('runningInConsole')->andReturn(false); + + $this->middleware = new Middleware($this->app); + } + + public function testSetMiddleware() + { + $this->middleware->add('BarMiddleware', 'bar'); + + $this->assertEquals(1, count($this->middleware->all('bar'))); + + $this->middleware->controller('BarMiddleware'); + $this->assertEquals(1, count($this->middleware->all('controller'))); + + $this->middleware->import(['FooMiddleware']); + $this->assertEquals(1, count($this->middleware->all())); + + $this->middleware->unshift(['BazMiddleware', 'baz']); + $this->assertEquals(2, count($this->middleware->all())); + $this->assertEquals([['BazMiddleware', 'handle'], 'baz'], $this->middleware->all()[0]); + + $this->config->shouldReceive('get')->with('middleware.alias', [])->andReturn(['foo' => ['FooMiddleware', 'FarMiddleware']]); + + $this->middleware->add('foo'); + $this->assertEquals(3, count($this->middleware->all())); + $this->middleware->add(function () { + }); + $this->middleware->add(function () { + }); + $this->assertEquals(5, count($this->middleware->all())); + } + + public function testPipelineAndEnd() + { + $bar = m::mock("overload:BarMiddleware"); + $foo = m::mock("overload:FooMiddleware", Foo::class); + + $request = m::mock(Request::class); + $response = m::mock(Response::class); + + $e = new Exception(); + + $handle = m::mock(Handle::class); + $handle->shouldReceive('report')->with($e)->andReturnNull(); + $handle->shouldReceive('render')->with($request, $e)->andReturn($response); + + $foo->shouldReceive('handle')->once()->andReturnUsing(function ($request, $next) { + return $next($request); + }); + $bar->shouldReceive('handle')->once()->andReturnUsing(function ($request, $next) use ($e) { + $next($request); + throw $e; + }); + + $foo->shouldReceive('end')->once()->with($response)->andReturnNull(); + + $this->app->shouldReceive('make')->with(Handle::class)->andReturn($handle); + + $this->config->shouldReceive('get')->once()->with('middleware.priority', [])->andReturn(['FooMiddleware', 'BarMiddleware']); + + $this->middleware->import([function ($request, $next) { + return $next($request); + }, 'BarMiddleware', 'FooMiddleware']); + + $this->assertInstanceOf(Pipeline::class, $pipeline = $this->middleware->pipeline()); + + $pipeline->send($request)->then(function ($request) use ($e, $response) { + throw $e; + }); + + $this->middleware->end($response); + } +} + +class Foo +{ + public function end(Response $response) + { + } +} diff --git a/vendor/topthink/framework/tests/SessionTest.php b/vendor/topthink/framework/tests/SessionTest.php new file mode 100644 index 0000000..b3b48a7 --- /dev/null +++ b/vendor/topthink/framework/tests/SessionTest.php @@ -0,0 +1,225 @@ +app = m::mock(App::class)->makePartial(); + Container::setInstance($this->app); + + $this->app->shouldReceive('make')->with(App::class)->andReturn($this->app); + $this->config = m::mock(Config::class)->makePartial(); + + $this->app->shouldReceive('get')->with('config')->andReturn($this->config); + $handlerClass = "\\think\\session\\driver\\Test" . Str::random(10); + $this->config->shouldReceive("get")->with("session.type", "file")->andReturn($handlerClass); + $this->session = new Session($this->app); + + $this->handler = m::mock('overload:' . $handlerClass, SessionHandlerInterface::class); + } + + public function testLoadData() + { + $data = [ + "bar" => 'foo', + ]; + + $id = md5(uniqid()); + + $this->handler->shouldReceive("read")->once()->with($id)->andReturn(serialize($data)); + + $this->session->setId($id); + $this->session->init(); + + $this->assertEquals('foo', $this->session->get('bar')); + $this->assertTrue($this->session->has('bar')); + $this->assertFalse($this->session->has('foo')); + + $this->session->set('foo', 'bar'); + $this->assertTrue($this->session->has('foo')); + + $this->assertEquals('bar', $this->session->pull('foo')); + $this->assertFalse($this->session->has('foo')); + } + + public function testSave() + { + + $id = md5(uniqid()); + + $this->handler->shouldReceive('read')->once()->with($id)->andReturn(""); + + $this->handler->shouldReceive('write')->once()->with($id, serialize([ + "bar" => 'foo', + ]))->andReturnTrue(); + + $this->session->setId($id); + $this->session->init(); + + $this->session->set('bar', 'foo'); + + $this->session->save(); + } + + public function testFlash() + { + $this->session->flash('foo', 'bar'); + $this->session->flash('bar', 0); + $this->session->flash('baz', true); + + $this->assertTrue($this->session->has('foo')); + $this->assertEquals('bar', $this->session->get('foo')); + $this->assertEquals(0, $this->session->get('bar')); + $this->assertTrue($this->session->get('baz')); + + $this->session->clearFlashData(); + + $this->assertTrue($this->session->has('foo')); + $this->assertEquals('bar', $this->session->get('foo')); + $this->assertEquals(0, $this->session->get('bar')); + + $this->session->clearFlashData(); + + $this->assertFalse($this->session->has('foo')); + $this->assertNull($this->session->get('foo')); + + $this->session->flash('foo', 'bar'); + $this->assertTrue($this->session->has('foo')); + $this->session->clearFlashData(); + $this->session->reflash(); + $this->session->clearFlashData(); + + $this->assertTrue($this->session->has('foo')); + } + + public function testClear() + { + $this->session->set('bar', 'foo'); + $this->assertEquals('foo', $this->session->get('bar')); + $this->session->clear(); + $this->assertFalse($this->session->has('foo')); + } + + public function testSetName() + { + $this->session->setName('foo'); + $this->assertEquals('foo', $this->session->getName()); + } + + public function testDestroy() + { + $id = md5(uniqid()); + + $this->handler->shouldReceive('read')->once()->with($id)->andReturn(""); + $this->handler->shouldReceive('delete')->once()->with($id)->andReturnTrue(); + + $this->session->setId($id); + $this->session->init(); + + $this->session->set('bar', 'foo'); + + $this->session->destroy(); + + $this->assertFalse($this->session->has('bar')); + + $this->assertNotEquals($id, $this->session->getId()); + } + + public function testFileHandler() + { + $root = vfsStream::setup(); + + vfsStream::newFile('bar') + ->at($root) + ->lastModified(time()); + + vfsStream::newFile('bar') + ->at(vfsStream::newDirectory("foo")->at($root)) + ->lastModified(100); + + $this->assertTrue($root->hasChild("bar")); + $this->assertTrue($root->hasChild("foo/bar")); + + $handler = new TestFileHandle($this->app, [ + 'path' => $root->url(), + 'gc_probability' => 1, + 'gc_divisor' => 1, + ]); + + $this->assertTrue($root->hasChild("bar")); + $this->assertFalse($root->hasChild("foo/bar")); + + $id = md5(uniqid()); + $handler->write($id, "bar"); + + $this->assertTrue($root->hasChild("sess_{$id}")); + + $this->assertEquals("bar", $handler->read($id)); + + $handler->delete($id); + + $this->assertFalse($root->hasChild("sess_{$id}")); + } + + public function testCacheHandler() + { + $id = md5(uniqid()); + + $cache = m::mock(\think\Cache::class); + + $store = m::mock(Driver::class); + + $cache->shouldReceive('store')->once()->with('redis')->andReturn($store); + + $handler = new Cache($cache, ['store' => 'redis']); + + $store->shouldReceive("set")->with($id, "bar", 1440)->once()->andReturnTrue(); + $handler->write($id, "bar"); + + $store->shouldReceive("get")->with($id)->once()->andReturn("bar"); + $this->assertEquals("bar", $handler->read($id)); + + $store->shouldReceive("delete")->with($id)->once()->andReturnTrue(); + $handler->delete($id); + } +} + +class TestFileHandle extends File +{ + protected function writeFile($path, $content): bool + { + return (bool) file_put_contents($path, $content); + } +} diff --git a/vendor/topthink/framework/tests/ViewTest.php b/vendor/topthink/framework/tests/ViewTest.php new file mode 100644 index 0000000..e413510 --- /dev/null +++ b/vendor/topthink/framework/tests/ViewTest.php @@ -0,0 +1,127 @@ +app = m::mock(App::class)->makePartial(); + Container::setInstance($this->app); + + $this->app->shouldReceive('make')->with(App::class)->andReturn($this->app); + $this->config = m::mock(Config::class)->makePartial(); + $this->app->shouldReceive('get')->with('config')->andReturn($this->config); + + $this->view = new View($this->app); + } + + public function testAssignData() + { + $this->view->assign('foo', 'bar'); + $this->view->assign(['baz' => 'boom']); + $this->view->qux = "corge"; + + $this->assertEquals('bar', $this->view->foo); + $this->assertEquals('boom', $this->view->baz); + $this->assertEquals('corge', $this->view->qux); + $this->assertTrue(isset($this->view->qux)); + } + + public function testRender() + { + $this->config->shouldReceive("get")->with("view.type", 'php')->andReturn(TestTemplate::class); + + $this->view->filter(function ($content) { + return $content; + }); + + $this->assertEquals("fetch", $this->view->fetch('foo')); + $this->assertEquals("display", $this->view->display('foo')); + } + +} + +class TestTemplate implements TemplateHandlerInterface +{ + + /** + * 检测是否存在模板文件 + * @access public + * @param string $template 模板文件或者模板规则 + * @return bool + */ + public function exists(string $template): bool + { + return true; + } + + /** + * 渲染模板文件 + * @access public + * @param string $template 模板文件 + * @param array $data 模板变量 + * @return void + */ + public function fetch(string $template, array $data = []): void + { + echo "fetch"; + } + + /** + * 渲染模板内容 + * @access public + * @param string $content 模板内容 + * @param array $data 模板变量 + * @return void + */ + public function display(string $content, array $data = []): void + { + echo "display"; + } + + /** + * 配置模板引擎 + * @access private + * @param array $config 参数 + * @return void + */ + public function config(array $config): void + { + // TODO: Implement config() method. + } + + /** + * 获取模板引擎配置 + * @access public + * @param string $name 参数名 + * @return void + */ + public function getConfig(string $name) + { + // TODO: Implement getConfig() method. + } +} diff --git a/vendor/topthink/framework/tests/bootstrap.php b/vendor/topthink/framework/tests/bootstrap.php new file mode 100644 index 0000000..991ea43 --- /dev/null +++ b/vendor/topthink/framework/tests/bootstrap.php @@ -0,0 +1,3 @@ + composer require topthink/think-captcha + + + +## 使用 + +### 在控制器中输出验证码 + +在控制器的操作方法中使用 + +~~~ +public function captcha($id = '') +{ + return captcha($id); +} +~~~ +然后注册对应的路由来输出验证码 + + +### 模板里输出验证码 + +首先要在你应用的路由定义文件中,注册一个验证码路由规则。 + +~~~ +\think\facade\Route::get('captcha/[:id]', "\\think\\captcha\\CaptchaController@index"); +~~~ + +然后就可以在模板文件中使用 +~~~ +
                  {:captcha_img()}
                  +~~~ +或者 +~~~ +
                  captcha
                  +~~~ +> 上面两种的最终效果是一样的 + + +### 控制器里验证 + +使用TP的内置验证功能即可 +~~~ +$this->validate($data,[ + 'captcha|验证码'=>'require|captcha' +]); +~~~ +或者手动验证 +~~~ +if(!captcha_check($captcha)){ + //验证失败 +}; +~~~ \ No newline at end of file diff --git a/vendor/topthink/think-captcha/assets/bgs/1.jpg b/vendor/topthink/think-captcha/assets/bgs/1.jpg new file mode 100644 index 0000000000000000000000000000000000000000..d417136bb4613984dd88ac25590d2794344c990f GIT binary patch literal 30428 zcmeHwcU)7=((p+mw9rASgx*U60YdK*igcu^ln9}O7K+#a0R#OQ9wlj zu~1ct(k!5YfTE}%-$}6G^E~&ym+yP;Umwfw%$c2?nVp@TbJ!)>VfpFu2*74;N-zZ= zPzYozWGetHk1{HnM3Z&^fRz;>3jhE;fP`=WFc5=)KLCUuK+tdi@PY{Z!u=uAKX{-Z z4+a1sAP8Pz5G)Pn0`b%XBmn+Hwh+8`0yy6h0FYw)c{lJ0_9CKf{DLXL;eNp(Xd`

                  >%aJv{?GGXn!NI};-lJ2xvcGb=YQCnq;2CoelQt^ByHRQ?Jf zC?+Np3yO_}g^i1ag@ua>Sh!Y1*#8p+%gq2gJ)jSqgF!?AC_4nk4q1K%4x4eg1)>L9 ziGa`wXfUlV7!8(m2z>$K+N4MQua3 z;}~)7O2X})i181mQdxzG)yGqFM7A3N`7{ppGF3j2jOG<^v=XJ1*+fj|e56^TubeJg{v)s`+QNhZB<|B^^ZkoGy z;=&MsnA*j3qC0{`xbJ(FsZqYZbb&tW$!{4*8$H&HGg>)sRbNz3kq(`Aor5CH3^@pV<((}xO z7P;M`YdrFL9KMFX;u0x7+Qeltc8HpUuPAvNO;b-sAbFoL#jE{H^g$Px;$}_iAUkc*=h!;4)|9 zwQc(>pM8w@6jyq7+OXJwVM1$`B8-a??@MNs(#6qgw-e>8`Qdu9B#WTgj&gf*eoYuRcdT>s=mO zPWri76YJ&9r{#k}(*pT>O73vHx=wfFw$st@>c{(35dwz<$GwfC&)|f58N%bjUq0uk zt;>J;nPG3|umuS+)Umm7m|?LOL)o&eaL>C;!Dh{%?{@p$nT(9dGqYCw(?|A+8j3jC z_Fo<_*4-H_cK_T4S3y)lJtrzu+w8j??!M$!)};5+iz8*4bC#NsUjj5sy%b1+)o(>w z(l4^;5*`{2UQFvL*uV2M?t2-`A|ZB9;Z8Q2sa?;F%wnYscVgx&4mh}ZUPbLfg;_w- z#I8lYNXoexSXH-yzT3L1&*sG97;AJF#|8SKC&Ee7z6qAli?#e7#D<|))tUA8Tjy=D zeD;w^sG?@AsGw*88-b6XkkHL(QxK`K6w;tec=GexHRW`sO=qV+2kB4ii62QlvLz#6 zD57^SBea=rSV(*y0&BGSCdZWcgkE*ZhY5#(%Xg;42AYS-*Y~ECc=*L~A3FS|yx-G1 z_tjb75Df{PBf(EmVUvOT`GtD)2D}b-_|`5Rcyi==v)G3$p`GE|P>|Y_Vkf?rei5;g zd=&pyh~N5CvmVFhYYDpvAI}&Gi9b5u%)q}#IA)_6a;yjWdd%j8yUs;r>(?mN@AuLU zF+uW=;}UCCGaI6jvGh~ZD90C>EaH6e)^T=G-J%w;v$Hm*H;>=n-33jQo?Zr)yL!L6 zswelEOb1S$A2$+_GbsH=e>`e|E9aJrcv3a*abA9fM;oMWa#w_Yir=1$X%WE<3aTxR zG)tdU2xo4v{ZhC$YUIGAs^c5iIo@#qa`F3zB5lW=1#Uau!tQqZ2#H*4Jt}+Sm^Q0T zXkqH?w{{Pg;s*^kZco&c`rTR|?8@!DTXT5(l3XtGdFrjZWfwYYPjBD@amXY7iVmoekX{o@;t(XkVAg zhZEZ=bf^6&ty^+FGX70MbEF5N?Ijw*h2GT?LzM?t8TzF^bY z4A^*F9vmU=eQrb5;NwBQEoy_v5|#jC@`p2q{&PYeo)<4_5)`HO&w5>a&1ME)-S zfbyOFnWzupu{P)Ky)PWDiblN4A?T%xJuH1Ry)dVpVb8Yb749qo{hr*k&!<`S1b=j^ zbWQIQEko0;yyVx``Nv9G4mjAdkD^)OMyalQ%AdU+UIsJ`Mz1&XNAH>NC^cy2otgPy z6K)oHedD5}lnc_K<>b&_zfxG-(9R+D)1}!PReRbQo1?U6hu_mz>`rslf;~!+uwL$8 zo?>PGy<$^QR0cE*3080k+H!%723G-U8*FN&jk?+d*H6%&cbc3et&Qckh+ZtPq7g-- zQP+>rG)}%>^^G*GA82(38Uz7kMT(JD2UlrS9&n{eEsV5P8x@1nB))g z1R=OS1PkN`CGTX;FAA1McLm{39vqFL@S8%@xw1wK0oQ>4SYQ(%|9_#4+BeljU;)>w zv>J6K4gkzF_yf@B%CrjI%JPmzp^kw%F6x>VNu$uyC{(Y3G^qZ{^eOEK3?%O zKeY-2myAC=L#+aU4S2PI7s6N84|(DQpa5XN8nuVNmen+>1Xc2nvYO#%!w=J_RdPgN zAb6t=m(D9Vg6tD+?d9(c)_%y@c~hue)4byVZY~0Y$-ZEnRxF7-D68v+l;EHrb($G= zzJ5R3six6|2a>#r;ZA{;;b0B&M?VN!8%X8=FC?u(FkYn_=^GXt5%LF#E;x+jOCl4= z5ka5~vxz-byETml)={1jl;BN7GBM1PLi7O%fWyuZ;tyuV6=o`h+Cm8OMT58h_V{5D zVSx@N&JJK#Kb%W-{+|@9a9`pd6gtm9ii4-`A2b$kA}B|UrVzr-9IPz8f`bF83h956 z|6peD3l57h2qgLb^c3sL;LU!LK}nH5BOeP6o1Fa7^vUrJj?iGa%>0B{5^2z7zP3K#%BKrrA15CJr} z!SDld3V4Onun>@g^MBw#14e*7u(AoH^{}!FM6P@e0s%ig(X8^LP(n17l*r+Vp487X z6upCkl%hRDlrW0QN`SUrbcm;S0Fi?BB7$pv9ntpR$kB;aToRzXwh!N3`WEK-f zw2#^B;2jg-jrS4N(`D3-){G7c2_jNF(a}MH?U_^Bp(P*@Gn9mMPJ7d!yl3-0o^oNO2QBjIfDvH5jzDgK89dWJ;uav?=Vsbg%nIiQ}ud+J1vTis3^6gUuDHaAMaoNgn;`6S}#7{ zO2j~75Rps?2i<{D`lTF{)%Nk$+z}iWH^sXzMAR-$&i$`INp zsS5r=|DOy5=j4}#|2SEHSO;=z8if%(Dc}|X+@|Q#KFRs#&#JVk)BOkYZ}({bY9bng z`#D|e$65*)tO8ce;pfL%a>^Q-%F3&htZ@EChgGl-X~)k0M8_)5zv=)Z$H$Z6`5$Rn z&HG=N3M;FBKN&$mO8*pP;S@XK?|}ZtX$+@s>6Gk<;lUAM-b9f7cT7{G2AmKpD^25I z?+9vK5{z{tB1k@(riRKGyoNCrkHxDR8)7g9CKw|F6%9ii7N?9?RmIV!=TEsmoeQ=R z$l(-EvN!RUPNV-!=PJ3s=`<#Wks^screVQBwD=D33=1bx2dE?ZbA+qImO4P1i!@1p zF-AjO*~q{|O#=@O=bs1oH@V-&{8sDp7r*_dYFEkqR{P7TzX$p2;r`!x>M5ih{~}(f zEwq>PY6oglshZ#)W5C$(q`vlaG1^LhqpcbOt<9M_7l9EpeifWDwJ2ez@Q3W`_P@%y z{139L+y5&2Thx(EqUd6OboUqXU!^vK1B)aYlYEKcpbSn;9*a{4FAea*%VX8B@>q3M z@B(QXs`5A$W$?m)I7rt}k;mfIYU%CHqnTnc*nyS32GG0xY2El1k$6!|=mPT2DDj*$)S>aKYr%I{QAULJq zbb%BQf)rH^oH7l9(+T3>WP%W!esvWvIH(Zh2O*vcH9$@fQu|T?Lxl>dy{Ld8M1`O% z2x+ol0I6bB!B#2+tp(ugHawo%Bc7%cPqhTAj8T&Z!&V*)b$K;;b$JbWygcX{ z3`QPhfUBV?kc;DZ6iyB0>-*vJH{YGkTx zprVS!tKd{sjMY@|YFI-9&}Jk2kIDRF#{Rd1Jmlw>Y5qCVe>ML-+a#TAWw2&UIz0Q38RiF7=@!$Yj>O{qCx0PxHEXzI84 zsrc{m>G4W-m>vZ)8#MYi{XfFky+gvlEG`gg`W+P?@YE@YCxCch6eWa8r)EXr@(Q5h zP-;pat}xI*5a*@hzALyqjb{bdr{X?AWH5malxlN`Pmm84ZvpXxkrC9yIxtHRPl_ZF zqd>eD#Ki+6f=D1v&E>=uMDzrc{lKXiSHvkqZ$A)M265&v2RkDW*9P;gF#E2;y;k8A zFvAVV3m655?4;#$hQx&NE?TkXeOU^fs4BmswjG~gJJ1Dpj4fl}ZSPzBTh*MXbB zU7!QZ8r%mA0wcgn;4Lr%d;-3K8O)Fn6oeDP2N8xyK;$4;hz3L#Vgj***g;$%+abOX zG9&`B8?qmA2$BKGf#g9-A(tUnAvYoIkS<6+WE3(9nS*?V!l2AhE~pSx5~>8%fEqw8 zpbk(Es4p}W8Usy$rb16Z^Pv}^wa}Z;4rm{A1o{>_4<;05g7LsaUM z9{4DH2L2s^LI@({5Sj=A!WrRG!_ zC)3B%XVaI_H_~_0zo!4jz{ViKpvhp(;KQ(!;V45P!!?FS3@;hJF|spCG3qcnF#0pb zF`i(&#CV5si17mx6O$+tp2?Pp#1zYPf~k_JjcJtW3o{3^EVB`_J97kcDsu^QGjl)l z2NVh=iPA^8q9~|TR4M8<>N#qGg_A{*g}~y&vXA8yOD#(`%QPzks|2e7>sHnn)@;@* ztdCgVu`#eovKg^?vh8I%#dekL3EMn7Cp(7Snmvg9Fnbw$JNpC&l0%Zigu{m;fun%q zHpe(8j8lx$h|`;MKW8E59nP0rbX-zg1TKHBLtN!t54mQzIk;81ow%d9PjTPi9^rxU zNb(SP0(p+|RPj9K`MN=9gTV&khU5*GHgs?J%qzgF&r9S@;jQ59k)+T%uLtv!s;d7RdvW zb&?ZOyix?I7^w?VL((W|J?T*CeCb{pIvEX_0GZP=ow86_oUEVhDcMJIP&qX@lH6&z zE_noau8}OCFaJb=S;0UdQsIKas3MP|rDD8do#M2TxRR?BpscV(P%pmL$|Acg~D zj)})y!^~l2vEJBI*j^QsimA#zm3oy~RXJ6n>KWCiI8K}u?f~uwv;weyHI;vM^wjC zCr@WY7p=Qp_nhvCo`{~OUcTO#zL>s`ezE>*0~rH}U-3_40XMmXMbVs&zNDs}q2#du4`mJw$q=RM9HF8nSemwH#E ztCMT7>%5zZ+cCG7?l|`(_s1Sm9?>4{Tlu#JZoRRMb(`n5E87vI00pPpZ~-#d~KDTg%cZ{~m2 z|8szKKuN%I;FiFOAo`%~L08EfPj?wG&%bIPT8HwJ733`#uV*>@ABStYq!YmxZR_B z4EE&hh3xg(duyNAzJz@*V>iW~k7JArh@}m32&T`}O`b!Fz@+x>L4pjn`5tVN) zZ@>Jw%A)Gl6^$#GswJv(YdC9CY9X~dYiH{G>PG5a>btI*U%hor>sn2NVnfMwk?W^! zaNjuE$k>?BxZD)eG~XQ3{O+dj&GB2?ZVldczTMkm+w$;^#htdhrgv|*8niaG>9k#M z*KEIfPvc%)hgwJNecb(;2e=0{57i#lK2m>F--++M)}`Im*sa%nv&XpSZZDy?qi=Ix z*JH=WPoKCy8F}jSbfQ17e|8{p;M-vA5Mn6h8QZh$=Yr4khh>H(0rs8`vqgo!VzrR1@ zJo9okY<79>@CUvRB_CBk-kP_WfBq@x)3?tl3w#Ubzi51E{krAr>u*tu$i)*&GE3LK zTYMi{4gwRO{?2%>53U7PGTy^s)B-~A_aS&85pXyHNl!WS^r-$-rE3eFbJ3;{&&WEJ}~1wxU2>L-2t_L2(7>oFen`a_>u7* z3Wcq1{WG&56au4Wyr)CLKmZMgKw<1~00E}FH?XDS^aNAhb79l-klZU7=SNj|yk^A1 z;%6m{RP8hJtGvT+;f$p+3$CbbaPXnr?jEC;+|R(s%a@R4Vp>@3)Z-}4KR5n?n)RL- zk$7w+^Zma_e6L~V>=%9T#QFNRrxOb@c!CRQXY$F?tL^=hUt~4SUHxNHa>}mV8+h|| zB||<8fdI4i!|7qLAX>J1YLb2fge_<>U1(f7Ht+Hb*Uhd`F+*-UudrDaaaE&uo(y}5 zeDA7T$nb95nDPD%4w>Np1K{P8R5Rh1@}W4Y&lOy`EiKbC{vjc&u=-DvO;=^>U!AP~ z51apu$$uu*KXd&d5o>OlasSSM6WP+@bO+~E+}kr(*n0|Ii)RF$8;B&OU4{n_`)}+m zY5MZ1Au+K=q35y;zgwUMUG#E zLv7)xJI^Ubj>?xet($lCG<6gcZ01_3j!oW*Jw0i)7^a`c=$(~kIPWpR@Urr0=&*c0 zqG6Zsvx7?ml|viHV}e|_v~r5anbqjAE6l>aIh4)_1gDwj_L-{aDKZAw$@G4@#6HxL zH~l_n%Ij;J#HW#DkL2${*w8o$0%41N!;9{0ZJ|caO0IV@H;^4z4H%Qbz3Xm$h+M5L zF+7TL*>Jo4=9guxZu4^>2%m&>=JaKGv59#AqtH>SZ=SLjZXcGusV@%I4BC1+;C-48 zn0mc)f~D}P?@(fXPsQ`dM=q?nMbqify)3WCN?aphb?)^%;`q_SZaB49NYO?ioo`+& z6Sh4;ms$?Be4o9^Zu;yK*V`J_M}nCQv6j$w{4t^&b8R2CRH{f;rf%OE`xeB`E2EN& zIY}6a7G;j;2FDXNlrN*{=gdXryA|JbcjeW8JeD00xe%u%)K*bvS*CLA(3=4-=_kfz zatC!BERy`r*%0Ke`co!Pa?sWK!?#W}e6w&nWqoO|WyZ{kUGPax1T&G?S7|{xkyno&mcHYq`eJL1?%;b%_D2y$ zk(;zm#_G%l!CXbyj;ZL_=Sj6toa)prH zN|HCE$XPbWMt7$0^N)#<^sUv;+n-dp73XbZz*Ua2QvX)fDZ>@p>^moEzpIC)IqvU$~=caJ190Ypjm&McLK-x=e3U(XJ{ z-#mD1W~gc0m;cTTwzuZ{)w8l`&sqeyU2r$F?}Tz$hz@x$atuYwaKG<$cp{t1;4GCE zgcrLJVKCrs#M!EI>uY{&2-ow%?h?gZ!c$yJY+$k8*1BtwhN)G7=N}HjE>FH6lsU}2 z=RuO8#b{2qx}=v!MuO=%p|`dkcQm~*qH4yL2G302yb&^Q&oJZ|i$ z`PNoKR>JtJgzlhh!u=|nRz@%lNNOylBiu61pn|QcaVjV^t?tl<{Ap*|_|1LfVN-g( z(7r(#$ZbmIpxc9}H=FnhQ)(Rjk6gHcVhumZk#@w*-FtU-HMaj8wiI&2p|dkyr+KD5 z6dLJeK+kks0al?Id(kZ>V)D2N0udnGDv%`GwyE}6YhdL$CjakVRrv?T%%K4@M=n_1 z(cZ1x92lRH+HG5ML_h7#I|ytlB!txArA0LLK9qPRwy$AJmuGd4Zl$XW-;$cmp>}g8n|SNLLU8wPHPBc?l1`d`{+i-;nWZJ{}3#RXH3+ z7{)4`zZQ0+<%a&@ph{qgSKny4d!kCLe@NBRyh9-HncRqJOtrt)u%I43i|Hd#euu6J1P_}oj#mm zZnkIyS5*}(bq{SurR^Zp@J&A$H9P5~XYJPu)7Sc_+wbFf>#luu<5=X8=ZqPHVS7&M zm&|>tNb+D0WH7J_;C}S}5a7p~^`=i?>cd99Kp!Ixw$6v0kNKRcP-Rg7zfF)wWx8K= zl<2IST<8v*wtBfHyU~bTTGE&rR<7y0 z((NNhY9L?tR05F7QxeLR^;fFL9&t;^!_2KVL8HzU_d7Y?b93_%7oDHp*}Xi7?kZKXv#%iaubM#b8qO$l(U50eRE;^GgL*GY>-r z`wwQeEBAa%4}ZHi5_lcw<{!}A#72xo4WNY7pv=?LCyr<%hyxd9<06K;hUCw-fVe-d6qGP7@x@)jF%g(jY-lt(YOac%XJOYep?~>{K9p7H0zV& z)#W+cHaqI@oJ#L~a>*=_k}7dAJ*PYF_(0==Sd~MwXwg2uZw~v;y65Btqd5ySG4qDA zPg8JOg1J`cB=wykvnreT(9(<_2gfD?40pZq@#=QEiM1>;?21+8E|olOFnh~Hf`j?O z28j!1vc0$n|H$!?fI*Q5c3-xViWFbSCz|O;!YYBtVTFSb1bmOg_m7wN&c9KcR_{n! zJW(TfCM&(I@O=4BhtrLt$w$h9AL6+SeHAN0D);lcVgoe9dd5T9HazT2dz>d@UnvkBd9Of4=8H-ea5TptRJpc7 z_^{J~J#RaE-w&(A)(IAP^^BV##vgvjpigt{+51A6e+TBC<$1>MSJE&k4PQi>to5E` zwQ}-m9DF9!C<*j(KF(@q-k77^8TQ^g}b^I;YOERieD?QI2`lW$5t~JekGbQ=trpv?Kyb=L{v@IX-3nb zCy`5Kfm)Frhq#@N=+NcZ-!m;?>}B6p=wsl3u@i-Cx@%=n5&UV+JpXX)neCUQM!672 zNMC2Vw=MUcH5(~)5WhSW*9lt;f2?2fkl;Mtb6~72^YH=iZ9=UE8LtvFvTRc}S}i_s zoiYzvx~j}O;206A(8KnqowG!rVdL0IiWiK7;D%_6C!^~adt#-gf|}gZk0d}3WxtI- zdoVw8Vz1c84AK)hcHfqaA=m3e8JLIqgLWx$LuB2(e7lL3vYpaJP2hiWfybrx=5YzU zyc6%~J%1>6g8hC9E64RxqbDVe;CA34I*WKFUa90XF|1fkd$9ObgH3A9M!e;R8DLOw zw~66f)1E?k+vj{+MwtuK8*d*AsO!c)eVG=3;i=N0lUB%{TN*Iqw&*g^Wv@|_ikV*q zRN`IZt(kY$GJ9RT;2)V?{1|0;6WSa}v^TK&#`syNinmBnj8D;wvGVw2ol}!rGMPR$ z3~0zGbBvNK4BEE4t%LJcKxDm8kHRL8y4s!DJQfE}+IJa7y)v=#V<<`LKXla6Y{M1G z71sT1^Rel0h*2)`>XL z+a8Ke)4E)~*Js2iU4uvA2B7-oY;d+()@Q>y=U2Nf+_6bJTD=Ug!9Svd?QKu&Y%de+ z*ei0QyjOl;Qp5rBz8EE@9WdF_^-=tZcduuwuD~=y7P;Z+=~t&igQW_)V1fs7S@~E{ zq)M?0_eV(vQoPLvT>CwiHjj;&U|PvY^e|KK*4UA(@$FGn?5cLJBr-Fh`skD+b#Dh- z6`6Su&VyrluIc7BDI06vCbBN~okD)R>2>?4otl*A$N5JdqQe?~*V^9QANpLD(krcV zUhTF+%Q0khm&;WJy>`_iKlNd8e4ccUspIxj5`@DtKxR+vw;lS-TwY0Y(Qn}jGw;N? zgmtSc=5P7(evo08%3yE20-Kd62-&3ZqMSjC|LE>YTb{cIefT}@9L~miJfAZ)GUA_V zj~z-`641Tn#lz#t%_uP)j>WUc3#yD)x zR%sCz5K)F84%X&rM+SLyC7Ou036I6#cmu6;J`byH<+7~L-K*j*6TpcPXEPIEuiFP} zbbst-*2(HH536V+hZH7OHForEY-0U1mYC%zJ>9FtKh+ebwiI2K|6qb}jRpQrHfG^W z(*+1mX=0Xt&q<+J037wFWF2HvTaR>lu_rEdWblCgA@T6^hZ~AyZV-yF$@+v`AH)6r z_pi*>+Y5$P@Vc^Zh80EEws?gCGpNLx1SmV@FPetsbEoRX5aXDOP-*c~N47alE9~!oez6n! zcs5fond9#D_#Cc0sq@3YF*DoOuQJrs5-p@96SuoLx@9L|QYk)R0+j2+gn3qq-)N{5~DMhi`8U4Twk1GC~hY!de4979y3&VmylWO zmbFpng!hGKs`aT~G8~=9>+AHMwQhxf+iiGSg-2V9qG(xv!m4-wTV{G$+k?(YFZIRk zgD#vpI2S^1Swnb{`tYuqdn@l)%h7oQ?jpHb&oQ7a{)J^ao8f^IqVk?68D2`~iTTgw z2`u4vocO>T&SD~cxk~-Gf6da<3-?T7SXs|nwzuo@*4)xINq_Dl&}O{N*rDgjooA;MI z9?hat`njX$n4F#`bT>pG11mibe%QorQCG_RIw#W=K=>gd-}WeY^-3E^MU+fMA7*^5 zce$fvK&)kcG9^*c7n@ivZ57jVb<$nNy)q^#^_g_^yz0!`TDW31)(-+mpX0T0yL`rt z)W~vV=9=1@!52Od=5m#Q8k-Rr*WKv-SDyy=ko&hViOZ>IW~j~6mq$%&@5V-$=|4j| zEtsj=T||z5oolu^ZkeZ1!{iVsV`n9|u*+vGvG%w<-$5sIJ(KyA!Q&fpNw!RWSA&(@ zKC_04>Ypo%yLVs$DLZmh^VxCsm%+W>_6@|o_n zK1)o?+THDjpDIX4-S^BRSD(+*K_T5Ab}4q0?!iYtj(s<1-xS#IeZ&~aVRt1UXg*Hpd`;uwNBqjp zy&Md%7&cOOy~KfC$;E9ixJ`^~dVTtQ>?S8K>d)x=n~=sW&uDu=4!>?G60l;$aFw%d z-;j~Bv1ZD$GS>8+!6kEZ#y0DUhX$XLhk7QZST|b|j6}9@!@=LSEyUboRpR0$qCko3 z>D1xP&_ukG#zb>ZImu&@?zQ-a459w3Jo@_3k`n)KqfT!enP6Ll{mvYlv@YOwd7~0o zaOpwq@asl4tsbjHAJ@xcP1T!%8w9E|{c%bXrp>`ls^^hcheZ?329p&Y`7_peOnx49 zdJ%a}$MG6}%Gm-Ao2yI?I?`pPOBd211e33aS}1}CT8+#dBHDW73<=U(AS8V}tRwCG zSFIiir=)2^u8pOTwx^xFv0A-HW@1Z&o-PBM;QZWApOh0sPilNH-`KY;i)ip7_q(L5n**13*^CS-@WLw?1M2| zZewB4(OC_rau+k)8+`DBrxvEVIBe_G)1ygPeb_ms$}hx`z&kLd_uT3WWkws9>N>oN z%zaI=%26h|9$2GHj!HsHU=#cF;CDVn0jn|wXZy3(5Q7CD^V5%|75(&WkTw8(i8nqc z=x}Ie4a;EEVn~AY1rA-6dkqehl8!*xVr!9ECAI)p{&Z_p!&rHyt-h?b=AMPJr*CaE z>&zE=iV?5+7fw3_Iu$j}jwZTFFkn6l``K3x4esuC4kIn7gJBec5ri-OCA<^KNzFf8P^ literal 0 HcmV?d00001 diff --git a/vendor/topthink/think-captcha/assets/bgs/2.jpg b/vendor/topthink/think-captcha/assets/bgs/2.jpg new file mode 100644 index 0000000000000000000000000000000000000000..56640bde4ed9a02c4e46b951f2108e5e4814b14a GIT binary patch literal 29677 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 literal 0 HcmV?d00001 diff --git a/vendor/topthink/think-captcha/assets/bgs/3.jpg b/vendor/topthink/think-captcha/assets/bgs/3.jpg new file mode 100644 index 0000000000000000000000000000000000000000..83e5bd9026f9d46c96738a4209f1abb91f7e1e6f GIT binary patch literal 32109 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 WW2Q1p-X6|ip1UGwC*Qp@{Qm&B(nP5M literal 0 HcmV?d00001 diff --git a/vendor/topthink/think-captcha/assets/bgs/4.jpg b/vendor/topthink/think-captcha/assets/bgs/4.jpg new file mode 100644 index 0000000000000000000000000000000000000000..97a3721bc777a569c6665e38dec04a82df9176da GIT binary patch literal 29081 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�eEovU-uss9Tnng>FEk?^&_}&@PDV+GXiM8Q7}FsOjnZ{1y!B5q(8T)D{C%QBm;mL7p+zzOM%?`; z`FC+n-vIOQknpHk!R4Q}Z?^Oo1E@gD!o%QLb1=gr9HN;F+Rwy*dAJaeNPnSn`Gzw= zLj8r#35GcEPjS|BrwAK^xWI{6GRnfIpD}n5Kb^wU&nGMaaU=o&hb<4BCIIaNFHL}g zWwIz(=a-*IXb>JOX95Av1Sf-qMF0uGeQ(=Pf^ zf88entWH>W@uOd{ReY~@NoYo zJQE(nUo4shSUnoUpW&$yh-yR~*Pox^sc4e*H8p1$nU?&+hJCmn-GA+WVq=!%pEf|| z`1vq>{v#{1W&a05VQ>G>gAp34@poCqU^>%g68dk4kpV9tHJoXT@aQNi4T#U=G@LbH zK9^WTK_1sg5Z@Pus$bKrpo=n44;m%}7L&rk=Joi8VaG z>-`>Fz@vmQm_A`t+E1HWWDBCD7Rky~`=4#j())`|3tALChURA#6&}jU?+BkL1`Y0@ zk@U|V&Q4pngRBtg)BkXWtgC5mYNj&h95B%CQCKzh`g*K}TES@Jk79r6rc`cGA zd}t70_(OL#|4-fJ|3-H<|4-c+RktuY)0p_OAC^z8A*$5rLAkJW2sBjBv@#Ye>nb|XFuHj zuf6|i;42+}|IUFqf6WA#s_#gTqlI`{(80Tc0cQhve;aE2EoWAgXZXu!G|9gy&SLzj z$oju77cgs}!MVq>HH-A8^lu^4(jn_;t7>cN>1eVb7$#i;aT*d?lxe61=p@3ljJ7JQ zrOSd~NWpLc3V?v3O(towAQ(=7gTVw448N`xNDdeRc>wibNCuJs!uQewsRBdzE?OXk zU6ZC*h7{a=G zWLQ^^49n<|VHrI=mW&>Og~QhLSl0CP;5+KEZ0fB?7yAl5kJ2<^!J(mi~ZMh|Haa`rZd2-XRXH1 zcQO3-pW(7{5zH}Y##)9Ne@C8`p)+iXxw&IhxIaCFX3TJ2YKEs+n(Gksbad2+>LAJg zR_-4|GyPTo(_AoF*7!ABp5-xc`hRuIbnt(52Vi&pCUXkze7NSrHKz#7Nq9cH=EF6o z2+T=%KD*|_HKz#7Nq9cH=EF6o2+T=%KD*|_HKz#7Nq9cH=EF6o2+T=%KD*|_HKz#7 zNq9cH=EF6o2+T=%KD*|_HKz#7Nq9cH=EF6o2+T=%KD*|_HKz#7Nq9cH=EF6o2+T=% zKD*|_HKz#7Nq9cH=EF6o2+T=%KD*|_HKz#7Nq9cH=EF6o2+T=%KD*|_HKz#7Nq9cH z=EF6o2+T=%KD*|_HKz#7N%$YL3pca>lokdyoyLOQrBnS}p5W{Fs~w#ktSEMttgW(K z)^_x;a3m<^6B@>hg1?~ex!enny#tE*aDZw;plpv1l@Vd@Vg*;6fxwsd@$k3!VSMKJ z*g0K`rd`e25s#mt|3?@+DWOoB4=63f2G@6yWzwjD0M`UKSCp%>Ilv7;jU29kS-9^koC)gb09nX9 zJYp@Y!VF%Ks)Pr-PRMv`T5Jf7$y9R$n}U6!{P5=Cp%Fe|YawX5&#)FG@RuDDEb=t? zN9HWKe?sB0o#uaVVvQL>=;zc#G+RM0hx>si446bQGQe z@2^-GL(ZG&SygSG;dRPD$?l3<(Yd1AL?6*BIvn>1{)n-|M z(doPfh+xroNNBY>#CKN+LJi-7*aSHtl=or4LHrswI}UeNwJ(pwFQ@Y!w(zsE6bt_W zkh=kbWYAeft{`(~S3EU3DrTC=24B#i+8Zw<1c^b5AQ?yzR2w5gx{v{=iew4dKn{>A zv>aLmQNafMP$&wDh1Nrf&=zP1ln(8Ma-kzo5mW-5gesw0=seT}U4w3d63O?W9;gp` z4h=!0&_`$z)Jwx6xDkQ~F~nko96|*_M35222up+=!Wpp~u?7)<2t!08)+06}b|5kl zxrls33F0*3ETRd~f@noNL_9?dBHkmuAW=vzq!3aPDUZ}Zl98rJTcj&;B{BdRiHt`k zBX=QlkOjyS$Qoo5@+R^=vJW|g90%2tIZ+}gDU=$Dj50?#puAB2s3_D%R4OVPRe(B) zI)`dTwWIn_Z&07vFl>Tscs4aQ12$_mH#RC;B-=)|oou;m#cVZfSJ>Lwp0bUyeMfVn zCD1BpeKZB_i4H)=qPL*4(Z|r$=&R`a=;!E<7z{=Pqkz%HSYwuBf-vhaJ28ha6_|^d zR?Glq9E-(@VO6k3SO=^RmWkbh-H$ziZN#==pJP9960jO78w>-BAw-+~) zdlz>J_hs(K+@E*^dDM9*JbpZzcnbHQ2m%BfLK5K|;XP5A zNF^R1c4%>HS!r$3s?&O>t)flSKCJzKBuKI+Z6#eIebdp^iPAZ#GpH-8yGHk*ZWmdI z>`2~8zOIJ`yM8z6o!9%UucOb@uhf5Qpk@$kP-^hXP{EL9SY$Y0ByHqllyB5$j5l6m zoM+s(L~4o8l7c1uCNd^|CdW)(nktzFnVv8mG1D}QGOIS5FxNNVV1Cg8WwF#E)#8q& zfTf#duH|DZX{!LMGON+0q^0YYUbIGA+gfK>cTprMR7weD)JE54gUuCNE?XDdT-$y- zWxFW5bM{Dk8~ZH#-eq#j!j{!KKn@g#EQd#q3XYME^-dTkN2dc$FPsU^>z$ij1YK6U zl)8L$HFMqV+T*6^7VUP)o!8yly~KUO!@?ueqt8>rbA#v2<>Jff%j>+bUhZDUyvA2p zuGqWcxi`ssi+ATrg_UtDTULp$3R!hwHScPl)o0eA*LbWcUGvq)!Kc7y+?V2e(07z- zPTfZx@-y+<<2Oh%qGi%v`WyLY`o9V=3djl=3|tbJ9r%WBPS2&k3$hM65;PI)5PUp% zD#RnCB9uLJP3YM$fw17PE8&a6X<@cGIc9j zF*+ssX^e5qftXLR?y+a$_~XLjZmm^byM67;c&qrM>)6&&*IimKwLWqE(+#E@@;4$j z`fj|mNoG^>rsoMu6N(dYiNT4tlQfeulg2iCY(AGPnVgV3kg_zTYzxnps4ZPv4YnTH z#V?ap?s?fbWXPxVW^u|so5_KvSRsXK3^5z=zfrgr)7y0cqn_u+I*dRTgA#*&QU zO#aOH%z-TXteQReJ*j)f_O9OBlC7P6WFKx{^uE3vyPUfHvisBbf6Wcdy??;$K*d3c zgWC^I9P&HVcG%?b$s>|Sb{zSVN6&kZzcjz5K)xWm5K|aa_@c^z0 zJ05ntuh_ZxN{MbsNvTBX?lNRqblKnu?-TdREz0Xos-4WQ5UJR43OW^i>hsgz#m(CfStFBkCKYm{7{DBL?7j`$` z8j>5P8si(sFGgH^(-hD&aB20Wp39z>JFYlgxpUR_>h)_@*Dg1kHaA{3x_-Vzzvb)= z@{QV?IyY->k#1GrCf%;SqjRU`uI}BsdwTcIwHmfIv@L0CYPV>=)eGmK|ym}b&@LhLI_he5(FS z&@;xfug{ZTaKFfYx%g$tE8?s3gI0t0Uaxrld?;dQ^39fE{^5foiX&BTP2S!b^&EZv zF6!OX`<)-eJ{%v@9=kN|IR5x!=*P*4)K6lcia(P-H-GW?@^UivEB0&7H>GdqzT1B9 zoeBljRcFfk!*hY@^8Oe$Ha0XH293sWV8F@Aj=`{Va^Y~CI2;$>bS?iMm+8iz5CQ(i zadUBt^6`oO|CIN4gs!6ypdS8Ad4Dlb-XBbB!EZaj2kbC>u%S^%3Wo&yxi8$F29)rCn}b_$I_~(%Dvr9QT+YD2e`yPEjnfIbeaEu zQRSa(?HL%iEvLBd`h!=Wl=LXe>1(&|FFD)taPYITzKvHdFTA#|82|N2nz0;D_Hct}Cbdf8dR$js~ z+DQEtn-{odfge8*6_eMo6j$(Ly6L_zJabu5seRx>@}8oq-(9wv_0t5if0^JnpZ~$- zKYl?VV=0&QY4c0u!h&Y;UCO0sWC8}vJnC#(be^w8H70(~5ni1I83w1;-ac>8UzYgp zsz(>n1Jh(vr-QRU$(@uH`k~1-*!JnsnjJnxE4)u1jTlN5HgYr39cq`c8|E~6h&-S0 zWV8jkvM2M)6tpdE`^ub*+M76m`ugOc5wus8@KB1ILdmXF%iv5i&(R8!sw3Z}>Y=XZ zX(|#Il2tA&B6?xh^Gwd45pwXA?|xOnAe&&C^zN^OqTE%QP8fK7c)lTDXY znsVD@J5Hif4M9E{Te_z_Le7jHY@@s0G5K6pYG+xO?<37J$@|B%l13T>Qx!i>Tr5^J z3Qq7U6{b8}v4&7p(A{6G41KEfNqtb>8F6c}G#aOTtu8ZN;Pz6xG&wUVLp|pT$DoZ% zA!T=+{UKr;mOKGm!7I16d&^20udw#nn*ebj)TFdaMxoGldto7`O@LzmcK}2qW+8oGQ$9ngD4&nCw3}F4bqOKK{1D$344Wf5XY|pM=loSB?vx zRBpUqu({UDw=Dg=(Ya53HV^fb)3&-idHyz0dE@b>3z$!iTh}EEl}H9gnyoB(lGk5$ ztgt31NZ-#P$}HC~(px)d!OoYtSzgRRyWLhR9T&tBPaNb% zMUfz$vuoBg+<8+}e*5~WBix9JN6E#C^(6z@1W5|+>kge~2O-(LVq}EZ?q=B(4tY#c zH8k8M?1VZ1vG(>tE#=I3eoQ*9%MbL6Yu9?<2mFO-^elyD2($cOcH zcztzc%TQ0nwySPJjoYLfWRM=Gw9QRF?z*=1vXI)d$H$uDKk-T^SGveymsMYNq^R~5 zp;J&e?sMUZp$o+fy-qd;f0^`k)yOpeXkLz(f{Y&sY(HbPu|@hopWFMEQItiw!%e=- z%~8XWZt1PNBl|S-mFsh^ygKGqfxqo+Fn)>8*~skM{(W!Sv-oS%2+BhSW5EGQzQPh6 znv&euT^7kHGBN&Rg|(k@<&nCwuET9P2{q-U@{VJaXPhnKJ9R3aW(t*NyQit#xC2=j zZiigQuk3+#W?nBX%BWC$^0~xmo01gMQ8ih{gj?nI=M6o+Hp!KKNdK{mgw3PRa`xOX z;Pkn+Y1uZDqUa@oM+BnINZ(11JiAmOYn)Z8Y?_PrprF_~j;g$n<83%c&OuW^r?>5bQr0=HwY9SLVbuP$7D2X--0yYiMfoj-*KI~A zWL=xiv$Ru39X#$wj4nHNAU@#u)AWf-m)+a;@^6D$>L!YB^2$pskk}QT8dZ9z?&F~M zR;!h+_qm)G$tM$_{$-p>6s!E&(Zbflq!m{P+h1O?~iYvG%@T+H!EqCMTdA+ALVJ8oTg&=8fLmLmFT zr>c|tyIYl78Kd=X_ry`v27VzJ>jPy)#Hg4wWG=#~268sD`_iTzXk?;iO({0+;cdi{ zOzxI7%VxZb*c2DjZ*}eP0~1rlG~>10_g$4fH9PWdLM2hSF7!7rr=X?QX)E&hQ7*$> zDsnmOp}v>hVt3{ghFusy)izj*$jVYpFJwMAV<~FbJgo8l$a8Y2&=fRve|VxR@=K6! z_7Z!~^_*TWLcDzwPB(;?-H|ao%6%QRYAaW|aQEQ%GdL||Ytnm#phH{VU9Ys2ug?t* z^v~F9S1Xa@QoV7-SPP`>TPfIFvkbhhe!5g8}BW;UM$+;%ro^rPY<#rY_HJbE6qiu$U(ynf-EYm|L z;}NxYd9J&(<{ugur`QxXLO%!+c8CA<`clnvZ&h6SzH{dftPS$TWy z;$)@XxWxloI{)_k5z))u%~6;Vo*)9{wqJR+S)ifoW_RA$qYO9U*H^a<)>yQp?@+s^s%Bg- zaPFe5H41lH)?-u1b|u8#sJ2eC*7NI~9T#tt-cluou~u^)X|3D#%;`!-UHD+8<}a)*!nYuc^hyxK6ivOd$zAqKB^b>)+Vm6JS&jn>}9rsWzs9QZ{*{SQK;}vf04A~ z+mn(ZZwnF6w%uy>1|bH1HfEUi_U#1}zD_FvGgDa{u5<6Ty&6P{+N8zUv-c^!)vt7V zUfskrCH5BF?712oFTG5HeP?dgsz=|~^1QGPHS2uLZi*NjeYZdGMo{c$zeGhTbFcjZ zqWGl`(9%RSc?2amu+z0T@N~0Uk3j18+-%3#GWX35S}J_G)@@2vME0}$v$N#bWj@E# zVs6KrF>0+ku(iOK_uc4XQD|Z~LCI9vtEI@s+1SwLL)h~~=VgnEUuDz7L*?G9d~Z_K z)h@KE)WvfWd_QLA22eTNukhLt^s(P0P z11rkk9P)adVX1!b9-BuUvuu5dlfy<&VJ+MHdn;td>{excNx9av+w0AS(>5zeqvMjr zy5XG;4a;)WY};CyLeFhBhzd`2z3JNF$j%<$A!v6e((_uOP>PA$$_GcbPDbRLa!Pl! zS0r32^)ea{FWebv_}sLiC;ONQ(O!GVWR2OVg+sBaVLjCN+^5RfkZ)T@DxV&2_va~S zZ=xclV(YQIQjh!c30c+H#1=NGja8+WeNIn&uM5R7h6IJix}BZ8&d17p{n$jQ9y-}; zu|xdE`FLFFy>&i$JCs5j%EWKHKasl9kJqI)x4-PI;jNPmJ0lCed`P-h)V1BEPNu6vus1!yhwf&cRNnDjF=joUA_BZ)uA}m2L2KJRw;u zY`Q3OV6Ts;CvtX9_tqwP zc*@9Yo+9~5IY>2rkZ|6A^F?rN?bx%ka&|jLGi-{nSN$GPs>!Np%b%nSN=hdy<{q{unRMXxo_YsmN&wD*S zNrY-=)0JBvV>9k0ytWiM#QUWXS-Do6o!{)#ajmZe*8^i!+=i*NV)r}=hwY=_FF!u_ z%hHUv6qTF4!NYI2t5_dsc`10RFPUMyXo;bzmx=z3<=bT{K999Xty0{ujC9o2WxX3l zwT%=bhrNcj<=wPC?O4w9J9!!Qf-3TDnY!3DOT8pSst$X;cHfusjG`!Rv)*J^{p6=- zbs3b>n?f;8r!t9lMbX&GPtWZ3Ls>!H15FZ^TuUB%tU0k!e3N&ov%&}A9vjIbOS#YM zm9g>9HVX@uKdwv&$dhmMb8d`5rr*f#8Zj<5zmXh&x%B;{`M1>}JLF}`9({SMtm!h@ zyb!mZY=-lo9_=wp+-p)eUbZN2lbsZMb+%BRYW)%3H!V_3j|`Q>mYC2lpC;GXyzF?; ywOasnxS)Omxs>ix@|E{Bo5Z0_e$j<%oArh$XosF~b4y@&X0`08xNP$pZ|8Q1B0+RDg&O1|SqQ@h7|xrT3i&4S5Iv zwm=o`aVVk?R)p}@^-O^ME}IXJwSW}S41liekE3H4JCvdB6UpYV<0IKI>Qq0XdLWY( z#!id}L{n1>YXZ@lXrWFpvoxv0J9G@Y}-EcPyN^SVSd6s2qWBZD9m?W+{kgD zCJ&DTr89CIXw(lKC}Z?b-J(uI>VP{uLXQj`1tWcl;2>4-5l9NhG@t4PP=ai!f-5Krv{D2m+@Qh8 zhJk^C6~W;}#l$6GIQ&XP0W{_ZQ5K-EC=42l7Qy30MKF?PkSK@2PLU^wIL-`F(1=}0 z#3^piJMN^ZrQ~}l)XY3?RUH+to$lB9;uAfdG;aTi)jG~Q{KH(T4{$8T*V9@UpHHs2 zd@teU7gybk{I#ccUb+9O>tGr0LF?Cm@Wtyg50zhi`1+frTVO=u`dtO5YZ~5k%K
                  5eqK))^(a`g}#Vel}`0jqQ{$m(#9bM;B`pV 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%0Dja6n-|cc61%dSLS`lUd7W-JGp5n>o88 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૦ilU=I8^3w$Rh1aryLRN1@vEe`O?@pzT+nv6 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 R;s=GvM3(ZxPL-v5{|~;{ne6}o literal 0 HcmV?d00001 diff --git a/vendor/topthink/think-captcha/assets/bgs/8.jpg b/vendor/topthink/think-captcha/assets/bgs/8.jpg new file mode 100644 index 0000000000000000000000000000000000000000..e10cf28115e47d1f5413e76efeccc39cd655b6cc GIT binary patch literal 30188 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 literal 0 HcmV?d00001 diff --git a/vendor/topthink/think-captcha/assets/ttfs/1.ttf b/vendor/topthink/think-captcha/assets/ttfs/1.ttf new file mode 100644 index 0000000000000000000000000000000000000000..9eae6f25e4cc49edc868d45c8dc9d4f85b4a37db GIT binary patch literal 46124 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�%{B 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 Zlv{d@NF(dzyKY&^pHc!3*43K{{|g=w6#xJL literal 0 HcmV?d00001 diff --git a/vendor/topthink/think-captcha/assets/ttfs/2.ttf b/vendor/topthink/think-captcha/assets/ttfs/2.ttf new file mode 100644 index 0000000000000000000000000000000000000000..6386c6bd2adc00ba4f1aeb6bc5e01e1059071885 GIT binary patch literal 30352 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 literal 0 HcmV?d00001 diff --git a/vendor/topthink/think-captcha/assets/ttfs/3.ttf b/vendor/topthink/think-captcha/assets/ttfs/3.ttf new file mode 100644 index 0000000000000000000000000000000000000000..678a49178687e2fed4a35839fec9d8018ca0252f GIT binary patch literal 319636 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%0AttF5TT6yUMOTdf?LOUFPGL-hGD#QoZQ0y6UYB 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%0A0;m*W$DBZ}!O_Nz$L(@k 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 literal 0 HcmV?d00001 diff --git a/vendor/topthink/think-captcha/assets/ttfs/4.ttf b/vendor/topthink/think-captcha/assets/ttfs/4.ttf new file mode 100644 index 0000000000000000000000000000000000000000..db433349b7047f72f40072630c1bc110620bf09e GIT binary patch literal 217360 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 !}#gv~NV!5|5YF|kE)J0y^zWbk4>=%|6F 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 literal 0 HcmV?d00001 diff --git a/vendor/topthink/think-captcha/assets/ttfs/5.ttf b/vendor/topthink/think-captcha/assets/ttfs/5.ttf new file mode 100644 index 0000000000000000000000000000000000000000..8c082c8de090865264d37594e396c4d6c0099fe4 GIT binary patch literal 162876 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 literal 0 HcmV?d00001 diff --git a/vendor/topthink/think-captcha/assets/ttfs/6.ttf b/vendor/topthink/think-captcha/assets/ttfs/6.ttf new file mode 100644 index 0000000000000000000000000000000000000000..45a038bade527cbbf30f197c5a116be3cfb2f0a3 GIT binary patch literal 353824 zcmeFad7x!SRqtQ>oO{na?0Gu#J?9SHx4Un;GY|+tLXbHS1R?|(0wD==m}5YOASeik zAc7#HD1rn~5rPadM2z~>ABupAJbCzVcs>E2BBFBM=Ue;id%HUg`rrHgk*eOc&)K`C zwQ8+zty)#*wsDLx5y_gl^sW!M=iMLNf7(6F`hC7`Om^1YFTLLbYPalOWvXAjt8w`pP8czCf*y zyzH)*Josy0_?O=@CjWb5;?F($iC0|vtIvMi$Bp^ObBtO4rAI&W>C>Z&Ma`JsyQ49c z@TzOCe&RDfde@tc`Q*Zw+WhJ(o_4LtOq2G{p+5KOC;aeLkG-JtYGb|}n#%o;Tyy0U zued&%qHY^o>jY|OKt`h+Jx`ik16&!z9be<|;8e&Q9^UE6wX<1>`M ziSpAYUGc=nEbe*y98I^``RZz?dcEx^k?5_svm-$Bfoy_Qy+8fMR)t;UmJ4^ zZC1Wv#9Q;<{@aNkzv9><`gieeJZ-P9Rcn=MW$iCbWqGNYK6F*Jx$8xjTx9NS%)hNw8_T`8PZ}!Syh%^SN%vwZnB0*Y|PVkxS3c zR(_S`^SR~4$OhF9koUEwQF)=ctnvhNhsy78zkn;_dJEq_VJ>sJT>nI#XYj0UE~{Q` zF0OomdyDsvT;269G_%UN#;v^1+`sZl)2hDJ3@gtvN#!zAt6XSi&OOZ|)o1Pv`mpEx z{qo

                  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 z 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 literal 0 HcmV?d00001 diff --git a/vendor/topthink/think-captcha/assets/zhttfs/1.ttf b/vendor/topthink/think-captcha/assets/zhttfs/1.ttf new file mode 100644 index 0000000000000000000000000000000000000000..1c14f7fab9287c0746119a6c1de788f9b8e8bd93 GIT binary patch literal 2183628 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%0AxGNr4ql@>e2TVjC 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 z

                  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 z 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≻d;ycWSqKxMrFva1_ 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 ttadbN)KkB`o93VPe`p>kARxCs`}iJdNs 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¶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

                  ^SXbDKBsQ1XA*)qi2H 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

                  ^CQo4_4}AmejKBGFmFAO&Abo0!5(&&~ltX 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 z z9`H?QvF28D|X^ zT505QK%clM?F?zeVU`B{!?=2;8`XM5o;DGWCr zM8t?x*IOa~hj>-;n}~XqGErB9M;&qIdlU~K+gfp*JTCHf+Vy726iG7k5MdA z2{9#XYdh2n+#7P-ltc{TD{Rdr;0V?C5ENGSo#qD8t{4BLiL5`D(6Q`745=;TFzO9%1ve#lK_|MhY9X{ZN1wNng zLZ;Lt1Lx#khITN^3EU-&puhuYnydnl0)Z=_VaU8*=~K3=3&f{Ed2@@o>QfYt%hf#Hb4lIsE;i6Y#tkbiN;8_ zfjq(#SZ1BOK%bcyQS{O^rma@J2CXao?2sl~N-;saOg{Yw_7rT8Be&9NRGs!1?Ss;J zzr`&!k_&iRaC=wwQNX`!hKdnXt3mL1_CPg@TOsY>8NkP8NzJoX!(ZUze!=d{Vmk_9 zuYfld#3WY=-cMl{#RP2CX}kxCd8t?VF}Hacu>_XCSVmHwpXYC6WW9iQ%5`QYuV4z& z(ezs6C0oqvB_+u}oNW+kJlH}DU1fYZzLMVS+5?K6$v4%A$%fIG2l&B}tKltVzB*K< zN%etB=AB@_+GggAlrd&O9}=Uo<8!WxFFO@CPn`pl!B!>T!Iq`1786D2>4y=D_rL>j z$q7L~$E3khmKx=hQK01*^aLA^Qf3DrrD?s@{Qp;Mu0KQ!yxV+;&~O=F0+UPN0K7b( z0}rvx1CZtb*FH<3E-q`IKyrccCoI+Zwes>?p@ln_FW8t~j-!R^Apx}`xkMR%(Go@Q z`8MldL_DPIF(p>|3|a1Yt8f_AstNt!G(Ybq^5P9PzPakZhz9=zk5^%o`?dqV#ydqh zGTrv`vT6}mk#MAi9t?z`M>wFVTMXQ5b&%Yt4XDxWrk4mJkiHEC`9bTKVFE;WfEuZx zs9jCl*tCXa=8dUK@S8Y%tc+VSbw<**G1r!mcv7xm_i4&lSVCH61(I_z)?}}RD1}-H z+j_WU&@D)DCT$?aYGy!+vqTpLY6R#RU?qvBs8U?5{i?%@n(v+}|!Sp>jXi$#Bv(uXnvI@AagjsRsbbPFT_- z%^2>3LrosgOl2@l87BvBl=HGWeCwf|$0{TSEo_}|Jo3#^Eu<|e=~A>YNofXN&yvp| zx}Z(1K1ijFuLeoiJdHyg+*gqUE>(mnRcByg-5VsA$hf`L^%{hnchdFrTKR2xnxx#n zX_Zz4Ui}I4$Oz|kdmKNBvEwe&B&mm@Qg$f$77E!rfo3UwAj+bE@G)z8plyQhvTfRz8v7BNE4 zUrm?8G^^FpYIUR5Us7T6xlK(P@IvZ|hynp)Ori=hZP_EenzVItZ=5dU6IIRHP!|ih zgv!A1zc4ShvhsVQh8HdM-6`=^_6H9RSwI8)Ex}$l^G2Q1ji8cq2Oi~x;2lA4d=Q;R zT1y_H0=DAbTt+>sw5GPz8oiUDL#|~rkfpZ5L(xPW3Qu2oiU=ZXSDl459q!eThRu!; z*aU@M!Lx(}(6|p*AOc`eb%9L@?-H6tsXCxR063jeUZuQ-K)*OWn14+hVvoOYq;M*1 zgmnp>hakk?hHP3NKS}8may@Gp&uLQaw5Ov1(>JBT zUMFO~ie5&HA$9I8Gd~wenb63NKeFLrf-K_*&{dR~ylifEm~uw+0K1C==j9L!G&2k- z;8JogD@%TgKcqP71Lo7>g#wEOLM~YLfay%Ss(k}R_w=#gMbMgE;5QGMn-gGcFe}Z$gd;GWGe6yqWg&1S*0Inf&cHGfMP_IW+keZklRWWJX zZj4VkWULC-5PD3r=H(j*|Jb=4MF;MhdEZjMk~M2GxNYjLf5cQ`Jav>y`NUF2JQB7` zo3r$YQ=wV$s{k;qQhPnpNV51>fh?1g@k;|w#2AV%vJ1-suOzy0OmPF1Ns_4Mw8K_! zF*JrwgQq#IbKYD+D+|tWL9a_R5a*EQzWC0QJro@I6)Q?Rutlv3F;M&v=6E{8i0rQj zLprEcG7UDR3V=N-t5$PRWY9b~xI`{(N+1C-y%aje0g^#t+i|MZocBf(Ehta>7^GsLmlw#tX>m~Dm<0HEm~8g&cg!`kFROQ12CKzt`QT$P4Pdz-YRN8g zi<=W+s)Y{#6mHJuj>*3Ts5zJf$2{jMIp6wt-<%>K5@mECy20q`wp(k^0~yoly4kGK zXB$0|^x}kkct34eg%e=-7o#R^a~S|y+ni9&isFj7i3681d?iT_>A(RATd*;B*mxfl zE)vRO=xW_ZA|_6+^S4tdgnSdNPcD(Lz0Ny=q+ zsP1)SO39Py`WgBg^$Kkxx-AEBBB^l3*03=>Z*?WC(E54o)l*z^U9&glf;mou-^Hk7 zQm!cR0%77&#>{3KnAfN^;!vAmSl;8BhU?d8EJe*5UDN$g1+rz7p2Yng9A^u`U-9=u z?>Js)BTAktd0eC^wU~r0zCE{bzfG+B`MGvgEFd9<2ubEW9$=BUs90r*jRG|8D+{!e zf!Ytn3OOS$UT#gnb^&9-`LkV_J9a3VRgBKV;5%?T&}63GxZ{3Zp*4WT#51>EZIS#7 zBXgV!NqPXAtVYSokWOMOb=mbtCOqdd@{1B8&cc%1R7zU-**VHk&4L}3;nTwMae@X- zkID1RtAarIM*LwO6TT9)kU&N7y$3sR*&Uo0O(sIM$s(m-qLDP7?BhbF4q0VgBzpH7 z=ZKtabOSB*fZv_ONb3P}{NDtwXe(Tf|sEC0zD-n@TN<1w1HYd|9 zly=Xo?7F$vuEXDy_ckLoHO66b%ix71frgG8LL5J#xe%yCmm?Ri388yBAjdEx5$d9H zpl^N}=)S`I0!h*sMu9w1V{DVMAOgwFLurmn2m~*VQ!EbZv>9BIMBWoj9BBr1=CLWp zDhIKx$d)smZi=T+z3{q78^Jc4eV}!n5RT7IOfK#WZkh0UDu^ z-svn$(p&*bwh-f!;#ex6bplOY0Ysh6LC0UPL|g#L|2bs3d>tr3hEG6G7tPt~ZW5ho zH}@;`gIYm&jK)k1X3UZ(8PtZ2)=2)S+#583o>O^lNEFbm9FYJ43Q5bP{~tA_jH3Z9 z5#vHtb#+xQdAnzNW_qT3dU|@B1(+FNu*?hw z`yv1YNP-I_kb}WMT)>?{QPdES$WX{;giTqN3EL1&%fSdcL@W_{@Pqu|;AYXGuq=vp zNZ|+n{@=~4?grJ>S(VGpn|c4=Ip;h3aeaCc*34Q*ib6Q&Etr_WGgyNp>EL-uE?~Wq z%)+)zR7;9g#qN{=Xmc9FIj9Wz}XbV#j7FvV?)E4joogfET zkQVfU)UMJ!G8GH+7FLoU2?8DzCBMO2y--(hhjOX9deM`lG|`wYpY5H30X-5C>fvfV z?#A@lHB1ddCwEU-gDFEhS;Y-;%dex{Oq~e#Ebr&`UNYd;!=GANUMhAyAG98k7h)jX zf%zvxbekk|8)LIOsrx-;IIYotD)FCM!zvFN$5D_L+5T_+E35*o%U^x2YrR96$X!) zucJ*|;3r@brgS}e_0btrZQg@(PE4n_2-gTcqJ}bN&mj4g38<``RVJ5>ACfD=%bQJf z9t`;?d2(Z01uS7dOPfrjq5F3b_fQQ2HBH^n+YlmF1fy;`?Sve8&vx;+gW*Ks=8;eT z1-=E0ryR;ZB^&kIEa~$$iY930#r*&mc>yU|=oVO8sMtiNY$r=O09X}uYB#YWK=|p6 z5yylFEU0E3RtgDw9NpWUfE3{mqjBtEwNal8>o8%Vv9?OrF5}3$2)mtDP0{y_q~=p# zO=DWsGuQg>f6=`7C{=^CpX6edgUiW+OzFz~*lA=R=km|{RVwol&y3_JXV#~u3e&{9cx@3W>pNdAZkU@K8j5PpV}** zs$EN7AjKkZ(7mEqpacBz%+i{bi#)?&$VUiHzBs`MLUWy@C>Cd%i44W<^O8UI z$^BM0?0k;dOn zf~~JLik+z0t$jwbo2^Dpoo0x41kv@xDO_Lf?5%#j(siRw_N{(WFQSHXi4qKy8=6HF zUb;$qr1vHWhm`FM4GBLhk~`u-%9FHF(1aZ7rc-rch5x;r`CvtqhMTvohL}VLBt+pr z;?un@6ij?{R&+WYW`~hN3?=?KQA@?Q)g|gl0?l`pQqck=bR`kP%4r1KS~3fj%_NBk zS3{_g4g*&7AM8lLoXrHX$hRyJLo^q(EGsS{c!=3Wb;u#y8;{7K!vIU_J+t=yFPJZ^ zV~)S)4Z;gv>lDL)9coV*NN|14JIm!Bv6udR#GZIHh$P^*ht zB@Ah95f`S5vt(8v{JCbkqYIuBh(u6R-YXpVCs-u)c!f3)alVZ$XYn6$bCxn^^T43jp8pD#E} zsllj8YSl?zKIw?@5aU-7a2=`W5s^2>7~pRrsd}jNBog(=L*VtwQqzun%B&P?oftQW zQ*;oaIM+K~a-(RwwasuIokbWUB6yNrxYP#2 z6D(YzSBvoN$Lq~qfEdF7Hu}c5C#eftRe5!*YgmG#eR_=VIT7Am>^0h9Y;ZiiHJGrZ z-DUt0kMIHco0HnOb{s05mstmAnIcB?+a!-_GzNM0gok;A>UnNuJW#2UAQ z+SrYyqB?`sNuE&~sY2l+BFR|Yu_m6%u9J72IP7GoQ4yiCqexgb6B-96H~UineT4N6 zAPAfb%E}3Yy47w($Nz!_Q-}U5bOXDm-Bf^C0NENWyO!0qYw?W$7St?+AUumA9_bnG zLmHI-sx}3zxYTuj59|M0@Q}MgJ_QlZBh)z$9dMXznHQ?8d$aO5jHcY#&$Bfe{A)zW z4j?S;v1ltPUIY0H)kl>Cyy)7PS}T$kySwzG-j5M$8*DhjeDDJqLoDBIvO-QcdzI?T z^Buf+kK2r3n|BUTR3ubt&Gps!@�}ATq8*lvF&xo8oF6E9$Y=E)i$n%`e^<@k*Wk z1SAMa%T>32cZ0eFDRMW#!+FU}kVq55+&zXF;)+E>31d>Oe7{2)+xoB45Y5?SfU_Zp zie=nHQ*fTxaGmV~Dz&W~!-SO_i)kDO5U07|15Sag=8E~5Gu|N^P^H04W;ia;z!`Lk zJyar^^lm_2>ru0g>b}Xlv0E6g_Zl?B-i`M5=X49!bgt`EuU7i5=;4HWSnNusFH;4O zO-o3GAR?*+F#D=lO1Fi`;uQ`+>T~1&Y#)JCF^N)j`Wj*HtB@X4c6O2|J!|zI)7j&%?g|}AqzauwvaKEm zBjt9980H0}R9N`}LOJ*EQ%?~qT(Qsr4}0lcKJO@{{?GW!bG(bY6~RGr1WlNPBWp-< zwa=w>ASbpz=d=?cT7rlk+wSP4waN%BxzuNQ2XP7zHJg3<%VXWp1Ddo9^(V*osJhjG zjc_21VoI`cyhkK$Mad1K9L=zOfDY%ax#<_ozv8E5{;pd4$}r#?pes;lO5?@xu6bn? zZXTOivqdrsZ6fe}R64&Vccb=}`X|OhB1d^qaMfI*AhFw*UXfGIngA9PdxW+^ZG2XI z^EVe1+W0JS0gx@n?cCS(W6Y|{fo1oqA~R#s>4lN&HAsy6JOWJ%y0#hlmz#N~nNZNM z!89=CM%I~+McbYbSIs%|Rc%%f1;`;z99frm*x5|$L3Fox1cjDWzyZS4sOQM5eLt_S znw=m(^$4PVQKwh0CIEK!$f$BNB3E$Qrko4QZ2RxRs86A>zXvXZT696eVhPidXt+eZ z2s{-ax_USVAZ81pdmknoD|jtt@?~1A3J@&wAFQ7~?zn~f!Y`1ewQRm4u{kEtm^Yo) z#3`T |U{aLqn8&5H;pMhADMwlK0iw;M7tj|oV(R;d$l({r>hGX4m&dx)iT ziW<~#0K@sme2^J_Iw=NNwX(YZ59-DK1<0x2+$%Px>4ej&jcG|&0BQ*d;fttVV74G6 zAhEECkVIcXzbIiokzuhE?IkpdU=q;tT~)L7Y}g#`lXH?hHvZ9xwS|ybbGKazr`VGj z2apDvOiLM)G7_tdD&Y#CN1SYaJO0lwp~Q`FPk7!*X-%|BP^)LQly^M*3ivEatzvX7 zcoB;F$MWP1ix_|h2gDl!k&CySpUaE z5_!V4pE5u7RaW=IrXAg-;k?c6P<~;hsh_v|yKwwIkuHW@%5CmjtaKD23E5O|M-Xun zIr3C_TE4Khx)XANVu=+g*YH(z!7xNmQ=DXBIGc}?G4uY*?7aNnMaifJw_Gt-;JvrF zaP)F4<-j(vT+f=M1$gf5k;mk(?1*e5$^xjW3O{5%^eFn`HeFGURl}<4*F%1{I0KSd zb!CcgA7aI;`}a$h*K`4kh1OTs+N0DxAekj%raV8_u}Ezm*{kKEdE#W-yGK_7L=0@1 zkGhd+{w7~jWW#(7LTk!{pwa&XjgXO(XmRr8&|=Y?AE()B6p>4QiB;3|@0KQ10pKB? zZuFdh$)*pPiFs!uTt(YUTPYfl0CL?3iM@)pOmaiL5qM8&dw1jW6^RAvyF;srz2o|7 zzm~P?*GN;pKr-bsPgjazd>&m2!t8}E-7+qj->eObjQXn@VF*Q-{=(+w?y^MpG(a{d zIHUs33U5GI$YsdGLS{h%kOgh<7tky#fnJ;b$dond@~k_Lkt}TJAweS~4#^EkD8gPuRIj_Rk&CCw>J#5uq zLI3-C^Tj4sL$et)uPqqGa=&b-e~Ey9nVstcHcl4V3t5Uj%h8K223O4|kUsY%Tu^(?^@R96wy-wvf7 z1|1EFf=rR514NCr?rDGLeow`ibhHoR50E8!p0nMMwuesr&6wqGnYTuS7F>om%5`@M zCmur^%?3Hk(tDmBGI7pJ4#|9=I?0PvHG{!K5=cbf1`T$w7DklO_l+-wd$09D2$27c zDd?&soHekS+JDK8w2x-|Nn2M_Z9orDiv(v0wTKbQc>!caSQH?>dY+F!-mdmok2$kn^Tc$N&dq2rxQ}NYg?yjr1DtvQI|g&m1*t_03fX%NtQ3cypD+ z9(Uw#D^FSGD}AReB{~j^h4Ie_QX!9a?_ zu@jNqmS6#}L$wM2PyQ#=R{WNvE9hXgyKugV^F>*<{0mU{j`#2g`Yxsx?V*u~kDJ!| zgo5@)Lc^g)v`84KQP6buATdNIT&08z<-x_ZMs}0ZNVned+owqmlkbSI`mVW=m|cgB z%DR4LXoEEB#PU|fr~F#4SnuepxK9$YcLR^b^L|8mt|D6g!u64`EsNRmR;?J)1aP@6 zwSB7y6i6PH@npe1-No(VANU~F#InAs-*^F9+a?yNXeKh};= zUEPVF(3wCGLYg@6HBN~n5YmQKG=rZIq_rz)bJ26^62Rm%#tpf|4r*wM8~hBoXVZ+4 zxfoxp5-n5sG@M2FOKt4;d)6EFUh|qLI~OoWT>E<|2=uqwQgR7Z*-xTTfjt+*g+-J1 zM#Y?Gr+_G{YN{_j=O|+~r%WA{CMM#Zcx=TUyDJQksGjtp? zg+^|oMN>U?2>sw+C585!+r4hCKWtiV(0m6Zr@*KdX>%B~PJPD>``Fc_VFS!YC+>GQ zMk_VK_Nphs(8uzE_5crpRR1L$YV!Qs8n5*jqvYw~)pwa>j%2zh$hmok3#gj zW_?BVO^Oixzev(m6nc5eG%eM7huBrhe6}FFdqg&`c)tQ-0TI{KNa6o5uLiF{3Y&d7+%?4aE3L8W-ubuT4ojXg~y{|ul9^j|$?{R%(!~h*G+8;o(5gcd0J+7H6wgr=nSH`YjoZzcZ zo?t`;Zr4)@q`j{)qlAQxjQJZ34yRfsL5|`g%J4!VGpoEl&8m{ObzzNIO1Ph1$`Vqm z=tum>&0g|-1SjItQDrGygvg<`gk>h4+^bz|OZB1q5{i@tN=yw*X;r+5OIk{n277+A z2|=K<5z^-?ZB5LCuKKe@rzuG(+skqo)#};p^~)cJgp}*jWm(m$^d;^wk%6M^I@Xz6 zJI$bL=Jnl12%P4?S2+|4F#)z_HL>if&G%Vw3*VV5D8HXstdgut$9j!qGNt@kKZd+slIP1>(0Ai;R8G`A0?_@%^|E=Mum{p-3Bpp| zlr~umcH^K>tO7`avHCxY_^Zdii@T%+R}}nylnwlAT%(fOa@I6DcGH6SI3zGs^{O^Y z5%XddjHcx4J$*jJ;} z?xshXi3(I8%S?*&5ZOTa_NiEMo7#QB{wk*+@(!gpDZd1fF@Z;4iLT2t<~0?jZ^ZmiKd@;MV!LNyQ-MBfi7Q7+KO2xICHP z5Rcg&TrR4qw0Fkgvb5?QOm3%5YjVk+s4Sebq(K~GP|T4AM?ijwA(%9f5&6kccFyX{ z=kNtwWE$vNn)q9LorLKoXt_`N8WWvq8#9V$ykNU9 zlA{qmg4o$$w%oIaJgY76WP5}kp-kM4EJz|U$IL<(LU)APX|q7~3q^4#N?AS1H_@DF zevh$KWsGX3Z-CsogBkOxP@m33W60_Gf)Igb$*J?Qm*k=gSErvc ze)o`;D46uh--%YAW(Z!`7(G*rYOD2!FPmQh{Ag~Xq5mUtCH1~=mNY58668qaQCa{R z9IhmCKKmlvF00D8GDVL@5d$=6kM83*psXQzZb18R@2Iuji|H)i8TZ>X^%dDaT(~r% zMPJjD!m8gf^(!py6#{mz(Kgef7mAq$#e!t53bDlUK9Yn!q3*DPD6)t~(*Q3~!`EP+4d~j{5|dQQ%>UQ_DW-wZL>dFNDL77G5@8jmAU)dEuPaDP{B3Q9_@ z1_3E)Zx*CiZH?&Iv0m$hQ4nk@YpD~vTYTZ+A?f@?%WL)K4k59=1{XIkp&`iOjDB;_ zq<<7T%UNl9sr58`hv@LTv0*-?HL(O*fn;O7r7|!o#jdDu*P8K6zQk5EuBE65e*yIg z;L3ys*ht$}Sm;%>!RlkCe|SvAa?iM%jik%`gJG?U_@%W_hDt-tQ;J%{bZxY4FGL`d zS07=c$mJZa*u4pHje)KvfGo}$oEp62P`=)*`8uuGRMTU;hwX3D=%a7Yfd(6}+^yGF zw%5n)gk-7lW3xsuI=GDb$VSEjxHk(2cRT_bnc}2XVX(TTc;19cZ1~LWdkIlMa%0<5 zQ!fzSm?-oR(l<(0J~%nR*^MQJ=&rQE@1hAVrU!|yLCz9jd4eBkJb)la2~A)JC|-mo zru-Gaf9<$}-K{Lj@(+*M1)Oyp5nHMuVFT%U?B6Oh*RIhb<4L3}N!*6M93rG`%6HA9 zT!+I5T4N^C2bQsEg&AfD#~lh*8N@m==bk-`gPH?G)RC}xiA;SmU!)i!BdKK2_Qp_a ze2HQBOy2LFewNloG!kOYas0oMUjLMAAVf8TRan5+aqc{{iRhJF{bO{a?-HYVnt0b2 z%&&?Hk(vv70u5a|G-QbqFe-AC$lw);()$R~Zh96qq%5y54=Qu}_A11)I6<^LC(_{i z&S_t0dZ}d)bdWFUaygmzC*wjR}U4a@;oL= zE`lOxptAZc9M<7pD`4`?HakhPk#QbCBDh`8(niwppJD>dC?$0=^aib{)+w6T+Fsq` zoL8NcoJ=>SD4tATav$gg6F0uGv{eZHe-q|CM!0Q2%D06H`2LCIH1we z3IlN5+8MP7^whcvU&l4PqS-5bFC)fI0R2ox?=bQVD{=ggTEM)r{|=ezBg zzKNaj$GUt0nNusc`A8dWLK3tKr*J4t^x>LLEYH%nNzZ7a0j;25e}vVoWP{diT9idp zlvss!u@EfaJ!SFHQ9?`gmNn+Zebm6R=Vd8zA|>SB(uotq3=%lvmGI@TadX-T+vU!t ze`y%6o_vT}`QsnJdm!(BH+XEbxhVhH-`N--LB)-F&?kjW#zn z^D*kk03U_6SM-EJEwY&o%zjQDXUFf54%=|+9aViEm~k=*O@B!HC|WK_UMnm6 zyKriisbV?BZhaEIfO2xPXjt$NxO&mPB4i}Jg4Dmqu?jDdQ6O=h=z6rX- zzXyQ}sO^>gSn}_F@{qh-kOF{+iG@o=TDs;4R)$b=K>;>gJck!$QI_P+pUnRd1>|NL z#49s%5X`*uX5TO3c*p!A*WsUW5`vbkIBB)bFHDKYx$U+17EZuTEO1R(`AVhOQ$S;F zh)ph`Mrj2OFT4_@4aPOK;g6DQ>lEU8wZqVxc>XE6c{w?jQTy!=A|aWXdUIkXy6P60 zzPjoe!Stnd#6>SJyJ9FUtKDPm1;Gr~N`w{Qs@W8N;v%b?H87=U3a8StoK7*H*_X@m z-2`(NHT1Z#;S_I!RuAw4JaZaa_`7^7`h1VxQ1lzMVm)cH(LBY1sO@D?`r(?dN;);2 zdI@Ex9zQi1uWsO+nY?M<{9h*MHlhk5QPd(K|Clns&dc7QIaS(7&QjE#ejFte5euH| zQ8DsEmGA9=PwHxodwPasSf~POq#G96d{=IwZOV~LBv(^kP8PE zUB5)TV1O3%GKX23L9lRCQ7&yNOFDM{0I9_rbiSha750LcNn9eRnXEbJGm0YJ#eQTv zTaB}EeUGozv-X8^**unSrLR7dZFbc;mRM3#j_sI4N)$@+ed$@KB*JxCG*mmy23yVZ zfbuexO;j|&1#O7njuYug#H{!UzbulR6d=v;Vwz&mY3-2uLT{>&p4eSx$Q&uLodLa6 zckF;KFtM1b`=D(JGUflqXZ031>FNu6JK-sDjD1jWsk-pRZi`AH04>QuK~{_i#(9B| zspJjML3}zwhXIx_<i89&+RX7x8I%Pm4)PTC3 zva*^`aYh+)bkau4U`wQL9ZgH{Wr}%GZ_v!Fpu&6^gcK`z&ijbFIbt;&r?d^`y~aGJ z9UE=Nsj~zGZ=7A6D5L}TYK>o%)u?VRTa*>cYoTZsVd%NVJEHINmT3j<-5&ZBtU+qb zF}9^cr7}&TnLf^X>{{x?i$vA*3euBsf(94&X18XvnB+xzyw+O1&c?%LrKMJOoCiVZ z;I4yaw4wG_uz{`L?EgXnd|1>B#1>mf)?zDx2VwK1c%22RmQc&Vtys{zcGe1QOVdED z^psDaBg#WzbPspqaXmmMDY~TP8QQu7 zNR`_lcZ&Q)e;ZYzVcx(XBAyUq{4%N`dSc?KM&b~E0H5IXNc4xk51@2H-g4vG%Gn0p zxaDVhjLd+Aj%f)Ly0&CrT|O|{>lbVm!27n2CI5p|0bGj%t9Mt7qXJ7CU)H)Sh^~}! z8SZhg$opKkF11a>yLaSK;z}J?re!DCLgVQ#(b#{HUnI|)I*=$o8-$rJt6wixquaQRNXXj}9;D&8HEC|=#-})0V4j!#QLr4@eQ0vmOm0#me zY*oWEcqTu<7WNaC!k`UkDJt_w99(HxQv@PUh(#+*KyPN5wj#6z^Ot&K2&gBPOJpT! zUd&5-QV5iLQs_mp_I&oPp4Q3vyl>H^rA48V2``vovsa5cy*8;lq<<+vkH)Gb)wrjW zu?UISIo`4=2DbKE!Du+kbr7(Rao_E9y&Fm@q4vLVZi`y(1{~PGyyf~0Vx+!HtL`>M zB=G*Trn5qECQfkwn=B;R$+UMjmyc_Hvy(P!ZE{kA!n{cDr-(7McULH*fa0>_)NSJb zmj8sX0SgZiVln!zfTrcC(hZLIcB@$!4aS_7!7%>Dgeyr7BA@&zmv-SasioQOsVfXa zS)tsNxTN}R{JEX<^(vd`f?_LZMX%^D09KZ|Us}-fqPowzNLtfaCz?jA3iQlNmb~xX zFP5fgwT60?Lt0~#Q8^=SRSr=zpyd$hu5UqyxGa_54y0dBz&p(%Ry-fS^k;DT+nfQ*mWlulY1^MZv+?LhF%OQV8jwxq5e+)R zxrstVpy44to6}$AAuq84$A}yFn#0uSX#KhU)UP>Gq>i(2z}TFbO{I`+sS2s@qQEMz z`<>9Yq^GD+?j(p9`MHd-TGE?akSfUTC*g%`jjT9@>gO;5_Z7}!8K#k5x6)V4@~t^i z3RfM}i42u?jHgX{wcG;Ik0<;viP@suH4hPRrXdx*;qb%mudcb9Oe+iBM!ohF8K)G1y4hKVylS{HR4dE8N}*HyqGM`NrPHhL zN$^8pao0RHbjk8@Yd7&NpKTU{W*!gGVbEe=g`ujD!c&VAui5uk?=CrQX@!hM5G*T^lm9puVG9CO z-A%Vfx!|C&%jQ%uqG~=EXewepph15+>Fh`$aH(ha{5DDf%_M{a7lCKOZa0fyNC)rd z#0+SI&EWVT8os$!54-U;gV6p_0rd{Bl6jl0>XajtwoH^P5><(!_WD)x)DAj&lJuDz z82I%2cOtpHV}?)BZl)!RU-Q^iNH2{{(b*k5+r{}TS#P!|RT)IRp1M=EwP`h28YF3-9MxlO)daOo~dJc2KZyq@eciv%xoHvV|&r{MdZIq;xzCnj)YOg z=JZW868MCrK;SBuiMcdPn&%H@82cYA(5B;Z=w;nnt;0NNCnG%^C|N@ckBkGcILHXw z#6vEx-Yaq1z=iJZT%%cC-LElcBQP|Uk0gr@ahRe6YXBybEOB$oKboSCsSi&^uDg}Y zv$6nok!rzz-L>EeXI4T=2Me>5*B0Hy3RW1G-v=^C^ETeXYI2Xae&|9tL$aVcI%!czC<0N}u{mw}QrYQ;24{o*)WO?M*&ZtWfv4;jWG^^nI%O=x` z2Py!wiSFj6ts!key(n#DXZn4LUg4iA8l_6iXW7-3{YykyTqRd4veU)e2Njfp)85e7 zK!ukCjgVbZYJP&^0>`4jB-2*O>55W&ojOW%BPfpv3~M;9nv5?Xr7^-iGJ_DRp974P zbxbsb1#?z0iW!JSSOlF-*4n0-@KYm4l>?x^Yh33o;#<_^X3tr$R?RosV^YlhBxOQh zgGqc&P8KGFs$ePw)ZAnfw9K1$nAJ_@NwqF-r(XSlq&BLZoSIaBWH6}OJR=GWu@Se? z9>VMr2K9OAibx6BzM6r)3l*rgNj1ICQ@3^!eFh|0ehCt^ci#q9p@b|b7I<;o3|PyO z|Fh*^OV2<%hnSc2$Wl~mBg!tgJL9~7i^9ee^YXg1A|?`2Y@@>8AXnNOz9iM;#5ibW z-%hwX_aU4Ovg`$9w^a}7>Jz98VO0R@@2))lCMl9HnX|q-L8tV+t7fmYg?5TL3#L)S zT{}&Nl5&;F7j(B;|E-E$H{#XgIwM6iZlb;~maVba+SFv#GEE!_eh0Cu&sMW3)6Gr) z6v@NNirD5a|B?M<94Tk?H<;Z{w`J@w`aGFVJ4#UPS<%~}Gljo$wOM%=7NbvJAXS|G z8N1@QA)+l#p-F$%ha;pbA$sp#MbjnV33S-p!maxvR8DW4HWvOp`S`Aw;DQsX1eSMtY&O2y8ca?~lx=HU zq@L^juB;a8aM9Xvj}|BrprT^gExP-=KR~7pzJPZF+#L1w(Hkpt=pj=;-q?WEHj&Z= z7WOPzP)Jf=J(&1xYbX3AlJps3ct0rWwai~?7pp|3MPUjU;3E+_7Y^)R)dq$N`~65g zfKvgO@-GM}FfJE*NLigqNSAq$e}r1#9pro%F#0Bm))AiJ8X8f7V+wyvp0p;kex{Ov z2C_so3AIxSN`EpEk{B~j?f{yqEM>KK6a1eZm^+9Tg#bgUhv{kt#XHE-APGCkm^%eK z*Ka3-)rfkkI5Te#aNE#UC3f+O)zkcnxj5`586B)K3|nlLs2U+5vKN{jb7PY8A?^r@ zHB#YrM6bhgU!|1vmI(+F_eo_Y$QT(;Gy4R3ujc+4G)H zdH`c7R12ssg@45N{RDyPFPb;1T}hWxiLx9RLddAPIIb0ZL}lE47z7orc#>p#PghkLTQk%kQe*3r zQ;jIuuOnC87dZp2UG^*2d!0V1VfZ^67$dlYkP589EwF6=6ED+Wwmivi^kil6BPEda?!S=J}6TJdN3vn z&~IZ<)sPczp8e?o=o)m#sqsbFrfUk;oh>s7$^+rq0vYd8`La1GHKhH9z#gEr(w2kCVBr$|I zK48j;yhAE;vOYM(c0fR!wjBv`%&`n_b~@dy^(Iv;bO+!%)%pHk<6ZkM()*gV3+)Pm zY$Y~IkOfO?;aOi1EOMeu%x7AovH)tqz2Kul+!yIFt2QmmT+V}K$C562m+N>^)=*-} zz+nqH=DLC*71K(jN5yJ2sDsh6l#n_62I?5dubk)~J zb6a9eZ_P*hfcYrY%q3J3!4h92LY)ha1zjR@!NBfy779UNiE?ITE|jQuNCOclGaiUO zBMTN1TSE0{uN*ZwsF-x|+QX*?Ksv{Lokeu|` z=$Sn~E@%W65j#W)IO9xm+?c+2lxY{^Y8Yn#pg)J<7d&KY#mo%<4F+Z4{@y zto4xDio#BRvq?v>zSB+p_-q(7IzDErJP9ljP|{dAG|e3d(FQ zlSNV_W${+bM&jDOse&0o6wb(jxAEXQaj-^oj4w`mfC;IsPw=Chf$PN0*XY~lj1zo) z`FU1^#8GvkG}NT4&MZ~>5INPI|AI1Iuh$~L#%Dy#NI>nR z-65o@#I-t)7_R9h-AA#K_4BY?$^2b=qDK&u+;YcjoRMYi3<4%9s1YEUn{o*Ib|h_7 zBfVZ#+*MuDAyVWCs^F}bO!yQitY9GcB>AQ@3Ch{r;vqq}pj-g9V2flQxHpFw?c0PH z=Q<%}q_mZxT8)yUqOd5+U*3=6B4f_W3L_f*t7bRdiQ|J_FgS>#O&S!RrBF5F+jo20 za*sSg8;c}%4u(;DX$$Muxis~MZB}7A1H0L|E{c{kO^wUKRk{q=SQ~-MA zx1Bg{XJcAs(Na}K8(kU=<})+t*ApB7L-}en2--a$VbQO>RUbM;!l@Q()mL?IJqhcy z_@f4OGp+p!Z6YFq5b^CXN$NPs36rT-*Cu=-PT1;#kTM&JNI+a38O>IIm^j&0o3CTR zVCNDT1rIE(iDaR;u+R#C)QM=c(m==Ye-?3w4uhhXYgH}Pobw1^@Yk*2ATg4ij|Tvn z`SKGmaF^cDhMd<|wMXyexY>#P3gC^oH-!XS;JN`7JflnuXi<%_I zqgLb)GeoPwbPtB7(pF2-f-X;1TCAcL-C)^RKtJwDzY2(S2GOae6V>A387~_#uiUgz z(Bdd77-rKS`d+UYCyks`DmsQIlJYG-ZSqbx#ksxB0IV|93B5MhSMG=mr=m!Bs zuILArsFsX(PI=Rb(BNomru?5MITY0SVcX?ikGz_vh*O+1?iLx^w0h=?$2HO?y`QjXAH-+QUfO0;`;uxyS+ogubo4YWG!#2ev5`f$)^P?wgyev)6vya! zqHA}L%E9i$1WnJ)ehq&N9-$z-{UnRKDOZnr!>McQcko7jh@Afib*TcX2iLNMzJaRb zfp8P`SNC*ZO9N#;C?|Li@M|%wfZ>oS48TE!PBI1YS*S3>(lVntvb6LG?mQ>kt}*L4 zC2mop?GeRuDe2pBn$d#7sMPXtFSl$8oIwHT7>WNTmY}`1h^P11!@yV1*bd{ zvpzWXqBeGXf-#TxKkh~5rzS~)kMeNa%*cSwCg!bfencWXLx$+dj0X0wIcRUx;uYpz zl8T)**7`H{80-5cBu}Wg>9z7V7H$S?Fg3Kmbf66#v)k`5@`HNTh3v_S=pe{m=PYDO&p5Y)P^9;U zub`T#s1Zhf*gWde(Zz9ZQ>d6ze_O7v*OHB5uoMX4W@Q$6xrreE@fKgkX-J{eG}Bw zK$eEv;jf!t|LSSFOW@O_yqvj7L_gHdRTfxihtiHiI%+ev()S>!7$c;6l6SZY=%{i9ePB*HYvC1?<*`u3@ zEqRA!5@J|h3kmymQYzNj;Xlr)#v}uuG(gTHbz5Tbfwb0z@vz%B7$47F)>A&UKzd$yA8_nvr zje^0m^Fmlu6CEH9COvuPw`K#s92CkfM1K5*%ip+Yk(+cO$fSc;{`SBsbs_ZF)66Rf+okq#(q zKtQxGM9qz79ul-dA%c#R+CMlj#}`bc6YI}qB$7;NE> z@6X80Sfvw^;wj4Je*;Jo^S9inuIU--QG}PuX^ga#L>7iL3#a{?_2NrwxflPtQ{gth z4>q9zI$Sn%0Xo_S!jc1)Mh~QAnNUbs;3Dt=xI*u1t(|BmqWK;PD2ym`}97D9?8@g|!Mc+(j=(2+lM z?&2juZ81--P>$w-5vf7!qj*>Lj065FnB$iaM*G~Tbwz)~$`;Lhj}NM*IFoZxvdlRb zTwQ3SOJb+uN%=2yKjJ#?2Pj;Kq9q<2JqIVfPjHl=!CPiOH?qdCiU`u9ag$M>=LY1EG7!xq;*QlXt^>>(8z$Nr)z{~~i?&LJ zJ;fH#O4j7gz)?f-07iV#0|7i$vyE$2cu$Qe%7b{sv<}eL6?uUTFlNQcm zCWx&%EW*-*sV;%=pM^p`J`06^=q6*zgq7Y(YUda5E$L^vMtGt{8H=})yEtCQmzuTg zy{huw_DDhe5Hm_InOt=yDIKzD>SuoA4QL08$*TFPy%>g=UpGfCrEmD>kwy;Vevj$m zwZiRXx~H8Zv6ti56^lEE5f}gW0QnvwJILP~Z0`7UiMG8nTACiEFC=UyBCm?d`iSBGE?I9!1|G{|m~D$-EiM2e8YiXeJG66>Ip( z(g@31lqjI&{$}eV;|8HbwJ`)&X`ufeE*uk&k_XoAW|iQE&Z6(THv@qCfYg@upjfZy z4;m9pmcC>_RU%z%35xUCN0!+vSR0GL7EV+8$cX>mynJHF+pmljNYOjtTGH0ZN}*CA z4CubKYQE%Mpl0ui|Ck969G9-#z@y~k&t{ZR{ejqyETSGFo_l23>;SEOE;?=25oHRC z6Zn;MckuXLTc-q8f{TMAFU>vbx<~Jng-0otdA6WO2wtgc{M!iPjY=x8`r~`{bWJ%f;(%DBS}knjh1L@!{M<%*Mw?wqUBJxiWB;h;O;2)|m(DO8= zz-e7Zojrp@`uuY`3ywn-&!g!?)Xx$XB(n#HWTl^}R_)tJ%hzGD9~VUn(7YtDOtlPpz@3FhK<7aKK<6w1YcpqMtS&d>ug<8$i#ev^ zB9l>0#e_LlyMsQZuN1X2HyDMBKCvIPYf?i0 z!-7n}gIg}Nq3Cj60){VM~ix!;+I|wZvPj z^mInI3~H&NF7be5q$Hv3Yn((AC!NsbFRD8!Q{&8YZMLy%f&UUqLgG2FnM`s@h*$4K(8_(J)Bgu2kUorps@$?AmD_uO8G;_KEPo3oZk?n*H)ZQtdqXKrH8Q);qSee=YiTr4 z*u1}9%Vy1e%wLAw^3!MEcbq9Y`-eymC$GngHsh>H)t{Dkv#A`t#@&J$o*-wxN{G7oiMD{QoBKQB+qf8BL8F% z-r9?3AK+!}8}1HXl@YcysUR1LNRw+#i7dMt?X}HS_ojKyyPh*if6Sl~~uVVEa=+7F6=E=J1N_diai1fwK~@yCmfqHGRgFPY73C-4S2o9rfxu5rBl zAL0fgvPAO)$K00YJYedK5%HrR`sKC_I2KVZr9#KJEH3gAIvk2UUw3HBbmhkHfRz&{7kgA!c}^a8Mxl$g0P@ ztT07OpRwH%me%VW5wbv(<*F#Ya?2x^=IqY=EBGH3R#Zh2RddS(1*^mIf;}(61|h%X z=$}U%A8|+>WP0+h!^4&J${*x0X-fn(n9d6!Qnfu6gtdoUYVE7 z;|s~I2>$n3CxQs_D=HX8-k~4?mEl0Pq<#2Q30Qe(=Cn63sBOtLMzG(KmZ8s zhmakFlUre2R`gYH&;ry#J6v8?z|KOU2EW7cb3u)O$%S>9N3)VMmb1S{%_u%~kr$+Q z%3PrLEc5u&0^SrcsB)Z+XGw*$$Qq(jn~ZM|HGNl2C9p8FIqRS1Y|sss7h2H zxd{Pcac^t4RN}e%8&0Aq3mGFgcIus=ekvyLMyi0bYnpfM;hg1>n_CDl+R%{5gHrC~ z#jsBknuql|_9B|Bb34o`)2!%vl#9yOMCUsC~VA?2u6N;opn*nlcpa24AX?9CWnOQA^R$lWNf>B zQv@r*#`CpsZR8}uGA#?=-spD9Jb1T@O+@V$3ir=xCR;jw#B=ES)nf`%zy_@PUzU&_ z3#Uf4Zf~^KOVYuWkz}Zv2rI9rPugX)%3wuF)PT?H`%iQvYUnj~7$JL>1!3&TRAKaY z=-5DuD`T!u;lvl&?C>p#Sk)y}l-Kqju|;>G0EYUax7@6BMXe68Bd8s$^4STk3tsJ& zJZW(+=d7ES23`T$Fp79-Y8Qk%S{JR)Qtt59ds3To>l6j6#QR~sZ#H3n%> z2v03S$S7T!8?qM>n~?crTjjw@R)2wE{+a1_xb9kp+1n5Oeb}hCIx2`hcX`?kx)VIT za0xZuq_oEq$iSlrR9gRM=_-i`jOwR)aV@RYZe(|Jx5sxstH2=r0g!HlC!i6$z%sq; zIPehyPBYzXgnTwdP;(~)s|ZDA#g*8Ra0*FD zjKEQWmxWg0|%m)Ra(HehUbeKI@_>a%{f7DbzebaDE&^^>&U-ZI@3Mf3bB z5!Y_?0%gApnR6p5@|fl%2}A>NrS6RJM{r6$QdR?v`+hsYve0H8h7-8Wb%%`_bDa=Y z2_2WcoERqZ4Q4~|(Jla6wyxNt`f!CoQd46Kx9j#=%|=3aoJcOiXnr2ckgs+wx+SBn z%QZ&FDs4@u?e?v*seC4OFY>7g9%I+RN#ZGK0;^abr`X?qLOYEl*3_~Uc)}|HYS%=s zh;<^k&9V%?>=QsP?pjJM%SQLfEs46t8WcsYWwfV-Yls)}l?f9-v3MTneuhH;iya2bQN!hFOrf)ZASY}APU zdeqHQIywFtF7HcpaT%^-H8gQ9IOcJxx7vPoR_u$1BP06+fu{WhHBRhr`Q_t1lmYBv zGTJHG;7g^W0ja!V`mLIHo@^>PgBklf33?hG~7{0;wWxqrXa%_ldLv+7`uqf8%JxxbSjKf zF@=I&m<#HN;rJ^*465`AQQwemm!#*!qf~?1^&e|89F#g01xa1nC-&b*dh`GTj|dJY zU=sJLX)v%#>C&M< z!(H1UvB)Dge>MY0xnEpf}9micmw50NBd zMO)?RDtz)>1AEp@j$;(#gr+8ew|R&@QSvzsrs0g6%*-i)tO&|i&WXCmU$NQeiedjP zQ9f8LZpa$DC(Hpw07K3YH2<`F>n7m%XN5{3J)jhE^9;A;UzS9Yh)ofvoIhzEXXfn_GUPE2>Wt7i*P7UMoBQAp6*8^iDBJ@1JVm;rpO-a=BqDkGL^>(nfXm z{T@ld8mq2FZ=xQ(mqQDd$Zp~&-a#V_dKc*xrk~N`@6>E+>uIs=c@7CHq{GDL5t~Ra zX0DK^sd7d&J(c|_H#WP)pV?kpnyB;yhSg1CjXx?5s6-H$gRe=XwmBoQ(68Q-Uy%+Vo*>b$Oc{0>&9LvQp$fegx{C%Tv@VfbFC#8x!-gFr|n71e<)7cqy%t5Zl*aSitdd9^C#}1z+ zRU~{$YfvZxEo8NiT4;+|WKpi5)_t(X0GtBtUz0cYgR3KTu7aDM=f*yww-$3&ER23+ ztx1g=;$?;0D)u!lZo^!3&YC&Gwi;`Blc3BodS4wa)+08y!G;Dn@)FTl!47v{6f?^H z^HGI7)2bLQ1FcI=#BJ$Y>X%|pv@yyiKGzGJV{wu8jFq_nt`)qyK-Oo zYrPu%si?FAK&%<|A`;$QTdqJvSCL^Xc4eI4&tv$HSgFpLXruf&`h`6a_ffKd1XY#^X!Am_ zM%<4;d3jzjP{Ctv{KdH>M{X5{grKaa$qf1{#AM%UtPQtQ!lYrnvC4G9UG}$DdyID) zk3S8gn4zckX?7e7!?l_}N?)%id4vtZaaQ}JAzh^{x19sPaFDIxhBBJ)W64n+#qU$b znqU+AD-gcQRF-TYPB^Q)gpPNKb}Qt0dNJDvoY6Fw&~|+PCLJD`sCYy#AEg}l{__|H zaf^0dxD5*EI=GD7XJL>#=r+yvSgB0>Y&US-O3rA?!e3E6=4mYuXkGkhKPDQ-9WfI$ zlYY85HU>$g z%v)Mm=R6FQg~7JY&#*mAGEOAY#8=V}o9jP|P%q>*;b!Z{!K$Pb$8`umfVgtJ(e2^F zYN5tX&`QJS>;6jU?!!e2DUjL-kebPWEm5~NK7EvrhoLi}A*=9Mpg!MqAD{0*%`IggMs1#7T?RM5c#mJjY3ZPklQsie0R)!R6{+IV@4 z;#1~U^Wz^X?mDU2@_?43qUUkpckA^RuO$Nh}5-+yLtFy4S+io*c`aEB<-9#r0 z{WmbW)JKTr&|7HS0`(c^44!_MSvh#{Nk4NsIElt@s4qYH=bhbcznT40rD(7x2TuVU zox}n6Bfz&c#81&jeQDIvjHpXPtHVYJLMF418D*J1i#Dj0N6fMX@&IW|`UG`ja z&Mx4~=T|d#HF%_HCKw(q>=~(N^o|J*d|F*^h3n7^b4)S+DaXMABFll7@mVh14%+d_ zT3Q%CGEfg9lDG&yQjC5Y6PB`(V7H#_t`mrYENg$5tVL-@O@cKGpt9i~MzPsjkNCh9 z2H%FyqIbK5sZxef@a3>MZLKF;o~j|yE->0uM@jII^nXkSL__hzUpBv=+i~|(bBabz z>z_e$E!oLMlR{dP)_f$>)8r}qC^ee+2H;1D+)Dkn+`oj};uvDzTeu6cHBX5|(Kke& zLS7^+*=G)ae+LXpiixyljzo)bUuW*-t&()n~DDwHae87 zC{+>IiMj^wTkBGFW$qrYhy9;<+??)AYW`5e6ubLjy4gI1HoGaZO|LUp0f)aPjmB-N z+Y*Y+8j`w zw@KGyZ*_foOos^>C1h=pJ%v4dA>*LN3YAsV4%KUpMu(#&k?}xhNh18jESYaadPEu! zNeMcsMuV#B)4zt3z70=p!by_qK*|c(C1M3c=~i?s_$DO&H7k%Q_#952S}+rb+Ku-9 z7p7ttZg#oDf|J?DoEC27gMMh>1q1IjYM6G3Z8Dz$I*Tu2_jokDXlnM-fKFqzC<1#FcIdZel8|@AN83G!Dch@DZ0FcoMU{=5d&S> zUL%jj)Jrd@CLyV1mrmO`8`l%YMU#y_i+mK8;wpeVdumzjIytMf8N~v2^az1YSjSBw$28}m$Z4Ue61$-Y;w+?am zt=n5Vh%-7ysu7{5hMS42;F!D$srvq-s#R?r$e#gfT%)wfLX$CTa^moxhNXyZdKK|^ zjp*DB&iYMFF(mkodZ9gZgWnr`=nZRvKCv~*aDTJ^MCY{wkcmkmxu%q$#^`NmC5j87 zDY?wuW;4Q>b7N!oQ_{Q?%S3xm5BRGeX+-D|rD(a%s+>(ODt9c@CPal=u+Q#cK;H=MJw|0tfJQkY3>&T9IlMi{)}y%=Jly zn2FO`{B>-hXRY*nC*+H-oN7T9B=VUtX^_YsO)h)9z)ajGk){?tm8bo7)>kv2TD@Iw z#H(&dmR37-v2uygtb>S0wtylgu}e#N<#kR#59VgCMGT_1Uj%ik5ebIT${ni~g$4gM zP5011oZv29Tf$G=f?ddugJoc))SRvN@m|Cp`;L4;*|_6}KT@x)l;-R@YGWJ2sntyD zM8a6SA{_2b6_L*9hQhK%B@2cKQ*MKp1Njp%>PlS(u?2!2Qxs?}oUGLGmXfS>ilV7^ zjws!wCNH2iyFUDNI|>ckIvI>g z1Xe<95~az*w4Ly?Xy6OX^s17r<2YMcm`t#UpN9|V%ZY|}-9&9%7xke6(WY@e4Qsz| z$EHE_A-WdsOnyY!g#J@i6?x9xMj#WbmH3S_0kuWyc;;ps2tR88xFKHhWuk!hF~Sdx z_p*l^KM&i{!XU@!4N+gmv<7BVafbCe%?q(;@VEU3_~r?|le&Ql_xIV{L}XR55KcnN z0<(Nv1^&eb6?($2dZcH#SNVPNsNf`eieC|++sCjKJQwMikQZ2xUwj!<VD?nl^TFg?WO;3Gpz{gUE5c%OiDB z#4MFJjA$D2iKG`&=&(Nc#b+2cCx*Nt9s_5BcY&BbVK6x$Y^A=Y1b@!_Ffz&dF)f)D zqF4(G01M=kTOO5q4H85WiH!Awtm2o5bP2QW^Hia;i2-;4;*Y>xi%`z>LWI=eR_OGR z;OE6x$gYA#5gl}O2)4X^u1Y1|`Z+)qc+p_OP<9kekRZ4s>oy5@EHTngF&yIH2qHr_ z_YqD}hbSc_Z?tMZL>|y#E|Z6aorC7Rs4J+F4z~|17DFrYc5`dU9*RJM#&dey;7Nw9 z666;{IJglANY_wynCp-@y+K?P9H#rlp z$8uX9+Rr6vNYcqw6oGBsBvbw(VKV4lxk2y1QThp5msua?0yW78kmBDQ?5g_@NFMM6 zZd4(ygy_6l5X%*Lac?1}vyvsy>Ii!6AUbEHrR4;A)4bAzPD7=Ncu7pCF*bpbg{43u z9Q>(gC4R>A4ce~-@Pv0n=WriY-O09cIpe9bW%4r_Y!sclrii__q%=CDVR~kFGRy}X z6nnxX?h_;Qs5Tq#S61r7qW-$dZIK)t?8ib?4g$RTj6=cUi;O^8+vOy0BC59-w8m63 z_S^|I6Scn9c?FLdeHWftrI$YCy7gw`Mi*@uyQB3SsgUE94r|JpJb#uB`#5EX{|7MaE8nUEO>`{S2UXy zyv(gSs?dHf-qA5U&GLP%pI+#?G5LZX#*uVKsWai+!AGc;*gbz-&xT~}kGM=a^ZD_- zK==2iaJ6&CWbL>!IBlNr@xyhHnN=Q3;nW#a7X~dK*DJ`fp~W|f5goXhNL|obkf4J)zsPvh7eXUuBwmVk zOac8JiW4s$no^NM)lmLNpx0l z4%zCS6-2-W!4_pMiiNOC-pQ}9EOVaAXS1me6iwShTEImKzX(?rOqUFMYL#rpPm1b@ zH*xUa5Ju6=cHCTbb6)e?(E+GPi{mV=CA}o-(=DPTy!92qljX>E=ete#NERU+1p+%i2SX#*0MInvw8vj3EJf!As}ByEBOGizt2~g zmUCbX3k#|^9%uv+=vkDbybw0JAqJ{DCzfl;vC!mw%OF9|yP<8}c)8#Jox<*zI{H;e&JwHFl9p93dY!nD;i7WK8G`~D?_8sHe-BgSz3fk#-nXgbQX5ECcI-77vt`W>GSPCFlX8rPIan zd9_G$`?Ow|@dN^z_u;?@BX}UJh+OFkJk6)&&(rCeZeaw7Qv7-p&MDTWj0;h`+~-VB z+G7^lO7y;*TC1$JjTcSfC6+4eg&Hk>T)Bro>pxAs!}eAiGMlgyPtFk$kJ4G~#qkNALcp~hKnbsRKKr@M`0v~S$JM!rbf z++3e9u65(w3+(jPtq}6nv8y-OR`~V|FKoJ9nuB2sURR1@4@p$MjuFGUV9pD+V!z)Fegt&q_jmZY#STJEU0g!gb{#T=myF2zSM z5$+%kw#OG`G_x$g83=+Spl#!JGy};P;tT_75)L4{fM(oLO4+(Yr`0DRnsbf_wOLiNXd)tb#&uBGOI%*88>24qc#Wm-S^^w{P{8NKvMVPx+8@ zeT1EyFiGr~I9->@_F(@4{qP7?Kg(~GcjI)UuWLd&59KlVCmL;sk7dv_oAvv(%35gt ze~kPd&YrOAE_D<28EW#CZ;<=>WpE{9wwwzh005+W;=<}4bI~OK=7n}nCns`t(;_VeX-3d`6P;e9%X<(c=tNoypJkrKGDU%{2Yh$e>f&}ox# z#>7i0wv~>OL;)oq@PT!~tdLEJ!0=jk}PXw))AE;~7KMtYw8K0!b{Y4XzGrSOB-pDCQU@Y1ssl;OB=iSiDR z5!z_cZb<}E0_X@215W2;H|-%<{QsY>HxHWRKJWW}eV;QuXZOs!^S<+*Gw<%Z_c6WL zd$G6)U~v&30D=Swf|n>#q$rYNOp^e~q9m$xxNP|-Nu)?!w58alEQyMxa>}t&c9lXh z)<5|xm9kZ0RZ>Z;BxTE`N|?|0*YoZ!AZq8Got~cVp6TcMJ@*q$aMQ~-t(tO;JiZsv zwdA+UJJ*rv?0UU{%b;lEGnj<$LXxE!^#IB%DtaspP5-U`#9APa{Z;(7?-uoow#&*w z7WhNBQ7x&h-OC2fAn^`*EQlNS(0LpMwsg9l`j9g%W>=Vu!gtlw$?=0O@T=curcZ2{ ztuLS!#2&Ngs1axHy4ezjnwUpU$(lN0k*Qg%b1M6Dj$+xg;FtAd*ahle23HflqTI#!WgGJiNuY3YD(t}>ojNHVK=puze#A6FE zz1eS9-JLHBycLJyadSpJvVSJ#7FxWaRk~H>kssfq)5CY^^B~#rKH{rCMlsWu4rPd? z+zR5XmryPD4>UxDE8rXg2^yA6KtOX8bZ*(h${Qvqz>U3zPnR>18x|*Xe#xB%QLySSm4JX)_5ELAu2q^?Qzzk>*HkMLxAbxh2QCYFK zeW&@E7FY6SMNrf*4GTOmioMY3jK_v)C!2A5-5(`G5-}FGiCi19i`*@<{xKX%_t7P) ziYJ{opvhb8*Z6V(?lsu>YY;rj4UQMt0aNC#L{F?;`WRv=c6>}H3*9j?`LfxYqzT%| zY?9#jYE!UsCL(WRn5C3R<9a)wKF!|xVemLl&EJ8%G80@l3NYqKSyZuauOrRGH?+O_93XIQCXC4U2Ddj-o1K)bF> zjxKAi-UuU|T4^62>Z`;CWd!og7V0wmWq_ zU2*xX3+Ca7(4c&~SxiBGikum+JmN>e%%pM%{%H?=<}zp&7R}h`Rt2+AVxVxN0|1F- zv4EhruvgV!COA+J5b|YF!oY$0;CdnTh|-BuRw7IgM4@7pLpT@1gW6V~Mg>Y5q@B9a zs*v2vHkJ8wDreX*U*)9_T{qY9AgL#0?)gHav!7rm!j}*NAzMUj#+?jUO?*v1_LK|n zU||rKt(`O;CqRhf!{}Z0`^-3IA#|E!Z?qu=MI91UkHP(L1@DTTuEhOt5z4(-f<1Er+kp%>{XX)MDRf8uvvjNs zjiyu2i{@p#C?9E7z=nE6C6G@IHOh$v!9X+8!tAH$Fe04_I^#%D zqXfdTUPSgiySTD0%cU02-9(s?96>TpGMLT$B;_DH`ox>gXYs2w?4hRYA$QH|> zs$b)nMZ=rcc$$L+eJET=rhvRk&<5Uog#5KQtLi%98?>!-nMEkYgln~l`>c8+NVwTP zl(O^b)q)eBvkIW5pTfo($WE!iz-kBnqGs{Y->;M4Dg}*NpQX2gN@yA zq@4^7?x{eE5(#(vK*C0!2x!bzb@d1Kh8nhN{u8zqxC zU z&4PX&?Qs%TveXp6HMn-EB)4)s7l|g_H zhePb(Se0s#6XrN$Wi2qlh*Qm5ZyZa*y;B$L8|^wF9fsa8VHj@p=y51b=6m>VziqvX z@}s|}$;A;>*LCw`TasT8wa>=Q2$U?`>J?X5d>~V*B_9aFAW1}AfvZxY24F864A{38 z%53St<$rS?!=VR>D(PAR{c*M^HApBWP&eEZ?Jvewl}6AdDlaOQXdNgC9$(@m7Q-&& zSRm&&$;4~Nh-(gOGx`3%XSMwf>1|DCz?HAXijzvPz8jR)A_An)G@!eSWI1XfyhMjjzz3x^ z0RJlp5u->}@!$LfQbNgw5a?**uqtHQKw>ap(79rAAsO`iGBlpod18BGxhw5~;;nKuvGM1=ceSeO#w$Rm=N(W2%Tg4FgnqNMC@uJ)-uefCoV{<9&%pn~J7l-$ z_MGb&7~AHp!Kck$cbbJqCs$}CyM=2vQSlOz`2dQ3+;}J5un3T5&yl`yj@|@be>ZAP z%L9s3kC-i75LZn~A zEA>Nkidxx*tW(e^;FN&8LvB?=y?g+x13R(vp@0zaR(Fexdd{ahuCnyI5P6DrwVUf` zyAl$(5MS4PON)ep9`cvFluMlEJKQs6s}mNd2k>*E3IfV4TpTmA$59T`>#?Y1hmbZN zo%9sWjBq|tP*f1!U;ox6bBRCms#ishrgXUv(NK-!i;NW9Eo=sj_)XCp7y@iH6M992 zzWg9Nm^4169=^v2#4%T}VM*2|vita7h6{Dd^g1TBh`iK?hS-%(Z2d0QIS45~if4+U z39X-T{60+)6FKLZ`l@V8-`(M&bP%AB1Y3qA9vcVxGpzMLhJX$|w67S|D=C}ekR&Sr zRyDA+02fGs=xrDRQXtARVwW@ygmHr|ZCZRrhYm)_n!km_i(Vyx%4#WP2aTs*9HkCX zdP38H3`aALILr$|7h|G6GWe7*9e3r}{m2AQ&?C_koo=)BXU=^^CO!5hSXnK7R^ zX3G||9zeLy0Jf?dkicTxE6{af?(rN#&`kHk%Z7GH>G?A_hZTd{SS0{lu|mo}f`Ee) z#cxRK?*aL5!@SC1`Dx${3;}s1xdLni(*};{aZx2umJQ{Hz|_J{$B3#M0S-cRF0LG<4H4C)VG|0SgVO}E zXI3F{pw<2+WIcfN`Yj48rcs*$U;IjBD8VRKi{5= zJMBHjs?o+XX{FhAbCUEE{i8>@r_6HK`w3*b)H{@Z?16m*+`T;Lni|GM@_gZR5+}Wf zxS;X2{IGWe7L$0%=q|m^%*=2wXP^V8!-@lz{HJ1~)iguxph~)ap0p#5%;3pj2yxJG zgAo8UnmVG@ zhnO4Phrmj+?}n6CEYw8Gq_ZOhB6pc0ZPj!TS%vH8G-UA!Ld^vE!IhH8$M z6Q7UcO1)N@J=0bgte2C;%(9Akh1*bWh#^osYG!0eA*DPxrzC~mI2Wg#-e7lq9EXG9 za6uu-#%3H*^n3$xMTRqeRx}=UzerfdK7@DplQ>Mjc)M$n1!`3_;MDp8d>ax!WCm-^ zHf*Iu2aXeDdAW@;trEZ(tkj3d1?Gp_)dG$|A(eR4A4gWgWo7p?_?>?>X+;4Vvsi&{ zE>5Sbv1ugDL4n;oNQ+L7xu0^*XI?<>K;SNKDyvjxfU0+=YZq}l1&rlT znbf5ty{z3yhCRAi!e*RC&*nhRCtPL^n+Nl@kxkSOUJARLAJ2vZI9t<^HRI*G*80+l6Wsx= z{18C&kS&0*g(=_$z~B!+SIu+9T*8r_5g1#cuNFGFN`t=@IdF&&6IC3_^Jjb1+Rcz- zfPCCz`E^)A)Zt@9J(tvX!Xy4;%rAG_!;-r_g><>Dk_Vv-+Bk;2u!RlS zL)MV|3BJ`fJegvWDf+jv$nZQw(c^UMr~m!QAeZ*#gP5?-t%Ta*z z5X?*VH!_f;Z*Plv5Ox5ZKR8TyTt<-?XW6ire#BRllZvx?N3tB(aWjwE zu;@~7iMQs(LYc)bs+R_By0l0#(<#qyB2|ZGu}R}EudULR3;PUfb-LXSqf>fB;ayO~ zh$uu6I;_&4_UNnusq`HhGD~Y9D+fs$9OGOTFNG8X^=>ArkEy|Dc8k76{uX2=2jbAo z%XYii@chRR2vJ2&1NuzLQmAZK7~agg?KeDk71RvgAv7R@#5dWFcyBD1RHkjw{os(}Rc#S8!x z;PHqKU@QK>($*LUH@aj*HTNw2cpotR%@4oAmw3I=d1m)6I2bGQt11}h^`j5j%}rdyz|R!hD0!eI#3Be)%>o zbHd!DS7c|9mujla*Blv8pZ+38pNHgjK{m`BTi>j#$9J{fr#lOkWkR7RYVZldbun-maYZ0fZMeEqkbTq4VuX#Of~~kkm1A1WIDe| z9TrB7^AdW-g07%Crk7_|tdqKDURI^(Nl`y)9KGNGDfVW&P-S7YdyTlX*zEN2vhCqs zO*+2YYh}b$c9?a?fIIgUNk$(b7`z2vJyY7wLNM5@q37-Ad6oGao8+!^_u|WLo_fP# zv=!-xD4_*}S}gntYYqi`$cERzI2v~aAumEeBkO~=A#Z^);1VPSNM7s)Ok=@W=^U8I zvPHenAz~*T&Uwv~&pFF}Qr&Hz!fVUskb24W!m5Hv*}3>ln(6GA0RhCwPft-3Ld*#X zMayi_7NgsMaEBBLXN>f?w}lD9eO=UE?(+LD^7m}aZ}UT3BzaDRxv43m<8l{RXBACK z8bk;)Rp6=mBP9Xc7OstbrUc^iLuZ6_d?I0V8E9BIX!*AHh=tr`2`hrNg*O zveV!iX^p56n8C4E-QX*8+y_vj`Ut2e@gvwr?_I50pOD-;#14o6{_NqwTNTUUg}f)Ng@pptp>IoU>CA;K&_7L<7x1YMSb`wYldohZ|>>)*_SqIMf<{+I<9Bm3g>+{T=nRRG8y;xvU6I=i-@?aW0(wA2Zj+6~ z_d;MXS@lEoF#m)tj)pOPf$!En+K87KW?Ly>kNE4!Qr)qhq>UE-SU__BS;qguim! zn&Pbt$}bOEqha>z6lf&mEy9oT_<%oVc!qJ91?|2U9gxtf`Rimlnt7UrF&Yi-%QC|s z(0;kgqDU*1D*&H_JQ|_3LHfLsJLl~rd|@C8WFEJXEe^L^{jN*~Co>P!K&haKdte;X0vKBgZ^FL7FgC@UV`fIW6?_K&3}Y zx(8lV5Zt0fz#$5*bqUwJWl1L8P@~BO6Ds#{0J-m)Gh;3DdYvU<1vEUmNa1L9XM@f4 z#Tb>W@0@^jVO%*>X;16G$B7E1l5fUd7f&8qTj-E}tn@UTusz&5bgou0dJ$s=(0_A8 zq6Xwx9tp1{HvKrTEn~-b_aHPjQwSzq6h7X-N@vyJov>HydNPn6yAEz;7mEjVc`=ee-K9p09n;$uEz zS;Va7Y)%JF6&H$DPvLSIv2&qNq>XNNReO8i`l$hlKch5=JA_m9?=td7NP637F#^^}wN6noUeeX#i?@v~SQ3<|L9;W2}Gl=_4dr;Nxg_;?_=e zn#*mPuS(`{Jf;4)()P)4pkX9U0$I-Rf|H1%aJSsMqzwhZV-rkOFFT)mosLv)*38E_ z1)QqUsaI)N*wyTXzV|Zhe<1&1!cXgR!h(!;A_dRY9SU`p`{c`>=Wd%PYV-x7J_+u z2Pvz=!^6Xc+e*hs4VlAU{IBaa-t{FP>21S)T#Ezla3$BOmv^`ta{FEE#;yv9q$dEz zb>O|$Ct;QZAm2Qt=~7JpQ`;Cr-M|s+0-TZG`w-<1=#nUQUKY?aK43*WOuW@hGA^e6 zbv&4okrOMSzWS1Cw{Z*8eGG_S7?Msaj|nSQw2#Jm%qI;7F9b!99FP$h*Xno}B-6F{ z+bA zkk@JpZHGNos7C~SG+Yi9Kt+p2l5phWRj5{ef*&$Rl*z2cT;>x=9u!0Jka31O!V{Oe zzaNBTk&+362hU*&65t^bhE!u^e*-nfnK;g6RvuO&g}=JUh!9J-m-Z$}e&qw0a4e$$ zG`$IGW~oEDTqV$R z-WRsrfb7x{RfjaJ#|}GZZ|Re06ionKLG)dKj@C{Kd)K+-77o<(^S@+%iM#^3dc^c+ zqVQB+36~5qEtnn17RUoZv_6$Je4V%osyx)sLw$z$i+}D(mOxg>E6~3tEj@jYmlZR< zgKsg^a`@&Un*tHvOCn3h%a3DODWlYsy1S4t`$a1i1%WAKbA~|sY#5T_irW=EkP;oOX}fDF*pUt~c()M1-+6$; zU-mQPfnqF>hKZ#chK~*DrNZb>QcTntn;FWsR1GjE;Cchs5IB|ve}E*!WJm+gS8@Io zbP3sl0eNzXIZES+E_Jm8R`8!=X`s9FGiWX6B9CDVkRKs;{t`dB`WL7|^NR#aziz%E zst1@5=>oB##REtJYQQOk)q-xhf@p|lVM(|Gf%e!&U08B~W~%~2oHk#;4waNUamh;W zYt|hO<=?X63oW`=bOGk=6{cG6RvBf2=AtxgXsy@hUp+nwZ6M4dUG0xsmLbLcnQJUf4|8Lbz@L}>_KGkrrSPnv{^n~j`i*Wv?9olITb{m^D_+Q$^ z$1Xf~i^aNO&A)nzWn%Ge_{vHqeiYd6@St9c2b~YJbW6}tU&uqKk>Nzkcj*>(KZ{2= zP-v=dOY1~|BkQ2GgesOI&a4eB^b&R(A0T`^*0VT@ep9zlNgUW!Yv?#|Bd-uI4<65(i`T6+B4qsx_NyDTJ`v} z`EBzr2sx=)^sY@Pz%vut&Sx8*2X{W8IUGZ3aL+(ou8$u`G2X@WS@Z0DxcL+{AF`Z( z46IbVYP%9^&;;CSncoHrngT)JS%9WGzdCO+pys@yOvg?L=f6EBB6mn)LpnKOY)$&Ey5h14F3*A*nR||?Pcz9i1HL^44 zfG#Gzmc@VrN7Y(04Dg@TFN5W$4?u zfm*X2a@HP3r)CURf7`_daNbK0Nm;T_bGUhZ*_rgQkk+x7Si8^h@1oiw9JX|$ZD z8EvXq5JjJ~{Ur_~W9o@g)uq@Pm@h?}paP%*R!g8OBsQ1<#L*qXsZ)N?GB^W;jlKVP>8vO4I1{&k{FBfMAz@c zrTYZAZy12zglpso(PIY-WF`g{j{av@am zL;j}`?cds1$eW9+|z zCM*M%e=P%wPlX&|jX&P$d0Q0$`9dv(z=sVQSy&>m8^=dH`PUFo$(cHMbr`6=ipL0H zhsI4J0AYqOP;w>i25K6`iQ-DN>Gk$dDc&&xrqUx-6~|y!K%?Bl%qNxf0R}a|kwmK8 z_~Y&YcI^}asj;IaDw{)jsk>%w(z_cAoz~ujKElVI955Y)Vn%#DZiZ>%M#_ECas}%% zz<6XfoscS{CsAoH^JVgVNR2tkb^GR244ri2>hyycX2Tv0e=+j1KKzGvSXES@y^OI= zJ4DCR|CyKS8 zLfdev^uY8E4*V#N=9XhkT8H6)MV{zllBQ$!xoD16AN^cnC#?Dec&-(SKYfDoUsIhm8@8#B_3LOoK#gn;uMAC zWaO?-hTc}IMJ)p(qTl0I)Z^iAq-@eTn#O6&uRVrKp3?Nt|JPYR^vSEeYT6rBt5X~? zWI}l(#-WA&6GJyAqoGE-bA4u`c;Tvv32lCrt3PILBqQU&bE zQILvut_~OBte%#(L}Yx*TFd$dSy(m(@s{>D5(2nQf7R+p_RaMjho5rNvi_oM>E>_i zT^h(9kUym^{0KaawU=UQ4S_D^pBMh#q1y1@0v z`Y!H?=p2@_N63<-p{6Jt#t#xtTKl$S@PtYq4wp8mCkQqV%ZnGqo0}+?tjsLN_|07R zzC31L2|?xx+owki!;Q%#rmB!I52`E5W6E47P1nxofg4b%HE#5|Y;Tdr$Fwb!oyE~{M zOwxjAQ4jSiW1M_i%&cb$#|_oKN1=0fbnyU{drb^`-hBQ&G-h~!ryfVhuy_H7`(;>H zgu1^|`jbZ~n7;j&~V#q0<^h)DIuvN}|lfW4%U0O1cHID~R)~ z3jjI>BfvSZou0_)Q0gBYQ~{mB_N1M|9Df0@$;$_fo(#q*f2mkLaOaO0N z`7-HqVQ_wm zehB7Sw=-r&s%L$44$;j_1@f0qb$;t5z$OK^5|5?DyVV?7Zb8qPO#Qhu0hLC zx_1TXDfCgw1L#&ot!?0?QQ>uqZqRPiaFg{>y>6rf{#~qruVD}TmiZ?%_do*#g*Ctx zGOA^@qI*!L)yg8%+5u31vv_H@Fwc1lki1;z%)ooZ1L$1-tNl;ov&Gj1cuwTa) zHeUx`IT~DBbgpPB(t9pgMQqLaujV)KSJexI=PywE6q0hUHqjjnT5;L7#tT)1pJ~%X zWeDy*RK)N@=2G_{@%tT?o0oVv)d<&rieTu`O#(XE11 z7?QI>Jg;2OaWWXJn`x>!T?P0=38N%r<;*e6!n8QxhtPelFt_j?Gw6FB z`P*i*c)}dCgI4m(EyAw+PAd_ljmdY6qcm#gxP4iZ*#*vt)v&kY5($Sk6#xjukM} zoU%`kNMuxawP4^A$$T`R!3I=ls~-b#gibZ2U1BZrN0||{_n}J{5H|10i6DC!H>{@*leH)AS)OP_=!uy zsDcAwQ;Ft<;1Bfq$1$~7vto}hplxl4OhsX$Nm&4c9?)K0SE0uYZ*O&BS{o7&~t z6o8O=VkrAj#zo}*J(mUz20IKYA;phfiI=}>&LM)bAbOJNd*r}4@jba26hXMdufa6s z_j_(e=_2(5c&kcAxR7%CMuny#cm)@o3Gx&8WMG_d$D2ABFRF3eg zJ9N$-qy)j@coX#s{Tyw?8Z7GMKcSIkq(0l_{IR=5TvBOw}ZzT zcLXR8g0|cdTl9(G2Q7F2@ztyPi#ILbk?1%fa1OS+j8V(*H{p(z>pi0`CGInrg6?o9 z6Z+5J(CPf$k|?54YU^gi>adOQnD7aCSeR0SFhr@rbHpmg6aZ}O{}(v@ee)~m4gZKN zsoz0!_#>Jzd>ahEL4<=H@MF=uL?ugz?5P5lR?R~eVwHHi{5klOEOY4=R>mmBXq`%>Q_ z%AH=3e~_G0JW?8qrj-hordEIsi_A_ZRY&pxcMY%HS!alVk@c?h6q-MH40hmW(89OP zglJ?5k^;gEa(n|$;!NnkLt%E0YZipDp&Lc4HRZ=K#h}Y?Q_5FJcNnH6l6#cK?cll! zvk2z%bxie}p)%=+5wDBP<0mr*F}OejAd)ftE?zzy?#g+^yACy~f7mwW?VU(jWADAi zR!TMWXK4tOSD+k$P%dPhKn|ApM59ncv?7Rz?c49!w&#d2Se*2xkt@w!uBI!lo}?4i zT1K0t4T{tmjZ9ji&hfxZ1K6@Dz#~mtyaU?1VkT1R5~MF7dv38%zryP)yxs!d7kPc# zHuu;3ZFguL5MS+L8?Ghckc5T@&3U)R%2nBb9!pZOK9DlLJ0_TZdTnou0a=rrAWg3P z1>>&0+TdI(MMN`5q01u+8+jwPzUD9V7okjuz;jk3K z`M0ceVS8nEH9K|fMU8Z*n)mvuNSiWo!bP>Tr|NY3kuLO@qp_e{FNcY_b)zzy-ODxC>QJ_3u! z!IJ0A5b`&0hC=C)!Dk$`gP_R6r)s@{mM8=U=B_0~zyKJx zI!mSZ(GNh0KIgEyxo6ZNaPk7iAh^83x00)=A6BcsuLv%`g{8 zHG~G~YZynpuru?6BLD9hVzYx_eSd~S@XTA_njobq{?uIBtMXRAm{e7fwl_D*5HITu z@+TJSm*Co~CfQuy5XAaWkvd-7Bm?mWP!VW=uB_^{`pp(kcOhoiUJrVp-ZtrWBk(goW<>_cz z9xu|)IyMQ1m3=h3I2)K_@!Q0lq4gXg97wap-HHGG9C=%u~(s8=$BW?bPmkHUMG z)NTIctNiMzc_|yDX!lH<_g=De$9xpz-(T>XuiW9X3Xmgg^b7B1{llBUQ_BGj?j)I- z1yU!Js^?qQQN)L!_X9J!^PQqprcXXzeji1sU1rm@%6>*e9%yODBU{gb(K_BD?H={E z%n}DwE28F&_2LE{5EAzUd6RzCNq-elMPGt@P#ayQ9Zk)Ztxl2Cq9W~*IE5d!+ltD3 z$~3q84`{ykLmW=|2kJH2=Q!REkGBWMPej@LAmhiN7NP~}uCF07e*kUHB`8?HS0YYt z8li$5sT#TjZ_UT-!kVm>|M&sZi~7S!ny(GY{dVj4B=?e5LFm0n)jofL{x>K#k}NW$ zS!{olb%8ZF++iWoU`6s+e_6M-US+L**{k~Pv^}lLB1F=hp-(!4FM0zEfe%TLDD(4{ z{~3$dxfvY2nxR+cr%bp(t}D|ap+)7&Ns4HOS#y`*)KXhz>5&`IU2=0G#k=lMRCy@g z?af7ifTKZm#Ie8iAo&ZV)plp9=ok+sn~Vt}k5DGAN_zG|HBwUoR8geOVbEjZO;S(@ zo+U>^8ZV7HbhCIHM}L(C$oDQ!1^|k}i?ZsD5F%KOU3>vs+}yF|UQ)g57 zrb&{fkPILK5=h*Pw!vd zU+agY#-@9&+}SEl^hOKCdiz7tp`Br?9Sl-J!1M{F9|9GNYi7$EpT$yS$|^b2G4Y5b zSRYZjfE4*2l22a499nxu)F!CR8`i+hFECbs>=2>=@6AeuOH2<{{KRDAC zTkUis+B63jvOJBLe&j^Il??{5Gg&jiWU=`XmTVkT{uR?Xby^_vHo5KdM>=V*QmDpd`Ux4hpV2~bVNR}H|TixNb)hY*0 zIK(-ZBVyEZlWP|J2;rS1rY|Eh2~|zLTZZF%4u6;=y!wKxsG~08!@|{4q#gfM1;1NSSQQyT9gZ@-j%s2vyXb|4%HriVTCyY8I?DS5|{4NLK zqKS!U(|X=@{~5%Bca2oCy?fAlBYMP4&GECHq&>(76Pz$DYH(!XOqFXEg!~AYcl|hN zVt%wV^L2uXH15ZjkH1BTpv|`&Zw^OmVp`D}PO0D80`MebYhln}XS{Nu<<0hYs_8?&q|K4n&TRnHbQSMa4#3^S_x8)X&Bcop|>$=FF$|51nIOO zA=mgPy;!rr8R>zA%CsfO^EeaafTlwT#`8BqXE@ZZn4ukU;$`oi`ji6SWOUlF8b)NX z464~A%l3y1P|Z7=ey>OJ{co>_`3425FH;TDOV)brb5lB61??@Wc{Rk*>!()$(OkAz z5HZiao6)dU0lGPro?)1yhaWZb$>1Ttc;@IZPLiG@e(Gk~TEAk9>$Usj35(BW$&@Ly zn3j@#>X7&y{3>KR5hu4?Zb2qcy;;gdu=oPP46A43eh@ceY5-hnCioc3RPt?x@UsItO4B zqY2?cIBA|DWD$8k0}pGQ>QC-(J*LbVZ=18OZw~XU$gA!kZe<(YVWRP~>cF?%cQ$UC z%R3>iw|#C@S;|eLNv1}%c*BU^^-+1OE02{Pw6{dV(&XVA9B$VG(E?l!M0n9=Ln$GC zwGzSCz`+9H4lr(mg41ei(nNwE&?zI>`ki~dVB1gKdl^8Bo3Ar#fn9RUl zK54gr*)CBq<({2@pf(%5MC7(*wq7AKsuk^1?|8v_H3x(2LuTW_#G#KIBW(PuYrP^Y z%ND)LvxIJuUOF*H){|uOq$bTM>YwwvhFgO?H1*ifE()^78}wUd#CXeGAqi>?Q46s{ zC+act5OnekJ~u1*07w`K>3Vqs`$-ew?+`EzeY}ZAn)5;cf^uR>?Ji!t!-*koYJ?^S z@ini-X1%@X;0=XkoPOV?>jS^4#4dvU&>o2y6dl@Cku+Bt7zf#@{1nx1vD%oiq{9D`@qqqy>Xm( z`^B)8W$np;%mwNaq3AP@s9iMqvNoRiU4Ay>$Iwh|Pl**!8zx<`s=yUC>j|W3ffX&Z z+=w!@;0StUrPn13xP2Ej1Z~Orkf5a#>ip1JdeR*s_|KSUL&9bAZexFT@mWO=Tp9IA z9{Bti`{gx!vkV!i;_Y;DL~$2dVUfU0uVv|Xf+Q2uM)88ho)cl{PO*lS>UYOm;{Y}A z6n#r^v51jbE!sp39{CAYaX0FWFA>`z)R)j2fm+2L4P3Qs9X; zU{C%RH1Ma%zj`-1{6|ISD_}w6D>6L;^Yc=TbU@Z+Dida zD-G&pRB1~bjLLHJSi?91UJ_gd=ri$Af zu(Zt9I-PDdlRK$PI|}UFZ8Cg<2jU*ddZuS%8Q&o>cDFK(XG5m-Zrr= z!5)}fK-Yqsh3x{;js$x>IRZq00ln0R_~XE6&PRfH_+={PMs!Lg0OMUnZ8Bjy+)kN9 zLeua8$@aT`wBci4uaPi8WihvB%zG=Gjz5YWe~RaWa4KhO6ioOus!l7%qTo7o0mvRB z$BF!s-s`RH3-UXWr>9`5?_XR?yQFA!XyMx+nADMvx=nS*}sW(on) zLxh$baL&=464 zL~o|thF+mm9Z&-^z48)90+@g&hzfcY+Y$nEE}~6fDmdzx_wUgT)p6+W<$3p!kk~E< zt*ARLD@qqP&8Z>HA5p?-!qi7=MvFUbUSxb0s!7kJ*GEn(c-<=Zfl7WU3nB7Cvu7H9 z`+mO9C&gFH@BlKyx1Oj6=go~l)bFHgWv5N%?k>p*ER$mS_p)+H5mRjEn396cexKZw z^#L^n-4?mIq|-765Zi&Wfp9pczV#?`-$6R7nmj4r1!7v)n%aOn9RFA0R&x8dsSkJw zW&lqht}3<;=@Bi7w~agoYQPN80yV(K{!fltevf`xtQ-Dy@+$hBQ8yTN`(p&z5oQH> ztobwZuHchMeH8-Gt-w+sF|^edeN)fy!AB;3mH_%bQ+J4ChEK?0fvWH&v%Qd=>-*?H zYi4;ATdLjd4|{poC94XF$y)L^2%9j@p3l|k6qS-DD0p#@h(19U;xlAglM%VTojsFO zgFTO)pzNp9sm(su#1LuX>gn8KxuY|2LvwSf+1$FlfBnCxtY2ZlzPnYYhL%x}Cy9OuBiMp=ZJZJDhPfPAvb()=0<|&612AygG7ND_DA;rCrB#M=&?R7X|K~#uPUgX zDr*5XC!DKT7PZnt^}l98CfWZhPZz|Yk0M+ zc>tXnm_c+LrfonSA>9C;p3VPS(e2yiRkX%u$QPui2QmP4QENZY5D>++ zclh?sHZat&4SX$hfo!-!O}&h`LS@zW2yFbpW!8?~4F3UXZ-f2>k4us)ylCN@QxQO2 z!;qe0D+i23_Sqt%rlqWBEhpp~6xN-}wgOo!+(-my(!Yuu1RAHOo*6lLvc(yHjR!PtsWIZarqmtd*+z`hkli`c7$6(|wt zE_Dp}Kuj#J_mTfr_W`2HbnK-6>rwq#dRBN(Lu`_Pp?RBO0~Sx0SllJWBAEbeNQeOVVAZtI`)41)hIib_jVfT8kJ`76&OMc1VZtNDUSs|6w00 zIdQ(n?`4`G9@U{fPRPmSB)`Q(7n!f9aMe1F8_%O)lHRQ(0cXj`-@>7@w>jITs|^vJ z?C)f5PLeA*3G!dbqWvxsr>WC_6jAUt=?F_;ZDmMRL;FCyK4c5MJ;agF5H98w7y#np z5%I=+v0x*zJIZP)dBuM1TjWR;Cc*LD4mSLkKZi!p(F}PIBI|Y69koYk1ceTnsj{h* zBjzn)Z?99CH^5Qcf5p6VKg-$AZTPM16Y4>Hn&NSy=6|4;D3Yi#*)dG;9LqHcoNiWuc|}1zv{`gJ@Tz%huf=*y9Cdj;tZqMl%48 z`m2-^rt|dwO6Ic=+PC4tE(U*i553K@0fWD2Vv6Wgj>S97e}JrrRX|igbq%LvP>kqf zstMVr6$J)N7Tl_HqbYkt1+82#@rb4Ab1ZG=5GLz+Nx0YE0_3O7Hh1C?*5|m{sney8$gZ3Pvaz5@pyEJv_9zM@w|RS!EWu8}$LJ25;zNv2je4 z&!6w_nVjNwR0wGi2c%eNAZ4!bP)r+m9Kl1PVB}BXk|EcewHn%0yh~P@{8P_kmnqZo zHM?d4v07klkRj<}g?&S{mS#n_JW(d>>k2(O&r+@a=LrghmdK)`=4yx*9!o6+4T_p& z!S3hd2qFMq?=|#AcAPb=_8u|F6F}M7jDscOA#YPqi}OC(po}QkA!0&hCT4GtrpKJQ zxd+t%4M268$DzLq1chz4({*+o2YydGeh z|1L!OBeoo`Kt{)AZ(~VkB=sJ-vOS>tTPv;NY1CpEPcLz)aa^O(ed_mU#DHmm>{DZ@ zXE{%OK@gkxh;PDUq`i}v&oGLln~uonq@4+A!}L~VJ!5u`qCl!zEL+1CV_cCff5y7- zC)~@9T@xxmt%bmXzG^5NC~Kp%l>dvP_nZB6eSR)aFYoOv3G5{G?l?bc-ofDOLBiCE zVfjyF;+{LY9{2kFP1@8rgQ(cpy2#E>&-158%&{?1W;j+EasML_yaG>Px=Naf9`qAb z$0lT1-;_nB5ZXM2cs@S-bt{h4j_{*cZ6s4aWA@vf*%>CX^vpHyQMrBnKA8dFLDSLu zh>-ieYxs1XI61M`kB^zx4zj#`BVDaj4 z9Vv|djK6~Ni&lqb-xKN^Fs136@4&&7OIV-8x4H36GGAY{K8e-sRosBUEYSgIAy`Yz zNR-OTb%ZrLA?%7zb!=rJqkYJsIsb>;??Rt8_^Ry*I*bePQNvw)_Ab*Ut%_u(DI;bAJS}xSuM#&6 zAjD?ne&HXRo#R+(uKH@V{Vef<9B=oEet(2A>0jJh)P8YpquV)c-tCNSW)#(HH_qX( z`gOP*Z5*ZrVDB;Rk5~@Ig~omr;7QRY-Yrv?o5!V+t9 z#qif4eBw$8Ra)3f)4bTDV=%e2D6N?6=x`OKwmwY{<&#(cIkNd}p)KjXo96mk`R!VT zw#>VD%8Fgz_i_fhXtGz(`r6p+Y=;Ti6%-|rlMq!$f^bN~fYWqer^8m4ECmS1zW^YP z+0%~^{US(`cw1(yfN0I$d+jIszcyY$!w}bFw!4dS%lZ!fFC>pLyyQK2iUnA`1wOQ* z9Kpm=jM(pxS|Ad^ua55UEdb-tMmR>C!>R-HLN;m<7ck>!yUlTMaaBc@uB=e2m-SC{ zxqUqdJV99wTiZOg02d>_2+f;*oD^}JRFh!@(M|40_$5K0%!bjW&5Tf z{pi35NB%jMo+3laC=^U3&?=<77!FuU`Iq>M<`Mtv^%wBsX)(hGiWbqQIl{L2z|gzi zE7z;Z@a&|$5d@Rbji2EQNJNQ0?s-!&<^AT~+}rSfbX-nGqm4K6*v{LBUDR`RudCsd0#8eXWIOB@PvxaTT0R|<`a z2NsO`?M{+58=#l4#0+bkxp#0qpORyNwA*BM#Ej}pD!^E{*9l-}#aeqCbz~H^i&pp) zKX$}8i7-xDOnk+%{M#3S4q}tCv8(tn8K7MBDVZXiNn3Qs|0(+^@sZ$T%m;IkPuDSC zXsC@eFR~ZRbK^3OH|Us!N#9~hVd@ssoaP&SDp1MSz{3E{Y_9WvMwZ@#hJ8QT(oKBv z1vms4hLHpX$c%0yb8#D3ma?I7D_-m>ZDqw-|Tm`9x}XyoH03KeJG`J|0KR!cAVyiisNKG_l$L0tDY`=LLLNaBF0) z$iCA3F6&0x&VfL^1kW&r0AT5?IToTTS;>KnXl`LE${@hzJWc=s5N2340_aet>oxr1 zpfzZP)YFhEiaf!()cjrguei<`TxVLs@m;u%GK4!*)@<5-lVK5^hr3+t-;+ohhGHbn zKB1y+8^;IsaA$dOJt|&ow~+v}?(cn}o%a%IeADbV@KF{C1~JonnG}R;1@*%9TVXqn za5j+U>AN2bNojq+TxSFcgQSeR-a5YK_i{QWa{?7Xr~#q3b6oZNunhdh7S94ug7#9cXraA4t#5nGz9;>hHpj9=&+N>_ znSzqC*^u%$d$k#17Q}g4URb@2KJ87s`^+_oAY#M3Y*ROPlJ9wt=Ocz(Q}hOwV=9TC zCTM{jk(IMNB9#rtoY~~lTN@PimK>zGapQMry0pJTuoWHNfiF}n7y-fBQlo_tMB9KD zpw@`@8d<6}vROU(Y;gz9f+mO8xfc|PvC!KwShpn>E=!w!U1gDWcVbdtv4{WE*WRH-DgpJ<#drh_|;7i`e`2PXBqZA zyZSyxp!HF?v7Y}7o%TDJm8`8#D?twp(V}3_ZSD!{3-KGFhr=1)!j_|Yuhes>9R zcEE({Nudno8~+9RQwIG$M!?H(clQ3oEMQZ*A}q6lfc<%VUN;M=4&|UFx6+)|&<<)T zXW3|irIxb0KVcXGeMfi4$%l()qG4}qaF(`U=RtFwm6Q;>n`i-eF!1~PXLqPJq|H^L zO7u#0ufKboC{Z{Zk|}WP$a2)0&8~dChb`Y_uJ5p$?p1rvIPE4MRm4O({7y+*Tc@h& z56c!pz_pg5{q+k7M8k`baf@K2c<=cJV{lJ0$$ zaAQtwjofrFs_-MP!36_q0&!$yqnN-6t3aDUIAgjI#U+zLNiPql=ZoTZm{YIrMM@_l z>OVpy#Kcl_Jh^0Wz5 zZUUUI?z7_9=I-aqK9$bIpb>RMGig}LSW6W`VB=|NHqOcQ(rFKvto$&T*p#)n*&%JR zIS2(jXZ4v9{N^%GGGkZvyqEpAL75$ca0v;TvCl0QY9a+lFg$p!wUZLn z^-08lz{LaM)mfuqP0?yG|M=tvy@KetPASO4SRR|`X3qK`-G1O{Askf%pCx9t-C{LX z3f|K^JFVV`k!a&*SOT}{Pl)Tt9Bn&Eua|_g(?1kqn&w3Cg8<(%G1@Pg#kqOn?m;c` z&Np=oAH?4bwKOcto$0pp0$JCX+_mmpcd93$Jz!8;G7+i3{(yte4q@^pauUQE+OZqD z>=H0GyCq%bK7B0_&hXtF7bD_;a9nPUF}#cwYpE74T4*r>&RUWS)=2u?;}h&{ebUSq z(c}6rkVbmjuKx!Kp|1gF*8IUQNh64ogOK{ciu-=dW+-phWQSFL}w%*!4VD7H!8bM<=DplUCh5k1CMUsZyyh6 zzB(%hGyy~?`_2g`Vw1$7Sxy-~EBQ^b-A=xgw!O6D6v_JbIx`9KV0IP{+gIqfv5DgS zEA7cn7)86=q#QYG`v+qMgKxEZE@Qva;Ji7rjH43|61%Jo^HX0Kp%20dgW>^(d*W_x zjr=VApM#w4Kw$?OZ+-uNwZ5g7%m;|7tnOOm99DoGe|p863Kp*qx2$&(orywm zfWi@nVsgO41`t`{NB|NC03Cp->m0HJ?>OwoNR=GWB|`C%N6p*lVjv|>62Z1VVC#r+ zwjg;0ZJqQ8eMUO&_Dx6*LS@h*9fe?BGI=N)m=p=t9s?-UTn!U5Dvz=%ggHrD`GNTo z#$90kVQ(}eLyMIJxx>T*WuV}j3w)))v4x#Xo17q9Gna!a#AW#QVK|HakQN_Qd;l?;2dM?n0?DZUXf!7; z8F)^#N(9e!lXTc>g7>+M1N8^zk1ItXCYsg=$n{7(a2 z#&2d@=3p8J-6LjWoy1(XbH91yXqN0fut!q86sR-iN*dn7%QHU17mD$IGcj@VQs zK5V_SBJ@UhSoA6+g-l0&0R;X7`}`lmI-ru>4fC+?E?_iVQvrnt%!l}3;HiaRcAOlu zA=XhmqW@b9`ER=Ju9HO_whPvYPUwygfDzLT=5~sG%iTy?tdC=6 zZQsN0J$FICY1pEX&%j0Y{@bWW%%d1?Ml1;&)ei$)Pq=p({YJ75?K}8?iaP365E8H_ z9cjm#wUOvv>rwOAL7MG7F8w3Ba?S0yBW8}sq{xu==w3+n#8S$?BZ9lqrI!^zfFhs| z0jhbhE0Xl&6>v2N{Qq>l2e@Ndb?3W}j&y>Kbd+_J!%e!k>ej6+RdrQY>>;`5`Ps$>8*INfH~=;_;I?P{p5J_a-#7v@o@B6RJoCPf z_xtZ7RaG~hE9vU!=t$Zt?zPumLC$>P$WJ&SJtLe%h1BTtH!iXL zLD|(%$?ovbJ=9h5_EK|@$ah2_Y7oT=t5X`A@a1f_m8XtQem_~e)vQNP1sr=hqK_zW zl%;^3<4u?)vb!8VMnROa{ixVe)tgBsNBFYyJRKGYbVbRyYA%F7i%+_&T>@M zWk-}FF_f}Egt_{|W>}fr>)abtR9N%+n- z$eqk~_OtD`YhUOtQ}%Kg6)h=m*Q0s1_LpmgROlg{WDNnJ9B z*eY7_p}0@jOZie629(mA3+EQn8lP!TCImB7wb8*C?18BM8osB}t}QhXh}_7vPo5(+2`JR0}l49#pj zPhpf*c0&RJIGOc{YoT1RTpZL3U*^m@yK=-Y5{MdCDN~svDBF$Cm{a&cqRie?OTv~* zd^Uf%kgkkVbLB8!Jxn4VWOP=`!ObAuV^@@luB?TX(JH<64K)01!Yq0X#eAMk;F$Al zl45;MGuG42>HZhz&3=+ZR+UCg3^xUm*9oBKT%Os+`4N?VyTKN8u zva&j@1B_rd$_X*B2&R?*_Ntb0D zI%ujiE1bmv+++crtflO*P~tF9in|2d2@&5XrJ!STp)iL;_2dLVj2*? zQHit~sH)H8OH@{`vmNs;E}};hbDEp!513AH6WLR3Go<)kYcL?RwU7aA(G}*zJ{g)D zhxWipaTkPBOa)iCn6FB$04aAI_S#cO`(M41sHV3Wwl8LLi2^bUAeiA4II--7cme&4 zSCh#avV;)L#C3DEG*@AhL|>A!mhUCtHbrOC3Ll@DqY~8VdtpR=N)m2=llR%s5nJlB zhqqyK&@zk}GviRCQg-kjGw=dh8!4Dvfq|4WcdnX zmf2sIXV#b{SOYh&l14Kf!u9Ct4Mx^nZ%IFMwy_fAmNJ7%ll*1!*m5qzvrx{Kt~BSE!~D$FAr-tYS14u)4^v3UGr0*K$sCd0K=IZ)Q(fWbPoWReHRKCS zS!dwzd&~n+5&Vl_P)?8ep=OeaL?1OM0-+^1ao%p>#A20%#!YzX`93rfIWJIFlM(qCX5bGm@CYLci=e?iQvD#csy7z8;-zS`_)kC{NCja`Izl5TX3I_A z%kBE`Sad(>u*`R4$Zj zq(qa?OC^z9p+E)^0b=nr=9( z@>texKBQ+&^u2F0Q~egSwb3&Pcn}VoXb_7YZ!+;LcBB!&)AXTBsl za>ebpx>-}(9Tm?7J!%}hRX<6k2 zKZeh98+d^6Wl-R%RCcGze4=zVNtf$kis931FAoMKf26=E>>8>y$|@s*7WJo7_(%xO zu+bL>zW1Myk}n{7>XoRuBGo2f&4-Q$K7=`Vqd4wHb0haJP;#}%h5tL1+1^Tk8x)DZ z_xIGC|01h~#dq)(Lc4u%{BO*s%(M3zdplwN+I;Z?<^#5mE9THX)sD=XHKKC=o%s@D zP+K~(RWuAsACRv@9{iVeGnT{?#bHYuIO;NqK?E*zPU-4u}>$7^OvlMd=(7mO9T6xbZ1eoKU-rx$!AF zT0HQ8dEj6JAMaJZ>!$AKjQ&Z2`r+?k0wnKBOM$slBsNy$;B!r zRlB=~(3Fh}cweajCOBEhYQh>o1vDR7sk!9(6Acq5aWJ3T{u+LwwG5)Q=lz$|6ZzM3j%U;_WfLF(fuJx2 zV4-I~s3zN~fJDXI^b%f)D42w8tuc9FJ`*)F-8EJ&o!U8^-N8|ko#A2>;Zxi~a}~u` z#W24m2d2Z;{6PhOS82g-3 zkO$;vs((pP&87r_HC|u6{AxPvDgNbv(>q1J&~YlhD0D z8kr@6?eDDFpOu?I(FLk>l-RZ1@54M)%I22^+ccRbLb?TS;ky)^7D_t^Q38^z>BX<& z)nI-{g&Tk+D)wM5J9IFWRJx?k8tqaJ&J2op2Fgxw1DAYoAB>BZ%7pnISG=y9A=@PX zI8C!uUHezfNV0z*>JUcZXSxc701qweUH)UfQ(Ye!XEQ=2rBURD|NWA_sd?GN3c zmw6cy^8iT>>e7;RmO&PFd{`ojiS$D+H_P6P7_A^qM^W9+n9ED}QKA|?uyken_ZT3l zrGb{WJi*X>hA2*zdksitQ$$N>zp&(=PPQ2CG7>By{?V_PPdSC-)Y&U2pw>j^;_Ri> z-X?XE@=I*Q{4YeGtQ-l&BG7#c(;kEV+^b8 zV~Xq{P8^3zt7N3#hff$i4{y`*nH2XW+~~!UQ!P3hlhKzSF^_B@V{0hZN6w&V;RX3f zS!;)68ey4My~NGlB1J)Shmak`dK3^-##`;svCIkHWsQ8-{Qew1J9B_<;oRb#u_JGBh}zB(*8 z#ylP;3r?}^)FPr#G*4{;u;@myJfNgKT?E(@^UN52{>$?`agp_yTo_-n&=#V`ADfS3 z`lQ2oA9Lrjd82tFcinyuc5P#Ztq>CW=~tOo!G#3FQp1`Dzt!fqzHPp8UMs0HuH`|k zxxvB=2DEze{A@KJgB=UZ@Ep9CJ(%+-=w-&a1I5y6810dUyUh%5KuX>Nuj%<2o*#J7 z{N})I;P8(~_gag?MvX+b8us2t&2u0nH!>q?>~^vjZAI= zqyZ*FWl2Nnp~F<0^NxLwmy&;$P;&iPCglStc!n>O{nYj5Ox#t{2Pvo#{hYNLASM|< z4QsRv8>X*cC$h)MwpTcIZn*?@GU1Nn$4#s4M#-jgaUNs{{_EA}Y;5$wcYP?~ZUcSrLb72MItce)#V*Pvn&is2c*}{@f zdC;H1hJHGwP8S53(`EjYGVSErp7|MbS0Vc>zm{=lnQ-7>A69M%i|0zU>gjClIAyjd zl(*8ub#OQLhtOj8vrxx^UGKCr)i_&fvRrP(e&v9n30_<#E+?cQ)XS~fAPNq;l;D}~ z5Dg$}dtu?uE=>Oy9SYNs2QIQm_boiUkQU*7l@=Zvs)1$OAj7UfWMmw}pg)RX@hZC1 z9Uhnu@cs?X_2&8;;HA%~3=$qN`AR6Z#UW{wvUX^Yn*P_}M_~0=L5bt&iGvDPCfg0G z{O|Bcr&Y+&XBrd?)U=xG`>X-0)_5yPmBL5Jlvv^i<=^Q#IilFz0)c2+v@^xgH}!SUo26Xc;r!cIIDaIf3LlEO7v z82`q##7`(=Pl=%HlXsdsPk=F2qGk)9{&9=WYU0o-gW~ZRyp;1|wvV)H#}pG%!p;>x zC?-<%!4KjNQQga{HEL~0qCRHR1oS2xrXsth=>jiPI*n<#scTllmcV*~ZHmCofD(xH zl+3O@7S;*p!yzn(4eUaPF{keqV+2<#wwJZ)-Bmx_sCq~=nw9LeZq&(>%h_z>I1ORd zAA@-6&#QmGYQ{@UJ;;DuQ6v~-+2P0h2#T%!Ed6k}=BrAsD(19J%vNvU4tL_-puP$e zE`A~+_2}g$x(rpigtc|S+W#`hlMS*13|I&fJA8p4h;&Z!%bX6lKtDLQjONkeLSaP;N?@Om*iW` z<)Z4pS%Kxqoy7K33|rbwbT``c63bT$+E_ujz)>QFl?x3y(U^Iaa4`qg418+C6z9dw zH~IQYio2hCC439sE-CbkM0>4E3M5ptkV9Fa31i;$#q)BKdC7kttI)y1!YjaF4F zAnx}uK8lIm83mxv;T`UQ#S-wdXODGolvl#CJZ1k#&gK*xoq*RQ9kUr+x8$5>%&fYT2$~X{a~i@@ zny$D#xx}2!Ia5Owe&ei-spgWqG$^ucak%DF@>Q}kq75~&R8>0z;xS-cungBo?bsoxej!vP4WHTv@ zRAV4+Pfn=vXO~(?tJVSs%-+%#!9ZnzDtBU9_f;9m0M*L6f-dK(Xp`KEMt&Xz4`8_U zlr61Eo$_|1-86bEiisMhIudL4IvP#OwgPLC$DprkE@e4qt#Zv0qUv78uK}NbXv&s3 zKBv$uk$y;llX!^bczgmLp#~nequfSB+*xDKwkBssu|h8osuoJ*UH54T0k=;oa8mO? zm*=VZ$cU{CH}e3(5W`ppdUzB~KzlvHzJeKpdq(R-t&YBB{?`2Vd~VpocwrSWR=W2v zolTnJE54EzP z*a81phS@Jw;^jgUR#@zP3!C>3VD1g% z3-{AZ7-LK*4cJa&<46Nr^B2>r#;EuBFSPQ+khOl^#hCAR*zG-3!AKcsBiXsB6zr{b zJMrJdZs^54hO`4z$}pI{OXi=mfv6-iKM ztH)$VnQ-@OWe5RTS|R-fxM)Ajnby*l;lPkZ1PhmVn;Whi^oS*ict}(O6urll6W>xP zMMpA20A`$hoC0$}j-G)~VTj(VEYmyLbzVNwCZHce4akNnQkX7#u>iCD*%*o9@5=}(r>!D3Zgnh*eSq8Xn zYshS(s!Y9&J=k2%FmnZEKzGUoiv^g+XZYXPGtiEg_JU-oF1S-13FIkbP6dZnHxmn{ zKuvga6Dwk^v77Lsig_Qqy+N(whfCNhkKY{RPP%1w%5-}#roej?$2;)KbvMs!Mh1FN zFV**ADAP@VAo6vDo>H)8Q}V;eO6;k8hmoaqvlN>Kdd*@mSH!LtSpnxpzf*Iw{|Z4lHIpReI*mi zn+#vH(s&sy%*c4Tb3C#4M8I%pX*`*(bp3n})ZLHp9b>^chR?23yDs(X0!d#*!JajL zVLm&63PGp*AzDQg+-$i+O^o-x0+wXbz7Bzr*?q5kvGT}bkL)ceGmCcEI64@q;`Wsj zzF~Enwd+!~Hl2&fESdA7RdO1i9XZ0K`^8YaY?8qSrR+&g(Mn$K6dE}gIpK)37}L9+ z(e_vykfcYr{t*-keg^K(BI5s&@{p86VUFR0ZoX!I4qvK6ot*F;=98xJ%WQU)Oy$G) zt>6AIQW}~3bqu#4v}VD#`f>k0(5Yv$d@^>Bi5(mqgv4;D&}N zRH7#KQn2vEQ3UE}=0F_Oj`|hadbw4$f&ZIa$psd?6rSEEjMcffIi2qrCfh z&UK*f$3#=}(|q)2AXwEXn=xRkV6Sg3sjd>@Wcw-4R1xH&L%3bXpXg#RT!heX) zy%T|ac^YqQr_R~bZ~7u#GZ9}haEyeRrRGehJODhe9-0#ioy?7ts1_5v&&0IQoYJ`7 z%zow67Y2AdM5Ypq=MwA*mbJv75lzxUJJP&t95cgE%Ks1#o%*J@hky*1YNyD^*6YE(yNjO#m}(nq(Tb_RRNe5 z5!X(^RErdZ6>`yreCY%X5$fY@lJj0VXb#m2#c&72(HiHo6n446WN76_W%MEesb1t| ztHevum0`>B}j9{Ap%7R@o5g15U9Wga)wF* zQwQk4!lFP1TO!0*$;KZ`|f@;vVS+Sh%Di8+|WD@5W#eRrY75@7#sMK`VV-Gg? zu~d)vfDCLiYqtR-x@0EwC4xAG8r3o5yk$8Z@~*5v5c)?SHyoG_HWEmOjKAUKe*+rxsh0GFLSHe>F3^rrW~LI%E;Fl0N93fu`oxa z5b+8efn_?mH;_putT=g2mf$P`_$ec%;2!2X^u>4asGns!^;&+HQKy4sm_9EoNK*|u zxfrTBwMAxtlO+p8(;3j(r(|Mjk@ zHFVDhXl}_@ksrlx=CtSzG1_=*1j;V66h@!osZosrxjg$Iatju_1ewsTrv(*4%U(|j zDGFO-OPsG$0)C<^5?wdPO(L1${mI&c#DOjW<|QOA@19j!%RymMbNyOAJcP3N!AGgk zL|h$Y${o8}K=Poh1OL0`9nDOhU|jlzx37ghxLgiE&&O)pSKGAM+Je%VZDCAU9&JNg z6hX~qiWPGlrTQu$d(Y?i0NlNbAD0XSf+obx4ZLgr6aVKvJ2NQ0@e0x1Qk&s>GejF5 zIzbPLwsT!6#dx0R3vD3QwqT2&f!*^(_D}5#i4q;6hcZ#FoS|*-D)p*OV@Fh+5za

                  K~jfyU9iDRWi= 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 LNB-YjU;O_8W6Ya) literal 0 HcmV?d00001 diff --git a/public/static/res/images/weixin.jpg b/public/static/res/images/weixin.jpg new file mode 100644 index 0000000000000000000000000000000000000000..9fea56e7ddd7963d68ecae811a656c4f9d1d0179 GIT binary patch literal 39917 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 literal 0 HcmV?d00001 diff --git a/public/static/res/layui/css/layui.css b/public/static/res/layui/css/layui.css new file mode 100644 index 0000000..0e8508f --- /dev/null +++ b/public/static/res/layui/css/layui.css @@ -0,0 +1,2 @@ +/** layui-v2.5.5 MIT License By https://www.layui.com */ + .layui-inline,img{display:inline-block;vertical-align:middle}h1,h2,h3,h4,h5,h6{font-weight:400}.layui-edge,.layui-header,.layui-inline,.layui-main{position:relative}.layui-body,.layui-edge,.layui-elip{overflow:hidden}.layui-btn,.layui-edge,.layui-inline,img{vertical-align:middle}.layui-btn,.layui-disabled,.layui-icon,.layui-unselect{-moz-user-select:none;-webkit-user-select:none;-ms-user-select:none}.layui-elip,.layui-form-checkbox span,.layui-form-pane .layui-form-label{text-overflow:ellipsis;white-space:nowrap}.layui-breadcrumb,.layui-tree-btnGroup{visibility:hidden}blockquote,body,button,dd,div,dl,dt,form,h1,h2,h3,h4,h5,h6,input,li,ol,p,pre,td,textarea,th,ul{margin:0;padding:0;-webkit-tap-highlight-color:rgba(0,0,0,0)}a:active,a:hover{outline:0}img{border:none}li{list-style:none}table{border-collapse:collapse;border-spacing:0}h4,h5,h6{font-size:100%}button,input,optgroup,option,select,textarea{font-family:inherit;font-size:inherit;font-style:inherit;font-weight:inherit;outline:0}pre{white-space:pre-wrap;white-space:-moz-pre-wrap;white-space:-pre-wrap;white-space:-o-pre-wrap;word-wrap:break-word}body{line-height:24px;font:14px Helvetica Neue,Helvetica,PingFang SC,Tahoma,Arial,sans-serif}hr{height:1px;margin:10px 0;border:0;clear:both}a{color:#333;text-decoration:none}a:hover{color:#777}a cite{font-style:normal;*cursor:pointer}.layui-border-box,.layui-border-box *{box-sizing:border-box}.layui-box,.layui-box *{box-sizing:content-box}.layui-clear{clear:both;*zoom:1}.layui-clear:after{content:'\20';clear:both;*zoom:1;display:block;height:0}.layui-inline{*display:inline;*zoom:1}.layui-edge{display:inline-block;width:0;height:0;border-width:6px;border-style:dashed;border-color:transparent}.layui-edge-top{top:-4px;border-bottom-color:#999;border-bottom-style:solid}.layui-edge-right{border-left-color:#999;border-left-style:solid}.layui-edge-bottom{top:2px;border-top-color:#999;border-top-style:solid}.layui-edge-left{border-right-color:#999;border-right-style:solid}.layui-disabled,.layui-disabled:hover{color:#d2d2d2!important;cursor:not-allowed!important}.layui-circle{border-radius:100%}.layui-show{display:block!important}.layui-hide{display:none!important}@font-face{font-family:layui-icon;src:url(../font/iconfont.eot?v=250);src:url(../font/iconfont.eot?v=250#iefix) format('embedded-opentype'),url(../font/iconfont.woff2?v=250) format('woff2'),url(../font/iconfont.woff?v=250) format('woff'),url(../font/iconfont.ttf?v=250) format('truetype'),url(../font/iconfont.svg?v=250#layui-icon) format('svg')}.layui-icon{font-family:layui-icon!important;font-size:16px;font-style:normal;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.layui-icon-reply-fill:before{content:"\e611"}.layui-icon-set-fill:before{content:"\e614"}.layui-icon-menu-fill:before{content:"\e60f"}.layui-icon-search:before{content:"\e615"}.layui-icon-share:before{content:"\e641"}.layui-icon-set-sm:before{content:"\e620"}.layui-icon-engine:before{content:"\e628"}.layui-icon-close:before{content:"\1006"}.layui-icon-close-fill:before{content:"\1007"}.layui-icon-chart-screen:before{content:"\e629"}.layui-icon-star:before{content:"\e600"}.layui-icon-circle-dot:before{content:"\e617"}.layui-icon-chat:before{content:"\e606"}.layui-icon-release:before{content:"\e609"}.layui-icon-list:before{content:"\e60a"}.layui-icon-chart:before{content:"\e62c"}.layui-icon-ok-circle:before{content:"\1005"}.layui-icon-layim-theme:before{content:"\e61b"}.layui-icon-table:before{content:"\e62d"}.layui-icon-right:before{content:"\e602"}.layui-icon-left:before{content:"\e603"}.layui-icon-cart-simple:before{content:"\e698"}.layui-icon-face-cry:before{content:"\e69c"}.layui-icon-face-smile:before{content:"\e6af"}.layui-icon-survey:before{content:"\e6b2"}.layui-icon-tree:before{content:"\e62e"}.layui-icon-upload-circle:before{content:"\e62f"}.layui-icon-add-circle:before{content:"\e61f"}.layui-icon-download-circle:before{content:"\e601"}.layui-icon-templeate-1:before{content:"\e630"}.layui-icon-util:before{content:"\e631"}.layui-icon-face-surprised:before{content:"\e664"}.layui-icon-edit:before{content:"\e642"}.layui-icon-speaker:before{content:"\e645"}.layui-icon-down:before{content:"\e61a"}.layui-icon-file:before{content:"\e621"}.layui-icon-layouts:before{content:"\e632"}.layui-icon-rate-half:before{content:"\e6c9"}.layui-icon-add-circle-fine:before{content:"\e608"}.layui-icon-prev-circle:before{content:"\e633"}.layui-icon-read:before{content:"\e705"}.layui-icon-404:before{content:"\e61c"}.layui-icon-carousel:before{content:"\e634"}.layui-icon-help:before{content:"\e607"}.layui-icon-code-circle:before{content:"\e635"}.layui-icon-water:before{content:"\e636"}.layui-icon-username:before{content:"\e66f"}.layui-icon-find-fill:before{content:"\e670"}.layui-icon-about:before{content:"\e60b"}.layui-icon-location:before{content:"\e715"}.layui-icon-up:before{content:"\e619"}.layui-icon-pause:before{content:"\e651"}.layui-icon-date:before{content:"\e637"}.layui-icon-layim-uploadfile:before{content:"\e61d"}.layui-icon-delete:before{content:"\e640"}.layui-icon-play:before{content:"\e652"}.layui-icon-top:before{content:"\e604"}.layui-icon-friends:before{content:"\e612"}.layui-icon-refresh-3:before{content:"\e9aa"}.layui-icon-ok:before{content:"\e605"}.layui-icon-layer:before{content:"\e638"}.layui-icon-face-smile-fine:before{content:"\e60c"}.layui-icon-dollar:before{content:"\e659"}.layui-icon-group:before{content:"\e613"}.layui-icon-layim-download:before{content:"\e61e"}.layui-icon-picture-fine:before{content:"\e60d"}.layui-icon-link:before{content:"\e64c"}.layui-icon-diamond:before{content:"\e735"}.layui-icon-log:before{content:"\e60e"}.layui-icon-rate-solid:before{content:"\e67a"}.layui-icon-fonts-del:before{content:"\e64f"}.layui-icon-unlink:before{content:"\e64d"}.layui-icon-fonts-clear:before{content:"\e639"}.layui-icon-triangle-r:before{content:"\e623"}.layui-icon-circle:before{content:"\e63f"}.layui-icon-radio:before{content:"\e643"}.layui-icon-align-center:before{content:"\e647"}.layui-icon-align-right:before{content:"\e648"}.layui-icon-align-left:before{content:"\e649"}.layui-icon-loading-1:before{content:"\e63e"}.layui-icon-return:before{content:"\e65c"}.layui-icon-fonts-strong:before{content:"\e62b"}.layui-icon-upload:before{content:"\e67c"}.layui-icon-dialogue:before{content:"\e63a"}.layui-icon-video:before{content:"\e6ed"}.layui-icon-headset:before{content:"\e6fc"}.layui-icon-cellphone-fine:before{content:"\e63b"}.layui-icon-add-1:before{content:"\e654"}.layui-icon-face-smile-b:before{content:"\e650"}.layui-icon-fonts-html:before{content:"\e64b"}.layui-icon-form:before{content:"\e63c"}.layui-icon-cart:before{content:"\e657"}.layui-icon-camera-fill:before{content:"\e65d"}.layui-icon-tabs:before{content:"\e62a"}.layui-icon-fonts-code:before{content:"\e64e"}.layui-icon-fire:before{content:"\e756"}.layui-icon-set:before{content:"\e716"}.layui-icon-fonts-u:before{content:"\e646"}.layui-icon-triangle-d:before{content:"\e625"}.layui-icon-tips:before{content:"\e702"}.layui-icon-picture:before{content:"\e64a"}.layui-icon-more-vertical:before{content:"\e671"}.layui-icon-flag:before{content:"\e66c"}.layui-icon-loading:before{content:"\e63d"}.layui-icon-fonts-i:before{content:"\e644"}.layui-icon-refresh-1:before{content:"\e666"}.layui-icon-rmb:before{content:"\e65e"}.layui-icon-home:before{content:"\e68e"}.layui-icon-user:before{content:"\e770"}.layui-icon-notice:before{content:"\e667"}.layui-icon-login-weibo:before{content:"\e675"}.layui-icon-voice:before{content:"\e688"}.layui-icon-upload-drag:before{content:"\e681"}.layui-icon-login-qq:before{content:"\e676"}.layui-icon-snowflake:before{content:"\e6b1"}.layui-icon-file-b:before{content:"\e655"}.layui-icon-template:before{content:"\e663"}.layui-icon-auz:before{content:"\e672"}.layui-icon-console:before{content:"\e665"}.layui-icon-app:before{content:"\e653"}.layui-icon-prev:before{content:"\e65a"}.layui-icon-website:before{content:"\e7ae"}.layui-icon-next:before{content:"\e65b"}.layui-icon-component:before{content:"\e857"}.layui-icon-more:before{content:"\e65f"}.layui-icon-login-wechat:before{content:"\e677"}.layui-icon-shrink-right:before{content:"\e668"}.layui-icon-spread-left:before{content:"\e66b"}.layui-icon-camera:before{content:"\e660"}.layui-icon-note:before{content:"\e66e"}.layui-icon-refresh:before{content:"\e669"}.layui-icon-female:before{content:"\e661"}.layui-icon-male:before{content:"\e662"}.layui-icon-password:before{content:"\e673"}.layui-icon-senior:before{content:"\e674"}.layui-icon-theme:before{content:"\e66a"}.layui-icon-tread:before{content:"\e6c5"}.layui-icon-praise:before{content:"\e6c6"}.layui-icon-star-fill:before{content:"\e658"}.layui-icon-rate:before{content:"\e67b"}.layui-icon-template-1:before{content:"\e656"}.layui-icon-vercode:before{content:"\e679"}.layui-icon-cellphone:before{content:"\e678"}.layui-icon-screen-full:before{content:"\e622"}.layui-icon-screen-restore:before{content:"\e758"}.layui-icon-cols:before{content:"\e610"}.layui-icon-export:before{content:"\e67d"}.layui-icon-print:before{content:"\e66d"}.layui-icon-slider:before{content:"\e714"}.layui-icon-addition:before{content:"\e624"}.layui-icon-subtraction:before{content:"\e67e"}.layui-icon-service:before{content:"\e626"}.layui-icon-transfer:before{content:"\e691"}.layui-main{width:1140px;margin:0 auto}.layui-header{z-index:1000;height:60px}.layui-header a:hover{transition:all .5s;-webkit-transition:all .5s}.layui-side{position:fixed;left:0;top:0;bottom:0;z-index:999;width:200px;overflow-x:hidden}.layui-side-scroll{position:relative;width:220px;height:100%;overflow-x:hidden}.layui-body{position:absolute;left:200px;right:0;top:0;bottom:0;z-index:998;width:auto;overflow-y:auto;box-sizing:border-box}.layui-layout-body{overflow:hidden}.layui-layout-admin .layui-header{background-color:#23262E}.layui-layout-admin .layui-side{top:60px;width:200px;overflow-x:hidden}.layui-layout-admin .layui-body{position:fixed;top:60px;bottom:44px}.layui-layout-admin .layui-main{width:auto;margin:0 15px}.layui-layout-admin .layui-footer{position:fixed;left:200px;right:0;bottom:0;height:44px;line-height:44px;padding:0 15px;background-color:#eee}.layui-layout-admin .layui-logo{position:absolute;left:0;top:0;width:200px;height:100%;line-height:60px;text-align:center;color:#009688;font-size:16px}.layui-layout-admin .layui-header .layui-nav{background:0 0}.layui-layout-left{position:absolute!important;left:200px;top:0}.layui-layout-right{position:absolute!important;right:0;top:0}.layui-container{position:relative;margin:0 auto;padding:0 15px;box-sizing:border-box}.layui-fluid{position:relative;margin:0 auto;padding:0 15px}.layui-row:after,.layui-row:before{content:'';display:block;clear:both}.layui-col-lg1,.layui-col-lg10,.layui-col-lg11,.layui-col-lg12,.layui-col-lg2,.layui-col-lg3,.layui-col-lg4,.layui-col-lg5,.layui-col-lg6,.layui-col-lg7,.layui-col-lg8,.layui-col-lg9,.layui-col-md1,.layui-col-md10,.layui-col-md11,.layui-col-md12,.layui-col-md2,.layui-col-md3,.layui-col-md4,.layui-col-md5,.layui-col-md6,.layui-col-md7,.layui-col-md8,.layui-col-md9,.layui-col-sm1,.layui-col-sm10,.layui-col-sm11,.layui-col-sm12,.layui-col-sm2,.layui-col-sm3,.layui-col-sm4,.layui-col-sm5,.layui-col-sm6,.layui-col-sm7,.layui-col-sm8,.layui-col-sm9,.layui-col-xs1,.layui-col-xs10,.layui-col-xs11,.layui-col-xs12,.layui-col-xs2,.layui-col-xs3,.layui-col-xs4,.layui-col-xs5,.layui-col-xs6,.layui-col-xs7,.layui-col-xs8,.layui-col-xs9{position:relative;display:block;box-sizing:border-box}.layui-col-xs1,.layui-col-xs10,.layui-col-xs11,.layui-col-xs12,.layui-col-xs2,.layui-col-xs3,.layui-col-xs4,.layui-col-xs5,.layui-col-xs6,.layui-col-xs7,.layui-col-xs8,.layui-col-xs9{float:left}.layui-col-xs1{width:8.33333333%}.layui-col-xs2{width:16.66666667%}.layui-col-xs3{width:25%}.layui-col-xs4{width:33.33333333%}.layui-col-xs5{width:41.66666667%}.layui-col-xs6{width:50%}.layui-col-xs7{width:58.33333333%}.layui-col-xs8{width:66.66666667%}.layui-col-xs9{width:75%}.layui-col-xs10{width:83.33333333%}.layui-col-xs11{width:91.66666667%}.layui-col-xs12{width:100%}.layui-col-xs-offset1{margin-left:8.33333333%}.layui-col-xs-offset2{margin-left:16.66666667%}.layui-col-xs-offset3{margin-left:25%}.layui-col-xs-offset4{margin-left:33.33333333%}.layui-col-xs-offset5{margin-left:41.66666667%}.layui-col-xs-offset6{margin-left:50%}.layui-col-xs-offset7{margin-left:58.33333333%}.layui-col-xs-offset8{margin-left:66.66666667%}.layui-col-xs-offset9{margin-left:75%}.layui-col-xs-offset10{margin-left:83.33333333%}.layui-col-xs-offset11{margin-left:91.66666667%}.layui-col-xs-offset12{margin-left:100%}@media screen and (max-width:768px){.layui-hide-xs{display:none!important}.layui-show-xs-block{display:block!important}.layui-show-xs-inline{display:inline!important}.layui-show-xs-inline-block{display:inline-block!important}}@media screen and (min-width:768px){.layui-container{width:750px}.layui-hide-sm{display:none!important}.layui-show-sm-block{display:block!important}.layui-show-sm-inline{display:inline!important}.layui-show-sm-inline-block{display:inline-block!important}.layui-col-sm1,.layui-col-sm10,.layui-col-sm11,.layui-col-sm12,.layui-col-sm2,.layui-col-sm3,.layui-col-sm4,.layui-col-sm5,.layui-col-sm6,.layui-col-sm7,.layui-col-sm8,.layui-col-sm9{float:left}.layui-col-sm1{width:8.33333333%}.layui-col-sm2{width:16.66666667%}.layui-col-sm3{width:25%}.layui-col-sm4{width:33.33333333%}.layui-col-sm5{width:41.66666667%}.layui-col-sm6{width:50%}.layui-col-sm7{width:58.33333333%}.layui-col-sm8{width:66.66666667%}.layui-col-sm9{width:75%}.layui-col-sm10{width:83.33333333%}.layui-col-sm11{width:91.66666667%}.layui-col-sm12{width:100%}.layui-col-sm-offset1{margin-left:8.33333333%}.layui-col-sm-offset2{margin-left:16.66666667%}.layui-col-sm-offset3{margin-left:25%}.layui-col-sm-offset4{margin-left:33.33333333%}.layui-col-sm-offset5{margin-left:41.66666667%}.layui-col-sm-offset6{margin-left:50%}.layui-col-sm-offset7{margin-left:58.33333333%}.layui-col-sm-offset8{margin-left:66.66666667%}.layui-col-sm-offset9{margin-left:75%}.layui-col-sm-offset10{margin-left:83.33333333%}.layui-col-sm-offset11{margin-left:91.66666667%}.layui-col-sm-offset12{margin-left:100%}}@media screen and (min-width:992px){.layui-container{width:970px}.layui-hide-md{display:none!important}.layui-show-md-block{display:block!important}.layui-show-md-inline{display:inline!important}.layui-show-md-inline-block{display:inline-block!important}.layui-col-md1,.layui-col-md10,.layui-col-md11,.layui-col-md12,.layui-col-md2,.layui-col-md3,.layui-col-md4,.layui-col-md5,.layui-col-md6,.layui-col-md7,.layui-col-md8,.layui-col-md9{float:left}.layui-col-md1{width:8.33333333%}.layui-col-md2{width:16.66666667%}.layui-col-md3{width:25%}.layui-col-md4{width:33.33333333%}.layui-col-md5{width:41.66666667%}.layui-col-md6{width:50%}.layui-col-md7{width:58.33333333%}.layui-col-md8{width:66.66666667%}.layui-col-md9{width:75%}.layui-col-md10{width:83.33333333%}.layui-col-md11{width:91.66666667%}.layui-col-md12{width:100%}.layui-col-md-offset1{margin-left:8.33333333%}.layui-col-md-offset2{margin-left:16.66666667%}.layui-col-md-offset3{margin-left:25%}.layui-col-md-offset4{margin-left:33.33333333%}.layui-col-md-offset5{margin-left:41.66666667%}.layui-col-md-offset6{margin-left:50%}.layui-col-md-offset7{margin-left:58.33333333%}.layui-col-md-offset8{margin-left:66.66666667%}.layui-col-md-offset9{margin-left:75%}.layui-col-md-offset10{margin-left:83.33333333%}.layui-col-md-offset11{margin-left:91.66666667%}.layui-col-md-offset12{margin-left:100%}}@media screen and (min-width:1200px){.layui-container{width:1170px}.layui-hide-lg{display:none!important}.layui-show-lg-block{display:block!important}.layui-show-lg-inline{display:inline!important}.layui-show-lg-inline-block{display:inline-block!important}.layui-col-lg1,.layui-col-lg10,.layui-col-lg11,.layui-col-lg12,.layui-col-lg2,.layui-col-lg3,.layui-col-lg4,.layui-col-lg5,.layui-col-lg6,.layui-col-lg7,.layui-col-lg8,.layui-col-lg9{float:left}.layui-col-lg1{width:8.33333333%}.layui-col-lg2{width:16.66666667%}.layui-col-lg3{width:25%}.layui-col-lg4{width:33.33333333%}.layui-col-lg5{width:41.66666667%}.layui-col-lg6{width:50%}.layui-col-lg7{width:58.33333333%}.layui-col-lg8{width:66.66666667%}.layui-col-lg9{width:75%}.layui-col-lg10{width:83.33333333%}.layui-col-lg11{width:91.66666667%}.layui-col-lg12{width:100%}.layui-col-lg-offset1{margin-left:8.33333333%}.layui-col-lg-offset2{margin-left:16.66666667%}.layui-col-lg-offset3{margin-left:25%}.layui-col-lg-offset4{margin-left:33.33333333%}.layui-col-lg-offset5{margin-left:41.66666667%}.layui-col-lg-offset6{margin-left:50%}.layui-col-lg-offset7{margin-left:58.33333333%}.layui-col-lg-offset8{margin-left:66.66666667%}.layui-col-lg-offset9{margin-left:75%}.layui-col-lg-offset10{margin-left:83.33333333%}.layui-col-lg-offset11{margin-left:91.66666667%}.layui-col-lg-offset12{margin-left:100%}}.layui-col-space1{margin:-.5px}.layui-col-space1>*{padding:.5px}.layui-col-space3{margin:-1.5px}.layui-col-space3>*{padding:1.5px}.layui-col-space5{margin:-2.5px}.layui-col-space5>*{padding:2.5px}.layui-col-space8{margin:-3.5px}.layui-col-space8>*{padding:3.5px}.layui-col-space10{margin:-5px}.layui-col-space10>*{padding:5px}.layui-col-space12{margin:-6px}.layui-col-space12>*{padding:6px}.layui-col-space15{margin:-7.5px}.layui-col-space15>*{padding:7.5px}.layui-col-space18{margin:-9px}.layui-col-space18>*{padding:9px}.layui-col-space20{margin:-10px}.layui-col-space20>*{padding:10px}.layui-col-space22{margin:-11px}.layui-col-space22>*{padding:11px}.layui-col-space25{margin:-12.5px}.layui-col-space25>*{padding:12.5px}.layui-col-space30{margin:-15px}.layui-col-space30>*{padding:15px}.layui-btn,.layui-input,.layui-select,.layui-textarea,.layui-upload-button{outline:0;-webkit-appearance:none;transition:all .3s;-webkit-transition:all .3s;box-sizing:border-box}.layui-elem-quote{margin-bottom:10px;padding:15px;line-height:22px;border-left:5px solid #009688;border-radius:0 2px 2px 0;background-color:#f2f2f2}.layui-quote-nm{border-style:solid;border-width:1px 1px 1px 5px;background:0 0}.layui-elem-field{margin-bottom:10px;padding:0;border-width:1px;border-style:solid}.layui-elem-field legend{margin-left:20px;padding:0 10px;font-size:20px;font-weight:300}.layui-field-title{margin:10px 0 20px;border-width:1px 0 0}.layui-field-box{padding:10px 15px}.layui-field-title .layui-field-box{padding:10px 0}.layui-progress{position:relative;height:6px;border-radius:20px;background-color:#e2e2e2}.layui-progress-bar{position:absolute;left:0;top:0;width:0;max-width:100%;height:6px;border-radius:20px;text-align:right;background-color:#5FB878;transition:all .3s;-webkit-transition:all .3s}.layui-progress-big,.layui-progress-big .layui-progress-bar{height:18px;line-height:18px}.layui-progress-text{position:relative;top:-20px;line-height:18px;font-size:12px;color:#666}.layui-progress-big .layui-progress-text{position:static;padding:0 10px;color:#fff}.layui-collapse{border-width:1px;border-style:solid;border-radius:2px}.layui-colla-content,.layui-colla-item{border-top-width:1px;border-top-style:solid}.layui-colla-item:first-child{border-top:none}.layui-colla-title{position:relative;height:42px;line-height:42px;padding:0 15px 0 35px;color:#333;background-color:#f2f2f2;cursor:pointer;font-size:14px;overflow:hidden}.layui-colla-content{display:none;padding:10px 15px;line-height:22px;color:#666}.layui-colla-icon{position:absolute;left:15px;top:0;font-size:14px}.layui-card{margin-bottom:15px;border-radius:2px;background-color:#fff;box-shadow:0 1px 2px 0 rgba(0,0,0,.05)}.layui-card:last-child{margin-bottom:0}.layui-card-header{position:relative;height:42px;line-height:42px;padding:0 15px;border-bottom:1px solid #f6f6f6;color:#333;border-radius:2px 2px 0 0;font-size:14px}.layui-bg-black,.layui-bg-blue,.layui-bg-cyan,.layui-bg-green,.layui-bg-orange,.layui-bg-red{color:#fff!important}.layui-card-body{position:relative;padding:10px 15px;line-height:24px}.layui-card-body[pad15]{padding:15px}.layui-card-body[pad20]{padding:20px}.layui-card-body .layui-table{margin:5px 0}.layui-card .layui-tab{margin:0}.layui-panel-window{position:relative;padding:15px;border-radius:0;border-top:5px solid #E6E6E6;background-color:#fff}.layui-auxiliar-moving{position:fixed;left:0;right:0;top:0;bottom:0;width:100%;height:100%;background:0 0;z-index:9999999999}.layui-form-label,.layui-form-mid,.layui-form-select,.layui-input-block,.layui-input-inline,.layui-textarea{position:relative}.layui-bg-red{background-color:#FF5722!important}.layui-bg-orange{background-color:#FFB800!important}.layui-bg-green{background-color:#009688!important}.layui-bg-cyan{background-color:#2F4056!important}.layui-bg-blue{background-color:#1E9FFF!important}.layui-bg-black{background-color:#393D49!important}.layui-bg-gray{background-color:#eee!important;color:#666!important}.layui-badge-rim,.layui-colla-content,.layui-colla-item,.layui-collapse,.layui-elem-field,.layui-form-pane .layui-form-item[pane],.layui-form-pane .layui-form-label,.layui-input,.layui-layedit,.layui-layedit-tool,.layui-quote-nm,.layui-select,.layui-tab-bar,.layui-tab-card,.layui-tab-title,.layui-tab-title .layui-this:after,.layui-textarea{border-color:#e6e6e6}.layui-timeline-item:before,hr{background-color:#e6e6e6}.layui-text{line-height:22px;font-size:14px;color:#666}.layui-text h1,.layui-text h2,.layui-text h3{font-weight:500;color:#333}.layui-text h1{font-size:30px}.layui-text h2{font-size:24px}.layui-text h3{font-size:18px}.layui-text a:not(.layui-btn){color:#01AAED}.layui-text a:not(.layui-btn):hover{text-decoration:underline}.layui-text ul{padding:5px 0 5px 15px}.layui-text ul li{margin-top:5px;list-style-type:disc}.layui-text em,.layui-word-aux{color:#999!important;padding:0 5px!important}.layui-btn{display:inline-block;height:38px;line-height:38px;padding:0 18px;background-color:#009688;color:#fff;white-space:nowrap;text-align:center;font-size:14px;border:none;border-radius:2px;cursor:pointer}.layui-btn:hover{opacity:.8;filter:alpha(opacity=80);color:#fff}.layui-btn:active{opacity:1;filter:alpha(opacity=100)}.layui-btn+.layui-btn{margin-left:10px}.layui-btn-container{font-size:0}.layui-btn-container .layui-btn{margin-right:10px;margin-bottom:10px}.layui-btn-container .layui-btn+.layui-btn{margin-left:0}.layui-table .layui-btn-container .layui-btn{margin-bottom:9px}.layui-btn-radius{border-radius:100px}.layui-btn .layui-icon{margin-right:3px;font-size:18px;vertical-align:bottom;vertical-align:middle\9}.layui-btn-primary{border:1px solid #C9C9C9;background-color:#fff;color:#555}.layui-btn-primary:hover{border-color:#009688;color:#333}.layui-btn-normal{background-color:#1E9FFF}.layui-btn-warm{background-color:#FFB800}.layui-btn-danger{background-color:#FF5722}.layui-btn-checked{background-color:#5FB878}.layui-btn-disabled,.layui-btn-disabled:active,.layui-btn-disabled:hover{border:1px solid #e6e6e6;background-color:#FBFBFB;color:#C9C9C9;cursor:not-allowed;opacity:1}.layui-btn-lg{height:44px;line-height:44px;padding:0 25px;font-size:16px}.layui-btn-sm{height:30px;line-height:30px;padding:0 10px;font-size:12px}.layui-btn-sm i{font-size:16px!important}.layui-btn-xs{height:22px;line-height:22px;padding:0 5px;font-size:12px}.layui-btn-xs i{font-size:14px!important}.layui-btn-group{display:inline-block;vertical-align:middle;font-size:0}.layui-btn-group .layui-btn{margin-left:0!important;margin-right:0!important;border-left:1px solid rgba(255,255,255,.5);border-radius:0}.layui-btn-group .layui-btn-primary{border-left:none}.layui-btn-group .layui-btn-primary:hover{border-color:#C9C9C9;color:#009688}.layui-btn-group .layui-btn:first-child{border-left:none;border-radius:2px 0 0 2px}.layui-btn-group .layui-btn-primary:first-child{border-left:1px solid #c9c9c9}.layui-btn-group .layui-btn:last-child{border-radius:0 2px 2px 0}.layui-btn-group .layui-btn+.layui-btn{margin-left:0}.layui-btn-group+.layui-btn-group{margin-left:10px}.layui-btn-fluid{width:100%}.layui-input,.layui-select,.layui-textarea{height:38px;line-height:1.3;line-height:38px\9;border-width:1px;border-style:solid;background-color:#fff;border-radius:2px}.layui-input::-webkit-input-placeholder,.layui-select::-webkit-input-placeholder,.layui-textarea::-webkit-input-placeholder{line-height:1.3}.layui-input,.layui-textarea{display:block;width:100%;padding-left:10px}.layui-input:hover,.layui-textarea:hover{border-color:#D2D2D2!important}.layui-input:focus,.layui-textarea:focus{border-color:#C9C9C9!important}.layui-textarea{min-height:100px;height:auto;line-height:20px;padding:6px 10px;resize:vertical}.layui-select{padding:0 10px}.layui-form input[type=checkbox],.layui-form input[type=radio],.layui-form select{display:none}.layui-form [lay-ignore]{display:initial}.layui-form-item{margin-bottom:15px;clear:both;*zoom:1}.layui-form-item:after{content:'\20';clear:both;*zoom:1;display:block;height:0}.layui-form-label{float:left;display:block;padding:9px 15px;width:80px;font-weight:400;line-height:20px;text-align:right}.layui-form-label-col{display:block;float:none;padding:9px 0;line-height:20px;text-align:left}.layui-form-item .layui-inline{margin-bottom:5px;margin-right:10px}.layui-input-block{margin-left:110px;min-height:36px}.layui-input-inline{display:inline-block;vertical-align:middle}.layui-form-item .layui-input-inline{float:left;width:190px;margin-right:10px}.layui-form-text .layui-input-inline{width:auto}.layui-form-mid{float:left;display:block;padding:9px 0!important;line-height:20px;margin-right:10px}.layui-form-danger+.layui-form-select .layui-input,.layui-form-danger:focus{border-color:#FF5722!important}.layui-form-select .layui-input{padding-right:30px;cursor:pointer}.layui-form-select .layui-edge{position:absolute;right:10px;top:50%;margin-top:-3px;cursor:pointer;border-width:6px;border-top-color:#c2c2c2;border-top-style:solid;transition:all .3s;-webkit-transition:all .3s}.layui-form-select dl{display:none;position:absolute;left:0;top:42px;padding:5px 0;z-index:899;min-width:100%;border:1px solid #d2d2d2;max-height:300px;overflow-y:auto;background-color:#fff;border-radius:2px;box-shadow:0 2px 4px rgba(0,0,0,.12);box-sizing:border-box}.layui-form-select dl dd,.layui-form-select dl dt{padding:0 10px;line-height:36px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.layui-form-select dl dt{font-size:12px;color:#999}.layui-form-select dl dd{cursor:pointer}.layui-form-select dl dd:hover{background-color:#f2f2f2;-webkit-transition:.5s all;transition:.5s all}.layui-form-select .layui-select-group dd{padding-left:20px}.layui-form-select dl dd.layui-select-tips{padding-left:10px!important;color:#999}.layui-form-select dl dd.layui-this{background-color:#5FB878;color:#fff}.layui-form-checkbox,.layui-form-select dl dd.layui-disabled{background-color:#fff}.layui-form-selected dl{display:block}.layui-form-checkbox,.layui-form-checkbox *,.layui-form-switch{display:inline-block;vertical-align:middle}.layui-form-selected .layui-edge{margin-top:-9px;-webkit-transform:rotate(180deg);transform:rotate(180deg);margin-top:-3px\9}:root .layui-form-selected .layui-edge{margin-top:-9px\0/IE9}.layui-form-selectup dl{top:auto;bottom:42px}.layui-select-none{margin:5px 0;text-align:center;color:#999}.layui-select-disabled .layui-disabled{border-color:#eee!important}.layui-select-disabled .layui-edge{border-top-color:#d2d2d2}.layui-form-checkbox{position:relative;height:30px;line-height:30px;margin-right:10px;padding-right:30px;cursor:pointer;font-size:0;-webkit-transition:.1s linear;transition:.1s linear;box-sizing:border-box}.layui-form-checkbox span{padding:0 10px;height:100%;font-size:14px;border-radius:2px 0 0 2px;background-color:#d2d2d2;color:#fff;overflow:hidden}.layui-form-checkbox:hover span{background-color:#c2c2c2}.layui-form-checkbox i{position:absolute;right:0;top:0;width:30px;height:28px;border:1px solid #d2d2d2;border-left:none;border-radius:0 2px 2px 0;color:#fff;font-size:20px;text-align:center}.layui-form-checkbox:hover i{border-color:#c2c2c2;color:#c2c2c2}.layui-form-checked,.layui-form-checked:hover{border-color:#5FB878}.layui-form-checked span,.layui-form-checked:hover span{background-color:#5FB878}.layui-form-checked i,.layui-form-checked:hover i{color:#5FB878}.layui-form-item .layui-form-checkbox{margin-top:4px}.layui-form-checkbox[lay-skin=primary]{height:auto!important;line-height:normal!important;min-width:18px;min-height:18px;border:none!important;margin-right:0;padding-left:28px;padding-right:0;background:0 0}.layui-form-checkbox[lay-skin=primary] span{padding-left:0;padding-right:15px;line-height:18px;background:0 0;color:#666}.layui-form-checkbox[lay-skin=primary] i{right:auto;left:0;width:16px;height:16px;line-height:16px;border:1px solid #d2d2d2;font-size:12px;border-radius:2px;background-color:#fff;-webkit-transition:.1s linear;transition:.1s linear}.layui-form-checkbox[lay-skin=primary]:hover i{border-color:#5FB878;color:#fff}.layui-form-checked[lay-skin=primary] i{border-color:#5FB878!important;background-color:#5FB878;color:#fff}.layui-checkbox-disbaled[lay-skin=primary] span{background:0 0!important;color:#c2c2c2}.layui-checkbox-disbaled[lay-skin=primary]:hover i{border-color:#d2d2d2}.layui-form-item .layui-form-checkbox[lay-skin=primary]{margin-top:10px}.layui-form-switch{position:relative;height:22px;line-height:22px;min-width:35px;padding:0 5px;margin-top:8px;border:1px solid #d2d2d2;border-radius:20px;cursor:pointer;background-color:#fff;-webkit-transition:.1s linear;transition:.1s linear}.layui-form-switch i{position:absolute;left:5px;top:3px;width:16px;height:16px;border-radius:20px;background-color:#d2d2d2;-webkit-transition:.1s linear;transition:.1s linear}.layui-form-switch em{position:relative;top:0;width:25px;margin-left:21px;padding:0!important;text-align:center!important;color:#999!important;font-style:normal!important;font-size:12px}.layui-form-onswitch{border-color:#5FB878;background-color:#5FB878}.layui-checkbox-disbaled,.layui-checkbox-disbaled i{border-color:#e2e2e2!important}.layui-form-onswitch i{left:100%;margin-left:-21px;background-color:#fff}.layui-form-onswitch em{margin-left:5px;margin-right:21px;color:#fff!important}.layui-checkbox-disbaled span{background-color:#e2e2e2!important}.layui-checkbox-disbaled:hover i{color:#fff!important}[lay-radio]{display:none}.layui-form-radio,.layui-form-radio *{display:inline-block;vertical-align:middle}.layui-form-radio{line-height:28px;margin:6px 10px 0 0;padding-right:10px;cursor:pointer;font-size:0}.layui-form-radio *{font-size:14px}.layui-form-radio>i{margin-right:8px;font-size:22px;color:#c2c2c2}.layui-form-radio>i:hover,.layui-form-radioed>i{color:#5FB878}.layui-radio-disbaled>i{color:#e2e2e2!important}.layui-form-pane .layui-form-label{width:110px;padding:8px 15px;height:38px;line-height:20px;border-width:1px;border-style:solid;border-radius:2px 0 0 2px;text-align:center;background-color:#FBFBFB;overflow:hidden;box-sizing:border-box}.layui-form-pane .layui-input-inline{margin-left:-1px}.layui-form-pane .layui-input-block{margin-left:110px;left:-1px}.layui-form-pane .layui-input{border-radius:0 2px 2px 0}.layui-form-pane .layui-form-text .layui-form-label{float:none;width:100%;border-radius:2px;box-sizing:border-box;text-align:left}.layui-form-pane .layui-form-text .layui-input-inline{display:block;margin:0;top:-1px;clear:both}.layui-form-pane .layui-form-text .layui-input-block{margin:0;left:0;top:-1px}.layui-form-pane .layui-form-text .layui-textarea{min-height:100px;border-radius:0 0 2px 2px}.layui-form-pane .layui-form-checkbox{margin:4px 0 4px 10px}.layui-form-pane .layui-form-radio,.layui-form-pane .layui-form-switch{margin-top:6px;margin-left:10px}.layui-form-pane .layui-form-item[pane]{position:relative;border-width:1px;border-style:solid}.layui-form-pane .layui-form-item[pane] .layui-form-label{position:absolute;left:0;top:0;height:100%;border-width:0 1px 0 0}.layui-form-pane .layui-form-item[pane] .layui-input-inline{margin-left:110px}@media screen and (max-width:450px){.layui-form-item .layui-form-label{text-overflow:ellipsis;overflow:hidden;white-space:nowrap}.layui-form-item .layui-inline{display:block;margin-right:0;margin-bottom:20px;clear:both}.layui-form-item .layui-inline:after{content:'\20';clear:both;display:block;height:0}.layui-form-item .layui-input-inline{display:block;float:none;left:-3px;width:auto;margin:0 0 10px 112px}.layui-form-item .layui-input-inline+.layui-form-mid{margin-left:110px;top:-5px;padding:0}.layui-form-item .layui-form-checkbox{margin-right:5px;margin-bottom:5px}}.layui-layedit{border-width:1px;border-style:solid;border-radius:2px}.layui-layedit-tool{padding:3px 5px;border-bottom-width:1px;border-bottom-style:solid;font-size:0}.layedit-tool-fixed{position:fixed;top:0;border-top:1px solid #e2e2e2}.layui-layedit-tool .layedit-tool-mid,.layui-layedit-tool .layui-icon{display:inline-block;vertical-align:middle;text-align:center;font-size:14px}.layui-layedit-tool .layui-icon{position:relative;width:32px;height:30px;line-height:30px;margin:3px 5px;color:#777;cursor:pointer;border-radius:2px}.layui-layedit-tool .layui-icon:hover{color:#393D49}.layui-layedit-tool .layui-icon:active{color:#000}.layui-layedit-tool .layedit-tool-active{background-color:#e2e2e2;color:#000}.layui-layedit-tool .layui-disabled,.layui-layedit-tool .layui-disabled:hover{color:#d2d2d2;cursor:not-allowed}.layui-layedit-tool .layedit-tool-mid{width:1px;height:18px;margin:0 10px;background-color:#d2d2d2}.layedit-tool-html{width:50px!important;font-size:30px!important}.layedit-tool-b,.layedit-tool-code,.layedit-tool-help{font-size:16px!important}.layedit-tool-d,.layedit-tool-face,.layedit-tool-image,.layedit-tool-unlink{font-size:18px!important}.layedit-tool-image input{position:absolute;font-size:0;left:0;top:0;width:100%;height:100%;opacity:.01;filter:Alpha(opacity=1);cursor:pointer}.layui-layedit-iframe iframe{display:block;width:100%}#LAY_layedit_code{overflow:hidden}.layui-laypage{display:inline-block;*display:inline;*zoom:1;vertical-align:middle;margin:10px 0;font-size:0}.layui-laypage>a:first-child,.layui-laypage>a:first-child em{border-radius:2px 0 0 2px}.layui-laypage>a:last-child,.layui-laypage>a:last-child em{border-radius:0 2px 2px 0}.layui-laypage>:first-child{margin-left:0!important}.layui-laypage>:last-child{margin-right:0!important}.layui-laypage a,.layui-laypage button,.layui-laypage input,.layui-laypage select,.layui-laypage span{border:1px solid #e2e2e2}.layui-laypage a,.layui-laypage span{display:inline-block;*display:inline;*zoom:1;vertical-align:middle;padding:0 15px;height:28px;line-height:28px;margin:0 -1px 5px 0;background-color:#fff;color:#333;font-size:12px}.layui-flow-more a *,.layui-laypage input,.layui-table-view select[lay-ignore]{display:inline-block}.layui-laypage a:hover{color:#009688}.layui-laypage em{font-style:normal}.layui-laypage .layui-laypage-spr{color:#999;font-weight:700}.layui-laypage a{text-decoration:none}.layui-laypage .layui-laypage-curr{position:relative}.layui-laypage .layui-laypage-curr em{position:relative;color:#fff}.layui-laypage .layui-laypage-curr .layui-laypage-em{position:absolute;left:-1px;top:-1px;padding:1px;width:100%;height:100%;background-color:#009688}.layui-laypage-em{border-radius:2px}.layui-laypage-next em,.layui-laypage-prev em{font-family:Sim sun;font-size:16px}.layui-laypage .layui-laypage-count,.layui-laypage .layui-laypage-limits,.layui-laypage .layui-laypage-refresh,.layui-laypage .layui-laypage-skip{margin-left:10px;margin-right:10px;padding:0;border:none}.layui-laypage .layui-laypage-limits,.layui-laypage .layui-laypage-refresh{vertical-align:top}.layui-laypage .layui-laypage-refresh i{font-size:18px;cursor:pointer}.layui-laypage select{height:22px;padding:3px;border-radius:2px;cursor:pointer}.layui-laypage .layui-laypage-skip{height:30px;line-height:30px;color:#999}.layui-laypage button,.layui-laypage input{height:30px;line-height:30px;border-radius:2px;vertical-align:top;background-color:#fff;box-sizing:border-box}.layui-laypage input{width:40px;margin:0 10px;padding:0 3px;text-align:center}.layui-laypage input:focus,.layui-laypage select:focus{border-color:#009688!important}.layui-laypage button{margin-left:10px;padding:0 10px;cursor:pointer}.layui-table,.layui-table-view{margin:10px 0}.layui-flow-more{margin:10px 0;text-align:center;color:#999;font-size:14px}.layui-flow-more a{height:32px;line-height:32px}.layui-flow-more a *{vertical-align:top}.layui-flow-more a cite{padding:0 20px;border-radius:3px;background-color:#eee;color:#333;font-style:normal}.layui-flow-more a cite:hover{opacity:.8}.layui-flow-more a i{font-size:30px;color:#737383}.layui-table{width:100%;background-color:#fff;color:#666}.layui-table tr{transition:all .3s;-webkit-transition:all .3s}.layui-table th{text-align:left;font-weight:400}.layui-table tbody tr:hover,.layui-table thead tr,.layui-table-click,.layui-table-header,.layui-table-hover,.layui-table-mend,.layui-table-patch,.layui-table-tool,.layui-table-total,.layui-table-total tr,.layui-table[lay-even] tr:nth-child(even){background-color:#f2f2f2}.layui-table td,.layui-table th,.layui-table-col-set,.layui-table-fixed-r,.layui-table-grid-down,.layui-table-header,.layui-table-page,.layui-table-tips-main,.layui-table-tool,.layui-table-total,.layui-table-view,.layui-table[lay-skin=line],.layui-table[lay-skin=row]{border-width:1px;border-style:solid;border-color:#e6e6e6}.layui-table td,.layui-table th{position:relative;padding:9px 15px;min-height:20px;line-height:20px;font-size:14px}.layui-table[lay-skin=line] td,.layui-table[lay-skin=line] th{border-width:0 0 1px}.layui-table[lay-skin=row] td,.layui-table[lay-skin=row] th{border-width:0 1px 0 0}.layui-table[lay-skin=nob] td,.layui-table[lay-skin=nob] th{border:none}.layui-table img{max-width:100px}.layui-table[lay-size=lg] td,.layui-table[lay-size=lg] th{padding:15px 30px}.layui-table-view .layui-table[lay-size=lg] .layui-table-cell{height:40px;line-height:40px}.layui-table[lay-size=sm] td,.layui-table[lay-size=sm] th{font-size:12px;padding:5px 10px}.layui-table-view .layui-table[lay-size=sm] .layui-table-cell{height:20px;line-height:20px}.layui-table[lay-data]{display:none}.layui-table-box{position:relative;overflow:hidden}.layui-table-view .layui-table{position:relative;width:auto;margin:0}.layui-table-view .layui-table[lay-skin=line]{border-width:0 1px 0 0}.layui-table-view .layui-table[lay-skin=row]{border-width:0 0 1px}.layui-table-view .layui-table td,.layui-table-view .layui-table th{padding:5px 0;border-top:none;border-left:none}.layui-table-view .layui-table th.layui-unselect .layui-table-cell span{cursor:pointer}.layui-table-view .layui-table td{cursor:default}.layui-table-view .layui-table td[data-edit=text]{cursor:text}.layui-table-view .layui-form-checkbox[lay-skin=primary] i{width:18px;height:18px}.layui-table-view .layui-form-radio{line-height:0;padding:0}.layui-table-view .layui-form-radio>i{margin:0;font-size:20px}.layui-table-init{position:absolute;left:0;top:0;width:100%;height:100%;text-align:center;z-index:110}.layui-table-init .layui-icon{position:absolute;left:50%;top:50%;margin:-15px 0 0 -15px;font-size:30px;color:#c2c2c2}.layui-table-header{border-width:0 0 1px;overflow:hidden}.layui-table-header .layui-table{margin-bottom:-1px}.layui-table-tool .layui-inline[lay-event]{position:relative;width:26px;height:26px;padding:5px;line-height:16px;margin-right:10px;text-align:center;color:#333;border:1px solid #ccc;cursor:pointer;-webkit-transition:.5s all;transition:.5s all}.layui-table-tool .layui-inline[lay-event]:hover{border:1px solid #999}.layui-table-tool-temp{padding-right:120px}.layui-table-tool-self{position:absolute;right:17px;top:10px}.layui-table-tool .layui-table-tool-self .layui-inline[lay-event]{margin:0 0 0 10px}.layui-table-tool-panel{position:absolute;top:29px;left:-1px;padding:5px 0;min-width:150px;min-height:40px;border:1px solid #d2d2d2;text-align:left;overflow-y:auto;background-color:#fff;box-shadow:0 2px 4px rgba(0,0,0,.12)}.layui-table-cell,.layui-table-tool-panel li{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.layui-table-tool-panel li{padding:0 10px;line-height:30px;-webkit-transition:.5s all;transition:.5s all}.layui-table-tool-panel li .layui-form-checkbox[lay-skin=primary]{width:100%;padding-left:28px}.layui-table-tool-panel li:hover{background-color:#f2f2f2}.layui-table-tool-panel li .layui-form-checkbox[lay-skin=primary] i{position:absolute;left:0;top:0}.layui-table-tool-panel li .layui-form-checkbox[lay-skin=primary] span{padding:0}.layui-table-tool .layui-table-tool-self .layui-table-tool-panel{left:auto;right:-1px}.layui-table-col-set{position:absolute;right:0;top:0;width:20px;height:100%;border-width:0 0 0 1px;background-color:#fff}.layui-table-sort{width:10px;height:20px;margin-left:5px;cursor:pointer!important}.layui-table-sort .layui-edge{position:absolute;left:5px;border-width:5px}.layui-table-sort .layui-table-sort-asc{top:3px;border-top:none;border-bottom-style:solid;border-bottom-color:#b2b2b2}.layui-table-sort .layui-table-sort-asc:hover{border-bottom-color:#666}.layui-table-sort .layui-table-sort-desc{bottom:5px;border-bottom:none;border-top-style:solid;border-top-color:#b2b2b2}.layui-table-sort .layui-table-sort-desc:hover{border-top-color:#666}.layui-table-sort[lay-sort=asc] .layui-table-sort-asc{border-bottom-color:#000}.layui-table-sort[lay-sort=desc] .layui-table-sort-desc{border-top-color:#000}.layui-table-cell{height:28px;line-height:28px;padding:0 15px;position:relative;box-sizing:border-box}.layui-table-cell .layui-form-checkbox[lay-skin=primary]{top:-1px;padding:0}.layui-table-cell .layui-table-link{color:#01AAED}.laytable-cell-checkbox,.laytable-cell-numbers,.laytable-cell-radio,.laytable-cell-space{padding:0;text-align:center}.layui-table-body{position:relative;overflow:auto;margin-right:-1px;margin-bottom:-1px}.layui-table-body .layui-none{line-height:26px;padding:15px;text-align:center;color:#999}.layui-table-fixed{position:absolute;left:0;top:0;z-index:101}.layui-table-fixed .layui-table-body{overflow:hidden}.layui-table-fixed-l{box-shadow:0 -1px 8px rgba(0,0,0,.08)}.layui-table-fixed-r{left:auto;right:-1px;border-width:0 0 0 1px;box-shadow:-1px 0 8px rgba(0,0,0,.08)}.layui-table-fixed-r .layui-table-header{position:relative;overflow:visible}.layui-table-mend{position:absolute;right:-49px;top:0;height:100%;width:50px}.layui-table-tool{position:relative;z-index:890;width:100%;min-height:50px;line-height:30px;padding:10px 15px;border-width:0 0 1px}.layui-table-tool .layui-btn-container{margin-bottom:-10px}.layui-table-page,.layui-table-total{border-width:1px 0 0;margin-bottom:-1px;overflow:hidden}.layui-table-page{position:relative;width:100%;padding:7px 7px 0;height:41px;font-size:12px;white-space:nowrap}.layui-table-page>div{height:26px}.layui-table-page .layui-laypage{margin:0}.layui-table-page .layui-laypage a,.layui-table-page .layui-laypage span{height:26px;line-height:26px;margin-bottom:10px;border:none;background:0 0}.layui-table-page .layui-laypage a,.layui-table-page .layui-laypage span.layui-laypage-curr{padding:0 12px}.layui-table-page .layui-laypage span{margin-left:0;padding:0}.layui-table-page .layui-laypage .layui-laypage-prev{margin-left:-7px!important}.layui-table-page .layui-laypage .layui-laypage-curr .layui-laypage-em{left:0;top:0;padding:0}.layui-table-page .layui-laypage button,.layui-table-page .layui-laypage input{height:26px;line-height:26px}.layui-table-page .layui-laypage input{width:40px}.layui-table-page .layui-laypage button{padding:0 10px}.layui-table-page select{height:18px}.layui-table-patch .layui-table-cell{padding:0;width:30px}.layui-table-edit{position:absolute;left:0;top:0;width:100%;height:100%;padding:0 14px 1px;border-radius:0;box-shadow:1px 1px 20px rgba(0,0,0,.15)}.layui-table-edit:focus{border-color:#5FB878!important}select.layui-table-edit{padding:0 0 0 10px;border-color:#C9C9C9}.layui-table-view .layui-form-checkbox,.layui-table-view .layui-form-radio,.layui-table-view .layui-form-switch{top:0;margin:0;box-sizing:content-box}.layui-table-view .layui-form-checkbox{top:-1px;height:26px;line-height:26px}.layui-table-view .layui-form-checkbox i{height:26px}.layui-table-grid .layui-table-cell{overflow:visible}.layui-table-grid-down{position:absolute;top:0;right:0;width:26px;height:100%;padding:5px 0;border-width:0 0 0 1px;text-align:center;background-color:#fff;color:#999;cursor:pointer}.layui-table-grid-down .layui-icon{position:absolute;top:50%;left:50%;margin:-8px 0 0 -8px}.layui-table-grid-down:hover{background-color:#fbfbfb}body .layui-table-tips .layui-layer-content{background:0 0;padding:0;box-shadow:0 1px 6px rgba(0,0,0,.12)}.layui-table-tips-main{margin:-44px 0 0 -1px;max-height:150px;padding:8px 15px;font-size:14px;overflow-y:scroll;background-color:#fff;color:#666}.layui-table-tips-c{position:absolute;right:-3px;top:-13px;width:20px;height:20px;padding:3px;cursor:pointer;background-color:#666;border-radius:50%;color:#fff}.layui-table-tips-c:hover{background-color:#777}.layui-table-tips-c:before{position:relative;right:-2px}.layui-upload-file{display:none!important;opacity:.01;filter:Alpha(opacity=1)}.layui-upload-drag,.layui-upload-form,.layui-upload-wrap{display:inline-block}.layui-upload-list{margin:10px 0}.layui-upload-choose{padding:0 10px;color:#999}.layui-upload-drag{position:relative;padding:30px;border:1px dashed #e2e2e2;background-color:#fff;text-align:center;cursor:pointer;color:#999}.layui-upload-drag .layui-icon{font-size:50px;color:#009688}.layui-upload-drag[lay-over]{border-color:#009688}.layui-upload-iframe{position:absolute;width:0;height:0;border:0;visibility:hidden}.layui-upload-wrap{position:relative;vertical-align:middle}.layui-upload-wrap .layui-upload-file{display:block!important;position:absolute;left:0;top:0;z-index:10;font-size:100px;width:100%;height:100%;opacity:.01;filter:Alpha(opacity=1);cursor:pointer}.layui-transfer-active,.layui-transfer-box{display:inline-block;vertical-align:middle}.layui-transfer-box,.layui-transfer-header,.layui-transfer-search{border-width:0;border-style:solid;border-color:#e6e6e6}.layui-transfer-box{position:relative;border-width:1px;width:200px;height:360px;border-radius:2px;background-color:#fff}.layui-transfer-box .layui-form-checkbox{width:100%;margin:0!important}.layui-transfer-header{height:38px;line-height:38px;padding:0 10px;border-bottom-width:1px}.layui-transfer-search{position:relative;padding:10px;border-bottom-width:1px}.layui-transfer-search .layui-input{height:32px;padding-left:30px;font-size:12px}.layui-transfer-search .layui-icon-search{position:absolute;left:20px;top:50%;margin-top:-8px;color:#666}.layui-transfer-active{margin:0 15px}.layui-transfer-active .layui-btn{display:block;margin:0;padding:0 15px;background-color:#5FB878;border-color:#5FB878;color:#fff}.layui-transfer-active .layui-btn-disabled{background-color:#FBFBFB;border-color:#e6e6e6;color:#C9C9C9}.layui-transfer-active .layui-btn:first-child{margin-bottom:15px}.layui-transfer-active .layui-btn .layui-icon{margin:0;font-size:14px!important}.layui-transfer-data{padding:5px 0;overflow:auto}.layui-transfer-data li{height:32px;line-height:32px;padding:0 10px}.layui-transfer-data li:hover{background-color:#f2f2f2;transition:.5s all}.layui-transfer-data .layui-none{padding:15px 10px;text-align:center;color:#999}.layui-nav{position:relative;padding:0 20px;background-color:#393D49;color:#fff;border-radius:2px;font-size:0;box-sizing:border-box}.layui-nav *{font-size:14px}.layui-nav .layui-nav-item{position:relative;display:inline-block;*display:inline;*zoom:1;vertical-align:middle;line-height:60px}.layui-nav .layui-nav-item a{display:block;padding:0 20px;color:#fff;color:rgba(255,255,255,.7);transition:all .3s;-webkit-transition:all .3s}.layui-nav .layui-this:after,.layui-nav-bar,.layui-nav-tree .layui-nav-itemed:after{position:absolute;left:0;top:0;width:0;height:5px;background-color:#5FB878;transition:all .2s;-webkit-transition:all .2s}.layui-nav-bar{z-index:1000}.layui-nav .layui-nav-item a:hover,.layui-nav .layui-this a{color:#fff}.layui-nav .layui-this:after{content:'';top:auto;bottom:0;width:100%}.layui-nav-img{width:30px;height:30px;margin-right:10px;border-radius:50%}.layui-nav .layui-nav-more{content:'';width:0;height:0;border-style:solid dashed dashed;border-color:#fff transparent transparent;overflow:hidden;cursor:pointer;transition:all .2s;-webkit-transition:all .2s;position:absolute;top:50%;right:3px;margin-top:-3px;border-width:6px;border-top-color:rgba(255,255,255,.7)}.layui-nav .layui-nav-mored,.layui-nav-itemed>a .layui-nav-more{margin-top:-9px;border-style:dashed dashed solid;border-color:transparent transparent #fff}.layui-nav-child{display:none;position:absolute;left:0;top:65px;min-width:100%;line-height:36px;padding:5px 0;box-shadow:0 2px 4px rgba(0,0,0,.12);border:1px solid #d2d2d2;background-color:#fff;z-index:100;border-radius:2px;white-space:nowrap}.layui-nav .layui-nav-child a{color:#333}.layui-nav .layui-nav-child a:hover{background-color:#f2f2f2;color:#000}.layui-nav-child dd{position:relative}.layui-nav .layui-nav-child dd.layui-this a,.layui-nav-child dd.layui-this{background-color:#5FB878;color:#fff}.layui-nav-child dd.layui-this:after{display:none}.layui-nav-tree{width:200px;padding:0}.layui-nav-tree .layui-nav-item{display:block;width:100%;line-height:45px}.layui-nav-tree .layui-nav-item a{position:relative;height:45px;line-height:45px;text-overflow:ellipsis;overflow:hidden;white-space:nowrap}.layui-nav-tree .layui-nav-item a:hover{background-color:#4E5465}.layui-nav-tree .layui-nav-bar{width:5px;height:0;background-color:#009688}.layui-nav-tree .layui-nav-child dd.layui-this,.layui-nav-tree .layui-nav-child dd.layui-this a,.layui-nav-tree .layui-this,.layui-nav-tree .layui-this>a,.layui-nav-tree .layui-this>a:hover{background-color:#009688;color:#fff}.layui-nav-tree .layui-this:after{display:none}.layui-nav-itemed>a,.layui-nav-tree .layui-nav-title a,.layui-nav-tree .layui-nav-title a:hover{color:#fff!important}.layui-nav-tree .layui-nav-child{position:relative;z-index:0;top:0;border:none;box-shadow:none}.layui-nav-tree .layui-nav-child a{height:40px;line-height:40px;color:#fff;color:rgba(255,255,255,.7)}.layui-nav-tree .layui-nav-child,.layui-nav-tree .layui-nav-child a:hover{background:0 0;color:#fff}.layui-nav-tree .layui-nav-more{right:10px}.layui-nav-itemed>.layui-nav-child{display:block;padding:0;background-color:rgba(0,0,0,.3)!important}.layui-nav-itemed>.layui-nav-child>.layui-this>.layui-nav-child{display:block}.layui-nav-side{position:fixed;top:0;bottom:0;left:0;overflow-x:hidden;z-index:999}.layui-bg-blue .layui-nav-bar,.layui-bg-blue .layui-nav-itemed:after,.layui-bg-blue .layui-this:after{background-color:#93D1FF}.layui-bg-blue .layui-nav-child dd.layui-this{background-color:#1E9FFF}.layui-bg-blue .layui-nav-itemed>a,.layui-nav-tree.layui-bg-blue .layui-nav-title a,.layui-nav-tree.layui-bg-blue .layui-nav-title a:hover{background-color:#007DDB!important}.layui-breadcrumb{font-size:0}.layui-breadcrumb>*{font-size:14px}.layui-breadcrumb a{color:#999!important}.layui-breadcrumb a:hover{color:#5FB878!important}.layui-breadcrumb a cite{color:#666;font-style:normal}.layui-breadcrumb span[lay-separator]{margin:0 10px;color:#999}.layui-tab{margin:10px 0;text-align:left!important}.layui-tab[overflow]>.layui-tab-title{overflow:hidden}.layui-tab-title{position:relative;left:0;height:40px;white-space:nowrap;font-size:0;border-bottom-width:1px;border-bottom-style:solid;transition:all .2s;-webkit-transition:all .2s}.layui-tab-title li{display:inline-block;*display:inline;*zoom:1;vertical-align:middle;font-size:14px;transition:all .2s;-webkit-transition:all .2s;position:relative;line-height:40px;min-width:65px;padding:0 15px;text-align:center;cursor:pointer}.layui-tab-title li a{display:block}.layui-tab-title .layui-this{color:#000}.layui-tab-title .layui-this:after{position:absolute;left:0;top:0;content:'';width:100%;height:41px;border-width:1px;border-style:solid;border-bottom-color:#fff;border-radius:2px 2px 0 0;box-sizing:border-box;pointer-events:none}.layui-tab-bar{position:absolute;right:0;top:0;z-index:10;width:30px;height:39px;line-height:39px;border-width:1px;border-style:solid;border-radius:2px;text-align:center;background-color:#fff;cursor:pointer}.layui-tab-bar .layui-icon{position:relative;display:inline-block;top:3px;transition:all .3s;-webkit-transition:all .3s}.layui-tab-item{display:none}.layui-tab-more{padding-right:30px;height:auto!important;white-space:normal!important}.layui-tab-more li.layui-this:after{border-bottom-color:#e2e2e2;border-radius:2px}.layui-tab-more .layui-tab-bar .layui-icon{top:-2px;top:3px\9;-webkit-transform:rotate(180deg);transform:rotate(180deg)}:root .layui-tab-more .layui-tab-bar .layui-icon{top:-2px\0/IE9}.layui-tab-content{padding:10px}.layui-tab-title li .layui-tab-close{position:relative;display:inline-block;width:18px;height:18px;line-height:20px;margin-left:8px;top:1px;text-align:center;font-size:14px;color:#c2c2c2;transition:all .2s;-webkit-transition:all .2s}.layui-tab-title li .layui-tab-close:hover{border-radius:2px;background-color:#FF5722;color:#fff}.layui-tab-brief>.layui-tab-title .layui-this{color:#009688}.layui-tab-brief>.layui-tab-more li.layui-this:after,.layui-tab-brief>.layui-tab-title .layui-this:after{border:none;border-radius:0;border-bottom:2px solid #5FB878}.layui-tab-brief[overflow]>.layui-tab-title .layui-this:after{top:-1px}.layui-tab-card{border-width:1px;border-style:solid;border-radius:2px;box-shadow:0 2px 5px 0 rgba(0,0,0,.1)}.layui-tab-card>.layui-tab-title{background-color:#f2f2f2}.layui-tab-card>.layui-tab-title li{margin-right:-1px;margin-left:-1px}.layui-tab-card>.layui-tab-title .layui-this{background-color:#fff}.layui-tab-card>.layui-tab-title .layui-this:after{border-top:none;border-width:1px;border-bottom-color:#fff}.layui-tab-card>.layui-tab-title .layui-tab-bar{height:40px;line-height:40px;border-radius:0;border-top:none;border-right:none}.layui-tab-card>.layui-tab-more .layui-this{background:0 0;color:#5FB878}.layui-tab-card>.layui-tab-more .layui-this:after{border:none}.layui-timeline{padding-left:5px}.layui-timeline-item{position:relative;padding-bottom:20px}.layui-timeline-axis{position:absolute;left:-5px;top:0;z-index:10;width:20px;height:20px;line-height:20px;background-color:#fff;color:#5FB878;border-radius:50%;text-align:center;cursor:pointer}.layui-timeline-axis:hover{color:#FF5722}.layui-timeline-item:before{content:'';position:absolute;left:5px;top:0;z-index:0;width:1px;height:100%}.layui-timeline-item:last-child:before{display:none}.layui-timeline-item:first-child:before{display:block}.layui-timeline-content{padding-left:25px}.layui-timeline-title{position:relative;margin-bottom:10px}.layui-badge,.layui-badge-dot,.layui-badge-rim{position:relative;display:inline-block;padding:0 6px;font-size:12px;text-align:center;background-color:#FF5722;color:#fff;border-radius:2px}.layui-badge{height:18px;line-height:18px}.layui-badge-dot{width:8px;height:8px;padding:0;border-radius:50%}.layui-badge-rim{height:18px;line-height:18px;border-width:1px;border-style:solid;background-color:#fff;color:#666}.layui-btn .layui-badge,.layui-btn .layui-badge-dot{margin-left:5px}.layui-nav .layui-badge,.layui-nav .layui-badge-dot{position:absolute;top:50%;margin:-8px 6px 0}.layui-tab-title .layui-badge,.layui-tab-title .layui-badge-dot{left:5px;top:-2px}.layui-carousel{position:relative;left:0;top:0;background-color:#f8f8f8}.layui-carousel>[carousel-item]{position:relative;width:100%;height:100%;overflow:hidden}.layui-carousel>[carousel-item]:before{position:absolute;content:'\e63d';left:50%;top:50%;width:100px;line-height:20px;margin:-10px 0 0 -50px;text-align:center;color:#c2c2c2;font-family:layui-icon!important;font-size:30px;font-style:normal;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.layui-carousel>[carousel-item]>*{display:none;position:absolute;left:0;top:0;width:100%;height:100%;background-color:#f8f8f8;transition-duration:.3s;-webkit-transition-duration:.3s}.layui-carousel-updown>*{-webkit-transition:.3s ease-in-out up;transition:.3s ease-in-out up}.layui-carousel-arrow{display:none\9;opacity:0;position:absolute;left:10px;top:50%;margin-top:-18px;width:36px;height:36px;line-height:36px;text-align:center;font-size:20px;border:0;border-radius:50%;background-color:rgba(0,0,0,.2);color:#fff;-webkit-transition-duration:.3s;transition-duration:.3s;cursor:pointer}.layui-carousel-arrow[lay-type=add]{left:auto!important;right:10px}.layui-carousel:hover .layui-carousel-arrow[lay-type=add],.layui-carousel[lay-arrow=always] .layui-carousel-arrow[lay-type=add]{right:20px}.layui-carousel[lay-arrow=always] .layui-carousel-arrow{opacity:1;left:20px}.layui-carousel[lay-arrow=none] .layui-carousel-arrow{display:none}.layui-carousel-arrow:hover,.layui-carousel-ind ul:hover{background-color:rgba(0,0,0,.35)}.layui-carousel:hover .layui-carousel-arrow{display:block\9;opacity:1;left:20px}.layui-carousel-ind{position:relative;top:-35px;width:100%;line-height:0!important;text-align:center;font-size:0}.layui-carousel[lay-indicator=outside]{margin-bottom:30px}.layui-carousel[lay-indicator=outside] .layui-carousel-ind{top:10px}.layui-carousel[lay-indicator=outside] .layui-carousel-ind ul{background-color:rgba(0,0,0,.5)}.layui-carousel[lay-indicator=none] .layui-carousel-ind{display:none}.layui-carousel-ind ul{display:inline-block;padding:5px;background-color:rgba(0,0,0,.2);border-radius:10px;-webkit-transition-duration:.3s;transition-duration:.3s}.layui-carousel-ind li{display:inline-block;width:10px;height:10px;margin:0 3px;font-size:14px;background-color:#e2e2e2;background-color:rgba(255,255,255,.5);border-radius:50%;cursor:pointer;-webkit-transition-duration:.3s;transition-duration:.3s}.layui-carousel-ind li:hover{background-color:rgba(255,255,255,.7)}.layui-carousel-ind li.layui-this{background-color:#fff}.layui-carousel>[carousel-item]>.layui-carousel-next,.layui-carousel>[carousel-item]>.layui-carousel-prev,.layui-carousel>[carousel-item]>.layui-this{display:block}.layui-carousel>[carousel-item]>.layui-this{left:0}.layui-carousel>[carousel-item]>.layui-carousel-prev{left:-100%}.layui-carousel>[carousel-item]>.layui-carousel-next{left:100%}.layui-carousel>[carousel-item]>.layui-carousel-next.layui-carousel-left,.layui-carousel>[carousel-item]>.layui-carousel-prev.layui-carousel-right{left:0}.layui-carousel>[carousel-item]>.layui-this.layui-carousel-left{left:-100%}.layui-carousel>[carousel-item]>.layui-this.layui-carousel-right{left:100%}.layui-carousel[lay-anim=updown] .layui-carousel-arrow{left:50%!important;top:20px;margin:0 0 0 -18px}.layui-carousel[lay-anim=updown]>[carousel-item]>*,.layui-carousel[lay-anim=fade]>[carousel-item]>*{left:0!important}.layui-carousel[lay-anim=updown] .layui-carousel-arrow[lay-type=add]{top:auto!important;bottom:20px}.layui-carousel[lay-anim=updown] .layui-carousel-ind{position:absolute;top:50%;right:20px;width:auto;height:auto}.layui-carousel[lay-anim=updown] .layui-carousel-ind ul{padding:3px 5px}.layui-carousel[lay-anim=updown] .layui-carousel-ind li{display:block;margin:6px 0}.layui-carousel[lay-anim=updown]>[carousel-item]>.layui-this{top:0}.layui-carousel[lay-anim=updown]>[carousel-item]>.layui-carousel-prev{top:-100%}.layui-carousel[lay-anim=updown]>[carousel-item]>.layui-carousel-next{top:100%}.layui-carousel[lay-anim=updown]>[carousel-item]>.layui-carousel-next.layui-carousel-left,.layui-carousel[lay-anim=updown]>[carousel-item]>.layui-carousel-prev.layui-carousel-right{top:0}.layui-carousel[lay-anim=updown]>[carousel-item]>.layui-this.layui-carousel-left{top:-100%}.layui-carousel[lay-anim=updown]>[carousel-item]>.layui-this.layui-carousel-right{top:100%}.layui-carousel[lay-anim=fade]>[carousel-item]>.layui-carousel-next,.layui-carousel[lay-anim=fade]>[carousel-item]>.layui-carousel-prev{opacity:0}.layui-carousel[lay-anim=fade]>[carousel-item]>.layui-carousel-next.layui-carousel-left,.layui-carousel[lay-anim=fade]>[carousel-item]>.layui-carousel-prev.layui-carousel-right{opacity:1}.layui-carousel[lay-anim=fade]>[carousel-item]>.layui-this.layui-carousel-left,.layui-carousel[lay-anim=fade]>[carousel-item]>.layui-this.layui-carousel-right{opacity:0}.layui-fixbar{position:fixed;right:15px;bottom:15px;z-index:999999}.layui-fixbar li{width:50px;height:50px;line-height:50px;margin-bottom:1px;text-align:center;cursor:pointer;font-size:30px;background-color:#9F9F9F;color:#fff;border-radius:2px;opacity:.95}.layui-fixbar li:hover{opacity:.85}.layui-fixbar li:active{opacity:1}.layui-fixbar .layui-fixbar-top{display:none;font-size:40px}body .layui-util-face{border:none;background:0 0}body .layui-util-face .layui-layer-content{padding:0;background-color:#fff;color:#666;box-shadow:none}.layui-util-face .layui-layer-TipsG{display:none}.layui-util-face ul{position:relative;width:372px;padding:10px;border:1px solid #D9D9D9;background-color:#fff;box-shadow:0 0 20px rgba(0,0,0,.2)}.layui-util-face ul li{cursor:pointer;float:left;border:1px solid #e8e8e8;height:22px;width:26px;overflow:hidden;margin:-1px 0 0 -1px;padding:4px 2px;text-align:center}.layui-util-face ul li:hover{position:relative;z-index:2;border:1px solid #eb7350;background:#fff9ec}.layui-code{position:relative;margin:10px 0;padding:15px;line-height:20px;border:1px solid #ddd;border-left-width:6px;background-color:#F2F2F2;color:#333;font-family:Courier New;font-size:12px}.layui-rate,.layui-rate *{display:inline-block;vertical-align:middle}.layui-rate{padding:10px 5px 10px 0;font-size:0}.layui-rate li i.layui-icon{font-size:20px;color:#FFB800;margin-right:5px;transition:all .3s;-webkit-transition:all .3s}.layui-rate li i:hover{cursor:pointer;transform:scale(1.12);-webkit-transform:scale(1.12)}.layui-rate[readonly] li i:hover{cursor:default;transform:scale(1)}.layui-colorpicker{width:26px;height:26px;border:1px solid #e6e6e6;padding:5px;border-radius:2px;line-height:24px;display:inline-block;cursor:pointer;transition:all .3s;-webkit-transition:all .3s}.layui-colorpicker:hover{border-color:#d2d2d2}.layui-colorpicker.layui-colorpicker-lg{width:34px;height:34px;line-height:32px}.layui-colorpicker.layui-colorpicker-sm{width:24px;height:24px;line-height:22px}.layui-colorpicker.layui-colorpicker-xs{width:22px;height:22px;line-height:20px}.layui-colorpicker-trigger-bgcolor{display:block;background:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAwAAAAMCAIAAADZF8uwAAAAGUlEQVQYV2M4gwH+YwCGIasIUwhT25BVBADtzYNYrHvv4gAAAABJRU5ErkJggg==);border-radius:2px}.layui-colorpicker-trigger-span{display:block;height:100%;box-sizing:border-box;border:1px solid rgba(0,0,0,.15);border-radius:2px;text-align:center}.layui-colorpicker-trigger-i{display:inline-block;color:#FFF;font-size:12px}.layui-colorpicker-trigger-i.layui-icon-close{color:#999}.layui-colorpicker-main{position:absolute;z-index:66666666;width:280px;padding:7px;background:#FFF;border:1px solid #d2d2d2;border-radius:2px;box-shadow:0 2px 4px rgba(0,0,0,.12)}.layui-colorpicker-main-wrapper{height:180px;position:relative}.layui-colorpicker-basis{width:260px;height:100%;position:relative}.layui-colorpicker-basis-white{width:100%;height:100%;position:absolute;top:0;left:0;background:linear-gradient(90deg,#FFF,hsla(0,0%,100%,0))}.layui-colorpicker-basis-black{width:100%;height:100%;position:absolute;top:0;left:0;background:linear-gradient(0deg,#000,transparent)}.layui-colorpicker-basis-cursor{width:10px;height:10px;border:1px solid #FFF;border-radius:50%;position:absolute;top:-3px;right:-3px;cursor:pointer}.layui-colorpicker-side{position:absolute;top:0;right:0;width:12px;height:100%;background:linear-gradient(red,#FF0,#0F0,#0FF,#00F,#F0F,red)}.layui-colorpicker-side-slider{width:100%;height:5px;box-shadow:0 0 1px #888;box-sizing:border-box;background:#FFF;border-radius:1px;border:1px solid #f0f0f0;cursor:pointer;position:absolute;left:0}.layui-colorpicker-main-alpha{display:none;height:12px;margin-top:7px;background:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAwAAAAMCAIAAADZF8uwAAAAGUlEQVQYV2M4gwH+YwCGIasIUwhT25BVBADtzYNYrHvv4gAAAABJRU5ErkJggg==)}.layui-colorpicker-alpha-bgcolor{height:100%;position:relative}.layui-colorpicker-alpha-slider{width:5px;height:100%;box-shadow:0 0 1px #888;box-sizing:border-box;background:#FFF;border-radius:1px;border:1px solid #f0f0f0;cursor:pointer;position:absolute;top:0}.layui-colorpicker-main-pre{padding-top:7px;font-size:0}.layui-colorpicker-pre{width:20px;height:20px;border-radius:2px;display:inline-block;margin-left:6px;margin-bottom:7px;cursor:pointer}.layui-colorpicker-pre:nth-child(11n+1){margin-left:0}.layui-colorpicker-pre-isalpha{background:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAwAAAAMCAIAAADZF8uwAAAAGUlEQVQYV2M4gwH+YwCGIasIUwhT25BVBADtzYNYrHvv4gAAAABJRU5ErkJggg==)}.layui-colorpicker-pre.layui-this{box-shadow:0 0 3px 2px rgba(0,0,0,.15)}.layui-colorpicker-pre>div{height:100%;border-radius:2px}.layui-colorpicker-main-input{text-align:right;padding-top:7px}.layui-colorpicker-main-input .layui-btn-container .layui-btn{margin:0 0 0 10px}.layui-colorpicker-main-input div.layui-inline{float:left;margin-right:10px;font-size:14px}.layui-colorpicker-main-input input.layui-input{width:150px;height:30px;color:#666}.layui-slider{height:4px;background:#e2e2e2;border-radius:3px;position:relative;cursor:pointer}.layui-slider-bar{border-radius:3px;position:absolute;height:100%}.layui-slider-step{position:absolute;top:0;width:4px;height:4px;border-radius:50%;background:#FFF;-webkit-transform:translateX(-50%);transform:translateX(-50%)}.layui-slider-wrap{width:36px;height:36px;position:absolute;top:-16px;-webkit-transform:translateX(-50%);transform:translateX(-50%);z-index:10;text-align:center}.layui-slider-wrap-btn{width:12px;height:12px;border-radius:50%;background:#FFF;display:inline-block;vertical-align:middle;cursor:pointer;transition:.3s}.layui-slider-wrap:after{content:"";height:100%;display:inline-block;vertical-align:middle}.layui-slider-wrap-btn.layui-slider-hover,.layui-slider-wrap-btn:hover{transform:scale(1.2)}.layui-slider-wrap-btn.layui-disabled:hover{transform:scale(1)!important}.layui-slider-tips{position:absolute;top:-42px;z-index:66666666;white-space:nowrap;display:none;-webkit-transform:translateX(-50%);transform:translateX(-50%);color:#FFF;background:#000;border-radius:3px;height:25px;line-height:25px;padding:0 10px}.layui-slider-tips:after{content:'';position:absolute;bottom:-12px;left:50%;margin-left:-6px;width:0;height:0;border-width:6px;border-style:solid;border-color:#000 transparent transparent}.layui-slider-input{width:70px;height:32px;border:1px solid #e6e6e6;border-radius:3px;font-size:16px;line-height:32px;position:absolute;right:0;top:-15px}.layui-slider-input-btn{display:none;position:absolute;top:0;right:0;width:20px;height:100%;border-left:1px solid #d2d2d2}.layui-slider-input-btn i{cursor:pointer;position:absolute;right:0;bottom:0;width:20px;height:50%;font-size:12px;line-height:16px;text-align:center;color:#999}.layui-slider-input-btn i:first-child{top:0;border-bottom:1px solid #d2d2d2}.layui-slider-input-txt{height:100%;font-size:14px}.layui-slider-input-txt input{height:100%;border:none}.layui-slider-input-btn i:hover{color:#009688}.layui-slider-vertical{width:4px;margin-left:34px}.layui-slider-vertical .layui-slider-bar{width:4px}.layui-slider-vertical .layui-slider-step{top:auto;left:0;-webkit-transform:translateY(50%);transform:translateY(50%)}.layui-slider-vertical .layui-slider-wrap{top:auto;left:-16px;-webkit-transform:translateY(50%);transform:translateY(50%)}.layui-slider-vertical .layui-slider-tips{top:auto;left:2px}@media \0screen{.layui-slider-wrap-btn{margin-left:-20px}.layui-slider-vertical .layui-slider-wrap-btn{margin-left:0;margin-bottom:-20px}.layui-slider-vertical .layui-slider-tips{margin-left:-8px}.layui-slider>span{margin-left:8px}}.layui-tree{line-height:22px}.layui-tree .layui-form-checkbox{margin:0!important}.layui-tree-set{width:100%;position:relative}.layui-tree-pack{display:none;padding-left:20px;position:relative}.layui-tree-iconClick,.layui-tree-main{display:inline-block;vertical-align:middle}.layui-tree-line .layui-tree-pack{padding-left:27px}.layui-tree-line .layui-tree-set .layui-tree-set:after{content:'';position:absolute;top:14px;left:-9px;width:17px;height:0;border-top:1px dotted #c0c4cc}.layui-tree-entry{position:relative;padding:3px 0;height:20px;white-space:nowrap}.layui-tree-entry:hover{background-color:#eee}.layui-tree-line .layui-tree-entry:hover{background-color:rgba(0,0,0,0)}.layui-tree-line .layui-tree-entry:hover .layui-tree-txt{color:#999;text-decoration:underline;transition:.3s}.layui-tree-main{cursor:pointer;padding-right:10px}.layui-tree-line .layui-tree-set:before{content:'';position:absolute;top:0;left:-9px;width:0;height:100%;border-left:1px dotted #c0c4cc}.layui-tree-line .layui-tree-set.layui-tree-setLineShort:before{height:13px}.layui-tree-line .layui-tree-set.layui-tree-setHide:before{height:0}.layui-tree-iconClick{position:relative;height:20px;line-height:20px;margin:0 10px;color:#c0c4cc}.layui-tree-icon{height:12px;line-height:12px;width:12px;text-align:center;border:1px solid #c0c4cc}.layui-tree-iconClick .layui-icon{font-size:18px}.layui-tree-icon .layui-icon{font-size:12px;color:#666}.layui-tree-iconArrow{padding:0 5px}.layui-tree-iconArrow:after{content:'';position:absolute;left:4px;top:3px;z-index:100;width:0;height:0;border-width:5px;border-style:solid;border-color:transparent transparent transparent #c0c4cc;transition:.5s}.layui-tree-btnGroup,.layui-tree-editInput{position:relative;vertical-align:middle;display:inline-block}.layui-tree-spread>.layui-tree-entry>.layui-tree-iconClick>.layui-tree-iconArrow:after{transform:rotate(90deg) translate(3px,4px)}.layui-tree-txt{display:inline-block;vertical-align:middle;color:#555}.layui-tree-search{margin-bottom:15px;color:#666}.layui-tree-btnGroup .layui-icon{display:inline-block;vertical-align:middle;padding:0 2px;cursor:pointer}.layui-tree-btnGroup .layui-icon:hover{color:#999;transition:.3s}.layui-tree-entry:hover .layui-tree-btnGroup{visibility:visible}.layui-tree-editInput{height:20px;line-height:20px;padding:0 3px;border:none;background-color:rgba(0,0,0,.05)}.layui-tree-emptyText{text-align:center;color:#999}.layui-anim{-webkit-animation-duration:.3s;animation-duration:.3s;-webkit-animation-fill-mode:both;animation-fill-mode:both}.layui-anim.layui-icon{display:inline-block}.layui-anim-loop{-webkit-animation-iteration-count:infinite;animation-iteration-count:infinite}.layui-trans,.layui-trans a{transition:all .3s;-webkit-transition:all .3s}@-webkit-keyframes layui-rotate{from{-webkit-transform:rotate(0)}to{-webkit-transform:rotate(360deg)}}@keyframes layui-rotate{from{transform:rotate(0)}to{transform:rotate(360deg)}}.layui-anim-rotate{-webkit-animation-name:layui-rotate;animation-name:layui-rotate;-webkit-animation-duration:1s;animation-duration:1s;-webkit-animation-timing-function:linear;animation-timing-function:linear}@-webkit-keyframes layui-up{from{-webkit-transform:translate3d(0,100%,0);opacity:.3}to{-webkit-transform:translate3d(0,0,0);opacity:1}}@keyframes layui-up{from{transform:translate3d(0,100%,0);opacity:.3}to{transform:translate3d(0,0,0);opacity:1}}.layui-anim-up{-webkit-animation-name:layui-up;animation-name:layui-up}@-webkit-keyframes layui-upbit{from{-webkit-transform:translate3d(0,30px,0);opacity:.3}to{-webkit-transform:translate3d(0,0,0);opacity:1}}@keyframes layui-upbit{from{transform:translate3d(0,30px,0);opacity:.3}to{transform:translate3d(0,0,0);opacity:1}}.layui-anim-upbit{-webkit-animation-name:layui-upbit;animation-name:layui-upbit}@-webkit-keyframes layui-scale{0%{opacity:.3;-webkit-transform:scale(.5)}100%{opacity:1;-webkit-transform:scale(1)}}@keyframes layui-scale{0%{opacity:.3;-ms-transform:scale(.5);transform:scale(.5)}100%{opacity:1;-ms-transform:scale(1);transform:scale(1)}}.layui-anim-scale{-webkit-animation-name:layui-scale;animation-name:layui-scale}@-webkit-keyframes layui-scale-spring{0%{opacity:.5;-webkit-transform:scale(.5)}80%{opacity:.8;-webkit-transform:scale(1.1)}100%{opacity:1;-webkit-transform:scale(1)}}@keyframes layui-scale-spring{0%{opacity:.5;transform:scale(.5)}80%{opacity:.8;transform:scale(1.1)}100%{opacity:1;transform:scale(1)}}.layui-anim-scaleSpring{-webkit-animation-name:layui-scale-spring;animation-name:layui-scale-spring}@-webkit-keyframes layui-fadein{0%{opacity:0}100%{opacity:1}}@keyframes layui-fadein{0%{opacity:0}100%{opacity:1}}.layui-anim-fadein{-webkit-animation-name:layui-fadein;animation-name:layui-fadein}@-webkit-keyframes layui-fadeout{0%{opacity:1}100%{opacity:0}}@keyframes layui-fadeout{0%{opacity:1}100%{opacity:0}}.layui-anim-fadeout{-webkit-animation-name:layui-fadeout;animation-name:layui-fadeout} \ No newline at end of file diff --git a/public/static/res/layui/css/layui.mobile.css b/public/static/res/layui/css/layui.mobile.css new file mode 100644 index 0000000..0743570 --- /dev/null +++ b/public/static/res/layui/css/layui.mobile.css @@ -0,0 +1,2 @@ +/** layui-v2.5.5 MIT License By https://www.layui.com */ + blockquote,body,button,dd,div,dl,dt,form,h1,h2,h3,h4,h5,h6,input,legend,li,ol,p,td,textarea,th,ul{margin:0;padding:0;-webkit-tap-highlight-color:rgba(0,0,0,0)}html{font:12px 'Helvetica Neue','PingFang SC',STHeitiSC-Light,Helvetica,Arial,sans-serif;-ms-text-size-adjust:100%;-webkit-text-size-adjust:100%}a,button,input{-webkit-tap-highlight-color:rgba(255,0,0,0)}a{text-decoration:none;background:0 0}a:active,a:hover{outline:0}table{border-collapse:collapse;border-spacing:0}li{list-style:none}b,strong{font-weight:700}h1,h2,h3,h4,h5,h6{font-weight:500}address,cite,dfn,em,var{font-style:normal}dfn{font-style:italic}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}img{border:0;vertical-align:bottom}.layui-inline,input,label{vertical-align:middle}button,input,optgroup,select,textarea{color:inherit;font:inherit;margin:0;outline:0}button,select{text-transform:none}select{-webkit-appearance:none;border:none}input{line-height:normal}input[type=checkbox],input[type=radio]{box-sizing:border-box;padding:0}input[type=number]::-webkit-inner-spin-button,input[type=number]::-webkit-outer-spin-button{height:auto}input[type=search]{-webkit-appearance:textfield;-moz-box-sizing:content-box;-webkit-box-sizing:content-box;box-sizing:content-box}input[type=search]::-webkit-search-cancel-button,input[type=search]::-webkit-search-decoration{-webkit-appearance:none}@font-face{font-family:layui-icon;src:url(../font/iconfont.eot?v=1.0.7);src:url(../font/iconfont.eot?v=1.0.7#iefix) format('embedded-opentype'),url(../font/iconfont.woff?v=1.0.7) format('woff'),url(../font/iconfont.ttf?v=1.0.7) format('truetype'),url(../font/iconfont.svg?v=1.0.7#iconfont) format('svg')}.layui-icon{font-family:layui-icon!important;font-size:16px;font-style:normal;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.layui-box,.layui-box *{-webkit-box-sizing:content-box!important;-moz-box-sizing:content-box!important;box-sizing:content-box!important}.layui-border-box,.layui-border-box *{-webkit-box-sizing:border-box!important;-moz-box-sizing:border-box!important;box-sizing:border-box!important}.layui-inline{position:relative;display:inline-block;*display:inline;*zoom:1}.layui-edge,.layui-upload-iframe{position:absolute;width:0;height:0}.layui-edge{border-style:dashed;border-color:transparent;overflow:hidden}.layui-elip{text-overflow:ellipsis;overflow:hidden;white-space:nowrap}.layui-unselect{-moz-user-select:none;-webkit-user-select:none;-ms-user-select:none}.layui-disabled,.layui-disabled:active{background-color:#d2d2d2!important;color:#fff!important;cursor:not-allowed!important}.layui-circle{border-radius:100%}.layui-show{display:block!important}.layui-hide{display:none!important}.layui-upload-iframe{border:0;visibility:hidden}.layui-upload-enter{border:1px solid #009E94;background-color:#009E94;color:#fff;-webkit-transform:scale(1.1);transform:scale(1.1)}@-webkit-keyframes layui-m-anim-scale{0%{opacity:0;-webkit-transform:scale(.5);transform:scale(.5)}100%{opacity:1;-webkit-transform:scale(1);transform:scale(1)}}@keyframes layui-m-anim-scale{0%{opacity:0;-webkit-transform:scale(.5);transform:scale(.5)}100%{opacity:1;-webkit-transform:scale(1);transform:scale(1)}}.layui-m-anim-scale{animation-name:layui-m-anim-scale;-webkit-animation-name:layui-m-anim-scale}@-webkit-keyframes layui-m-anim-up{0%{opacity:0;-webkit-transform:translateY(800px);transform:translateY(800px)}100%{opacity:1;-webkit-transform:translateY(0);transform:translateY(0)}}@keyframes layui-m-anim-up{0%{opacity:0;-webkit-transform:translateY(800px);transform:translateY(800px)}100%{opacity:1;-webkit-transform:translateY(0);transform:translateY(0)}}.layui-m-anim-up{-webkit-animation-name:layui-m-anim-up;animation-name:layui-m-anim-up}@-webkit-keyframes layui-m-anim-left{0%{-webkit-transform:translateX(100%);transform:translateX(100%)}100%{-webkit-transform:translateX(0);transform:translateX(0)}}@keyframes layui-m-anim-left{0%{-webkit-transform:translateX(100%);transform:translateX(100%)}100%{-webkit-transform:translateX(0);transform:translateX(0)}}.layui-m-anim-left{-webkit-animation-name:layui-m-anim-left;animation-name:layui-m-anim-left}@-webkit-keyframes layui-m-anim-right{0%{-webkit-transform:translateX(-100%);transform:translateX(-100%)}100%{-webkit-transform:translateX(0);transform:translateX(0)}}@keyframes layui-m-anim-right{0%{-webkit-transform:translateX(-100%);transform:translateX(-100%)}100%{-webkit-transform:translateX(0);transform:translateX(0)}}.layui-m-anim-right{-webkit-animation-name:layui-m-anim-right;animation-name:layui-m-anim-right}@-webkit-keyframes layui-m-anim-lout{0%{-webkit-transform:translateX(0);transform:translateX(0)}100%{-webkit-transform:translateX(-100%);transform:translateX(-100%)}}@keyframes layui-m-anim-lout{0%{-webkit-transform:translateX(0);transform:translateX(0)}100%{-webkit-transform:translateX(-100%);transform:translateX(-100%)}}.layui-m-anim-lout{-webkit-animation-name:layui-m-anim-lout;animation-name:layui-m-anim-lout}@-webkit-keyframes layui-m-anim-rout{0%{-webkit-transform:translateX(0);transform:translateX(0)}100%{-webkit-transform:translateX(100%);transform:translateX(100%)}}@keyframes layui-m-anim-rout{0%{-webkit-transform:translateX(0);transform:translateX(0)}100%{-webkit-transform:translateX(100%);transform:translateX(100%)}}.layui-m-anim-rout{-webkit-animation-name:layui-m-anim-rout;animation-name:layui-m-anim-rout}.layui-m-layer{position:relative;z-index:19891014}.layui-m-layer *{-webkit-box-sizing:content-box;-moz-box-sizing:content-box;box-sizing:content-box}.layui-m-layermain,.layui-m-layershade{position:fixed;left:0;top:0;width:100%;height:100%}.layui-m-layershade{background-color:rgba(0,0,0,.7);pointer-events:auto}.layui-m-layermain{display:table;font-family:Helvetica,arial,sans-serif;pointer-events:none}.layui-m-layermain .layui-m-layersection{display:table-cell;vertical-align:middle;text-align:center}.layui-m-layerchild{position:relative;display:inline-block;text-align:left;background-color:#fff;font-size:14px;border-radius:5px;box-shadow:0 0 8px rgba(0,0,0,.1);pointer-events:auto;-webkit-overflow-scrolling:touch;-webkit-animation-fill-mode:both;animation-fill-mode:both;-webkit-animation-duration:.2s;animation-duration:.2s}.layui-m-layer0 .layui-m-layerchild{width:90%;max-width:640px}.layui-m-layer1 .layui-m-layerchild{border:none;border-radius:0}.layui-m-layer2 .layui-m-layerchild{width:auto;max-width:260px;min-width:40px;border:none;background:0 0;box-shadow:none;color:#fff}.layui-m-layerchild h3{padding:0 10px;height:60px;line-height:60px;font-size:16px;font-weight:400;border-radius:5px 5px 0 0;text-align:center}.layui-m-layerbtn span,.layui-m-layerchild h3{text-overflow:ellipsis;overflow:hidden;white-space:nowrap}.layui-m-layercont{padding:50px 30px;line-height:22px;text-align:center}.layui-m-layer1 .layui-m-layercont{padding:0;text-align:left}.layui-m-layer2 .layui-m-layercont{text-align:center;padding:0;line-height:0}.layui-m-layer2 .layui-m-layercont i{width:25px;height:25px;margin-left:8px;display:inline-block;background-color:#fff;border-radius:100%;-webkit-animation:layui-m-anim-loading 1.4s infinite ease-in-out;animation:layui-m-anim-loading 1.4s infinite ease-in-out;-webkit-animation-fill-mode:both;animation-fill-mode:both}.layui-m-layerbtn,.layui-m-layerbtn span{position:relative;text-align:center;border-radius:0 0 5px 5px}.layui-m-layer2 .layui-m-layercont p{margin-top:20px}@-webkit-keyframes layui-m-anim-loading{0%,100%,80%{transform:scale(0);-webkit-transform:scale(0)}40%{transform:scale(1);-webkit-transform:scale(1)}}@keyframes layui-m-anim-loading{0%,100%,80%{transform:scale(0);-webkit-transform:scale(0)}40%{transform:scale(1);-webkit-transform:scale(1)}}.layui-m-layer2 .layui-m-layercont i:first-child{margin-left:0;-webkit-animation-delay:-.32s;animation-delay:-.32s}.layui-m-layer2 .layui-m-layercont i.layui-m-layerload{-webkit-animation-delay:-.16s;animation-delay:-.16s}.layui-m-layer2 .layui-m-layercont>div{line-height:22px;padding-top:7px;margin-bottom:20px;font-size:14px}.layui-m-layerbtn{display:box;display:-moz-box;display:-webkit-box;width:100%;height:50px;line-height:50px;font-size:0;border-top:1px solid #D0D0D0;background-color:#F2F2F2}.layui-m-layerbtn span{display:block;-moz-box-flex:1;box-flex:1;-webkit-box-flex:1;font-size:14px;cursor:pointer}.layui-m-layerbtn span[yes]{color:#40AFFE}.layui-m-layerbtn span[no]{border-right:1px solid #D0D0D0;border-radius:0 0 0 5px}.layui-m-layerbtn span:active{background-color:#F6F6F6}.layui-m-layerend{position:absolute;right:7px;top:10px;width:30px;height:30px;border:0;font-weight:400;background:0 0;cursor:pointer;-webkit-appearance:none;font-size:30px}.layui-m-layerend::after,.layui-m-layerend::before{position:absolute;left:5px;top:15px;content:'';width:18px;height:1px;background-color:#999;transform:rotate(45deg);-webkit-transform:rotate(45deg);border-radius:3px}.layui-m-layerend::after{transform:rotate(-45deg);-webkit-transform:rotate(-45deg)}body .layui-m-layer .layui-m-layer-footer{position:fixed;width:95%;max-width:100%;margin:0 auto;left:0;right:0;bottom:10px;background:0 0}.layui-m-layer-footer .layui-m-layercont{padding:20px;border-radius:5px 5px 0 0;background-color:rgba(255,255,255,.8)}.layui-m-layer-footer .layui-m-layerbtn{display:block;height:auto;background:0 0;border-top:none}.layui-m-layer-footer .layui-m-layerbtn span{background-color:rgba(255,255,255,.8)}.layui-m-layer-footer .layui-m-layerbtn span[no]{color:#FD482C;border-top:1px solid #c2c2c2;border-radius:0 0 5px 5px}.layui-m-layer-footer .layui-m-layerbtn span[yes]{margin-top:10px;border-radius:5px}body .layui-m-layer .layui-m-layer-msg{width:auto;max-width:90%;margin:0 auto;bottom:-150px;background-color:rgba(0,0,0,.7);color:#fff}.layui-m-layer-msg .layui-m-layercont{padding:10px 20px} \ No newline at end of file diff --git a/public/static/res/layui/css/modules/code.css b/public/static/res/layui/css/modules/code.css new file mode 100644 index 0000000..d5ecb86 --- /dev/null +++ b/public/static/res/layui/css/modules/code.css @@ -0,0 +1,2 @@ +/** layui-v2.5.5 MIT License By https://www.layui.com */ + html #layuicss-skincodecss{display:none;position:absolute;width:1989px}.layui-code-h3,.layui-code-view{position:relative;font-size:12px}.layui-code-view{display:block;margin:10px 0;padding:0;border:1px solid #e2e2e2;border-left-width:6px;background-color:#F2F2F2;color:#333;font-family:Courier New}.layui-code-h3{padding:0 10px;height:32px;line-height:32px;border-bottom:1px solid #e2e2e2}.layui-code-h3 a{position:absolute;right:10px;top:0;color:#999}.layui-code-view .layui-code-ol{position:relative;overflow:auto}.layui-code-view .layui-code-ol li{position:relative;margin-left:45px;line-height:20px;padding:0 5px;border-left:1px solid #e2e2e2;list-style-type:decimal-leading-zero;*list-style-type:decimal;background-color:#fff}.layui-code-view pre{margin:0}.layui-code-notepad{border:1px solid #0C0C0C;border-left-color:#3F3F3F;background-color:#0C0C0C;color:#C2BE9E}.layui-code-notepad .layui-code-h3{border-bottom:none}.layui-code-notepad .layui-code-ol li{background-color:#3F3F3F;border-left:none} \ No newline at end of file diff --git a/public/static/res/layui/css/modules/laydate/default/laydate.css b/public/static/res/layui/css/modules/laydate/default/laydate.css new file mode 100644 index 0000000..6b10891 --- /dev/null +++ b/public/static/res/layui/css/modules/laydate/default/laydate.css @@ -0,0 +1,2 @@ +/** layui-v2.5.5 MIT License By https://www.layui.com */ + .laydate-set-ym,.layui-laydate,.layui-laydate *,.layui-laydate-list{box-sizing:border-box}html #layuicss-laydate{display:none;position:absolute;width:1989px}.layui-laydate *{margin:0;padding:0}.layui-laydate{position:absolute;z-index:66666666;margin:5px 0;border-radius:2px;font-size:14px;-webkit-animation-duration:.3s;animation-duration:.3s;-webkit-animation-fill-mode:both;animation-fill-mode:both;-webkit-animation-name:laydate-upbit;animation-name:laydate-upbit}.layui-laydate-main{width:272px}.layui-laydate-content td,.layui-laydate-header *,.layui-laydate-list li{transition-duration:.3s;-webkit-transition-duration:.3s}@-webkit-keyframes laydate-upbit{from{-webkit-transform:translate3d(0,20px,0);opacity:.3}to{-webkit-transform:translate3d(0,0,0);opacity:1}}@keyframes laydate-upbit{from{transform:translate3d(0,20px,0);opacity:.3}to{transform:translate3d(0,0,0);opacity:1}}.layui-laydate-static{position:relative;z-index:0;display:inline-block;margin:0;-webkit-animation:none;animation:none}.laydate-ym-show .laydate-next-m,.laydate-ym-show .laydate-prev-m{display:none!important}.laydate-ym-show .laydate-next-y,.laydate-ym-show .laydate-prev-y{display:inline-block!important}.laydate-time-show .laydate-set-ym span[lay-type=month],.laydate-time-show .laydate-set-ym span[lay-type=year],.laydate-time-show .layui-laydate-header .layui-icon,.laydate-ym-show .laydate-set-ym span[lay-type=month]{display:none!important}.layui-laydate-header{position:relative;line-height:30px;padding:10px 70px 5px}.laydate-set-ym span,.layui-laydate-header i{padding:0 5px;cursor:pointer}.layui-laydate-header *{display:inline-block;vertical-align:bottom}.layui-laydate-header i{position:absolute;top:10px;color:#999;font-size:18px}.layui-laydate-header i.laydate-prev-y{left:15px}.layui-laydate-header i.laydate-prev-m{left:45px}.layui-laydate-header i.laydate-next-y{right:15px}.layui-laydate-header i.laydate-next-m{right:45px}.laydate-set-ym{width:100%;text-align:center;text-overflow:ellipsis;overflow:hidden;white-space:nowrap}.laydate-time-text{cursor:default!important}.layui-laydate-content{position:relative;padding:10px;-moz-user-select:none;-webkit-user-select:none;-ms-user-select:none}.layui-laydate-content table{border-collapse:collapse;border-spacing:0}.layui-laydate-content td,.layui-laydate-content th{width:36px;height:30px;padding:5px;text-align:center}.layui-laydate-content td{position:relative;cursor:pointer}.laydate-day-mark{position:absolute;left:0;top:0;width:100%;height:100%;line-height:30px;font-size:12px;overflow:hidden}.laydate-day-mark::after{position:absolute;content:'';right:2px;top:2px;width:5px;height:5px;border-radius:50%}.layui-laydate-footer{position:relative;height:46px;line-height:26px;padding:10px 20px}.layui-laydate-footer span{margin-right:15px;display:inline-block;cursor:pointer;font-size:12px}.layui-laydate-footer span:hover{color:#5FB878}.laydate-footer-btns{position:absolute;right:10px;top:10px}.laydate-footer-btns span{height:26px;line-height:26px;margin:0 0 0 -1px;padding:0 10px;border:1px solid #C9C9C9;background-color:#fff;white-space:nowrap;vertical-align:top;border-radius:2px}.layui-laydate-list>li,.layui-laydate-range .layui-laydate-main{display:inline-block;vertical-align:middle}.layui-laydate-list{position:absolute;left:0;top:0;width:100%;height:100%;padding:10px;background-color:#fff}.layui-laydate-list>li{position:relative;width:33.3%;height:36px;line-height:36px;margin:3px 0;text-align:center;cursor:pointer}.laydate-month-list>li{width:25%;margin:17px 0}.laydate-time-list>li{height:100%;margin:0;line-height:normal;cursor:default}.laydate-time-list p{position:relative;top:-4px;line-height:29px}.laydate-time-list ol{height:181px;overflow:hidden}.laydate-time-list>li:hover ol{overflow-y:auto}.laydate-time-list ol li{width:130%;padding-left:33px;line-height:30px;text-align:left;cursor:pointer}.layui-laydate-hint{position:absolute;top:115px;left:50%;width:250px;margin-left:-125px;line-height:20px;padding:15px;text-align:center;font-size:12px}.layui-laydate-range{width:546px}.layui-laydate-range .laydate-main-list-0 .laydate-next-m,.layui-laydate-range .laydate-main-list-0 .laydate-next-y,.layui-laydate-range .laydate-main-list-1 .laydate-prev-m,.layui-laydate-range .laydate-main-list-1 .laydate-prev-y{display:none}.layui-laydate-range .laydate-main-list-1 .layui-laydate-content{border-left:1px solid #e2e2e2}.layui-laydate,.layui-laydate-hint{border:1px solid #d2d2d2;box-shadow:0 2px 4px rgba(0,0,0,.12);background-color:#fff;color:#666}.layui-laydate-header{border-bottom:1px solid #e2e2e2}.layui-laydate-header i:hover,.layui-laydate-header span:hover{color:#5FB878}.layui-laydate-content{border-top:none 0;border-bottom:none 0}.layui-laydate-content th{font-weight:400;color:#333}.layui-laydate-content td{color:#666}.layui-laydate-content td.laydate-selected{background-color:#00F7DE}.laydate-selected:hover{background-color:#00F7DE!important}.layui-laydate-content td:hover,.layui-laydate-list li:hover{background-color:#eaeaea;color:#333}.laydate-time-list li ol{margin:0;padding:0;border:1px solid #e2e2e2;border-left-width:0}.laydate-time-list li:first-child ol{border-left-width:1px}.laydate-time-list>li:hover{background:0 0}.layui-laydate-content .laydate-day-next,.layui-laydate-content .laydate-day-prev{color:#d2d2d2}.laydate-selected.laydate-day-next,.laydate-selected.laydate-day-prev{background-color:#f8f8f8!important}.layui-laydate-footer{border-top:1px solid #e2e2e2}.layui-laydate-hint{color:#FF5722}.laydate-day-mark::after{background-color:#5FB878}.layui-laydate-content td.layui-this .laydate-day-mark::after{display:none}.layui-laydate-footer span[lay-type=date]{color:#5FB878}.layui-laydate .layui-this{background-color:#009688!important;color:#fff!important}.layui-laydate .laydate-disabled,.layui-laydate .laydate-disabled:hover{background:0 0!important;color:#d2d2d2!important;cursor:not-allowed!important;-moz-user-select:none;-webkit-user-select:none;-ms-user-select:none}.laydate-theme-molv{border:none}.laydate-theme-molv.layui-laydate-range{width:548px}.laydate-theme-molv .layui-laydate-main{width:274px}.laydate-theme-molv .layui-laydate-header{border:none;background-color:#009688}.laydate-theme-molv .layui-laydate-header i,.laydate-theme-molv .layui-laydate-header span{color:#f6f6f6}.laydate-theme-molv .layui-laydate-header i:hover,.laydate-theme-molv .layui-laydate-header span:hover{color:#fff}.laydate-theme-molv .layui-laydate-content{border:1px solid #e2e2e2;border-top:none;border-bottom:none}.laydate-theme-molv .laydate-main-list-1 .layui-laydate-content{border-left:none}.laydate-theme-grid .laydate-month-list>li,.laydate-theme-grid .laydate-year-list>li,.laydate-theme-grid .layui-laydate-content td,.laydate-theme-grid .layui-laydate-content thead,.laydate-theme-molv .layui-laydate-footer{border:1px solid #e2e2e2}.laydate-theme-grid .laydate-selected,.laydate-theme-grid .laydate-selected:hover{background-color:#f2f2f2!important;color:#009688!important}.laydate-theme-grid .laydate-selected.laydate-day-next,.laydate-theme-grid .laydate-selected.laydate-day-prev{color:#d2d2d2!important}.laydate-theme-grid .laydate-month-list,.laydate-theme-grid .laydate-year-list{margin:1px 0 0 1px}.laydate-theme-grid .laydate-month-list>li,.laydate-theme-grid .laydate-year-list>li{margin:0 -1px -1px 0}.laydate-theme-grid .laydate-year-list>li{height:43px;line-height:43px}.laydate-theme-grid .laydate-month-list>li{height:71px;line-height:71px} \ No newline at end of file diff --git a/public/static/res/layui/css/modules/layer/default/icon-ext.png b/public/static/res/layui/css/modules/layer/default/icon-ext.png new file mode 100644 index 0000000000000000000000000000000000000000..bbbb669bb311514baa5db3a6a00b4644d0e280f1 GIT binary patch literal 5911 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 bWW^%>x7XlHV^#Q1uOX^B?ki3(VEg|7!QHuF literal 0 HcmV?d00001 diff --git a/public/static/res/layui/css/modules/layer/default/loading-1.gif b/public/static/res/layui/css/modules/layer/default/loading-1.gif new file mode 100644 index 0000000000000000000000000000000000000000..db3a483e4b74971fbfb1cc0fb6499852cedfe650 GIT binary patch literal 701 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 literal 0 HcmV?d00001 diff --git a/public/static/res/layui/font/iconfont.svg b/public/static/res/layui/font/iconfont.svg new file mode 100644 index 0000000..f407df7 --- /dev/null +++ b/public/static/res/layui/font/iconfont.svg @@ -0,0 +1,485 @@ + + + + + +Created by iconfont + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/public/static/res/layui/font/iconfont.ttf b/public/static/res/layui/font/iconfont.ttf new file mode 100644 index 0000000000000000000000000000000000000000..3c22a2384684571f2b8a398595b632a96ae681e1 GIT binary patch literal 41536 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 literal 0 HcmV?d00001 diff --git a/public/static/res/layui/font/iconfont.woff b/public/static/res/layui/font/iconfont.woff new file mode 100644 index 0000000000000000000000000000000000000000..8c660cef5642d429de9178c7503b18f46300c655 GIT binary patch literal 27256 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 TQ)VD-$X#3e51sM)nE(I)88ehq literal 0 HcmV?d00001 diff --git a/public/static/res/layui/font/iconfont.woff2 b/public/static/res/layui/font/iconfont.woff2 new file mode 100644 index 0000000000000000000000000000000000000000..928d66a8dc3793ede9b05460d8cf3648d4bae338 GIT binary patch literal 23140 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 P;R0LaxVzD+*yI}k84c5u literal 0 HcmV?d00001 diff --git a/public/static/res/layui/images/face/0.gif b/public/static/res/layui/images/face/0.gif new file mode 100644 index 0000000000000000000000000000000000000000..a63f0d523561c523476e5330a0d67eb7318cb187 GIT binary patch literal 2689 zcmbVNX;c%*77h|fSVf7btRc9;2uTMBA%GGHLDVpaID<1f5|U^lkc1>iKxY6!1rbG@ zd2aAjaK>G62Sr5@Tv%lj5ZMBV%8n>ts{1vL_@3u@=Ev*PeX8o#z2E)rQq{hGY`QDg z1Y?5vfMDRklNoDFn+y1$-V+&nI?*1FjNVaKeTNKPP*>Wj%Sp)S#fb{Le6b$#p-{ol zsW=k|kKKQjucL0^f#x9i&7RS^Kv2J=HOHjvYO1<34zzKv#bH4$O z#ZFq03?oqI0iLr!jWcLn2O9kz?9&3Z4A8^@wQiuy9MsUj%i!U1H=q*1{h6R?C3x4%9Z~bY?lcTmR7j#Mw>w(q{eMOd|)qc5L4N&c* zuC#-D;)kkvpmjZHTn0Kef@(+gGxF;@#-Mq1Z|Ta0Q`*Srt;^f+@S9XnW&vKOd~B6~ zHyNOJFDSJDP5y6-g21a^k$3r^XIIl%Q@Cp@Xb*$?kBqma0hL(Ye-`v4To=x`Eyook z8;-r))qmH#x4;x0I$fJ%qOMq2{D&DbUW-iBk2QvUX!>cQSp;gFz)RlCiz^#1xfLC- z87Zj=eCi$V&2U#t-?L}$cK{g8qbIOabq>? zp4*0{8D2G6Ot>!#v2jzcD7SojpVX4O3Vsy}_iV4&YYK*PK%Fl#a&`FG zM$objsAAv_jp9{L8DlbVvx3c0C zr|Pl<9y$m2ro$@nL4nz&9SmgnEc|9WGSQyB1p-}ha92Fse?ZQ_Bctc8B-z2L2xQ`g z`dyy7!B5?H1nxhi9>_)z#2V4__X%3<%?$9NI#4tL15Xk`R&u3e$bmwRh?tD)leSzDDEKdpZ)(efVx$6cpg=B(lJNwny3Ld^ zn!A5?G^vQPVSFzWp+(__vn0Hz2!UAP$MPVdI}UsipFwe?qgixuqPS2gG&%&)Szcb= zUTn5A#oNb)?!ubF_?9i(g+_B>QeAz}{6mlrgqnM?ATOpDlj_W-In$Ej}3 z2Pdarnjc+!IX(h0dS+zk;m|-}p#C^9KK9}L=(~~Op}~RvzTUTQUiZA}?&?%^w70dk zylj5a)Y$O6zOJ^W`dL+FMR{52(=Vb2{W~l3=#j&R4*u(p-w$N$Pv5sUZBOd%l;mAIcO)flPl%8E z?bmHvV`G%jTcQ+lS)^1VjtCFiED~ zT(R75nJ?Rih87J7rZv4a|qPj4f%`NKP{w9zJutaJ^PRj7vDCX2@s-1fMsBq7R3UP)M+%4tA?D+}XvHFzz*y%L=kmCmK7^vJPkuUQkAmPS3^L3MDk2U`FtXG(OBw%kf#qS1^68svpOwv@mo8;P zDGCaXYN>-Qp0~Xx+rV_GI`^sF6U7K8(~zl=;$%)R)~gj@bP&VoMw_I4V?6f(!^$+;TlKZKNWRvr5bBw-5Huyw**;mBJ z$e)Q{?zFlcJ6(9*C`9kUZrt2~XFpTKnRkA%Zm|z`^-ujm+}lE&XVKZs-c=Znar+N+ CBC!|% literal 0 HcmV?d00001 diff --git a/public/static/res/layui/images/face/1.gif b/public/static/res/layui/images/face/1.gif new file mode 100644 index 0000000000000000000000000000000000000000..b2b78b218996f70773540d0d3a8649d3c2d199a2 GIT binary patch literal 5514 zcmeI0X;f2Z8pm%|0tv}wF|q`>VUY-kh?astAQA;dB?6_fabYVUO9#+)7)Q(s2}KDA zighC_TBPE*AR-hSAO%6du#{TxXn-QNiVcVgN|Fij%v8I5oO9-!+)ww*d!7%!|9hVI z{|nx@!P_T>2oQmXY@j$fRCS-Fst#8Fl-Ji<_wt8B#oMn7hHBnZ4SIK-bRDmyJo~XxHIe<@S;}yGsph#%R&3pM=?m3xsA@drb+`R>L5S-6 zz>yk^YAiuB+oYNAZ_LF?#Sxmh?wKCnks9lU+z5q2ar+DGPfeziHw@J?S6jsf&!0cP zdJv^~b+7qw%%v2U$@--gvCCCsdk<_PHte%$Jmk_-lRDCrG;npxi~bPRgV?D7zN#&_ zCe2g*w7m0(@9fi`>xz@w^U1XtK2y!sP1)pEFP~|YwX*|ZH)_kL?|yde{AtyLq;?6r zrS5!RPuG*%o2S}r6<3x__s6NL<5VMzZyPSC`gf@xv3stwub#tO^-JmF&hTmZ_Q|h(Unn2|LQqcJljcz`CqNT-d#=P4TsI+`$f9Ch+HH6_=gXNx+LO~J;=#8M2bsj0pAsmE~jpC z+e9r#gRZAtL!FaYC?7{MaSw`>N^<&&ALWFFS+Qsk`6z^CS-}uaQG8o7OPH^h*N!^J zB?bn*FiR_2UPN3N6Xq3j4@!m%=yWd_((FOaO!^t=l&v`jJMzn0XXJy!`5gR078K1v9z+wE}3v}$MR=6 zIFTWuo=H)j?LKN}v%e&C+c=j~Y*=?dE}h{YLpr1Us*A?L@@)yGj!AMTkYgK|JtLTp zUWYwtNqJJ#_vQJ4FS9uod6LmbIk@-lL+QNel<(bl-msVKb!gj$+4V_uU<(q(x}GL@ zP{By=zzPD^M&24#*nggXldXc+BNE$8YZmMYeZm}wO7Pr>N#jQ-B(?~MM===Y3%&*=Az{%xjzo9W+X z`aYxYGyeyD21WR52Y^Qx#cLG+wFnJr4M0ddVvCPf0r+fTZ3%Hb=^BdjXJOs64!{j- z=8t&W0hH)!X479OfRW#}%z;G(K(o*q2{@ATH=C@;d9$e&vFpb-3t_8bq(m%AT5@Bi zGKi3|JlPKn^yD5RScM;yAK_GS4BiW0*wZ&o;~|Z$kQjO8WbdgJcAJw{tw!Ydd%mLV z?5ZPx4kl~B=EBi-Yvfii`n%!vDN)FMpTt8(Ew_zvl;e_+rl=Jxb0hxKtiGzC91`BW zqTyE4hbwpcrhAe4$e0eaKLebbF8(+pE&#b81IH#>A%oS!(rt_mamlx3=#H zfJ`;IZGvzuAmC!j{5rHu0AsnC&xJqi665{5&Q?zcb2^b9QInYSv`~04FS!aFd?!vT z?KXphV}y6&glQ}sz4LCID8Gpl_h}Ya87wsNA?=`Nl$ZW;|K?|kRPTx)u)uh~1X4b8 z&WAd9zsAXep^cMydzlIptr}~=83}fgrZaeGbNI#uc}5V>o9Fz&=fwToM4rGRP+`G| nqjLpT%jon>&iI|hI5DGFNqSH|Meaf1bVU=!q}mt-2YmkxGX3TC literal 0 HcmV?d00001 diff --git a/public/static/res/layui/images/face/10.gif b/public/static/res/layui/images/face/10.gif new file mode 100644 index 0000000000000000000000000000000000000000..556c7e326801a0ea090bd693ca43807925d3cbc2 GIT binary patch literal 2797 zcmd^A`#)6c8Xsolx+O`H%Q93$nTyL{n9MM)A-684%gM}GWn?bROqpmGJGZ^Fi(PxC zQc0BVBpao@iAv-WQX~e2E`%;_^UgXmoi68xeb(o*-uGGG@ArA0^?g3?^6~R_ zc3~Q#3{evksAPYm+ldxe`B>25hYY5H$5ilyap#a4=-C9i!a--i^?{+Kq>xB__^Jl4Vn&qDieZbVwCxhx2@ zILKOvg+lCu6V~AQ`is#P@}Y#M=jR}wYR+vn|5TiK@RaXU!OgY6vPDVqMt==D71BV~Djr?Wup*KT5)s0Nt z1Ea;`y*Z$Vg^U%+NAu)^dy4m>3*sq2x(&3`O809f`!AG_6@bUi^1&ZV_v?Zdd(dFk zaB1^UmD5ngJo#|eL{F^zWjuI$5Ol4%mt`$$vYF`IF#R$WJTyT@^O32h{2hyB4HojL z=IPO!U?>rcovq1KN5(EAA1kK%5`D7*2eJ&VEMP|C>Q*F(8D`a)X#VL03k>m1L zNkAHLnrro;Eo8bcxh+q#qdYo0+G?;|YpN42;h4%E5#%GMLHA}^^K#ikNY-R6d*oOs zTKf3>vYC2QS))~Z!7^DZ^;7j+S>2+dJsMN@jAc!@>Domz^^oi_W2V7c*5V2pOc4Y@ z&2m{F+Cg67VV?A0FFQODt)hS_LhA#AAqG>-R6O0>B?2aUJ1mA+@HP&QihXzMZ!E-# zq+-`O1`-1Wo^TY$H%P1BC+l(AvXy{!WD2~F%yz-V|XHpgowuN zu~vo&Sm-lEyq$`rD_=m$oSu9k3_0TMZP`Q;2_lp6BnL+_nY043Ba-Y0M8!?EB{@(W z$rL*$=*xvwWD`birGzrPzvNQvsMsj6SU@2VVq;_RvG#bra2tW-;^Lyzu(PvOAZ$gu zd19u-mM60Os=$CnY#~P==J0utQjy8x?-Wz9ic0_80$1=&mM6l0ZU@iia|sfrfIz|% zl`VY*1_u6bD3|*UEfR;q-|PLa!lLlq0+> z3;A5=bJG;g?6o+|s`rH(IeRURvvLWFVhBoW|HJC9A;tVCm){0gvH3RoFi$b>Ld9UK zAaWp^nVy=Q`1J9^`|+{ScO%1Z-@JY`G&u0`MSowfw5R)d*R#%!r%&1+x3#uBYHn(5 zcvxTep!WW~yEWB!sw)5f>vqMho8@Jtf0o=RzFt&#?dp}wmo8o?IDalb?`-awoYSXH zW}i5IEbHhWzaKgLTV}?ggTJO9_~qxc)Rg3;{XZop?A!a}p7^-klGt54#UkMj0iVZ> z*&fY_+O`#rWV4tNTmHFu)5Z<|Sif%Vn((mDkl@upfdQ-h{d|4Ay%?Szbej80s+%jt z#o3AM=wNS0A`&{X=-C5hG6x_Mhp(KcU9@@YgLMeldR?axtN zwEd5V&Z~-T*Iv@rI8N2DD@?W3Rvb>{t;?G1!&v7sZ$i}`xn`>FQLpFZa5oZbQ!WU# z6N0id*ekoxJ8V?Re!96gG%&ojbC{6bC=zRL(qC9 z9AVRaGo3jGR+2<4BiUquM~)5rObdsjH=o&{j`7Fgq#-%QIg)q|V7l8WN}3~Mr^HPsnv zYBVTkuWYI`!P&3tY=gmCJ!#Glz7;G6+M758sp#>>(`c$v8b;e4Wr3n58|AJ_HBZ4M zKkT%FdUFzk{<}(CnOdM}KuhNHXeOR1V!?SZ4Gh!>qiTZn!)^dLP>z z5V6E{^;KymZ80qbv*Od_xEFz6_>=chubAD346L#aA6UNh2+PBUmt8$z7(H-o8%=4b z+W)tqA(h_^MWGdj)+!Cv!1vT~=&*>=JeMuyj@YH oWz4#Y8lWniX5g=81^=RXq3ldhwpWFqvq6_o40028>wtN;K2 literal 0 HcmV?d00001 diff --git a/public/static/res/layui/images/face/11.gif b/public/static/res/layui/images/face/11.gif new file mode 100644 index 0000000000000000000000000000000000000000..2bfc58be8c70d512f4371b50b2b98c7b8adbe719 GIT binary patch literal 4121 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 literal 0 HcmV?d00001 diff --git a/public/static/res/layui/images/face/15.gif b/public/static/res/layui/images/face/15.gif new file mode 100644 index 0000000000000000000000000000000000000000..c9f25fa1d25412e2e929347c0db0878b0b641d58 GIT binary patch literal 1793 zcmZ?wbhEHb6k`x$cvjC)UFLjcxo+2{sU44AEqro)?t{~@-b%N3XFR-Hwxr+ulK%oH+No|8@joUb;8o>khO;% z-pt54c=5$f_l$zz1xIF9ZC!k8rPSX?m75>!3YoF0@6_@yw?fNicKtc8QFZZ3q7CQQ zJ28K6dKNF8dwdf2>Dz5FoA&JK_I!S*#c%QM(+{R^st_tYd#Py0=A#ot|K1Au_q1vD z6!%ScSEOWk{yZ-7e1G7dQxZR(%&R%HD{|8GPuFK(p3ArTeE-+$eg#|BB~~S$dA0ra zCi@?c7ri|%pb4sD-Qd^>BZ@TkN^$;DL)19`Dfod@V3w#!8pDhc-E$->ITP|u(PWCJ5fjDdmu ze?xs!vs8YWOpZ)hzDjdnpQuc^mXOXgX{{oe-u@~|ZFy%{R@dafm z@IQa9kQKz2C85GpugPS}VD;TfljXPO4=V=Kgd@?P4xMV}iXHU$+K4vH=vCN_(f6?!dfWS6n2`SY^jFjF5#yp%}dht@+k^lQ5mUcOp* zcs?^%!Geg4gAHe92$#NpR-1INsfoGiRz$%hw=FUkg|bMf)@r}A%N=>H&t=-OGD)%dJ&%aS1;>?S28-4y56)#MguSwF{Wn{Bi0wrzT;!uy3&oA(_^ zP4_wBW87?f(kHzUYzsfa7D1pbvq83K2{lV=HFwoZ*)}QIN_Dj=yXlz=G?~}CDNBnw z0PXZuXlB-166sJM;cnU891&3uiN0ojaP%=)9kJ4E);wy(ATN9lXld$sVfl^MZ`{0f z`<5JUy@-h7JMl*sta~4a6oo18!%LOf$q&}sITYaYiet1X;M?G&Sqt4V`0s%?q;x>VWruo zITPfDMZ!^SQHzD;+gGnyyKeo4jrC#{^>Vzt^*iM1EyS8U1jSr=;w_HEA1-Lp7hf0JU8dSF%T&D%E<+7ylUKYC)M*n|{ZEMUu7fY$3aNE)ViSQzrOwtGm1);sbf z_Dz^%r|aYuqCS15lTnC&w5K1hmuJ8d&l*pEtR`qRKwZ!p-%_Ak4|D*~1b>MAGiJ?5 Y2vsx^3s|^#p`syH?V}DDY9U|^06Jl%MgRZ+ literal 0 HcmV?d00001 diff --git a/public/static/res/layui/images/face/16.gif b/public/static/res/layui/images/face/16.gif new file mode 100644 index 0000000000000000000000000000000000000000..34f28e4cde0cd13acdbbd7482282eb306f5b21e5 GIT binary patch literal 6721 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 literal 0 HcmV?d00001 diff --git a/public/static/res/layui/images/face/17.gif b/public/static/res/layui/images/face/17.gif new file mode 100644 index 0000000000000000000000000000000000000000..39cd03538a5bc595fbc46c97cf2b06c8bd8dadd1 GIT binary patch literal 4439 zcmcgucUY6x9{#dOAOXTCVJRO$rjSJ#2?PQO$dn;gsE7oJY!XAPKx-0`00CJlB4{nM zl{zYvdT;AMhEUvS9atCOuG*qvMK9xi2}7Sg_WpVE1W5uJR^qc!JQy1-zmM=eAjGK5e zeC=DOnehWNe>7d%=`?b*_}!h{>07I&{`2nDIq$Re*qJBgL-i|qtI#ul?3uosH1o1^ z`subO#|;N$mZyuXrfw!qy?s43wMpfOL1@dEFPUqnbmx(XR#{-Vpehd zA_Hh73IYZI05lXE9tm=JVjlGC?VBg$C1>)*U=lwyJ%>g7^Vmrun4ZESu5k;egbO+R zwDh0?5r0*|%9!MW%w$Fi(bos`&SU0f3$yuR9+;P%m6OZNV-a~Nf+Ri@dR7mUiJ)eR zIFm*6Q~v>~_v8pfe9(>L>XJ;MQbBij5|!@e?oM?EX%s4rOo6`cE>t?x&7Dc}0OvnM zXg5*H24*xjaDFf7jYUioi-k-wdGqGYq|L4*fhd(sWiS}(7&Mv-G{Yq~KS#{VbIHlI zS%|>p=O&BNh2nHU4ycaEOA>4nvxpGVxfHU6i(zweNt$#>$%1Th9#2T7k|^qw7AA&= z|L>{U*^9Gt#nJrtct09AHzr@mCr9&h1)D_4d}z9jdMhE5BjWSK0#S@WkhO4%k!b?4 zAU91Q1UakRL5FZ&a(a$>z)`azJe(PvlPl)sB=dv0EFu(xl%Af#q`Pt5xc-5z0d9db zDm8%W=Srvh1#kmsR96b!!{2jZEmx4dDVv`oURay*el7hU*Q$#lTL|sU<%`lk=cfdU z1lgb_X=eIIuuwcbJp$diG$8PY}o9~G-M!eC*S<_dg9f~7vq2a@%-7--=92w^zgy`dt;*`ckkT3b@R6y z!`H7}z4GhjOG6hgoIiK=%;~{j2KrC+_4ah1>^gD$*wLSV`uD$%{Mh+JNBiOL4;?(P z|GTz*-+t5D(%jV8@b%uW_Ux{&+f}=>X2X{j6dDalE^#Ptd5;@5r_7rW-u)iJB0qaq_#hKGfQ1P84M z4B&G7{n)-fEN?F+!_&jvjqXaLQphA1=jBe04)%7o%WR0&pw-ePmKNq_rUa8ujExKp z@cMeXIINB~2CaocBH)lcSieQ0i~%X&3^@g4;U)lpo|Q@E3jZKoib^-gUr|vJKv@Io z80xcF(b-MYvIquHrTsBY@pO226x$L6`95$%bR$_fkMM*;75FkzgDGfOjvup^;luU4th$B1IAjX z%y;>qDP`mK^EH&zmGAOF`GX?u<%z|-u^#SDBr2r+yQJQ&Ww>ZCzMXB|hH%^xgJk5w zWi{l~;npVz_WmOCX!)nZ!op!C7GDek!oKc+QY;}OYdEr{*UEwd$AjJ1;dlB{-{|=y zaqwt37k*`gma;89)vy8B48D6C0+PYPK(tF_!WcbfeIZA3_dvy z>-SeSR!U^rCt%%s%#UqJ`+2C9WACT!NxyNBk)wr{H0Xy!HuY8gxrF)CwUu2{4ea;S zzyKtm59mVFNYvEG4U2Kk3N{LDEXNfaLgy~E=a(Dr1aW&oa+DMsv2mkE9GmQJ>2b*N z3$G5Z3`;4yGvnus%qSh4PPdD3*U4_Q3jq(HY|+2CxLmN6qD)Q$(Q@0Hwy0=8>UQmn zJo@2X1=7NepacLsUioU`bp~_e>vznF!oNc@fFK>vK-v)Imztzd(=5k0t%HYpEt6Uy zR>DPb(zQ$B@PtsTG^7ch2C-|`ToVF$etU$JDv4?Kq@ro`J;_H|dsS`dB*nN*6D zyU91fkYz{asL0KmwiFwF=z;&;{}U zogF0SR_TKNH5JjJQT|>GLyfk>YH&{SSCefzLau7Welv7wN5stpsxdX@s;6BCO$}OI z4R#C(y(2~I-9(79>FB-@MJ%r_j}m3;SLl(28)~G2wKYCY1$zPT!C4u2A}RZ)>damg z1`o6*b|(fpo5C>oHdvyb4C_gbRrMDF+ki}Qn**Y0ptz;uB^M)19mJDzfWaEGrx&Yi zU|;E3Z?u-Jv08md?iiIc0E7Enmh0}3Ax!HNbP!+RLjV2!I=@1VQ_d0ex8wP{Q$j{* zt#L|eZGifaSR|0eR$FByOE-X}IVi(-4ymYUQ0&@Ef$Wi&MBmKrUQAuYX3z}}m4 z%NOvpu&Cj>>NnxRTM;M#Q#!tagEL1qM5;zh%DgS9dNtMX#v+C>E$yI1--copS`v1@ z(Yl4}kBN$$it`(gHCRf9Yho$ARTt63goL{Gqz$HaOT%JdPxookl?Gmu7fn+|>hat;UDiN8vwc6I37@sFuSNW(3le;r6D$B477JB*<<&Ty$LJ z^6WNyQl;x>iNR|RUCXHGFW1J+J7wd+OHIv6RId_&1Vz@pC4s(`SIlTiY!P-pV$La> zA*XC&r4$$4K6WHN?Q+wOMx^D2bDr&fM{eQtW|&qrjs7K8BVOXX6DN+pg`}wwHtplr z7*xILd#qAkI$yxG5IYrBtPg8gO;1(hd>Pk~_Cq(>;eY1l8;nMM%P!7wqZXn1CL3qi zV8`aT8BbH+WFwniHMaH_!T}|BvSqZCO{O}WYJ}^Tl$xSLf?z|xKm2pr?|W6K+C{KCSZ7vTiZ)tpXq?wK0O*<{Xn;)E121aQYn_Pdc!mTV z*J~l;+>d1FI&zk0{Upp%i=jxPhJhlin|oGU)M%BiMivHy?%T&qUgqGxJXH+pAyvrO z7EXZn@dAPo=6Fv}qqhP4mYNC_Mvg*b*!TUF`jrw(ZFa$6x%q*4a+<0nvV7M*uyBqX zSS>`(Zsdh&cZH(s0@}81Xtd;w-jc*rtB9Eh@V({!|764PTDB;gG!aA%B%9Dh*}R09 z2^%zO=YA*~#7AV~X+SAHk2BDpsvGp<1ePlC&5e_t@^Y9jW2)V;BT?DVpwI0-PT`@> zQ^LIK+O{`#Texeb4VhNM043JM!E_V&O_k0Ddm!j74aB$}h|LV5e#YxVr5LG5Y#9Ke z5L&LJ__hunr$R@X)s11xWb3g7Mr%ioHH{ls$UX6(VfXW^=H(Vf;5;+zI5k(0Oy-%X zkXVkoreFvDpVjTS IdD(dV7kW}yvj6}9 literal 0 HcmV?d00001 diff --git a/public/static/res/layui/images/face/18.gif b/public/static/res/layui/images/face/18.gif new file mode 100644 index 0000000000000000000000000000000000000000..7bce2997f86e477a6008fb1cae8dd03cda10abf6 GIT binary patch literal 3017 zcmeH}`&W`_9>8Dl1yK_aL;=Ob3nGb&N=AwoykI7&SsFG?;bls#Q?`m}L+3&8mQre& zIhILwGPi9z*=?-c$}De97tM;9W?i*RZLH05$~M7$)uy&if585*zr8;^=RME!`JU(V zdBVcQg2f3|kQMY4K>D$L6S^e*VCwsu-ujWeGlg;bq3@?|+D^5LdymJCUa~Y8^!gsY z{z2f>E#`2~Uw$8|*Z2Aw-rjh4oPRNYo?+rb`(D}^h4Ei=yw2tG^*=}Kj3iFKyRZM} zw>>}ZHeB#+uVQcHV~3jDI;&&G?pO8JbDnoe441zu5^60UJokvzr zv@PhaVNYFm*7q#wK9SmdwCvfV*1neFSKZ$}>n?nC)p6=?;rbSj_t$KHAL}3PEa<7l z>mRPT*&x4NGr#As@2yM6pSLjn(Y*dj>7NEpTfVv_{OyY4+Zz^dS_zZCtkypa)!&IX zoLZ*8lhA*0#ic^$@t)+qlbrW=g8yD6d*A8Wcf0xDy12e8^3j1`$4=T$Pfs(a%_2ir zt_T)IhkCm6j8G5+G2g)$PY6J6$Tu=1D+n^4RsxkeFTbELWWAf4sj1ugkixtW)6Ecv zWNS;}U`@q)+|pne3uOy!gtTyu*sY)rX4J3DCQt+`soayN)bb+?bUm^900+)sKxuL{ z8%=Mmr~F_`>6A0*Shk9_(VXAA|H04URGZCwbQ%k!hM3(&Bw}bBN2+@$iK77J6p;J1m6pocLCoTxg|5!y ze0Aaf=r6G|2gf1@CqP8x;N4093&QL$)a(tQM5EzQI10xor(GH%kwT&%jUNV^Cc!$Qr>))HJJ+FdjJP<~NCyx1LPaqE_63aOSL zgJ#3zZC@Ma=aC`_vIgR0DmB(FDmg1eWaa-$x(nHA>C)vM+xn(*6BFAkVVCoQt)yUc zi`;qCl*tU^fl7hP3x0~0)j?;Ir{@K}9Dr56MqFM(BC4y7VU+0E<@FR@0E;H2X%)v} z@f=?+L)W;zvo>&cXtSq;Arxc*kv?21kSdccVylbQVo%pZV7DqhphS%gSiH`C74Qou zvSgKjLh&Xz#rpvTd8hh^c&7$$;F+OHld7a#6W1_8So~tSn(GC`T+gsL@33|2Jmpdm zS>YrI@jDy0{X2rUlOH+5eK0+6lrp`Ee8TDsDT5j z{-{H!`6`2m$W+<;CXJK>VGkKG6H^utqr~ZXveDXw4q44brq@gD?PV95b>qfeAzVB@vs@)69ynJ_({9pf zhXVH+nX;txC(7&P0o&fLE>_-)ne&9@%ylt>um~*^gjS9cFwg+8GeA@d_$)LQ;uHZi zgD)qu=rnE_w5OnwK~M8frDxL6Wr(NuN%zy8qu5)>%nUU;MT(Z%M9@8KPp(5}(^nwq}4<2ejm;;1)1H#-RipPvSpCYvuGQVrc%(rF&-pS>snM~eV|J%Sv zVq-^GX)VgPl2}_>75Xf-Tx#V}ke21+QxWOo&{t9T)y@1L%_lUNxjB7y$3Ez%ct$^V zbNYej{G*ulPYDA+6bhIzPzGY4;_7%OZ-TeLGlR7lNL7qa5<4|1H190@IRAMg5(j8}L?(phY-y`50aH_-& z8U{DVAdq$){Y{AivqB20s8-wpxRcT?Z`FaicaB1cs)H@ zqu@!rE~yt8sHR{M}v6=UaO z1;V8&kz9rTSSvM(4H%a_|H#z?Bv%Z^7s2BH^hL48W|DP0J3FWiUv6)uh@L!>i#eM%g!m2b=EomsZoMrFNGwm%(_p IDGd4k2Wv_t&Hw-a literal 0 HcmV?d00001 diff --git a/public/static/res/layui/images/face/19.gif b/public/static/res/layui/images/face/19.gif new file mode 100644 index 0000000000000000000000000000000000000000..adac542fd33e152fc08baf165d1c5a467f0c2747 GIT binary patch literal 3040 zcmeH}`&Uxg9>5Q86bs~`fKmvGN=OJ=XsCdSFDfllZ)I9iBDJa+pA|D35dp&{&8Do( zY;4M!>h`{Mb4u-@Ju!RP^cd|iS-0+W(rKJY^ny7y&FUYxYu(?@4||=p&*yvg=d)wt z6ylJDZjc-F6M$^5zP`10c7JD6)#SchlXsnjv(6| z>EJc5=N)_dp6s#Rns#?z&_7FEhJL*;)OV`2igr|s`EHfycxjOBUP9S){P1tLZ9k?D zotoBK?YlGx{p=*K^F;QQZAq_hZ@zN8_Vs1ut=;}ZXX5Vf!w&stkF7!6_vF~~Q_e42 zQwFd5Z7rPp{N$7umsj06{^iwb7u)?=E$cCNcT@WxZGL;VwCh{n!S+dC&tvtpE@`a} z>AzoKJ09@5IkaXOckr_N+m5)tp0@s5Nzbou89I^r`sNqsEVLj0A>Wii8n{S$u_w6y z;-m-7>#a51!Sg=0j@TRfa~i*`czOR^-;MN_H%xDu*n0ImrrWFwyHC$LZSv{uP`$H8K03&4+LrO|lK-RYjlXxMJUUzOqWi(CgUsRKVXtA_ zjOgUqk+Q^SAzy%iK@jBi8xkdi0K~ID+lS-^L6~73(3coWjV2JaB*57@AYe(9xkTZN z;gUT)$y{i;^9ECZf)YoQcu0yM3<{+QFxGSV)MPOQUzEI`@%O_e`5K6ki{etYdJ-TM z;*2K0#2-UvmP|bqDW)S>ja&4r@f$q3$u32Ab{dUSUB|Z%WYr@|umzzS z8QeEhTIEOcJk%^~L;JWA>!g)T<+^(M3`J&BCNvYLYXAONR(5JEH6pX5PP3yhWsM7pwJ6#Sc%<&*+cVb)n|V zh-4;ne&?aZnDT9c#FhGX)TQZ0^OACDKVgbXM=viAc2#xr(0#$lKv*R*bgH0gibqRJ zbzDV+@}yMTVz^!khmDZOJIG@pIE00ecJg$cSRz3KBcQUm)Ka6COO6(qHUb{N6n|&g#oQ7BP0T2A!<>-(?d%YZ0Y)3g*%^dbs`F=VP_01?5WkkRBu3`YSH!tr@T1}2Wn1C6=y;p(WM zWE@W9o>0S$Q{{;k;1YeipWs%ri5L|d|K#7jL8K?~x~|Wy-Mz)(-0;z7` zrq|^&C|BA1fvl{xrB3eEY3+&ZHWU{hzbx~cNWxl5Xx@XQzMs|^32qyeiQk+<6h}x? z_II}EitEth^oI8CsGdy`U+SRBH;ZD-!C)=1mzno+V$iIU%#{_E@PxslwJZbq4VGTz5S8EOsyqc)urqel zLWyG*BFPf<0W+yl>L!t_yn1dTA@k6anYFyaiw{<@{N!+aVi=*V?=k+epF6+(RAd(( z2A|h5E5En3wRQqb>vyVhPme{ilEq*Wj(NvoV4v$%pGgY{aO8Bi*F9@9+vY3G!!EQ9 z12dT;M{Nw-pPfBwCg2DZum@_nB|u?M6tE}Cemk;o2C_C$fvM3wl%!KSf9 zA%G)N){#hEY(p^qk|_q`<4|=5kCv+8YJ(nzps^Vmtng>=7LRFx7yXhJHOCRe!9jzE zcNW7Crh=jKD<4PUHXvs|!gh=#OaH3QTz?@FKFxJVTePUyiG&MusvD@%=~@}t`h^1` x&iYmvvfx#bmpT3`PtF^0k?a@iE%))*1NVySmZizF-M!R86}DbhY`;HF`!D7eFhu|W literal 0 HcmV?d00001 diff --git a/public/static/res/layui/images/face/2.gif b/public/static/res/layui/images/face/2.gif new file mode 100644 index 0000000000000000000000000000000000000000..7edbb58a843cec27a1641a5c9b6d30b8fc1f8c26 GIT binary patch literal 3222 zcmeH}Sx{4F97iv?30p`p30s7afI%Y0usQ~*kRTvo39F(M9fDyo)qyIGxZdPOAXfuw zMXOZ@MT%f;N3m|GEf6fID6)v4qTr4|g<*?Gl4b#gPG5ZI?R!4|GvE0w;|8(3`Bs1x z@CE`_yJD2}b|0SX8E<8)R4Qff@v))So3@t97s9rhpC4WH_pkwL!xySPHq{)oZ7p>h zzvrkPIQOBeShx`LV*^5%D6C%`ebEiEl~ zk7CE4B~|Y;QY-4zgO`-;+$Y!56kQ@|0&T3P_~I^%dg!{c*>mvT;;r*BVqy5BGo%N1 z>y$4yj<eSIAsOnz$S)c;g7`UNK{5a%gXzk9w@* zb+!N1Z*Z#q(|tE>A72qE-$~S?mF?$QKjr5tH)lqBI}f!)-Psh@T^p)=9MN)#S6{a5 z)5GBNdp(u?=bL}eIw4v-(&%^nXp+1*wON*U)QfoKAiI@LkEEj?KB(WsGWwPb_Q~x# z%Pj_))}E%~{$aCw?}kb3!SMzc<>;fP!fzD)jmqa~!+lLXRgS8nQwfW3qmScXUR|)( z58qz3wdeK<)!QANf2Y5%2`s^ZidsvxTJ505@&aRHmU1EkJ(zBw0RR9FAJG_700J1A zx8_Jz0AQpRL9k>=GRa;_N?sz#%Zsq5<3pC>LV|oY+spD{Qbe2&7lU`gW43MM#*2ar*Rwx+$e-nGQen7iJ*HH&6s0DE)T16NM@URLM4sVjkz-7 zEVM@ox@)%#;|K;6VBO^yGDT45hL=an%;wJ9`Sg_goSH(sqv#czn<8!~#3sD~%K0_n zM8E1+ZQZBKnoC0ED>;cRViOmBxv=BT@LrSCmTmn8?91ocFUGXRDmGPv$5s+|%)PO4 zu!z}lmB=t-ZS|%1LinMQX;MOwcmS^G?9*u1hBP-+<}$vIIbo+9TL7Q-4AIssuw z=N}TG(+?p~3br$0y?OA2c(7hNM6a9{%@o_D&;*eH}6v}Ak*0_@l)tisouy=(k7zah6uVrZhe;O``p=gyk5s|!3?bZf88ne*I%R2?0u zS@(sfB0s%2$%Th?;siz>TCk?_9ePuuvyJQQP8vMj7X;0X5*K4F3?nP3QSNhuu{urs z84)e)87pS2n6YB!ulU@SnZM$z3t}))Q*A*^DVoWmscAMP6tU3N6pmY^9V;nttf6+O z=$l~2j(DK-Bo4lc`8k zQg{>bzl{g&%nN?YhqNV#O ztd%y!jg0~xk-W}^+K#6lpv-gGpDC^eLab>noeHkN6PT!JRZZ+!1SKWgcK&*DT0tgB zXm^Ef+`*7`+buyz`jvr4Q3^sy@c+#WJ(tOup_y~jhsI<}!D%hkERC;dDT30s^pD^v pEloJ|-EsmUGDRV$ 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 TKb&t*bx4GV=Q(`>7FhdV^sO<; literal 0 HcmV?d00001 diff --git a/public/static/res/layui/images/face/21.gif b/public/static/res/layui/images/face/21.gif new file mode 100644 index 0000000000000000000000000000000000000000..b98421282467fb377dced2eabd72bcc5525f3e8e GIT binary patch literal 5191 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 TguQ+mZP{ha!SUN*Q#T$ZGKvWRLv@}vHJ9z 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 Lls229f${$VzcBA< literal 0 HcmV?d00001 diff --git a/public/static/res/layui/images/face/25.gif b/public/static/res/layui/images/face/25.gif new file mode 100644 index 0000000000000000000000000000000000000000..0b4a88322946c1b65e9236657d6f42c71e412a94 GIT binary patch literal 3127 zcmeH}Sy)r~8OBdG60(?tEF?im2r+;L1lbWy5OoM5NLU65Q$b)@h6?I*ijH!^Ie`Ra zC+-{I0$SlgMa2~iD4?}c!BMND2!czsN^wC=U``U8YM-`Oz34^na(Djk_j{LoC12#{ zpTq{(z%U3*yz6*VPh5@91jVmp9hk*h_ue zPJQ3W9I7V2)w{mF$m+;*>u>N~s}C$^0`3@1m;r!i)ctaNxQyEFz(9+eC`^XN3!8BQIW zt(<1eq0t%6P)gK1?i~Ktd>1RgD&R3clgnP50)~j$^r-=)g}=2U`P7FrwO!vqU_*lU zFw_kbR;~X&u~yc;$&E*};A ze5@dpf)h2mKgvz4`5VTT6Y|IUpn?~B`O!Xow+E^_0HQ)fRwZ|q!mi;yyT(Q|dNO5( z(vaIEBo^5_+8bJG6foKk?C;Q)qcmHc(BdBLY_wYC6rS^a^2noz&3GFqSXDV4J%vAC z=ygah&ds5MJuT_7^Jnmlu+);;JL9n6_Cf`txBd`g4RhfCW$xgc}fq5F^bFhU|C@tyaSPrXmiWx_-;j z5{OH5aS8B-y#rjF!nZ?Npn#VKr||^yXmubK7N3GoHlI6xp_vXT&t-${;6-psCed4Z zju{@l@;WGkgg5K1S4V?6;eLXa^J0PgH(&%T2jlBr%DGT{sEszJRRQMz+ZQ1&fFZ;L zTCD{?98kf}EP*W8;ThJXyzh2EtH5btM3@+smE~CvCcpxi0iQZ?p|$PAT1a%k0lb8~ zN*V1XM=G=P7E0aLQrUW{8%L`2wu_dUPcC+qVwegWOwJEdU(ghkP-diGnZMYcPcW7@VbmOIpx>pYmRCzed%2X+OamT;YIX&wUMpf-{_n-e{s zN%$P^C$0a3oe}+cXRJY+JA)~xIrynF;Ke9!5mD7YqETbKiJ6Anb{rbZpvC2^4Zc{! z@Rbq`?@=ki6uJ~mORT8L#Gz4nS%;41Un!I3?CJ-SYA;dAvBLTW)x%B-Lr`6rn?L$k zUQFOV%IqF#gC5}Bdi>;-4rr1qs0)dcpyspYF!zUWfX;B1Pw|1=G5GRA`1$l9>H$VDpJQo!fe^lQ++|HN)tdbJB?X#PIO)x4gJ8!2~2 z#cM>{Dvru&7`$UFnDf{c`}j!Jz`M*RZyV@ z^7Pj#MM@!7tHBCOaFE%PsLDbV6GZ%IZL;I;y%5Uc#Be!-<|=i7Qv73~>`5Pbu))rF z4u;KN_alhm#Gf?TP=UVBjrl==;SVbw#biM?3VSySG~J$pUOaa$xC~86cY`RyE~c(y z;VHb7q8o$qEoz*V&^-!AW>ZrGnNNZrm(c~e^_=&;`>AxV)ar!vH+7{Dj`*x8YjbMB zHIxKdFw=fb%KE~K|CGA|=P)WgdLGg&yjf|cZgHZsr#XXx0-Pulm#|#GXl8gM;4(!x zK_DnH%g;`r(Zn=Kf+dqU&=N`%R>FP2!cLyzQz()2zGiX$kx5}ne_g7o0A|~ha|cB7 zLV~2(5Gkyw#S&tyLY|H|Y{a_6+>X-?Jf!k$DT*zx1Tt9>YjOOZusexEd`ajc0VncO z5C&z(?hjceaQeanUKQm*8~Y?)J-YnWH9d5H%9D_3Gk;f#^_)%f$Z?0hy@IC_R`#iE1Ud98@p~5HAYTDuK4U(zc<#GppqcpSq`GsG$aR6;x2k0_?6-$i z7m=~qrPV9qZVTWbdZ literal 0 HcmV?d00001 diff --git a/public/static/res/layui/images/face/26.gif b/public/static/res/layui/images/face/26.gif new file mode 100644 index 0000000000000000000000000000000000000000..45c4fb5563081d684f00cc3560df41b803cf7bbf GIT binary patch literal 3291 zcmeHI`#;p_7awFU=3N(!aa z)@F63%VJeZ7o=9ZQnt0-6xqs9JUi^x?ho7dFZh0*&+GMhp7S~9ywBzRI**T^H`7C4 z2s4C@Ps2a}4)C#HI~NoigHSB6*8!HOC}Tq)*G;fC2OKPj(FGJVaMc0jhEI`juo?%# zaMPRdAVYurYr<3!zjB>V21i&gak{lAP5J_jKOvfu-^l)FrbJJ zYMHdu?mXbW<6M<|Y| zA7M8>`ZC!V2bA`phykRIr;IV+AX^n{3v%H74Duba8K{B=jqE_49XJ^VR%_n&!S)dB z9_rY26KnuO1C-jd*p-SfdSR<_g2Or}K^W7S`c_1>>H(0|FnoE2Dtn+MKt7mk-&j=y~ypsn%lmxoVC zdZ5H|I>KavivdiXQX}mqD?~$B*i#4WNk77aw9K>q-nW-Wl{i>Tyn5Y}zx7_pjuXpm z-amiVI}dkG5I%)vQPqK4LQ?mp&HY5Z8&QJyH1vm&(Xlk* z^NW`zUCN#(D_Jix)u)Q(37JxkRKCK&g@>X)-I7O%@1c zF(Q_FKO=S~L$fN%L^j!T<_9!`=_ON$Aa{zZQ!JH6gXnY$&CQ)or#V6{RGN!3RsGVP zXl^WbI?IIt{r!;DXbNE*E12i~Hba%90aga>y%$4%zw(V#U%Kf!(Zyzdy@QnyeH^V?};EHd*b1A{Gl- z3|Bs#>dBzWidmzAMzk)=-blj~^x{RO9d8z5QeC&FIMMSHmw~Jb(7|_o3gO{5tsf(ZIw0Uw(ej z_tX7*y?1-MyYAe+b+hxv^^R*-ueATz*4pyJGV% z-LO7InXFhRmq{f_iEG6P@o^$yY>Xg!&FZMgi14sgD_1NJ4G9hkTo&N})zT$?zCPZ3 zo)_1Xvv?7E;R2QilR>co;>YZj#w?Q2>&na`qI z;P6A9*UbBTGj5qHeb0NMbcesk>yo7nt>&=64j3%Gu)bZ(E-AD_%hEo&CC|scp>@Z? zB&#mGyRfCTjNaG9(VE+vk+&0#)yRV{sBXxHXUVS)?Mav<;AeZMGt;}7F;7r07;<#B zcYzt6SxCK7!7kZSa~aA~zn0s5Gh?nELQ$(3%P%ybUKFn@4$Lx4U+a6kuT_ag6*8M`RjFL!A)XSUC?DQd$IFpPS^kjr2)m5Fadb!#?~ zU?17hwYm<~GGKB$Q+BxvfZm2h8moZb!vTPlnm{-Fbvs zTiy8VW>&3@PL@xR?~6<-^j{c3F!98{F|xnG&BMSuQmipmE8=;oyT7A{X96tV-m~NL8l~6+F7aUlOIu@M5({Ic8FO>gh^2MGk_!BcJ BI{yFw literal 0 HcmV?d00001 diff --git a/public/static/res/layui/images/face/27.gif b/public/static/res/layui/images/face/27.gif new file mode 100644 index 0000000000000000000000000000000000000000..7a4c0131dc926ee932804276038bf053a5cc1634 GIT binary patch literal 4377 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 G^ZyND2?^l< literal 0 HcmV?d00001 diff --git a/public/static/res/layui/images/face/3.gif b/public/static/res/layui/images/face/3.gif new file mode 100644 index 0000000000000000000000000000000000000000..86df67b7aad1ac80079562c74945d9c4ced3c397 GIT binary patch literal 4017 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 Z`!_Z%27Br#6>oByc-ZnwM>1&V{{f6`u%rM0 literal 0 HcmV?d00001 diff --git a/public/static/res/layui/images/face/30.gif b/public/static/res/layui/images/face/30.gif new file mode 100644 index 0000000000000000000000000000000000000000..b751f98abcf8173ae3c08402c99ae885a0dfe162 GIT binary patch literal 2555 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 literal 0 HcmV?d00001 diff --git a/public/static/res/layui/images/face/35.gif b/public/static/res/layui/images/face/35.gif new file mode 100644 index 0000000000000000000000000000000000000000..a9322643dae616390d8263e8cf1bc4d9fdfa03ec GIT binary patch literal 1800 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 literal 0 HcmV?d00001 diff --git a/public/static/res/layui/images/face/38.gif b/public/static/res/layui/images/face/38.gif new file mode 100644 index 0000000000000000000000000000000000000000..8b1c88a3e8658cde7b25b6e063d23d010f7ed86a GIT binary patch literal 3615 zcmeHIc~ld39-o=q5R!1nAxDM?f(RjrT#0}Q2{9;W1Xl3ang9_}4T&Mv=qe;!f?|nR zi+8-Swp;6Jz1lSiqLiwQXzQ(@Xwia#r2;hxJ3+DAee1q`uYc@6J2UUi%x}Ku@ALV7 zW@?%+fi3k0ynz87P&M7p-d3J?AIn+ z>TyrbxZA#)FnHd}b|u>W(>nV@wWIg2{Ri%ajee)AiT3NMw#(yxJVmhGTlDd~G4_Y= z5BHyP{A_;NmS+1l@b)J-OU)QZ&;A_?Ny9^J*AK^BXb8W5)XV;Tyko#*d$RTF{)il= z`-@AHtviAo&vu@ujdk=Mt;=$CJlopZ;M()G|Mi2uJxxK6kNey{Q`G%!`q0x)zN(Kp zQ61iSlKy!mudgltrIM8&!g3GsE`hxY)Zk z8H>Z7T$npN*g9})?)n^(Y1{0cmZWbE$sI%Y`mITQch|jaBDd`#{n{E(HU;W?uz#T0 zy~85Ca#xzP4>$E%C9mmO;k<$3j8ne+T|&dFVJ+vEC^yOsStfi=#7RV&meNkuZzFWJNQOD=vx| z!-SMH-EY6CJ&5*)saFNpz*UFq+9`vz;+mtSH1H zs$_YwMyib}E*Uo(K_Dy1SIbozxw05`MwI3$muiw|NTsh^P^jL9EiR#tv_sEVDx$Sg zRWy^%aJDpRn33_HO%;l_)+L%u*>Cm!+rTB+%T==IOj(I?sXAYVn2&R&QgQfdnN*`x zXDgM9M|V+Nq|_)&ij*ptpA`p(XGrtq#m#wR zpTdqwWyPej83HCVm6^hh6$<0nf>?G8Q^?@QjQR?c`AZeDV$G;;!Ee5?@AP$&L7_r2 z3uJ2f2eJa8TB(3Xn&!ygT?^}-@!t3ryt|f3@AQpEiivhY`%h4hE+PDJKE5R`^75AY zvSNhqYJ}L}u)}V9_3O~!z{_9ye}2)|`}|o?_fJosbp81FQRl-49qsq;-Mw@B*3BE& zfB62|)wV0v?=D}u_-*SqEf>x=pKG$1O=ti9^;c(3pE`Ns%j3uXcJzxQpa1om48{W zT)XUprJ54;5|y%8v3Sw@@}k0pvV#0Psbs->f1W>Y?ws75*?-E;%A6&hIU^%|`m{9B zRAH)spTgr#Nlr?f%wZ?Q$Hm4>Vlf%f^r*;*5fj40#)pQCqXom%puhnCv3|Zj-ebHx zJ=`f|k{i+0g@DIlF=!No$V2cDnot1ffJmoiIe(%6ei#4=0eISKEDj&r2{4aHn?gwj zajw4k+?sfg0|}BYin!K8uuzmssj!S8#aIGz4XG9ULf+%q`g2pSb7?79okFtGb1QR9*h8c^l8IGmiuNVyF8j;l5v zXX-)M@fmlp33o$GxG*uH*Lg0BJCBmgh2WLt;yv+sHmM7P;`TB<(bNTQn0slDODoe zmZWkkKJyVi3oIL7LuqMht@aMJ`dXp=)5se=#-k}*V~R(RE)(6@TUgsb(j2>Hr0}7u zr^+I9B2ZKbV$1M&yw$AJV{k-G!}NA?1(2_38RX49@8#Dx3)gPLp(+S*KrF!ZHw8k+ z6|TnHTlG|wTS1wx!`wuD&^&qIrKgmyaxHTa^fnnGEV1n9g3sG0r|74cXC>Bm{cO}x zpMF14HPADHnHad$VVq8V(e~X>0}i;!?mrpd$){2(+ne>cHUqD0po(Eac@s6|q+qW2 zT$K-9wSXE719~dwm{knL69Ev7-`AM8Mj|kzs7Rrvs#=$8MSG!njk+dGAVFgxClKL% zhKNR>62s`fVI_pmH<&j1%!l`E$ev9Qah(`p{t!kYCq`yztw-_-d;+DZ!fQfKf)(${ zwXFRJwYw`4ECg%G)N-phvuXwobbSx+7jDsQrm~7k^(

                oX7X8>HGY$%l3Fq~r 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Χ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